Apr 17, 2020 | 3 min read
Update July 2020
In a continuing effort to increase our transparency and communication, we are starting to document more about our infrastructure setup and configuration. We realise that there are a lot of Managed Kubernetes providers out there (the list at the CNCF Certified Hosted Kubernetes Landscape is ever-growing), so we will endeavour to outline how we go about evaluating a platform for use with Lagoon. The majority of our decision-making process here is customer/partner driven, but there are a number of criteria that we use to evaluate the services offered by the different providers, and we’d like you to understand why they’re important to us, and what they mean.
We have started a discussion page over at our GitHub repository to capture our thinking, which can also be used to capture any comments/discussion. Head on over to https://github.com/amazeeio/lagoon/discussions/2035 to watch it unfold!
When we started building Lagoon four years ago, best practices for containerized hosting were still being developed, and building everything based on OpenShift was an obvious choice, as it provided an enterprise-class solution.
As the cloud-native landscape has grown, native Kubernetes has not only become the industry standard to maintain, start, and deploy containers, but a broad open-source ecosystem has been built around it, and now provides a lot of the tools and features that were previously only available in Openshift.
Kubernetes is an open-source orchestration and management platform that automates container operations for software teams of all sizes. Kubernetes ensures that your applications in cloud environments run consistently by automating operations such as deploying, scaling, and managing containers or clusters. Applications can range from big data processing to content management systems. Essentially, Kubernetes helps you to efficiently manage your containers by getting rid of much of the manual work required to manage and scale applications via containers.
Running Lagoon on managed Kubernetes allows amazee.io to build and deploy clusters more easily and streamline maintenance efforts. It allows for more clusters with smaller nodes and fewer pods, and even more flexibility to host with Lagoon anywhere in the world. With managed Kubernetes, offered by all major infrastructure providers like AWS, Azure, Google Cloud and others, the control plane of Kubernetes is provided and managed. This means that amazee.io can start and upgrade clusters easily.
A New Level of Autoscaling
Although Lagoon already makes autoscaling on a container level fully automated, Kubernetes opens up the possibilities of even more flexibility with autoscaling on the node level. Instead of manually adding nodes when traffic demands it, clusters will be able to add and remove them as needed even within short timeframes. amazee.io can set parameters for a minimum and a maximum number of nodes to use and let Kubernetes scale as needed. This can work even for short fluctuations in traffic such as a site with a sudden influx of unplanned activity, as well as scaling clusters down overnight and at weekends. This lowers maintenance overhead and costs significantly since Kubernetes can procure, configure, and manage the cluster on its own.
Quicker Setup and Maintenance
Using our current system, in order to do weekly maintenance on a compute node, we must remove it from the cluster, update it, then bring it back online. Doing this process can occasionally mean longer outages during our weekly maintenance windows. With the managed Kubernetes services, the ability to replace an in-cluster node will ensure that maintenance windows can be faster and more regular. It even opens up the possibility of continual maintenance which could potentially eliminate most maintenance downtime altogether.
Benefits of Lagoon & Kubernetes with amazee.io
Using Lagoon with Kubernetes allows developers to do what they do best without having to worry about the implementation and upkeep of Kubernetes. With a managed service, operating Kubernetes is much simpler and deployment time is decreased significantly. With amazee.io on your side, you have a team that is monitoring and troubleshooting 24/7. All upgrades and fixes are handled so that the only thing left for your team to focus on is continuing to create new and great things.