Companies across industries are pushing to move data and workloads to the cloud, whether as part of digital transformations or to avoid building costly new infrastructure to handle growing demand.
For many organisations, key to this move are containers and Kubernetes — especially when multiple cloud services are involved.
Containers are standalone software packages that bundle together all of an application’s code and dependencies to ensure the application runs reliably regardless of its computing environment. As such, containers facilitate movement of an application from, for example, a developer's laptop to a test environment, from a test environment to production, or from a physical machine in a data centre to a virtual machine in a private or public cloud.
But while containers simplify shifting workloads between environments, they still need to be maintained. That’s where Kubernetes comes in. Kubernetes is an open source container-orchestration system designed to automate deployment, scaling, and management of containerised applications. Originally developed by Google, Kubernetes is currently maintained by the Cloud Native Computing Foundation.
Organisations are discovering that containers and Kubernetes are a powerful combination for enabling workload portability in multi-cloud or hybrid cloud environments. Here are three real-world examples of the technologies in action.
Expedia Group: Enhancing the online travel experience
Online travel services provider Expedia Group began using microservices architecture and public cloud services from Amazon Web Services (AWS) in 2013. But the company accelerated its usage when it started to deploy containers via Amazon EC2 Container Service (ECS) in 2015 to run those microservices and be able to run applications within the AWS cloud environment.
The primary business and technology drivers for deploying the technologies included greater portability of applications across multiple environments and accelerated speed to market for new products and services.
“With containers spinning up in seconds, the amount of time that is needed to ship a new feature to our customers has significantly reduced, and we are able to accelerate our speed to market,” says Kuldeep Chowhan, distinguished engineer at Vrbo, a unit of Expedia Group the provides lodging services for travellers.
The portability of containers between working environments and the speed with which containers can be deployed accelerated the company’s move toward microservices, Chowhan says. Today, thousands of applications are running in production on ECS across multiple AWS cloud regions, enabling Expedia to provide enhanced services for travelers and partners, he says.
In 2015, Vrbo adopted Apache Mesos, an open source platform for managing computer clusters, to run container workloads across on-premises data centre and AWS cloud environments. That enabled Vrbo developers to run the same workloads in both environments, which in turn accelerated migration from Expedia’s on-premises data centre to the cloud, Chowhan says.
Expedia also harnessed the power of Kubernetes as the technology gained popularity in recent years. The company’s Hotels.com unit currently runs hundreds of its applications on Kubernetes in the AWS cloud, Chowhan says, helping to provide services such as hotel bookings for customers.
And after Amazon launched its Elastic Kubernetes Service (EKS) in 2019, many teams across Expedia Group, including data science, online experiences, streaming, and others began to leverage it to run container workloads.
“Longer term, that is the direction Expedia Group is planning on heading for container runtime and orchestration needs,” Chowhan says.
Expedia Group’s shift toward a microservices architecture and containers has provided the company with significant advantages in launching new services quickly. Whereas it used to take months for new application development, it can now churn out new features multiple times a day.
“With investments in modernising our application architecture and DevOps practices, we have seen an order of magnitude increase in features that are shipped to the customers,” Chowhan says. “The Vrbo brand has seen a 12-times increase in release velocity in the last three years.”
Thanks to the portability of containers, Expedia applications can be run in a distributed fashion across multiple AWS regions to provide high availability so that customers across the globe can use its travel sites without disruption.
Containers also enable “targeted scaling,” Chowhan says. “Earlier when we had a monolith application, we had to scale the entire infrastructure to support the traffic,” he says. “With containers and microservices, now we are able to scale more intelligently the specific parts of our site that have higher customer demand — and realise savings in infrastructure costs.”
Containers still require some amount of infrastructure management, Chowhan says: “To be able to deploy and run containers, you need a container runtime and orchestration platform. As with any software solution, there are updates that are released and those updates need to be rolled out to the existing fleet of servers that are running the container platform.”
Development processes around containers and microservices have constantly evolved, from source code to runtime, Chowhan says. “We had to retool to be adapt in the new ecosystem across our travel platform, and also train our engineers with the evolving ecosystem across containers,” he says.
Primerica: Ensuring high-quality, modernised code
Finserv and insurance firm Primerica has created a Kubernetes environment help scale applications in a private cloud offerings from IBM on Nutanix hardware. And containers from Docker help Primerica provide application consistency between environments.
“This is a key strategic component in our migration from our traditional technology stack to our modern hybrid cloud,” says Barry Pellas, CTO and executive vice president of application development and delivery at the firm.
Read more on the next page...