DevOps é uma cultura que reúne uma série de práticas e ferramentas com objetivo de aumentar a capacidade de entregas das soluções.
Muito utilizado em empresas de desenvolvimento de software e gerenciamento de estruturas essa cultura tem se tornado cada dia mais comum.
Por isso é essencial investir na implementação da mesma e dessa forma garantir maiores e melhores resultados para as organizações.
Acompanhe esse conteúdo, saiba o que é o DevOps e também como a Accurate trabalha com esse processo.
Saiba o que é DevOps
A junção de Desenvolvimento (Dev) e Operações (Ops) resultou na ideia do que chamamos de DevOps.
Que basicamente une os processos de desenvolvimento e operações em um único processo, tudo isso em busca de agilidade.
Uma vez que equipes de ambientes que antes atuavam de forma isolada passam a trabalhar de maneira conjunta e integrada.
Entre estes podem se encontrar pessoas das áreas de desenvolvimento, operacional de TI, engenharia de segurança e da qualidade.
O trabalho conjunto acaba trazendo às mais diversas áreas uma maior agilidade e eficiência nos projetos.
Quando há a junção de equipes de segurança é comum que se ouça falar de DevSecOps.
De forma geral o objetivo de se utilizar a cultura, ferramentas e processos de DevOps é oferecer maior valor nas soluções que serão entregues.
Benefícios e Vantagens do DevOps
São diversos os benefícios sentidos na organização ou time que insere o DevOps no seu dia a dia.
A Agilidade tanto nos processos como na entrega das soluções é uma das grandes vantagens sentidas.
Se aliado a processos como o CI/CD o DevOps tem como benefício o ganho de segurança nos processos e também para com os clientes.
Isso por que é possível entregar melhorias de forma integrada e automatizada sem prejudicar a experiência do usuário.
Por fim, quando utilizada em todo o seu potencial e nas suas mais diversas ferramentas o DevOps fará a empresa dar um salto rumo a maior produtividade e eficiência.
Estruturando DevOps com a Accurate
Na Accurate a introdução do DevOps se deu para superar o desafio de definir ferramentas e processo de desenvolvimento customizados para os projetos.
E a partir disso, conseguir constituir procedimentos que sejam utilizados no processo de desenvolvimento para garantir o cumprimento de etapas e a qualidade do produto.
Para isso a estratégia adotada foi alinhar um processo/fluxo de implementação através do ferramental que auxiliará antes, durante e depois da entrega final.
Desenvolvimento do Projeto
O desenvolvimento aconteceu em quatro passos: planejamento (1), gerenciamento de versão (2), construção e gerenciamento de pacotes (3) e estilo de código (4).
No Passo 1 foram definidos dois meios de comunicação (Mattermost e Discord) e também o Planning Poker como método de estimar o esforço para desenvolvimento.
Já no Passo 2, definiu-se o Git e GitLab como formas de controle de versionamento e gerenciamento do projeto.
O GitLab foi colocado como forma de possibilitar a documentação de toda e qualquer informação através de Wikis.
Assim como o gerenciamento através de Issues e da construção de fluxos CI/CD.
Chegando ao passo 3 foi realizada a construção de gerenciamento de pacotes, através de Nexus, NPM, NuGet e JFrog.
Estes gerenciadores de pacotes foram criados para automatizar o processo de instalação e atualização das bibliotecas utilizadas no desenvolvimento.
Por fim o Passo 4, definiu as ferramentas Codacy e Sonarqube para analisar o código-fonte para sinalizar erros, bugs e implementações não aderentes às boas práticas da linguagem.
Integração e Operação
Na Integração, além desse fator foi pensada também a Segurança do processo.
Para isso foram feitos dois passos:
- Definição de uma camada de gerenciamento de APIs que possibilitaram o acesso ou não a determinados serviços através do Oracle Fusion Middleware e API Gateway;
- Utilizou-se a prática de containers também recomendada para isolar os acessos através do Docker.
Já para a Integração foi definido um servidor de automação responsável pela construção, teste e implantação da aplicação.
E a partir dessa construção realizar a condução de maneira clara, a integração e a entrega contínua através do Jenkins.
A operação por sua vez possuiu três frentes: (1) Deploy, (2) Orquestração e (3) Monitoramento.
No Deploy foi definida uma automação para virtualização de sistemas operacionais para realização do deploy de aplicação com a utilização de Docker.
É através do conceito de “dockerização” que se torna possível ter controle de acesso, deixando mais seguro e restritivo o acesso direto a determinadas aplicações.
No passo 2 de orquestração foi definido um sistema que ficou responsável por automatizar a implantação e dimensionamento de gestão de contêineres por meio dos Kubernetes.
Por fim, para o monitoramento foram definidas, por meio do Nagios, ferramentas para realizar o monitoramento de rede.
Assim como definir ferramentas para analisar métricas oriundas de banco de dados e outras ferramentas gerando gráficos para análise, por meio da Grafana e Datadog.
E como foi feito tudo isso?
Para realizar todo esse processo foi definida a infraestrutura para provisionamento do ferramental utilizando contêineres visando rápido provisionamento e ágil troca de host.
Foram definidas as metodologias de Trabalho como Daily e Review, e foram seguidos os passos a seguir para operacionalização:
- Padronização na criação de branchs nos repositórios Gitlab, de documentação no Wiki e na abertura de Issues;
- Criação de boards, milestones e labels para acompanhamento das sprints e de scripts para provisionamento de ambientes;
- Criação de pipelines para construção, testes e implantação das aplicações;
- Criação de times e canais nas ferramentas de comunicação e de repositórios nos gerenciadores de pacotes.
Problemas encontrados e Resultados Atingidos
Foram encontrados quatro problemas:
- Branchs não identificadas de forma clara;
- Commits múltiplos referente a várias issues;
- Estimativas altas ou baixas;
- Qualidade de código não aderente a implementação.
As soluções primeiro foi a padronização na criação de branchs e segundo o alinhamento para realização de commits parciais, conforme implementação.
Terceiro, por meio da aplicação do Plannin Poker foi possível chegar e um número mais condizentes, uma vez que há uma discussão de todo o time para determinada votação.
No quarto problema, por conta da necessidade específica de implementação, a ferramenta não conseguia analisar a implementação a ponto de identificar erro na estrutura.
Para a solução então foi implementado um plugin para que a análise seja capaz de atender e assim notificar caso não esteja aderente.
Ao fim do processo chegou aos seguintes resultados:
- Automatização nos testes e validação de código;
- Padronização nos scripts, o que possibilita sua reutilização;
- Integração contínua através da construção de pipelines;
- Automatização no provisionamento de ambientes através de contêineres;
- Visibilidade do projeto de ponta a ponta;
- Melhora na comunicação;
- Engajamento de todo time técnico e funcional nos processos.
Gestão de Projetos e de Processos com Eficiência é na Accurate
Na Accurate toda a gestão de projetos e processos é realizada de forma a garantir eficiência e melhores resultados.
Tudo isso é claro utilizando-se de processos, culturas e ideias modernas e organizadas como o DevOps.
Conheça todas as soluções acessando o site da Accurate assim como todas as dicas do Blog.
Não se esqueça também de seguir as Redes Sociais: Facebook, Instagram, Twitter, Linkedin e YouTube.
Autor
- Experiência de mais de 9 anos na área de gestão, desenvolvimento de tecnologia da informação e infraestrutura, atuando em pequenos, médios ou grandes projetos. Seja, gerenciando o projeto como também desenvolvendo sozinho ou integrando equipe de desenvolvimento, atuando desde o front-end como também back-end, assim como, liderança técnica, sem deixar de lado a visão macro e mercadologicamente do sistema ou processos envolvidos no desenvolvimento.
Artigos do mesmo autor
- Tecnologia18/04/2022O que é Middleware e Quais as Suas Vantagens?
- Tecnologia30/03/2022IoT, Internet das Coisas: Conheça sua Definição, Vantagens e Aplicações
- Tecnologia30/03/2022Chatbot: Saiba como Funciona esse Robô Interativo
- Tecnologia22/10/2020DevOps: Saiba o que é e Como Funciona com a Accurate