DevSecOpsARTIGO

Provisionamento orquestrado de serviços em cloud com Juju

Saber como um servidor web deve ser instanciado e configurado não é basta para resolver os desafios de infraestrutura de sua aplicação.

Escrever a receita de como um servidor web deve ser instanciado e configurado não é o que basta para resolver todos os desafios de infraestrutura para sua aplicação, pois isso é apenas uma parte dos problemas de gestão.

É preciso que o provisionamento de serviços e servidores seja feito de maneira orquestrada, pois os serviços devem se comunicar uns com os outros, e sabemos que cada serviço tem uma necessidade diferente para escalar, assim como também é necessário que sejam realizados backups, análises de performance, gestão de logs etc.

Existe agora uma solução que realiza implementação, integração e ampliação instantaneamente em todas as grandes nuvens públicas e privadas – ela se chama Juju, onde há os “charms”, que são responsáveis por oferecer uma interface padronizada que permite essa integração com outros serviços. Para compreender melhor a diferença, enquanto as ferramentas de provisionamento estão preocupadas em instalar e configurar, a Juju faz tudo isso, mas também se preocupa com a integração.

Para que tudo isso possa acontecer, é necessário criar o ambiente juju – existem versões para LinuxLinux34 conteúdosKali Linux em um Servidor VPS: como, quando e por que usar?DevSecOps · dez 2024Construindo um Windows Service ou Linux Daemon com Worker Service & .NET Core – Parte 2Dev (Back & Front) · jul 2020Criando uma WebApi utilizando .NET, Linux e VSCodeDev (Back & Front) · ago 2019Ver tudo em DevSecOps , Mac e Windows. Depois de instalado, é necessário que seja realizado a configuração inicial, para isso basta executar o comando:

$ juju generate-config

Feito isso, será criado o diretório ~/.juju com todos os arquivos e diretórios necessários para que você possa começar a explorar a ferramenta. Inicialmente, basta você editar o arquivo environments.yaml que está nesse diretório e configurar qual provedor de cloud você irá utilizar, e suas credenciais.

Precisamos preparar o ambiente no provedor de cloud para poder instalar o state-server do juju, que é responsável por gerenciar todos os serviços e recursos necessários para realizar a integração com segurança entre todos os pontos envolvidos e, para isso, basta executar o comando:

$ juju bootstrap
Com o state-server instalado, agora podemos começar a instalar e a integrar os serviços. Para que você possa usufruir do juju, é necessário que todos os serviços instalados estejam concebidos através de um “charm”. Já existem diversos prontos neste link. Caso não encontre você terá que montar um, o que também é muito simples, vide aqui.

Para este artigo, iremos utilizar o exemplo clássico utilizado na própria documentação do juju, que é o setup do WordPressWordPress9 conteúdosAndroid push notifications com Quasar Framework, Firebase e integração com WordPressDev (Back & Front) · mai 2019Simplificando a acessibilidade de documentos: introduzindo a integração do ONLYOFFICE DocSpace com WordPress e DrupalDev (Back & Front) · abr 2024Como criar seu site WordPress com um único prompt de IA em minutos?Dev (Back & Front) · mar 2025Ver tudo em Dev (Back & Front) . Vamos supor que para iniciar um deploy de um novo site, precisemos do aplicativo em si e de um banco de dadosBanco de dados134 conteúdosSQL ou NoSQL: eis a questão!!Data · mar 2020Banco de dados: como organizar e dar segurança para milhões de dados de loteriasData · mai 20215 serviços gratuitos na cloud para bancos de dados PostgresData · fev 2025Ver tudo em Data , no caso o MySQL. Para realizar a instalação destes dois serviços, basta:

$ juju deploy cs:precise/wordpress
$ juju deploy cs:precise/mysql

Até o momento, os serviços foram instalados, porém não estão integrados, precisamos avisar que eles irão trabalhar de maneira integrada, para isto:

$ juju add-relation wordpress mysql

topology-step-1

Pronto, estamos com um WordPress instalado e utilizando um serviço de MySQL pronto, e isso só é possível pois ambos estão preparados para trabalhar com o juju de maneira integrada, e para que tudo isso? Em um cenário que você queira escalar horizontalmente por algum motivo, basta adicionar mais unidade onde é necessário, por exemplo:

$ juju add-unit wordpress

topology-step-3

Ou seja, agora a topologia são duas máquinas sendo executadas com o WordPress e utilizando o mesmo banco de dados.

Além de integrar os serviços entre si, existem hooks que disponibilizam mecanismos para realizar a configuração dos serviços, como trocar o titulo do WordPress:

$ juju set wordpress title="My Blog"

Para gerenciar os serviço, você pode utilizar o comando:

$ juju status

Assim como para tornar a ferramenta pública para todos:

$ juju expose wordpress

Veja mais:

As imagens foram criadas pelo Gustavo Niemeyer.
Abs!

 

diretor executivo na EOKOE e também no AppCívico, iniciativa apoiada pelo Fundo Acelerador de Inovações Cívica da Fundación Avina e Omidyar Network, que tem o objetivo de promover o desenvolvimento de aplicativos cívicos na América Latina, através de apoio tecnológico e gestão de projetos para instituições que trabalham para melhorar a qualidade de vida dos cidadãos.

Ver perfil