Em nossa terceira sessão de TechXperience, Santiago MurciaChefe de Cloud&DevOpstomou as rédeas da apresentação e fez uma abordagem do conceito da metodologia DevOps e da Nuvem. Uma palestra cheia de conhecimento e experiência que hoje trazemos a você os pontos e aspectos mais interessantes.
Quem é Santiago Murcia?
Mas antes de começar a trabalhar, se você ainda você não conhece SantiagoGostaríamos de lhe dar uma breve introdução a ele. Santi é um físico convertido a um cientista da computação quase desde o início de sua carreira há muitos anos. Como experiência profissional, ele vem trabalhando há muitos anos e começou a se desenvolver. Seu primeiro projeto foi o desenvolvimento de uma interface em CajaDuero com uma linguagem que, certamente você não está familiarizado, foi chamada NSDK, uma língua francesa baseada em Visual Basic.
Depois ele passou cerca de dois anos vivendo na África, primeiro na Etiópia e depois na Líbia. O que ele fez foi o projeto e desenvolvimento de uma aplicação móvel para a coleta de dados de uma empresa de eletricidade, uma leitura de contador que hoje na Europa é automatizada, mas na África, hoje em dia, ainda é feita manualmente.
De lá, ele passou para Indizen, que agora é Nfq Solutions, onde esteve envolvido em um projeto como o redesenho e implementação da arquitetura AIRE. Ele continuou trabalhando nesta linha de ferramentas próprias da Solutions, mas dado que tinha mais projetos, mais ferramentas, mais clientes para atender... Com sua equipe, ele decidiu virar a área de Clouc&DevOps para começar a gerenciar todo o volume de máquinas na nuvem, que é de onde veio o germe desta área.
Agora em Bosonit, agora em nível de grupo, ele está tentando padronizar tudo isso um pouco mais e ser capaz de aproveitá-lo para todos os projetos que estão em Bosonit, que ele está ciente de que são muitos.
O que é DevOps?
É uma combinação dos termos "Desenvolver" e "Operações" na qual tentamos fazer uma confluência de ambas as equipes multidisciplinares para otimizar tarefas e tempos que acabam no campo da automação, mas não é apenas automação. No final, é uma filosofia de trabalho que visa a qualidade das soluções e a eficiência nestes processos de desenvolvimento.
Em que consiste? Trata-se de fazer com que uma aplicação funcione corretamente e de como vamos evoluir essa aplicação. Isto pode ser visto em três linhas muito claras:
- Os testes que precisam ser feitos em um código quando estamos desenvolvendo.
- Como vamos controlar estas versões que estamos tendo, os diferentes ramos que estamos gerando.
- Como vamos fazer a promoção entre os diferentes ambientes ao fazer o upload deste para um cliente.
Um outro ponto que poderia ser acrescentado é o monitoramento desses ambientes. Então, quando é que falamos sobre DevOps? Quando falamos em tentar gerenciar estes três campos em um departamento unificado.
Estas três linhas podem ser definidas como:
- As provasDefinimos os casos, identificamos as entradas, as saídas, executamo-las e comparamo-las.
- Controle de versão: seguir uma metodologia, hoje utilizamos GitFlow. Temos um ramo mestre que não é trabalhado, abrimos um ramo Develop para fazer as mudanças necessárias e outro ramo para cada funcionalidade que vai ser criada.
- Promoção de ambientes: o desenvolvedor trabalha em sua equipe e quando ele gera um compromisso, ele é carregado no repositório após passar por uma série de testes. De lá é carregado para um ambiente de teste onde o código é implantado e nós instalamos tudo o que é necessário. Desde a criação do banco de dados, até a colocação das tabelas estáticas... fazemos um teste integrado para verificar se o código carregado não quebra o resto dentro de uma tubulação que irá gerar alertas.
Se estes testes correrem bem, ele é carregado em um ambiente de pré-produção, onde é passado para o cliente para fazer seus testes com o usuário. Se correr mal, você volta para o passo inicial e continua o desenvolvimento. Se tudo correr bem, as mudanças são implantadas no ambiente de produção.
O que o DevOps tem a ver é que estas tarefas, estes testes, controle de versão e promoção entre ambientes são gerenciados por uma equipe e que eles têm um conjunto de tarefas que são tão automatizadas quanto possível para que não gerem muito mais trabalho.
Ferramentas DevOps
O que é a nuvem?
Hoje, todos nós estamos familiarizados com ela. Apesar disso, vamos dar uma olhada mais de perto no que é. A computação em nuvem é a disponibilidade de recursos computacionais, especialmente armazenamento e capacidade computacional, onde não temos que fazer nenhum gerenciamento. Isto é tratado pelo fornecedor. Ela depende de infra-estruturas com virtualização, um alto grau de automação e uma alta capacidade para atender a demandas variáveis.
Em outras palavras, esqueça de ter máquinas em seu CPD e tenha tudo baixado para o nuvem. Isto era mais complexo há alguns anos, especialmente por causa do tipo de clientes, por causa dos requisitos regulamentares que eles têm em termos de onde seus dados estão, onde deixar suas informações, etc.
Quer saber mais sobre o assunto? Aqui está a sessão completa.