Deploying Kubernetes Applications
A lot of applications run on Kubernetes, and it has become the de-facto container orchestration system. However, as great as Kubernetes is, it has a steep learning curve, which can make it difficult to adopt for someone with no experience in operations. Usually, teams would need to spend 2-3 months learning how to use Kubernetes, and correctly set it up for their organization's needs. You also have to learn about many dependencies on Kubernetes such as Argo CD for testing your containers, Terraform or Pulumi for managing Infrastructure as Code, tools such as Prometheus and Grafana to monitor your clusters, and a lot more. So in a nutshell, Kubernetes is difficult, and you would need to learn about a lot of dependencies in order to use it efficiently.
Even though your teams may have learnt Kubernetes, setting it up can be another big task. Depending on the size of your applications, this could take anything from a week to a couple of months. In this entire setup process, you could have made some sort of a misconfiguration which may have a fatal error, or could increase your cloud costs exponentially. This could again take a long time to find and fix the error.
Plural.sh To The Rescue
Plural.sh is an open source application deployment platform for deploying open source software on Kubernetes. This tool creates a layer of abstraction, meaning that the developer does not need to write configuration files for their Kubernetes Clusters. Plural will automatically define the configurations and deploy your applications on Kubernetes in your cloud using common standards such as Helm and Terraform.
Plural comes with a complete day 2 operation toolkit which lets you scale deployments with operational run-books for key cluster operations. Every dependency is automatically upgraded in the correct order, in a rolling manner. It provides a timestamped audit trail for all cluster applications along with searchable, downloadable logs. In addition, there are also pre-packaged dashboards for the highest importance metrics.
Plural also performs regular security checks for application images, Helm charts, and Terraform modules and comes equipped with OpenID connect for user auth to applications deployed by Plural. If you want to make your Plural deployments more secure, you can check out the documentation to learn more.
In addition to all these features, Plural also provides:
- Dependency management between Terraform/Helm modules, with dependency-aware deployment and upgrades.
- Authenticated Docker Registry and ChartMuseum proxy per repository.
- Secret encryption using AES-256 (so you can keep the entire workflow in git).
- Issuing SSL certificates for application web hosting.
- Configuring a DNS service to register fully-qualified domains under onplural.sh to eliminate the hassle of DNS registration for users.
- Being an OIDC provider to enable zero touch login security for all Plural applications.
How Does Plural Work?
Plural has three main components in its architecture: the Plural API, the CLI, and the Console.
- Plural API: The primary responsibility of the Plural API is to store the packages needed for application installation such as Helm and Terraform, and ingesting high-level dependency information about them. This allows them to properly sequence installations and also serves as a publish-subscribe layer to communicate updates to clusters that have installed those applications, and can leverage the dependency information ingested to delay updates until a cluster has caught up with all the necessary dependencies.
- Plural CLI: The Plural CLI effectively uses the Plural API as a package manager, and works as a higher level build tool on top of the DevOps packages it supports. It will handle things like running installations in dependency order, detecting changes between runs, and templating out a workspace from scratch.
- Plural Console: The Plural Console is the operational hub for all applications managed by Plural. It is deployed in-cluster alongside applications and provides a few key features such as automated upgrades, observability capabilities, and support.
Who Should use Plural?
Plural can be used by any developer to easily deploy their applications using Kubernetes. Data engineers will find value in Plural, as it allows them to deploy infrastructure safely without requiring intervention from DevOps. It can also be used by experienced DevOps Engineers so that they do not have to reinvent the wheel when setting up a new data stack or new infrastructure.
Plural is a great tool to deploy applications to Kubernetes without having extensive knowledge about operations. It provides a great abstraction for a lot of the work that is required to create, maintain and upgrade clusters. It is very easy to set up, and already has more than 60 production-ready, open-source applications which can be integrated with it.