I recently attended the DevOpsDays Seattle conference and wanted to share some of the topics of discussion with the Cloud Academy audience.
Unsurprisingly, container talk was everywhere! Most people know Docker as one of the biggest names in this space, and indeed there are multiple Cloud Academy blog posts concerning Docker already. In this crowd, you were definitely behind the curve if you didn’t have anything in containers or many good reasons why you were not using them. If you have not yet learned about or embraced containerization, there is still time to catch up!
Cloud Academy features an Introduction to Docker course and an entire learning path on Docker and Container Technologies. During an open space session titled “Legacy Applications Meet Containers,” attendees spoke of the many benefits of containerization including the following:
- Lock an application down and control access. This may be a feature the application itself currently lacks, but you can add it by securing the container. Almost every DevOps professional had a smile on their face when describing how to use containers to remove the ability to SSH into resources. Fewer ad hoc changes and more robust deployment code, while sometimes a harder path initially, can make life better in the long run.
- Unmoor an application from old hardware and dated infrastructure. This is an essential step if you are looking to migrate a legacy application to the cloud. It also helps you modernize the environment around an application, achieving benefits like greater density or new visualization tools, without touching the application itself.
- Unlock new tools and methods for disaster recovery and high availability. A sprawling legacy application may require an equally ornate set of backup resources in case of an emergency. In contrast, it’s relatively easy to keep secondary warm/hot containers at the ready. However, you’ll need to ensure that the application architecture and container solution properly support horizontal scaling.
There are challenges for implementing a container solution, and attendees brought up several topics that you may want to consider:
- Do you have a security audit solution in mind for your shiny new containers? Too often there is a tendency to throw the containers out into production (new technology!) without a comprehensive plan on how to compliance test, review, and update them.
- How do you break tight coupling or dependencies with other services or systems? Many times you can move the application code, but the application is tied to something else. There are several valid approaches to solving this problem. One involves breaking away pieces of functionality one at a time until there is nothing left of the legacy system. Another approach is to surround the old system with containerized components. Eventually, the old core function is unnecessary, and you can remove it.
- Always factor in the criticality of an application or system. If it works well, doesn’t cost a lot of money to maintain, and is stable, do you need to change it at this time? Are there better targets for your new containerization skills?
In order to meet the challenges and achieve the benefits of containerization, attendees spoke of several techniques and tools:
- Focus on great test suites as you rewrite or break out functions to provide reliable sanity checks. Only you and your team know exactly how your application works. However, familiarity with cloud services gained through one of Cloud Academy’s developer certification learning paths is a great way to learn about the services you may need to leverage in your tests.
- Though potentially difficult at first, leverage the extra restrictions containers offer. This encourages and fosters more coordination between staff and groups. Applications and operations staff will achieve a better understanding of each other’s needs and how to answer the all-important question, “Does this make the company money?”
- Utilize the many great tools out there to make your container endeavors a success. Cloud Academy’s Adam Hawkins has previously discussed how container technologies are more than just Docker. Tools mentioned in the session include Habitat, Apcera, and rkt. Cloud Academy also features a course on the surging Kubernetes.
Other Conference Topics
A few more talks, open sessions, and side conversations brought up some additional points worth considering.
Connecting Your Work to the Customer
How do you connect application performance metrics (APM) to user metrics? Do you have the right tools deployed to demonstrate that your work benefits the customer? Are all of your microservices watched and measured properly? Granular application telemetry data may need to come from a tool like OptimizeIT. However, if your current overall cloud metric view is a little thin, consider Cloud Academy’s course on Advanced Techniques for AWS Monitoring, Metrics and Logging.
How is QA Changing with the Cloud?
How is quality assurance (QA) changing with new cloud technologies? Some services offered by cloud providers such as AWS Device Farm allow you to simulate and automate previously manual tasks. Can you leverage your existing QA staff to design and maintain new tests using these services? Do they have the cloud service training and skills necessary to harness these new tools?
How to Build the Right Thing
An entire session was devoted to the seemingly simple topic of, “How to Build the Right Thing.” Simple, right? You know what you need to build, or do you? What pleases your customers and makes your company money, and how do you apportion limited resources to achieve those goals? Are you properly considering all risk management concerns when devising solutions? Do you understand the difference between what people are asking for versus what they need?
To strengthen your ability to answer the high-level questions, consider one of Cloud Academy’s architect learning paths.
Continuous Deployment: What’s the Point?
Continuous Deployment is the pinnacle of high-performance software development. Continuous deployment teams deploy every commit that passes tests to production, and there's nothing faster than that. Even though you'll see the "CD" term thrown around the internet, continuous deployment a...
DevOps Telemetry: Open Source vs Cloud vs Third Party
The DevOps principle of feedback calls for business, application, and infrastructure telemetry. While telemetry is important for engineers when debugging production issues or setting base operational conditions, it is also important to product owners and business stakeholders because it...
The Convergence of DevOps
IT has changed over the past 10 years with the adoption of cloud computing, continuous delivery, and significantly better telemetry tools. These technologies have spawned an entirely new container ecosystem, demonstrated the importance of strong security practices, and have been a catal...
How DevOps Increases System Security
The perception of DevOps and its role in the IT industry has changed over the last five years due to research, adoption, and experimentation. Accelerate: The Science of Lean Software and DevOps by Gene Kim, Jez Humble, and Nicole Forsgren makes data-backed predictions about how DevOps p...
Measuring DevOps Success: What, Where, and How
The DevOps methodology relates technical and organization practices so it's difficult to simply ascribe a number and say "our organization is a B+ on DevOps!" Things don't work that way. A better approach identifies intended outcomes and measurable characteristics for each outcome. Let'...
2019 DevOps and Automation Predictions
2019 DevOps and Automation PredictionsWe recently released our 2019 predictions for cloud computing and are doing the same here for DevOps and automation predictions.2018 was a great year for software, and DevOps falls somewhere on the slope of enlightenment on the Gartner Hype Cy...
Testing Through the Deployment Pipeline
Automated deployment pipelines empower teams to ship better software faster. The best pipelines do more than deploy software; they also ensure the entire system is regression-free. Our deployment pipelines must keep up with the shifting realities in software architecture. Applications a...
DevOps and Agile: Understanding the Relationship
Agile development used to be front and center in the conversation about software development. Now, DevOps has taken over the conversation. How do agile and DevOps relate? Both ideas began as ways to improve different aspects of software development. Agile embraced the changing nature of...
Getting Started With Site Reliability Engineering
Much has been written and discussed about SRE (Site Reliability Engineering) from what it is, how to do it, and how it's the same (or different) as DevOps. Google coined the term, defined the profession, and wrote the book on it. Their "Site Reliability Engineering" book covers the idea...
What DevOps Means for Risk Management
What Does DevOps Mean for Risk Management?Adopting DevOps makes the unfamiliar uneasy in two areas. One, they see an inherently risky choice between speed and quality and second, they are concerned that the quick iterations of DevOps may break compliance rules or introduce security vu...
How DevOps Transforms Software Testing
Testing is arguably the most important aspect of software development. Whether manual or automated, testing ensures the software works as expected. Broken software causes production outages, unsatisfied customers, refunds, decreased trust, or even complete financial collapse. Testing mi...
From Monolith to Serverless – The Evolving Cloudscape of Compute
Containers can help fragment monoliths into logical, easier to use workloads. The AWS Summit New York was held on July 17 and Cloud Academy sponsored my trip to the event. As someone who covers enterprise cloud technologies and services, the recent Amazon Web Services event was an insig...