Crossplane loves Kubernetes as much as we do... But, differently!
Kubernetes has emerged as the de facto orchestrator for deploying and managing containerized applications. Its versatility and robust ecosystem have paved the way for innovative tools that leverage its capabilities, extending its utility beyond mere container orchestration. Among these tools, Crossplane and Qovery stand out for their unique approaches to simplifying cloud resource management. While they serve different purposes, both share a common foundation in utilizing Kubernetes as an orchestration layer, underscoring a shared belief in Kubernetes' ability to manage all types of workloads, including external ones.
Romaric PhilogèneFebruary 4, 2024 · 4 min read
Qovery is an Internal Developer Platform (IDP) that abstracts Kubernetes complexity, enabling developers to deploy applications seamlessly with just a few clicks. Qovery focuses on enhancing the developer experience by providing a simplified interface for managing the entire application lifecycle, from deployment to scaling and monitoring, without requiring deep Kubernetes expertise. It embodies the philosophy that every developer can be autonomous, promoting efficiency within teams.
Crossplane, on the other hand, is an open-source Kubernetes add-on that extends Kubernetes' capabilities to manage and provision cloud resources across multiple providers. It allows developers to define their cloud services using Kubernetes-style APIs, fostering a uniform workflow for deploying both on-cluster and off-cluster resources. Crossplane transforms Kubernetes into a universal control plane, bridging the gap between containerized workloads and external cloud services.
Both Qovery and Crossplane recognize Kubernetes as a powerful platform for managing diverse workloads. This shared perspective underlines a broader trend in the cloud-native ecosystem: the extension of Kubernetes beyond its original scope to encompass a wide range of infrastructure management tasks.
By building on Kubernetes, both platforms leverage its scalability, resilience, and extensibility to offer solutions that align with the principles of cloud-native development.
Qovery stands out for its commitment to simplifying the Kubernetes experience for developers. It abstracts the complexity of Kubernetes, providing the self-service experience that developers expect from their platform engineering team. By integrating seamlessly into existing workflows and supporting a wide array of technologies (including major databases like Postgres), Qovery facilitates a smooth path to production, embodying the ethos of "develop first, worry about infrastructure later."
Crossplane extends Kubernetes' reach into the realm of cloud resource management, enabling developers to manage external resources with the same APIs used for on-cluster resources. This approach not only streamlines the deployment process but also introduces a level of uniformity and portability across different cloud providers. Crossplane's model empowers teams to define their infrastructure as code, ensuring consistency, reproducibility, and automation in cloud resource provisioning.
Certainly, let's integrate this crucial distinction into our exploration of how Qovery and Crossplane each harness Kubernetes to serve the cloud-native community.
One of the fundamental differences between Crossplane and Qovery lies in their approach to extending Kubernetes' capabilities. Crossplane broadens the scope of Kubernetes by introducing Custom Resource Definitions (CRDs) to extend the Kubernetes API. This approach effectively turns Kubernetes into a control plane for managing external resources, allowing developers to use Kubernetes-style manifests to provision and manage cloud services as if they were native Kubernetes objects. Crossplane's use of CRDs encapsulates a deep integration with Kubernetes, leveraging it not just as an orchestrator but also as a universal control plane for cloud resources.
Qovery, in contrast, opts for a different approach by consuming the vanilla Kubernetes API without extending it through CRDs. Instead of embedding control plane functionalities directly into Kubernetes, Qovery uses Kubernetes purely as an orchestrator. The control plane responsibilities—such as user interface interactions, API management, and integration with other tools—are handled by Qovery's own control plane. This architecture allows Qovery to provide extended interfaces like a Web Interface, API, CLI, and a Terraform Provider. These interfaces offer Platform Engineering teams a rich set of tools to build upon, enabling a more tailored and simplified experience for managing deployments and infrastructure.
This distinction highlights a philosophical and architectural divergence in leveraging Kubernetes. Crossplane's approach aligns with the idea of Kubernetes as a universal layer for cloud-native operations, expanding its reach to include external resource management. Qovery's strategy, however, focuses on streamlining the developer experience by leveraging Kubernetes' orchestration capabilities while abstracting away the complexity through its own control plane. This ensures that developers and platform engineers can interact with cloud-native technologies through more familiar and accessible interfaces, without needing to delve into the intricacies of Kubernetes itself.
In essence, while Crossplane seeks to universalize the Kubernetes API for a broad spectrum of cloud resources, Qovery aims to democratize Kubernetes' power by making it more accessible to developers and teams. Both approaches offer unique advantages, catering to different needs within the cloud-native ecosystem.
The potential to deploy Crossplane with Qovery — thanks to Qovery's native support for any Helm chart, including Crossplane's — highlights an interesting intersection between the two platforms. While deploying Crossplane on Qovery might not be common due to their overlapping functionalities, this capability underscores the flexibility and developer-centric approach of Qovery. It opens up possibilities for teams already using Crossplane to enhance their developer experience through Qovery's streamlined interface.
Qovery and Crossplane exemplify the innovative use of Kubernetes as an orchestration layer for managing a wide range of workloads, both on-cluster and off-cluster. While their purposes differ, their reliance on Kubernetes reflects a shared belief in its capability to act as a universal platform for cloud-native development. This article is not about pitting Qovery against Crossplane; rather, it's about highlighting how both platforms contribute to the Kubernetes ecosystem, each enhancing the cloud-native journey in their unique way. Through their complementary strengths, Qovery and Crossplane offer teams the tools to embrace Kubernetes' full potential, making cloud-native development more accessible, efficient, and scalable.