Nesta sexta-feira (28/05), lançamos o Charles CD 1.0, a nova release da nossa ferramenta Open Source de deployment contínuo. Essa é a versão oficial do projeto que foi criado em abril de 2020 e, desde então, vem passando por uma série de bug fixes e refinamentos até chegarmos à nossa primeira versão.
A principal novidade que o Charles trouxe para comunidade foi o conceito de deploy em círculos, no qual você pode realizar deploys de sua aplicação a partir de segmentações de acordo com diferentes critérios.
Além de melhorias no processo de deploys, o nosso objetivo com a versão 1.0 do produto foi o de melhorar a rastreabilidade do que acontece dentro do Charles, como por exemplo, status das aplicações e de seus deploys; métricas de cada deployment, entre outros.
Agora o Charles possui todas as funcionalidades necessárias para a integração dentro de uma pipeline de desenvolvimento.
Veja as principais atualizações da nova release abaixo:
Novas features
Criamos novas funcionalidades para potencializar o Charles, tornando a sua usabilidade mais intuitiva e seus recursos mais completos para você fazer seus deploys e obter insights dos círculos ativos na sua aplicação.
1- Acompanhe o histórico de deploy dos seus círculos
Esse recurso permite que você visualize todo o histórico de deploys que foram feitos dentro de um círculo. Com isso, é possível obter informações como, por exemplo:
- Status do deploy;
- Data em que o deploy foi realizado;
- Release em que foi feito o deploy;
- Autor do deploy.
2- Veja os detalhes do log das implantações que aconteceram nos seus círculos
Essa visibilidade permite que você acompanhe o log da implantação de cada deploy listado no seu histórico. Veja abaixo um exemplo:
3- Webhook: dispare triggers e envie notificações em tempo real sobre o status de seus círculos
Criamos mais um recurso de acompanhamento para seus círculos: o webhooks. Ao cadastrar um webhook ao seu projeto, você tem a possibilidade de receber notificações de eventos de deploy e de undeploy para cada workspace que você tiver dentro do Charles CD.
Quando algum evento de deploy ou undeploy ocorre em um workspace configurado, o webhook é acionado e envia informações no início e na finalização do deploy/undeploy, tanto em casos de sucesso, como de erro.
Veja a imagem:
4 – Além deploy em círculo, faça rollouts através de porcentagens
No Charles CD 1.0 é possível definir círculos através de valores percentuais. Essa funcionalidade possibilita que, além da segmentação de regras/características/chave-valor, o Charles faça segmentação por porcentagem.
Isso significa que se você, por exemplo, tiver um círculo com porcentagem definida de 50%, a cada 100 requisições, aproximadamente 50 serão direcionadas para o círculo pré-definido.
5 – Facilidade para incrementar o Charles ao seu CI: autenticação por token sistêmico
Um dos maiores objetivos nesta release 1.0 foi facilitar a integração do Charles a diversos pipelines de forma segura. Pensando nisso, adicionamos o recurso de token sistêmico para que você possa fazer as chamadas internas de APIs do Charles com mais segurança.
Você pode criar esses tokens com níveis de escopo por workspaces e também definindo quais ações (chamadas) ele está habilitado a realizar.
.
Resumo das Melhorias no Charles CD 1.0
O Charles também passou por melhorias, veja quais foram as principais atualizações:
Butler 2.0: o Charles CD agora utiliza o padrão Operator para garantir mais consistência e confiabilidade nos deploys
A partir de agora, o Charles monitora o estado do cluster e consegue fazer alterações e corrigir inconsistências, garantindo que qualquer alteração seja refletida na configuração dos seus círculos.
Para essa tarefa, ele utiliza o padrão Operator que realiza os ciclos de reconciliação, o que permite que o cluster sempre esteja no estado que você precisa. Veja mais sobre isso na documentação.
Charles agora também se integra com versões mais recentes do Istio
O Charles CD utilizava o Istio até a versão 1.4.10 e nessa nova versão do projeto passamos a dar suporte para a versão 1.7 também.
Obs: O Charles suporta todas as versões do Istio, a importância da versão 1.7 é você conseguir utilizar o recurso de métricas adequadamente.
Migrando da versão 0.7.1 para a versão 1.0.0
O Charles CD 1.0 trouxe muitas novidades, melhorias e mudanças. Por isso, se você já utiliza o Charles e quiser atualizar para a nova versão, você precisa seguir nosso passo a passo de migração.
Mas, por que?
Devido a adição do Operator, agora você pode ter mais confiabilidade nos deployments, porém o Helm tem dificuldade de adicionar elementos necessários ao Operator em instalações já existentes, como o Custom Resources Definition (CRDs).
Por isso, criamos um passo a passo para facilitar a sua atualização, veja mais na seção da documentação.
Conclusão
Na Zup, os projetos Open Source vão ao encontro do nosso propósito de transformar o Brasil em um polo global de tecnologia. Por isso, temos muito orgulho do Charles CD 1.0 e temos certeza que ele pode ajudar (e muito!) a sua operação!
Se você tiver alguma dúvida durante a atualização, utilize nosso fórum.
Essas foram as mudanças com a chegada do Charles CD 1.0. Conta para a gente nos comentários o que você achou!