To navigate this landscape and deliver Kubernetes-as-a-Service on any infrastructure, you need guidance.
Let's walk through some core requirements. You need a variety of tools, including developer tools like CI/CD tools, Spinnaker, and Jenkins. You'll need source code management like GitLab, and an image repository like Artifactory.
Now let's move on to the bottom of the graphic. Ideally you want to deliver Kubernetes, and any other required services. in an automated fashion, to the extent where scaling any of these resources is as simple as doing it in a public cloud service. In other words, you want to handle this via a single command or a GUI without much forethought and planning.
While we're on the topic of automation: you need to automate security and compliance as much as possible, especially if you're going to deliver your solution to multiple developer groups or different parts of the organization. You'll also need monitoring and logging connected to all pieces of the solution. Finally, you need a plan to deliver all this as-a-service to your organization.
Enabling Developer Agility: Kubernetes is Part of Holistic CI/CD Pipeline
Let's consider all this in the scenario of using Kubernetes as part of a holistic Continuous Integration and Deployment (CI/CD) pipeline. To enable developer agility (that is, releasing software faster, with less time and effort), Kubernetes is one part of a holistic CI/CD pipeline—from source code control, building and testing to release. CI/CD, core to DevOps, is a critical cluster of services for automatically building and testing software code every time it's changed, and managing applications across their lifecycle. Most developers are accustomed to working with at least a portion of the tools in a CI/CD pipeline.
The services involved in a basic CI/CD setup include:
- Source Code Control: Many developers store their source code using GitHub (an external cloud service), but you can also use GitLab if you want to keep the code in your own data center (e.g., for data privacy reasons).
- Build and Test: Once a developer has committed code into the source code control system, you need a build-and-test pipeline to ensure the code meets quality criteria. While Jenkins and/or Spinnaker are common tools, GitLab offers support.
- Release Artifacts: After the code has been built, the artifacts need to be stored. Artifacts can be stored either as jars or binaries in an artifact store such as JFrog Artifactory or as a container image stored in a container image registry.
- Deploy, Monitor, and Log: Last, but not least, you need to serve and operate the build artifact. Here container orchestration tools such as Kubernetes and Marathon are very powerful options. In a production environment, you should include additional services for logging and metrics, such as Prometheus and ElasticSearch.
What Is Needed to Do Kubernetes Right
Before we further explore a service orchestration solution, it's helpful to ground your project in a well-considered approach. Now that we know where Kubernetes falls short, let's review what you need to do Kubernetes right:
- Automation. Like any technology, Kubernetes is at risk of failure. For instance, the control plane or another part of the Kubernetes infrastructure could go down. In such cases, you want the cloud provider to spin it back up, alleviating your organization of having to do so.
- Evergreen. New versions of Kubernetes with critical patches and desired features are released frequently. The best cloud providers have the newest, latest version so they can provide security patches and the latest features.
- Included. Kubernetes is commoditized, offered by many vendors and providers, oftentimes as part of a larger solution. If you're using Kubernetes via a public cloud provider, you get a full solution with necessary load balancing, storage, etc.
- Open source. The market standard for Kubernetes is pure open source, with most providers using upstream Kubernetes features designed for specific use cases.
- Unified. Kubernetes is not an island. To deliver Kubernetes-as-a-Service to lines of business, you need many other pieces, from the CI/CD tools to data services to automation under Kubernetes itself. So you need to take a holistic approach.
Luckily, Mesosphere addresses all of these needs by providing secure, flexible, an up-to-date Kubernetes that fits seamlessly with the rest of your services and infrastructure. Download the ebook, "Kubernetes Bootcamp: How to Deliver an End-to-End Solution."