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 organizations, 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 center 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 containerized applications. Originally developed by Google, Kubernetes is currently maintained by the Cloud Native Computing Foundation.
Organizations 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 that provides lodging services for travelers.
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 center 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 center 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 modernizing 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 realize 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, modernized code
Finserv and insurance firm Primerica has created a Kubernetes environment to 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.
“This environment allows us to continue to see value out of applications that we have developed over several decades in a new and modern way,” Pellas says. “It also plays a key role in our API [application programming interface] and microservices strategy” by facilitating the delivery of new capabilities to business applications, he says.
The container and Kubernetes combination enables Primerica to not only host applications but also to monitor them and recover quickly should anything happen to the containers.
“We provide end-to-end infrastructure-as-code, which enables us to consistently build environments that are predictable, and eliminates the possibility of human error,” Pellas says. “Our continuous integration and delivery capabilities ensure that product teams always have the latest changes at their fingertips, and they can feel confident that verification of the environment and application has been done as part of the deployment process itself.”
The main drivers for using containers and Kubernetes is to provide teams with an opportunity to deliver applications faster and with better quality, Pellas says. They also provide a secure, stable environment in which to work and scalability during high-use times.
“We also wanted the predictability and consistency between our various environments, to help with debugging and problem resolution,” Pellas says.
While Primerica has only recently begun to take advantage of containers and Kubernetes, it is seeing increased productivity of teams as well as development of new features for its users that can be delivered in an incremental, agile way.
“We have also been able to provide more secure and predictable applications by catching issues early in the development process,” Pellas says. “We hope this will lead to increased quality of our applications and a consistent development experience throughout our product teams, as we migrate more and more applications to the platform.”
As with any technology, there is a learning curve for organizations looking to adopt containers and Kubernetes. “Enabling teams with the right skill sets to properly develop within the environment can be challenging,” Pellas says.
Primerica is addressing those challenges by providing education to its product teams and best practices for business leaders to get their projects into the pipelines.
Clemson University: Wrangling massive computational resources
The Feltus lab in the Department of Genetics and Biochemistry at Clemson University is an interdisciplinary team of geneticists, computer scientists, computer engineers, and bioengineers who blend software engineering and computational biology techniques to make useful molecular discoveries in human and plant biological systems.
The lab uses bioinformatics, statistical and data science approaches to discover patterns, says Alex Feltus, a professor in the department. “The biological data sets we analyze are in the tera- to peta-scale range, and we engineer optimized data-intensive computational workflows that fit data to a myriad of computational platforms,” including those of several commercial cloud providers.
In recent years, the lab has focused development efforts on workflows that run on Kubernetes systems. “We believe that Kubernetes will be a common standard platform for data-intensive computing for many years, which allows us to focus our software engineering efforts on one architecture,” Feltus says.
Biological databases are growing geometrically, Feltus says, and data sets can be mined for biological insight into some of the largest medical and food security challenges. “Even small biology labs are in constant need of massive computational resources,” he says. “Researchers will soon want to ask biological questions at the petascale [level], which will require access to massive computers that are currently possible in commercial clouds. Kubernetes clusters are an excellent platform to do large scale computing.”
Before moving to the cloud, “biological researchers need democratized, credit-free cloud sandboxes where one can engineer and test workflows at scale,” Feltus says. “These sandboxes are critical, since 90 percent of scientific experiments lead to dead ends, which would burn cloud credit budgets before discovery occurs.”
The Feltus lab is working with many other research groups to pilot scalable resources that are a blend of on-premises and cloud services, and Kubernetes and containers will play a huge role.
“Kubernetes and containers are a go-to platform for computational biology workflow engineering,” Feltus says. “These systems have allowed my students to bypass many of the vagaries of HPC [high-performance computing] environment configuration.”
The lab has deployed Cisco Container Platform, which helps the team manage multiple clusters from various cloud providers under one platform.
Once the lab has tested its workflows in Kubernetes clusters, it can run the containerized workflows in multiple commercial clouds. “This streamlines end-user training and allows the user to focus on the science,” Feltus says.