Kubernetes is a platform for building platforms. However, Kubernetes platform engineering initiatives aren’t always a guarantee for success. Plus, there’s a good chance of exceeding the initial budgets. Why? Because building Kubernetes-based platforms is not an easy task!
Platform engineering involves a wide range of tools and technologies that can be overwhelming and time-consuming to set up and maintain. This often results in platform teams focusing mainly on the technological aspects of the platform, losing sight of the value the platform was supposed to deliver (lowering cognitive load on developers and preventing shadow platforming).
What if you could skip the design (day-0) phase, the building (day-1) phase, and even lower the time spent on maintaining (day-2) a Kubernetes-based platform – and instead deliver a ready-to-use platform within 20 minutes? Disruption is here. With Akamai App Platform in GA, you can provision an LKE cluster with Akamai App Platform and start building, deploying, securing, observing, and managing containerised applications within 20 minutes. No additional costs involved!
What is Akamai App Platform?
Akamai App Platform is a highly integrated and pre-configured stack of open source Kubernetes projects that can be enabled with a click of a button, combined with easy developer self-serviceability for the most common tasks when using Kubernetes.
Let’s dive into both of these aspects a little deeper.
An integrated and pre-configured stack of open source Kubernetes projects
Kubernetes alone is like an empty data center. If only it were as simple as spinning up a Kubernetes cluster and running a kubectl apply command to deploy all your applications. No, a whole bunch of additional capabilities are needed: observability, network encryption, policy enforcement, storage, network policies, network gateways, secret management, GitOps, automation, and maybe even building your own operators.
Selecting the right tools for the job, learning these tools, and configuring them so they’ll do their job is a time-consuming business. And it gets even more complicated when these tools have dependencies and need to work together. That’s why we see companies spending at least 6 months to create an initial setup.
For Akamai App Platform, we selected tools (open source software) for almost all of the required capabilities of a Kubernetes platform and combined them using an integration framework. Tools added to the framework can be combined with other tools. Chained tools provide a continuous delivery pipeline, tailored K8s runtime, and GitOps deployment pattern. Every tool is pre-configured to support the most common use cases and to deliver a smooth user experience. The tools used are almost all CNCF Graduated and Incubating Projects that are considered stable and are used successfully in production environments. The most commonly known tools used in Akamai App Platform are Harbor (to provide a container registry service), Argo CD and Gitea (for GitOps), Prometheus (for Metrics), and Kyverno (for security policies).
Easy developer self-service
With all the required capabilities set up, the platform administrator can create what we call a ‘Team’ in Akamai App Platform. A Team is an isolated tenant on the platform. Members of a Team will get access to the self-service portal that enables them to register their source code repositories, build container images, deploy these images, create secrets, expose applications publicly, create network policies, and get access to shared platform capabilities to see logs, metrics, and traces. The self-service forms offer a low entry level to start using Kubernetes, even for developers less experienced in platform engineering.
But maybe one of the most powerful features of the self-service portal is the catalog. The catalog is a collection of Golden Path templates that developers can use to deploy their application. During initial installation of the App Platform, the catalog is pre-filled with a set of getting started templates to create a Deployment. You can deploy a Redis cluster, a PostgreSQL cluster, and a RabbitMQ cluster. The pre-filled templates can also be customized or even replaced by organization-specific templates. This allows for sharing best practices and standardizes how applications are deployed.
The Architecture
The Akamai App Platform is based on a combination of GitOps and configuration as code (CaC) principles. GitOps uses Git repositories as a single source of truth for both infrastructure and application deployments, enabling continuous delivery and deployment. CaC, on the other hand, is a practice where application and environment configurations are defined as code and stored in version control. The heart of the platform is the platform API. The API manages the CaC stored in a Git repository. A Kubernetes operator periodically fetches the changes from the Git repository, compiles all the files into one data blob, renders Argo CD Application manifests, and then deploys them to the Kubernetes cluster. The updated Argo CD Application is picked up by the Argo CD controller and deploys the requested Helm chart with the corresponding values.
The Configuration as Code Git repository contains the configuration for both infrastructure (deployed on the cluster) and for specific configurations of platform applications. Changes in the configuration of platform applications like Keycloak (for Identity and Access management), Harbor (the self-hosted container registry service), and Gitea (the self-hosted Git service) are deployed by custom-built Kubernetes operators leveraging the application APIs.
Let’s take a look at an example: The platform administrator uses the self-service portal to enable Harbor because Teams on the platform would like to use private container registries. The platform API will first make the required changes in the CaC Git repository. Because Harbor is enabled, new Argo CD Application manifests are rendered and deployed to install Harbor, the (CloudNativePG) PostgreSQL databases, and the platform Harbor operator. When the platform Harbor operator is running, it will get the configuration instructions to configure Harbor. In this case, the operator will create projects for all the Teams on the platform, configure OIDC, create robot accounts, and create push and pull secrets in the namespaces of the Teams. After just a couple of minutes, all the Teams will have access to their projects in Harbor and can use the self-service portal to create container images that are automatically stored in Harbor.
Who is the Akamai App Platform For?
Let’s be honest. The above example on how the Akamai App Platform enables you to get a fully automated container registry service in just a few minutes. Doing this manually would be a huge undertaking. If your organization is more focused on delivering customer value instead of building an internal platform, then the Akamai App Platform is definitely for you. To be more concrete, we think Akamai App Platform is most interesting for fast-moving software companies, like small-to-medium SaaS companies.
Why Use the Akamai App Platform?
The Akamai App Platform offers all the capabilities a Kubernetes platform would require. And everything is offered in a pre-configured and fully automated way. This makes the App Platform an ideal platform for building, deploying, monitoring, and securing containerized microservices architectures in production.
But the Akamai App Platform can be used for way more than that. Because the platform can be automatically installed on LKE, you can start using the platform within around 10 minutes. And because the platform comes with a comprehensive suite of CNCF Graduated and Incubating Projects, the Akamai App Platform is ideal for educational purposes.
One underexposed subject we did not talk about is the multi-tenancy. Use the Teams feature in the platform to onboard unlimited (not taking required cluster resources in consideration here) tenants on the same cluster. Each Team gets its own isolated space on the platform and is automatically onboarded to shared applications (like Harbor in the example I gave earlier).
If your developers are eager to start using Kubernetes, but you don’t know where to start, then just give the Akamai App Platform a spin. Enable the capabilities you like to try and create Teams for individual developers, projects, or complete developer teams. Maybe in some cases, the Akamai App Platform may not be your ideal platform. But in that case, it could definitely be used as a reference architecture.
What’s Next?
Now that Akamai App Platform is GA, it doesn’t mean that we’re done. Not only does the technology around Kubernetes move at lightning speed, but we also still see a lot of improvements we would like to deliver for an even better user experience. In the upcoming sprints, we’ll release a couple of updates to show that we’re serious, starting with some updates in the self-service portal. If you already have Akamai App Platform running, the updates will be automatically announced in the platform dashboard in the portal.
Another exciting thing we’re working on is integrating some core AI capabilities like AI Inferencing and Retrieval-Augmented Generation (RAG). These capabilities will also be used to power AI self-service features like running large language models (LLMs), provide Teams access to consume LLMs deployed on the platform, deploy a vector database and create Knowledge bases (RAG) by creating embeddings in the Vector database based on a collection of documents, data, and other information that can then be used by a large language model (LLM) to enhance its responses.
Ready to get started with App Platform? Read our documentation.
Comments