Kubernetes and industries
Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management. It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation.
Kubernetes defines a set of building blocks (“primitives”), which collectively provide mechanisms that deploy, maintain and scale applications based on CPU, memory, or custom metrics.
Kubernetes is open-source software that allows you to deploy and manage containerized applications at scale.
FEATURES OF KUBERNETES:
Automated rollouts and rollbacks:-
Kubernetes progressively rolls out changes to your application or its configuration, while monitoring application health to ensure it doesn’t kill all your instances at the same time. If something goes wrong, Kubernetes will roll back the change for you. Take advantage of a growing ecosystem of deployment solutions.
Service discovery and load balancing
No need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives Pods their own IP addresses and a single DNS name for a set of Pods, and can load-balance across them.
Service Topology
Routing of service traffic based upon cluster topology.
Storage orchestration
Automatically mount the storage system of your choice, whether from local storage, a public cloud provider such as GCP or AWS, or a network storage system such as NFS, iSCSI, Gluster, Ceph, Cinder, or Flocker.
Secret and configuration management
Deploy and update secrets and application configuration without rebuilding your image and without exposing secrets in your stack configuration.
Automatic bin packing
Automatically places containers based on their resource requirements and other constraints, while not sacrificing availability. Mix critical and best-effort workloads in order to drive up utilization and save even more resources.
Batch execution
In addition to services, Kubernetes can manage your batch and CI workloads, replacing containers that fail, if desired.
IPv4/IPv6 dual-stack
Allocation of IPv4 and IPv6 addresses to Pods and Services
What is Kubernetes used for?
Kubernetes keeps track of your container applications that are deployed into the cloud. It restarts orphaned containers, shuts down containers when they’re not being used, and automatically provisions resources like memory, storage, and CPU when necessary.
How does Kubernetes work with Docker?
Actually, Kubernetes supports several base container engines, and Docker is just one of them. The two technologies work great together, since Docker containers are an efficient way to distribute packaged applications, and Kubernetes is designed to coordinate and schedule those applications.
Kubernetes’ increased adoption is showcased by a number of influential companies which have integrated the technology into their services.
CASE STUDY: Adidas
Staying True to Its Culture, Adidas Got 40% of Its Most Impactful Systems Running on Kubernetes in a Year
Company- Adidas
Location- Herzogenaurach, Germany
Industry- Fashion
Challenge
In recent years, the Adidas team was happy with its software choices from a technology perspective — but accessing all of the tools was a problem. For instance, “just to get a developer VM, you had to send a request form, give the purpose, give the title of the project, who’s responsible, give the internal cost center a call so that they can do recharges,” says Daniel Eichten, Senior Director of Platform Engineering. “The best case is you got your machine in half an hour. Worst case is half a week or sometimes even a week.”
Solution
To improve the process, “we started from the developer point of view,” and looked for ways to shorten the time it took to get a project up and running and into the Adidas infrastructure, says Senior Director of Platform Engineering Fernando Cornago. They found the solution with containerization, agile development, continuous delivery, and a cloud-native platform that includes Kubernetes and Prometheus.
Impact
Just six months after the project began, 100% of the Adidas e-commerce site was running on Kubernetes. Load time for the e-commerce site was reduced by half. Releases went from every 4–6 weeks to 3–4 times a day. With 4,000 pods, 200 nodes, and 80,000 builds per month, Adidas is now running 40% of its most critical, impactful systems on its cloud-native platform.
“For me, Kubernetes is a platform made by engineers for engineers. It’s relieving the development team from tasks that they don’t want to do, but at the same time giving them visibility of what is behind the curtain, so they can also control it.”
— FERNANDO CORNAGO, SENIOR DIRECTOR OF PLATFORM ENGINEERING AT ADIDAS
In recent years, the Adidas team was happy with its software choices from a technology perspective — but accessing all of the tools was a problem.
For engineers at Adidas, says Daniel Eichten, Senior Director of Platform Engineering, “It felt like being an artist with your hands tied behind your back, and you’re supposed to paint something.”
For instance, “Just to get a developer VM, you had to send a request form, give the purpose, give the title of the project, who’s responsible, give the internal cost center a call so that they can do recharges,” says Eichten. “Eventually, after a ton of approvals, then the provisioning of the machine happened within minutes, and then the best case is you got your machine in half an hour. Worst case is half a week or sometimes even a week.”
To improve the process, “we started from the developer point of view,” and looked for ways to shorten the time it took to get a project up and running and into the Adidas infrastructure, says Senior Director of Platform Engineering Fernando Cornago.
“I call our cloud-native platform the field of dreams. We built it, and we never anticipated that people would come and just love it.”
— DANIEL EICHTEN, SENIOR DIRECTOR OF PLATFORM ENGINEERING AT ADIDAS
“We were engineers before,” adds Eichten. “We know what a typical engineer needs, is craving for, what he or she doesn’t want to take care of. For us, it was pretty clear. We filled the gaps that no one wants to take care of, and we make the stuff that is usually painful as painless as possible.” The goals: to improve speed, operability, and observability.
Cornago and Eichten found the solution with containerization, agile development, continuous delivery, and a cloud-native platform that includes Kubernetes and Prometheus. “Choosing Kubernetes was pretty clear,” says Eichten. “Day Zero, deciding, easy. Day one, installing, configuring, easy. Day two, keeping it up and running even with small workloads, if something goes wrong, you don’t know how these things work in detail, you’re lost. For day two problems, we needed a partner who’s helping us.”
In early 2017, Adidas chose Giant Swarm to consult, install, configure, and run all of its Kubernetes clusters in AWS and on-premise. “There is no competitive edge over our competitors like Puma or Nike in running and operating a Kubernetes cluster,” says Eichten. “Our competitive edge is that we teach our internal engineers how to build cool e-commerce stores that are fast, that is resilient, that is running perfectly.”
“There is no competitive edge over our competitors like Puma or Nike in running and operating a Kubernetes cluster. Our competitive edge is that we teach our internal engineers how to build cool e-commerce stores that are fast, that is resilient, that is running perfectly.”
— DANIEL EICHTEN, SENIOR DIRECTOR OF PLATFORM ENGINEERING AT ADIDAS
Adds Cornago: “For me, our Kubernetes platform is made by engineers for engineers. It’s relieving the development team from tasks that they don’t want to do, but at the same time giving them visibility of what is behind the curtain, so they can also control it.”
Case in point: For Cyber Week, the team has to create a lot of custom metrics. In November 2017, “Because we used the same Prometheus that we use for monitoring the cluster, we really filled the Prometheus database, and we were not able to reduce the retention period [enough],” says Cornago. So, during the freeze period before the peak shopping week, five engineers from the platform team worked with five engineers from the e-commerce team to figure out a federated solution that was implemented in two days.
In addition to being ready for Cyber Week — 100% of the Adidas e-commerce site was running on Kubernetes then, just six months after the project began — the cloud-native stack has had other impressive results. Load time for the e-commerce site was reduced by half. Releases went from every 4–6 weeks to 3–4 times a day. With 4,000 pods, 200 nodes, and 80,000 builds per month, Adidas is now running 40% of its most critical, impactful systems on its cloud-native platform.
And adoption has spread quickly among Adidas’s 300-strong engineering corps. “I call our cloud-native platform the field of dreams,” says Eichten. “We built it, and we never anticipated that people would come and just love it.”
For one thing, “Everybody who can touch a line of code” has spent one full week onboarding and learning the platform with members of the 35-person platform engineering team, says Cornago. “We try to spend 50% of our time sitting with the teams because this is the only way to understand how our platform is being used. And this is how the teams will feel safe that there is someone on the other side of the wall, also feeling the pain.”
Additionally, Cornago and Eichten took advantage of the fact that as a fashion athletic wear brand, Adidas has sports and competition in its DNA. “Top-down mandates don’t work at Adidas, but gamification works,” says Cornago. “So, this year we had a DevOps Cup competition. Every team created new technical capabilities and had a hypothesis of how this affected business value. We announced the winner at a big internal tech summit with more than 600 people. It’s been really, really useful for the teams.”