GP - Fotolia
The IT industry continued to buzz about container technology through 2017. And while containers offer many benefits, including increased application portability, enterprises still need to watch for potential integration and networking challenges, among other issues.
Use these top tips from SearchCloudComputing in 2017 to more efficiently manage containers in cloud.
Maximize the benefits of containers in multi-cloud
Portability across cloud platforms is the end goal for many enterprises that use more than one provider. Containers can help support this portability, but there are important factors for IT teams to note.
First, unlike VMs, container application images do not include the OS or all middleware components, and depend instead on the container host and software itself. For multi-cloud, this means it's important that your IaaS providers all use the same container host OS and framework to ensure the best portability. Also, make sure your containerized applications don't rely too heavily on a specific provider's API or other features, or it will be difficult to migrate between cloud environments.
Containers can also ease multi-cloud network management. Multi-cloud is mostly dominated by multicomponent applications, such as those built with microservices. For these applications to run, the individual components need to communicate. With traditional VMs, you'd have to establish a network connection among these components on each IaaS platform you use. With containers, however, these components can use a common subnet to communicate, which makes network management easier.
Explore container orchestration engines for hybrid cloud
The hybrid cloud model provides the benefits of both public and private clouds, and containers offer a way to move applications between both environments. Container orchestration engines, such as Kubernetes, enable enterprises to run and scale containers in cloud within a cluster, depending on workload demand.
Companies can build their own infrastructure to support container portability or use provider-built products. For example, Red Hat's OpenShift Container Platform 3.4 supports Docker containers and the Kubernetes orchestration platform to distribute resources across hybrid cloud. Also, Cloudify, a software provider, has a container orchestration system that runs container-based apps and non-container apps alongside each other.
Even with these tools, IT teams still need to take care of integration tasks and address potential network challenges, due to the complexity of container configurations and architectures. As container technology evolves, enterprises should expect more complete platforms that will deliver more automation and orchestration capabilities.
Avoid cloud container sprawl
Container sprawl can have a significant impact on cloud costs. To reduce your cloud bill, you can take various steps.
The first way to reduce sprawl is to combine application components. Some users break apart their applications into increasingly small, loadable images. Unless you're going to reuse each of those individual components in different ways, don't separate them.
Another way to decrease sprawl is to combine VMs and containers in cloud. If you create your own container hosting image inside a VM that runs on an IaaS platform, it can reduce how much you pay per container. This only works well for application components that use very few resources, but need to stay predominantly resident.
Lastly, you could use serverless application components instead of containerized ones. Providers only charge for the individual serverless components users run, not for the hosting resources they consume. The main drawback is that most applications will require a redesign for serverless, which can be a long and costly process.
Know the pros, cons of containers as a service
To avoid some of the complexities of container deployment, enterprises can opt for containers as a service (CaaS). With CaaS, IT teams benefit from centralized repositories for container image distributions and smaller software footprints. In addition, the cloud provider takes care of all the updates for container tools, images and repositories. The cloud provider also provides access to additional features, such security and databases, for containers in cloud.
Some CaaS options include AWS Elastic Container Service, Azure Container Service and Google Kubernetes Engine. Before you choose a provider, determine your current and future requirements for features such as performance, governance and management.
These services also have their own challenges, such as integration with external resources. Enterprises will typically need to create custom configurations to enable this integration.