Porque você já deveria estar usando Hashicorp Consul?

Hashicorp Consul

Os sistemas seguem aumentando sua complexidade natural e seu nível de abstração. Os profissionais de TI além de terem que saber dev e ops ao mesmo tempo (respeitando os seus focos de trabalho), precisam ter capacidade de lidar com uma grande gama de serviços de TI disponíveis em conjunto. É fundamental entender tais cenários e por que você já deveria estar usando o Hashicorp Consul.

Algumas empresas não toleram o risco de ter seus serviços em nuvem fora do ar, ainda que tenham uma grande distribuição multi-região e multi-zona: esses precisam ter seus sistemas funcionando em multi-cloud. Mas há outros que possuem aplicações cloud native, kubernetes, lambda function, aplicações onpremise, tudo ao mesmo tempo: É de enlouquecer.

No mercado há algumas soluções capazes de auxilitar na capacidade de gerenciamento de serviços, tais como Apache Zookeper, Eureka, entre outros. Esse artigo vai se ater a solução criada pela Hashicorp, empresa reconhecida por suas soluções especializadas nesse mundo cloudnative: o Hashcorp Consul.

O Hashcorp Consul

O Consul se destaca por se propor a ser o principal DNS que expõe os serviços da TI. Entenda que um sistema qualquer desenvolvido em ruby pode ser provido através do Consul, desse modo será possível ser beneficiado com suas possibilidades:

  • Garantir configuração em aplicações ainda que distribuídas
  • Verificar constantemente a saúde das aplicações
  • Todas as aplicações passam a ser vistas pela operação numa estrutura centralizada
  • Melhoria natural da observabilidade dos sistemas (ainda que não seja esse o propósito)
  • Aumento considerável da segurança das configurações das aplicações
  • Exposição de configurações por rotas API (HTTP)

Porque você já deveria estar usando Hashicorp Consul? A seguir vamos ver as top 5 habilidades do Consul que valem ser destacadas para o entendimento do seu propósito.

1 – Service Discovery

O Consul é um Service Discovery. Isto é um tipo especial de aplicação que acolhe as requisições de um dado serviço e as distribui para instâncias da aplicação final, provendo capacidade de redes através de serviços como DNS.

Em outras palavras: ele se torna o ponto central para acesso a sistemas através de um DNS que ele controla. Essa funcionalidade é muito relevante uma vez que é possível dar respostas em nível de DNS quando uma aplicação está fora do ar e não apenas em nível de aplicação (HTTP).

2 – Service Mesh

Imagine um ambiente complexo, com milhares de microserviços funcionando ao mesmo tempo em que há aplicações legadas, aplicações onpremise e cloudnative. Isso é mais comum do que deveria. O Consul é capaz de conviver num ambiente dessa complexidade enxergando os sistemas e provendo suas capacidades.

3 – Loadbalancing

Uma infraestrutura com sistemas que precisam de alta escala as vezes precisam duplicar suas aplicações em diferentes servidores. Essa distribuição gera um problema: qual endereço IP de aplicação deve ser fornecido para o usuário final? O Service Discovery passa a ser o IP de referência que, por sua vez, faz o trabalho por baixo dos panos de distribuir a demanda para o servidor correto.

Mas além disso, o Consul consegue ser útil em facilitar o deployment das aplicações, suportando:

Canary Deployment

  • 2 ambientes: um com um percentual das demandas e outro com outro percentual.
  • Exemplo: 20% na versão 10.3 contra 80% na versão 10.2
  • A medida que ganha-se confiança na versão nova ela vai ganhando percentuais maiores até chegar a 100%

A/B

  • 2 ambientes: um lançado para todos os usuários e outro apenas para um grupo limitado.
  • Pode utilizar percentuais mas não é esse o objetivo em si.
  • Ele testa características mais ligadas ao mercado do que ao software em si e é semelhante ao Canário.
  • Imagine um sistema que tenha 2 layouts possíveis. É comum fazerem testes A/B para identificar com quais dos 2 layouts os usuários têm maiores chances de comprar um produto/serviço.

Blue/Green

  • 2 ambientes, um com a versão n e outra com a versão n+1.
  • Quando tudo estiver ok, a versão n para de ser utilizada

4 – HealthCheck

Além disso, outra funcionalidade muito relevante do Consul é a de controle da saúde de um serviço. Imagine que esse serviço possa ser testado, constantemente, afim de perceber se ele está ok ou não. Com esse recurso tem-se certa observabilidade sobre os serviços. Potenciais falhas geram ações diretas através do DNS.

Uma prática comum do mercado nos dias de hoje é criar aplicações com uma rota chamada /healthz ou /livez que tem códigos que verificam a saúde da aplicação. A configuração do helthcheck do Consul precisa apenas chamar essa rota e esperar uma resposta HTTP 200. Esse é um dos porquês que você já deveria estar usando Hashicorp Consul.

5 – Keyvalue Store

Por último mas não menos importante: o keyvalue store. Basicamente trata-se de um banco de dados de chave-valor que oferece configurações de modo que os serviços possam consumir. Por exemplo, ao invés de se utilizar um arquivo XML ou JSON de configuração, é possível apontar para uma API que indica o endereço do banco de dados.

Conclusão: Porque você já deveria estar usando Hashicorp Consul?

O Hashcorp Consul é uma ferramenta muito importante para que a TI tenha efetivamente controle de seus sistemas: por um lado dá agilidade na estruturação das configurações, por outro torna mais eficiente a manutenção dos sistemas. O uso de ferramentas como essa é praticamente indispensável para infraestruturas de médio porte para cima.


Thiago Anselme
Thiago Anselme - Gerente de TI - Arquiteto de Soluções

Ele atua/atuou como Dev Full Stack C# .NET / Angular / Kubernetes e afins. Ele possui certificações Microsoft MCTS (6x), MCPD em Web, ITIL v3 e CKAD (Kubernetes) . Thiago é apaixonado por tecnologia, entusiasta de TI desde a infância bem como amante de aprendizado contínuo.

Deixe um comentário