The biggest challenges with containers are managing, scaling and load balancing while also making sure they run as intended. As the complexity of your environment increases, you can quickly have thousands of containers that need to be consistently managed. This is where Ku- bernetes steps in. Kubernetes is a container orchestra- tion, management and automation platform. However, like other platforms, Kubernetes requires specialized knowledge on how to work within the environment. As we discussed in Chapter 4, Kubernetes is a complex cloud container architecture that requires automation to sup- port a CI/CD solution. What makes Jenkins X different than other options to support CI/CD in the cloud? Jenkins X is an opinionated platform. Rather than dealing with complexities at the code level, Jenkins X selects a set of core services and tools that are pre-installed and wired together so that de- velopers can more easily begin developing applications. Jenkins X Sits on the Shoulders of Jenkins Jenkins X began where Jenkins left off. Jenkins was an open source project developed in 2004 and released in 2005 on java.net well before the cloud became the development platform of choice. Jenkins helped automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. The project, originally called Hudson was renamed Jenkins in 2011. The Jenkins community has become very active. Over the last ten years, more and more developers rely on Jenkins as a foundation for on premises continuous integration and continu- ous deployment for their applications. Jenkins X provides the same foundation of automation and ex- tensibility that has made Jenkins so important to developers. 55
Building Cloud Native Apps Painlessly Page 61 Page 63