The container movement is well underway. Most enterprises, Internet service providers and cloud providers have...
containers on their radars -- largely because of the promise of portability, such as moving an AWS container to another environment.
Containers provide a layer of abstraction between the operating systems, code and data. Because they use the same services on different clouds, enterprise IT can move containerized applications from one public cloud to another. However, there is a certain level of effort involved in migrating an AWS container -- and containers aren't without tradeoffs.
First, enterprise IT has little experience in moving large containerized applications from one cloud to another, such as moving an AWS container to Google. Pilot testing consumes most developers' time, and there are some complexities around portability.
Many containerized applications must be modified somewhat as they move to cloud-delivered container runtime or management environments. There is currently no close coordination between public cloud providers despite often using the same open source code base, such as Kubernetes, which was developed by Google and adapted by Microsoft. It provides container cluster management services, allowing containerized applications to scale.
Amazon Elastic Compute Cloud (EC2) Container Service (ECS) is a container management service that supports Docker containers and allows developers to easily run applications on managed clusters of Amazon EC2 instances. If a developer writes Docker-compliant containers on another machine or cloud, he should be able to move them to Amazon ECS with little or no modifications.
AWS container migration in early stages
The reality is that most enterprise container projects have either not attempted cloud-to-cloud portability or have attempted it with very simple applications; and those that have seem to gravitate toward Docker. Because application portability is about options for the future, there has been no need for massive amounts of cloud-to-cloud portability so far; the concept is still very much in its infancy.
Second, standards are coming, if they are not here already. The Linux Foundation's Open Container Initiative is looking to wrangle container technology providers -- including the major public cloud providers -- to ensure interoperability and portability. The major concepts addressed include:
- Portable: The runtime standard should be usable across different hardware, operating systems and cloud environments.
- Backward compatible: Given the broad adoption of the current Docker container format -- 500 million container downloads to date -- the new standard should strive to be as backward compatible as possible with that format.
Finally, most public cloud providers will want to differentiate themselves by adding native features to their versions of container-based application deployment options. They would argue that the value with their container service is better performance and stability. The downside is, once you reach out of your container ecosystems to access these services, all bets are off with regard to portability. A developer might even compromise the value of using containers.
The market will need to wait to see how the container concept unfolds. But if we're using containers for the value of portability, then that value needs to be defined -- and that needs to happen quickly.
Cut costs with EC2 Container Service
Move containerized apps between clouds
EC2 Container Service helps resolve Docker security concerns