The 6 Steps of The Container Lifecycle
By Jason McGee
Of all the advancements in IT over the past few years, few have eased the software and application development process quite as profoundly as containers. And while containers have existed for several years, they’ve exploded in popularity over the last three years.
For proof, look no further than the popular container company Docker. The company’s image downloads spiked from 67 million in December 2014 to 1.2 billion in late 2015.
For app developers, containers aren’t a one-off tool. An effective container strategy focuses on the entire container lifecycle.
What do I mean by this?
When a team of developers set out to build a cloud application, there are a number of steps they inevitably have to follow. There’s been considerable focus over the last couple years on the most effective way to build these applications. But when you actually want to take the application that you built into a container image and run it in production, you have to actually be able to continuously walk that application through a lifecycle.
In this post, I’ll set out to break down the six steps to the lifecycle that our developers are following—specifically as they relate to Docker—and some of the best practices for each.
1. Acquire: That lifecycle starts with acquiring capabilities or content. One of the great things about Docker is this idea of layered images. I can derive my application from a base image that can be derived from another base image. As a software vendor, this allows me to deliver my capabilities to you as an image, and you can extend that image in a very consistent and maintainable way.
Often when you’re getting started with Docker, the first step is to begin with the question, From where should I start? Is there content in Docker Hub that I can leverage? Are there official images I’m going to use? Are there standard images that we’re going to build inside our enterprise and make available to our internal development teams? There’s an acquisition step that involves identifying the content you want to start from and understanding where you’re going to store them and from where you’re going to access them.
(Heading to IBM InterConnect? Catch Jason McGee’s lightning talk at the Open Technology Summit.)
2. Build: The second step in the lifecycle is the build. Here, you’re asking yourself, How do I take that content and actually build my application and run it through an automated delivery pipeline? IBM Bluemix offers a shared Docker build service that allows your team to automate your Docker image build and then publish those images into a private registry to deploy on the cloud platform.
3. Deliver: With the delivery step, you’re taking that built application and delivering it into the production systems. IBM Containers allows you to automate the entire delivery pipeline across your application. It also offers a service called Vulnerability Advisor, which tells you about vulnerabilities that may exist within your image or any of the layers in your image.
4. Deploy: The deploy step involves the actual process of deploying your application into production and addressing the need for updates. If you’re going to do continuous delivery around an application, you need a system that can orchestrate the replacement of new applications from old applications. That can let you do things like canary test that application and make sure that it behaves in a way that you can expect before you roll all of your traffic onto that new application. You can watch a demo of Active Deploy here.
(Want to learn more about containers? Download The New Stack’s free eBook, “Applications and Microservices with Docker and Containers”)
5. Run: The run step sets the management system and the runtime environment around your container. In this step, you’re determining how you scale your application and how you’ll recover from failure. You’re also determining how to connect your container to other services and applications in your environment.
6. Maintain: Finally, the maintenance step determines how you’ll get visibility into your application. It lets you understand where there are failures and how you can de-bug those failures and connect back to the beginning to make a change and roll again through the whole cycle.
IBM offers several tools that wrap around each step of the container lifecycle to take it from development, through to production and back again. To learn more about these tools, check out IBM Containers for Bluemix.
Discover how IBM’s Bluemix relieve the stress of maintenance updates and deployment times – CLICK HERE
Article was originally posted here