35 - Deploy Provisionamento e Sincronização de Ambientes » Histórico » Versão 1
Redmine Admin, 11/05/2019 22:38
1 | 1 | Redmine Admin | h1. 3.5 - Deploy, Provisionamento e Sincronização de Ambientes |
---|---|---|---|
2 | |||
3 | No contexto atual do Ministério da Economia, as rotinas de atualização dos ambientes são disponibilizadas e mantidas no ambiente de integração contínua (Jenkins) e atualmente possuem o comportamento *parcialmente* automatizado. |
||
4 | |||
5 | Parcialmente pois ainda é necessário executar a pré-criação e pré-configuração da Infraestrutura, efetuando a criação de máquinas virtuais para servirem de "hospedeiras" para as aplicações. |
||
6 | Este provisionamento de máquinas virtuais passou por uma evolução, sendo que no início, as máquinas virtuais eram criadas por Projeto. |
||
7 | |||
8 | Após certo tempo de experiência constatamos alguns pontos de falha: |
||
9 | |||
10 | * A grande quantidade de projetos tornava de difícil controle e manutenção os recursos de infraestrutura; |
||
11 | * Muitos dos recursos provisionados, passavam por constante período de subutilização assim como muitos recursos eram provisionados de forma exagerada; |
||
12 | * O tempo de criação dessa infraestrutura para hospedar as aplicações tomava um bom tempo e era recorrente os atrasos na implantação das primeiras versões das aplicações por conta disso; |
||
13 | |||
14 | No contexto atual o provisionamento é feito por área do ministério (secretarias e alguns casos por departamento, a depender do tamanho das demandas destas áreas de negócio); |
||
15 | Desta forma se tem um melhor aproveitamento dos recursos ao efetuar o deploy de diversas aplicações diferentes de uma mesma secretaria utilizando os mesmo recursos de infraestrutura; |
||
16 | |||
17 | Para viabilizar este tipo de provisionamento, deploy e sincronização, o Ministério do Planejamento faz uso de ferramentas importantes citadas abaixo: |
||
18 | |||
19 | h2. Rancher ( https://rancher.com/ ) |
||
20 | |||
21 | É uma ferramenta que nos auxilia no gerenciamento e orquestração dos recursos de infraestrutura utilizando as tecnologias Docker e Docker-Compose. |
||
22 | |||
23 | Por meio da instalação de um *agente* dentro de uma máquina virtual, a ferramenta se "apodera" daquele recurso e o deixa disponível para ser utilizado para efetuar o deploy de containers docker, provendo uma interface gráfica rica, além de recursos como api's rest que nos permitem automatizar boa parte da sincronização e deploy das aplicações. |
||
24 | |||
25 | Esta ferramenta é de suma importância para consolidar a [[32_-_Gestão_da_Configuração|3.2 - Gestão da Configuração]], pois através dela conseguimos ter certeza de quais versões de nossas aplicações estão realmente implantadas em nossos ambientes. |
||
26 | |||
27 | h2. Jenkins ( https://jenkins.io/ ) |
||
28 | |||
29 | É a ferramenta utilizada no Ministério da Economia para gerenciar e servir o [[31_-_Pipeline_de_Entrega|3.1 - Pipeline de Entrega]], assim como auxiliar na [[32_-_Gestão_da_Configuração|3.2 - Gestão da Configuração]], permitindo visualizar as versões que foram efetivamente criadas para as aplicações, permitindo rastrear por exemplo as datas de criação de versões de uma aplicação, visualizar as datas em que os ambientes foram atualizados, auxiliar no rollback de versões anteriores permitindo consultar as últimas entregas consistentes efetuadas, etc... |
||
30 | |||
31 | As rotinas automatizadas (Job's) criadas nesta ferramenta buscam sempre trazer por meio do uso de script's shell ou plugins as tarefas de atualização do Ambiente do Usuário, diminuindo ao máximo a necessidade de intervenção manual para o deploy das versões nos ambientes. |
||
32 | |||
33 | h2. Criação de DNS's, Balanceadores de Carga e Proxy's |
||
34 | |||
35 | Por meio do uso de endereços de dns tornamos possível efetuar o direcionamento de diversas aplicações para recursos de infraestrutura comuns, utilizamos constantemente estes recursos em conjunto para subir várias aplicações utilizando as tecnologias Docker, Docker-Compose e Rancher em um mesmo recurso de infraestrutura (máquinas virtuais). |
||
36 | |||
37 | Através do uso de Balanceadores de Carga/Proxy's (HAProxy, Nginx, Apache), efetuamos a distribuição de acesso aos recursos de rede (Portas TCP por exemplo) para os diversos containers docker presentes em uma mesma máquina virtual. |