DEV Community

Daniane P. Gomes
Daniane P. Gomes

Posted on

Crossplane: esteróides para o Kubernetes

Esses dias assisti um vídeo do sempre sensacional @badtux_ sobre Crossplane e fiquei com vontade de escrever um pouco sobre o assunto. 😁

🧵

Afinal o que é o Crossplane mesmo?

Na minha definição grosseira, é um anabolizante pro Kubernetes que permite administrar serviços na nuvem (AWS, Azure ou GCP) de dentro de um k8s cluster. Tudo isso usando só os queridos YMLs e comandos kubectl.

Mas traduzindo livremente do site oficial crossplane.io, tem uma definição mais bonita “Crossplane é um framework de código aberto de ‘control plane’ mantido pela comunidade cloud-native.”

E o que significa “control plane”?

“Control plane” e “data plane” são termos técnicos de rede, mas esses nomes também são usados no contexto de serviços na nuvem.

“Control plane” é o que trata na configuração ou modificação de recursos, enquanto “data plane” trata da entrega desses recursos.

Sendo assim, o Crossplane pode, por exemplo, provisionar um novo RDS, ou então apagar um bucket no S3, ou ainda alterar o tamanho de uma instância do Opensearch, apenas aplicando um manifesto.

Se é integrado com o ecossistema do k8s, então ele ainda precisa ser instalado em cluster que já existe, certo? Certo.

Tá, mas então qual é a vantagem disso? Porque não usar Terraform pra tudo em vez de ter uma ferramenta extra?

Com Crossplane não é necessário aprender uma nova “linguagem” como o HCL, tudo é feito em yml, então as configurações são fáceis de ler.

Integrado com as melhores práticas de GitOps, a infraestrutura provisionada se auto repara assim que detecta uma diferença entre a fonte de verdade (um repositório git onde são armazenados os yml) e os serviços que estão rodando.

Outra coisa legal do Crossplane é que dá pra criar abtrações pra estrutura dos recursos e limitar o que ou não ser feito.

Por exemplo, um time de plataforma define que instâncias de RDS só podem ser provisionadas na versão x ou y e apenas com classes “small”.

O time de aplicações vair poder criar/alterar instâncias sozinho sem o risco de usar configurações não permitidas.

Ou ainda, uma KMS pode ser automaticamente criada, simplifcando as configurações exigidas do time de aplicações.

Isso é possível através de Compositions, Composite Resource Definitions e Claims. Mas isso é assunto pra uma próxima thread. Quem sabe…

Vídeo da Linuxtips https://www.youtube.com/watch?v=Z9wXnpx9PHM

AWS GenAI LIVE image

Real challenges. Real solutions. Real talk.

From technical discussions to philosophical debates, AWS and AWS Partners examine the impact and evolution of gen AI.

Learn more

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay