A standalone, executable package of software which can be deployed into standardized environments easily.
Containers enable businesses to deploy different types of applications side by side on the same systems, much like shipping containers allow different types of cargo to be loaded in a uniform manner. This enables enterprises to make more efficient use of computing resources and shorter software delivery cycles.
If you want to benefit from the scalability and flexibility of cloud computing, you must evaluate containers. Today, Docker is one of the most widely used container technologies.
What is it?
Containers are a way to package up an application and its dependencies, which makes it readily portable — that means it’s ideal for use in the cloud, where you can tie your use of computing resources to fit demand.
A container has everything an application needs to run; to the underlying system, it’s immaterial what is in the container.
That means your teams can develop an application in their testing environment and trust it will run seamlessly in production. A containerized application will run whether it’s in a private data center, the public cloud or even a developer’s laptop.
What’s in for you?
The portability of containers enables you to scale your applications reliably. That ability to scale enables you to have your infrastructure tailored to your actual requirements. So for instance, you could easily add more capacity ahead of a peak period, such as Black Friday. Once the event is over, you can scale down.
Containers also allow your teams to deploy small pieces separately. This will enable faster delivery as well as shorter reaction times in case of issues.
Additionally, properly configured containers can reduce the number of potential security issues which can be exploited by bad actors.
What are the trade offs?
Containers require a high degree of management. It’s much harder to troubleshoot issues when dealing with distributed containers — so you’ll want to ensure that your teams are trained sufficiently to operate effectively in this environment.
It’s good practice to ensure your containers do only one thing. This enables you to reduce the likelihood that an attacker could find a vulnerability. But often, companies are tempted to bundle everything into a container — this might seem attractive when shifting applications to the cloud, but creates issues with security and scalability.