Software containers are taking over. Is your organization ready for the transformation?
Organizations are gravitating towards software containers as a way to package, distribute, and run their applications. The benefits of container technology such as Docker and Kubernetes include:
- SPEED – Containers are lightweight relative to virtual machines. New application instances can be launched more quickly.
- PORTABILITY – You can package just your application into a container with its dependencies and reliably run it in multiple places or clouds. No typical installation required.
- AVAILABILITY – Since containers are more lightweight and their contents meant to be ephemeral (critical data is stored outside the container then mounted as a volume), containers can be restarted quickly and seamlessly if your application allows for this.
- SIMPLICITY – The container packaging model aligns well with modern, distributed application architectures that consist of different microservices. Once you surpass the learning curve, you should work to decompose existing apps and use Docker to package them more simply, as an immutable image. This pattern is proven to streamline operations.
The benefits of containers are real but there must be focus and discipline throughout your development, operations, and security teams to realize them. The most important principle is to iterate early and often, rather than just speculate about the future. In general, adoption of software containers across an enterprise should be a multi-pronged effort.
Important Considerations
A wave of new workflows and tooling that impacts all lines of business.
- Container orchestration, e.g. Kubernetes, Docker Swarm, HashiCorp Nomad
- Revised pipelines and pipeline tooling
- Artifact repositories are used in combination with container image registries
- Container image vulnerability scanners
- Image signing, to validate authenticity of source
- Developing a library of approved base images and refresh policy
- Revised infrastructure as code
Education and support for security, development, and operations.
- Security must learn how to observe and protect
- Developers must learn how to use Docker securely
- Monitoring and insight at the container level in addition to machine level
- Platform engineers and support must learn how to diagnose issues
- Release engineers are promoting across registries and clusters
Leadership must be committed to the result.
- Propagate the vision and message clearly to everyone in your organization
- Be unafraid to take some risks
Getting Started
At Perficient, we understand that change is difficult. Widespread adoption of software containers throughout an enterprise can be achieved through focused, time-boxed iterations where all stakeholders are on board with the transformation and committed to the result. Our typical recommendation for organizations looking to make the transformation is to identify an application or two, start packaging it with Docker or another OCI-compliant tool, and run through the items listed above. We always encounter more questions along the way. That’s why it’s important to focus on building working software.
Perficient is partnered with leading technology companies such as Red Hat, Pivotal, and all major cloud providers which offer enterprise or turn-key distributions of Kubernetes. Our strategy is to listen to our clients, understand their requirements and preferences, and steer them towards the best solution for their organization. In addition, Perficient offers a Container Quickstart intended to help clients understand the new world of containers and develop a long-term strategy around them. The Perficient Container Quickstart is approximately a six-week engagement, focused on containerizing 1-3 applications, deploying them to Kubernetes on public cloud, and developing CI/CD workflows around the packaging and deployment. Additionally, the Container Quickstart addresses long-term platform selection and architecture discussions, and our goal is to leave clients with a comprehensive Solution Architecture document that outlines an adoption strategy, usage model, toolchain, and implementation roadmap.
Allow Perficient to be your guiding light towards more reliable deployments and increased portability with software containers. Our global team of experts is ready to assist. Engage with us today!