#noops?? transcendendo o devops pelo caminho de tijolos (não muito) amarelos
TRANSCRIPT
Quem Somos?
Wagner Hitomi
• Primeiro programa aos 16
• Trabalha na Geofusion desde 2015
• Delivery Engineer
• Empreendedor quando da tempo
• Quase casando! o/
Evandro Silvestre
• Primeiro código aos 15 anos, agilista desde 2003
• Trabalha na Geofusion há 8 anos
• Responsável pela Engenharia e Infraestrutura
• Gamer nas horas vagas
• Futuro pai de primeira viagem :)
E a Geofusion?
“Somos uma empresa de Location Analytics, que facilita a tomada de decisões por meio de tecnologia e
dados de mercado”
Nossa Estrutura de Times
GP
UX
LT
Dev
QA
GP
UX
LT
Dev
QA
GP
UX
LT
Dev
QA
GP
UX
LT
Dev
QA
GP
LT
Dev
Vamos falar desse time!O Delivery Engineering Team
DevOps se Deriva do padrão The Three Ways
• Conceito apresentado em The Phoenix Project
• Fortemente baseado em:
○ Lean
○ Improvement Kata
○ Continuous Delivery
○ Teoria das Restrições
• Descreve o valor e a filosofia que guia processos e
práticas de DevOps
• Fluxo e feedback constante da esquerda para direita (Dev => Ops)
• Pequena quantidade de trabalho em intervalos curtos
• Entrega constante de valor para o cliente
• Só está pronto quanto está em produção
• Nunca passar problemas para frente
• Práticas necessárias:
○ Integração, Deploy e Entrega Contínua (Delivery Pipeline)
○ Devs e Ops em constante interação
The First Way
Dev Ops
The Second Way
Dev Ops
• Fluxo e feedback constante da direita para esquerda (Dev <= Ops)
• Permitir detecção de problemas rápido e aprender com eles
• Práticas necessárias:
○ Stop the Production Line (quando o build ou teste quebrar, tudo deve parar)
○ Bateria de testes automatizadas rápidas
○ O código sempre deve estar em estado “deployable”
○ Dor compartilhada entre Dev e Ops
○ Telemetria onde todos possam ver o que está acontecendo
nos ambientes
The Third Way
Dev Ops
• Criação de uma cultura que foca em dois pontos:
○ Experimentação e Aprendizado Contínuo
○ Repetição e prática são pré-requisitos para maestria
• Práticas necessárias:
○ Cultura de inovação e tolerante a erros
○ Alocar pelo menos 20% dos times em requisitos não funcionais
○ PDCA e Improvement Kata
○ Confiança!
Algumas fontes
• https://www.thoughtworks.com/pt/radar/techniques/separate-devops-team
• https://landing.google.com/sre/interview/ben-treynor.html
• https://continuousdelivery.com/2012/10/theres-no-such-thing-as-a-devops-team/
• https://www.rallydev.com/blog/engineering/you-don-t-need-devops-team-you-need-tools-team
Como fazemos?
Delivery Engineer Team
• Time multidisciplinar responsável por um conjunto de ferramentas de Entrega Contínua
• Nós pavimentamos o caminho para produção, permitindo os outros times seguirem por ele
• Orientamos e damos suporte aos times, mas não administramos ambientes e nem fazemos
deploy
Delivery Engineering Team
GP
UX
LT
Dev
QA
GP
UX
LT
Dev
QA
GP
UX
LT
Dev
QA
GP
UX
LT
Dev
QA
GP LT Dev
Participa dos outros times auxiliando e construindo junto
#noOps?
• Ainda estamos descobrindo o que é isso, ok!?
• O modelo de DevOps atual tem o Delivery Engineer Team como gargalo
• Nosso objetivo é Infraestrutura Self Service
○ Através de uma ferramenta de Entrega Contínua cada time pode escolher como
rodar seu código (quantas máquinas? tamanho?)
• Source-to-Container => Container Imutáveis gerados diretamente pelo processo de
build
• Telemetria, logs, load balance, etc => Centralizados e Não invasivos
Source-to-Container
mvn clean install docker:build docker:push
constrói o container
empurra o container
para o nosso registry
Como fazemos…
Nossas instâncias são construídas utilizando as tecnologias...
Serviço de Descoberta(Consul.io)
Serviço de Log Centralizado(Elasticsearch, Logstash, Kibana)
Containeres(Docker)
Gerenciamento de Configuração(Puppet)
Continuous Delivery Tool(GoCD)
Infrastructure As Code
class new_host{include firewallinclude usersinclude docker-hostinclude default_foldersinclude consul_stackinclude elk_stack
# mount_pointsgfn::mounttab{ "/earth" :
device => "/dev/vg-app/lv-app",owner => 'god',group => 'universe',checkDir => 'false',options => "defaults"
}}
“Fear is the path to the dark side.Fear leads to anger. Anger leads to hate.
Hate leads to suffering.” - Yoda