DevOps: Saiba o que é e Como Funciona com a Accurate - Blog Accurate Blog Accurate

DevOps

DevOps: Saiba o que é e Como Funciona com a Accurate

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

No processo de Integração, além desse fator foi pensado no fator de Segurança do processo. 

Para isso foram feitos dois passos:

  1. 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;
  2. 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. 

E através do conceito de “dockerização” que torna-se possível ter controle de acesso, tornando mais seguro e restritivo o acesso direto a determinadas aplicações.

O passo 2 de orquestração foi definido um sistema que ficou responsável por automatizar a implantação, 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 containers 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: 

  1. Branchs não identificadas de forma clara;
  2. Commits múltiplos referente a várias issues; 
  3. Estimativas altas ou baixas;
  4. e 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

Bruno Gualda
Bruno Gualda
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.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *