Charles CD 1.0: Uma nova forma de fazer deploys

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. 

Imagem com um exemplo de Fluxo de Deploy Tradicional: Iniciando no ambiente de development, depois passando para staging, em seguida para pré-produção e finalmente para produção.

Imagem com um exemplo de fluxo utilizando círculos: Primeiro um círculo com dois usuários, depois um círculo com quatro usuários e o último com 12 usuá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.
Imagem da nova Tela de Histórico no Charles CD 1.0 com a listagem dos deploys realizados no círculo. Em cada item contém informações do que o usuário fez, como quando realizou o deploy, release deployada, data, horário e status.

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: 

Imagem da nova tela de detalhamento do histórico com a lista dos logs de um deploy realizado. A visualização do log é feita em formato JSON.

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: 

Imagem da tela de Webhooks em modo de cadastro. Os campos são ‘Description’, ‘Url’ e ‘Secret’ (opcional). E os botões de opção ‘‘Send me everything’ ou ‘Let me select individual events’, o que permite  escolher Deploy e Undeploy.

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. 

Gif da tela mostrando como realizar o cadastro de um token sistêmico. O usuário escolhe os workspaces em que o token será válido e depois as permissões que ele terá.

                                        .

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. 

Imagem da arquitetura do Charles Operator. O Charles solicita o deployment ao Charles Operator, que busca os helm charts e aplica as alterações necessárias no cluster K8s.

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!

Capa do artigo sobre a versão Charles CD 1.0
Bárbara Rossalli
Backend Developer
Apaixonada por Java. Acredito que programar vai além de escrever linhas de código, é resolver problemas, entregar valor e mudar o mundo.

This website uses cookies to ensure you get the best experience on our website. Learn more