Desde sua última aparição no Radar, a adoção do Crossplane continuou a crescer, particularmente para estender clusters Kubernetes. Em nosso trabalho, descobrimos que o Crossplane se destaca em casos de uso específicos, em vez de como uma ferramenta de infraestrutura como código (IaC) de propósito geral. Nossas observações anteriores ainda se mantêm: o Crossplane funciona melhor como um complemento para workloads implantados no Kubernetes, não como um substituto completo para ferramentas como o Terraform. Os times que apostaram "todas as fichas" no Crossplane como sua principal solução de IaC muitas vezes enfrentaram dificuldades, enquanto aqueles que o usaram de forma pragmática — para casos de uso direcionados e customizados — viram ótimos resultados. Descarregar o gerenciamento do ciclo de vida dos recursos para o Crossplane enquanto se usam as APIs XRD para customização leve provou ser especialmente eficaz. O Crossplane é particularmente valioso ao gerenciar recursos cujos ciclos de vida são simples, mas não nativos do Kubernetes. Embora ele agora possa criar clusters Kubernetes — uma capacidade que faltava anteriormente — aconselhamos cautela na adoção do Crossplane como um substituto completo do Terraform. Em nossa experiência, ele funciona melhor quando a IaC serve como a camada fundamental, com o Crossplane adicionado por cima para requisitos especializados.
Crossplane é mais uma entrada na classe de ferramentas implementadas pelo padrão Kubernetes Operator, mas com efeitos colaterais que vão além do cluster Kubernetes. Na última edição do Radar, mencionamos a técnica de serviços de nuvem gerenciados por Kube, e o Crossplane faz exatamente isso. A ideia é aproveitar o plano de controle do Kubernetes para provisionar serviços em nuvem dos quais sua implantação depende, mesmo se eles forem implantados no próprio cluster. Os exemplos incluem instâncias de banco de dados gerenciado, balanceadores de carga ou políticas de controle de acesso. Essa ferramenta é notável por dois motivos. Primeiro, porque demonstra o ambiente de execução poderoso e flexível do plano de controle do Kubernetes subjacente. Não há limite real para a gama de recursos personalizados com suporte. Em segundo lugar, o Crossplane fornece uma alternativa às opções usuais Terraform, CDK ou Pulumi. Crossplane vem ainda com um conjunto de provedores predefinidos para os principais serviços em nuvem que cobrem os serviços mais comumente provisionados. Crossplane não tenta ser uma ferramenta de infraestrutura como código (IaC) de uso geral, mas sim um complemento das cargas de trabalho que estão sendo implantadas no Kubernetes. Frequentemente associado à prática do GitOps, Crossplane é autônomo e permite que você permaneça dentro do ecossistema Kubernetes quando for necessário gerenciar a nuvem externa de recursos. No entanto, Crossplane não ajuda no provisionamento do Kubernetes; você precisará de pelo menos uma outra ferramenta IaC para inicializar o cluster.