Crossplane Observability and Traceability
Crossplane observabilty and traceabilty for effective multi-cloud management
What are we solving
Since the cloud, you can order resources on AWS: networking, storage, servers. You get individual components, and you assemble them all together into something meaningful. Developers have the expectation to get a ready-to-go solution instead of individual parts.
Crossplane
Crossplane can assemble individual components into something meaningful called composition.
Setup
- Create a Kubernetes cluster
helm install crossplane
I guess (?)
Create resources
- Apply a manifest based on a composition: https://docs.crossplane.io/latest/concepts/claims/
- In this example, we are using a
ClusterClaim
which sets up a EKS cluster crossplane trace <resource>
shows whatever is happening to the resources in the compositionkubectl apply -f sql-claim.yaml
, which is based on aSQLClaim
CRD. That's a lot of abstraction yokubectl apply -f app-claim.yaml
, which is based onAppclaim
- What is the benefit of this instead of managing the application with Argo directly?
The problem
During the deployment, the developers are blind. People need to be able to create resources and observe resources.
Trust the platform
Be fully transparant to developers on what is happening on the platform. Give developers insights in the platform and do the same for their applications, so they are confident in their application.
Long story short, the complexity of applications is going up and only a small fraction is properly instrumented.
Observability
Around 40% of companies have identified observabilty as key focus for their applications.
What is observability? Goes beyond classic monitoring, in the past (and present) we can expect known uknowns really well with alerts and dashboards. Observability builds on this to identity unknown unknowns.
Here comes the sponsored bit on big-brand-observability-saas-provider
How does Crossplane help with observability? When defining a composition, include a block to configure options for your observability platform. In this case, this is saas-provider, but can be whatever you have or selfhost.
Seems like Crossplane also exports metrics, so you can visualize these as well. Metrics seem familiar to ArgoCD metrics.
Questions
- Why does Crossplane use Terraform under the hood?
- A: It does not use Terraform by default, but you can use the terraform-provider
- Is the takeaway to add observability in the compositions so the developers don't have to do it?