Buscar

DevOps: Integração e Automação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 22 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Devops 
 
O que é ? 
O termo DevOps deriva da junção das palavras "desenvolvimento" (​dev​elopment​) 
e "operações" (​op​erations​). 
Devops é um termo criado para descrever um conjunto de práticas para 
integração entre as equipes de desenvolvimento de softwares, operações (infraestrutura 
ou sysadmin) e de apoio envolvidas (como controle de qualidade) e a adoção de 
processos automatizados para produção rápida e segura de aplicações e serviços. O 
conceito propõe novos pensamentos sobre o trabalho para a valorização da diversidade 
de atividades e profissionais envolvidos e atitudes colaborativas. É um processo que 
torna possível o desenvolvimento ágil de aplicações em um modelo de gestão de 
infraestrutura definido sob regras rígidas e burocráticas. 
 
Etapas: 
● plan (planejar); 
● code (codificar); 
● build (construir); 
● test (testar); 
● release (entrega); 
● deploy (implantação); 
● operate (operar); 
● monitor (monitorar). 
 
 
Pilares: 
Comunicação 
Para criar um software melhor e fazer lançamentos melhores, as equipes 
precisam se comunicar constantemente entre si, desde a fase de 
planejamento até a liberação. Dessa forma é possível resolver impedimentos e 
melhorar a qualidade do processo de liberação. A equipe precisa estar unida e 
alinhada a um mesmo objetivo. Os membros precisam conversar e aprender 
continuamente uns com os outros durante o processo. A comunicação é 
muitas vezes facilitada com o apoio de ferramentas como Slack, Trello etc. 
Colaboração 
A colaboração é fundamental para uma verdadeira abordagem de DevOps. 
Isso precisa ser buscado sempre da melhor maneira, permitindo que haja 
cooperação entre as equipes de desenvolvedores e operacionais. Assim, é 
possível alcançar um processo simplificado que facilita a integração entre 
eles. 
O melhor entendimento da infraestrutura ajuda a preparar as pessoas para 
eventuais mudanças necessárias. Ao preparar e compreender esse processo, 
é possível aprender continuamente e aumentar as taxas de sucesso dos 
próximos lançamentos. Normalmente, as equipes de DevOps bem-sucedidas 
trabalham de maneira eficaz utilizando plataformas de colaboração para 
suporte como o Yammer, o SharePoint, dentre outras. 
Automação 
A automação é o coração de todo o processo de transformação de DevOps 
bem-sucedido. Ela é o principal facilitador dentro desse movimento. É preciso 
consolidar ambientes estáveis, desenvolvendo processos consistentes de 
criação, testes e lançamentos com êxito. 
A automação pode ser usada para tornar o processo de lançamento mais 
determinístico e para preencher as lacunas entre concepção e produção. As 
equipes de desenvolvimento podem aprender com as operações. Juntos, são 
responsáveis por definir o estado desejado da infraestrutura e convertê-lo em 
código. Ferramentas como PowerShell DSC, Chef e Puppet podem ser usadas 
para automatizar quase tudo que a equipe precise. 
Monitoramento 
O monitoramento nas equipes de DevOps é necessário para fornecer 
informações cruciais, visando garantir o cumprimento de prazos do serviço e 
também que o desempenho esteja dentro do ideal planejado. É importante 
medir o progresso da abordagem para saber se as equipes estão melhorando 
ou progredindo. 
Com o suporte de dados e métricas adequadas para compreender o 
funcionamento no dia a dia, é fácil para as equipes inspecionar a maneira atual 
de trabalhar e apresentar ideias ou processos para melhorar o sucesso dos 
lançamentos, que é o que realmente interessa dentro do movimento. 
A medição dos recursos e processos atuais ajuda as equipes a determinar as 
áreas problemáticas e definir pontos de atenção que precisam ter recursos 
dedicados para fazer as alterações de rota. 
 
 
 
 
Benefícios: 
Integração entre áreas 
Não é repetitivo abordar essa questão. Mesmo porque o DevOps não só une 
times de áreas específicas da TI como também promove uma ruptura nas 
barreiras existentes com o negócio, com os gestores de processos e com os 
“donos” de produtos e de serviços. 
Assim, além de promover uma atuação sinérgica entre quem desenvolve e 
quem coloca uma solução na rua, o DevOps permite uma maior comunicação 
com o demandante de funcionalidades para otimizar os negócios, já que a 
visão passa a ser fim a fim e o propósito de entregar real valor ao cliente 
prepondera. 
Simplificação de processos 
Esse modo de trabalho prega algumas premissas que permitem tornar fluxos 
de trabalho menos onerosos e burocráticos. 
Uma delas é o reuso de módulos de software, a flexibilidade nos projetos para 
que se adaptem às mudanças e a redução de esforços de entrega. 
Automação de tarefas 
Na cultura DevOps, os ​deploys​ manuais e outras atribuições dos times de TI 
passam a ser substituídos por rotinas automatizadas. 
Com isso, equipes antes alocadas nas etapas para subir novas 
funcionalidades ou softwares inteiros passam a se dedicar ao aprendizado, à 
documentação, ao entendimento dos erros recorrentes e à proposição de 
melhoria contínua. 
Racionalização de processos 
Se há simplificação e automação, não há como não ocorrer uma ​revisão dos 
processos da TI​ de modo a torná-los mais racionais, eficientes e econômicos. 
Um exemplo clássico é a redução do tempo dos ciclos de entregas, dotando 
os pequenos pacotes de desenvolvimento de um valor antes não reconhecido. 
A internalização do novo modelo obriga as empresas a adequarem os seus 
padrões e a redirecionarem os seus esforços para criar um terreno favorável 
ao pleno funcionamento do paradigma DevOps. 
Modernização da TI da empresa 
É intrínseca ao DevOps a tendência da ​cloud computing​, já que plataformas, 
softwares e infraestruturas oferecidos por terceiros podem ser utilizados para 
viabilizar os objetivos do cliente. 
Assim, é possível atuar com ​nuvens híbridas​ que diminuem custos 
operacionais e melhoram a rotina da TI da empresa. Elas ainda agregam ao 
padrão interno tecnologias de ponta sem que a empresa precise investir em 
aquisição de equipamentos de última geração. 
https://gaea.com.br/veja-como-otimizar-os-processos-de-entrega-de-software/
https://gaea.com.br/veja-como-otimizar-os-processos-de-entrega-de-software/
https://gaea.com.br/a-gestao-em-ti-na-era-do-cloud-computing-voce-esta-preparado/
https://gaea.com.br/cloud-hibrida/
Estímulo à colaboração 
A nuvem trouxe uma nova cultura para as organizações, na qual pessoas 
passam a ter acesso facilitado à informação e, com isso, afirmam-se em 
relação à sua atuação e à sua capacidade de contribuir com sugestões e 
melhorias. 
No DevOps, essa questão é potencializada ao estimular a integração entre 
áreas e o entendimento da solução que está sendo desenvolvida por todos os 
envolvidos. Com isso, problemas podem ser identificados com mais facilidade 
e a resposta para ele, também. 
Empoderamento dos times de TI 
A atuação em DevOps pressupõe o envolvimento de parceiros estratégicos 
provedores de soluções em nuvem. E eles só se firmam no mercado quando 
oferecem bons níveis de qualidade, escalabilidade, capacidade e 
disponibilidade. 
Gerenciar toda essa esteira é algo complexo e, ao tomar contato com esse tipo 
de realidade, as equipes envolvidas na TI da empresa aprendem, reciclam os 
seus ​conhecimentos​ e tomam contato com as tendências do mercado. 
Elasticidade e escalabilidade 
Os fornecedores de recursos em nuvem oferecem infraestrutura e inteligência 
que entendem os movimentos do negócio e se adaptam a ele. 
Isso significa que, ao adotar DevOps, parceiros capazes de expandir ou de 
retrair recursos entrarão em jogo e permitirão que a empresa contratante 
pague apenas pelo que usa e tenha, sempre à disposição, componentes na 
medida da sua necessidade. 
 
 
 
 
 
Fatores que conduzem a adoção do Devops: 
● Uso de processos e metodologias de desenvolvimento ágil 
● Ampla disponibilidade de infraestrutura 
https://gaea.com.br/como-fazer-gestao-de-conhecimento/
● Uso Crescente de automação de data center e ferramentas de gerenciamento 
de configuração 
. 
 
Filosofiacultural: 
Em uma Empresa no Devops não se tem duas equipes separadas, com o devops 
as duas equipes trabalham juntas com objetivo de otimizar a produtividade do 
desenvolvimento e a confiabilidade das operações, mas para que isso ocorra é 
necessário uma mudança de cultura e mentalidade pois tradicionalmente as equipes 
trabalham separadas em ciclos causando lentidão, conflito de comunicação entre 
outras obstruções, esta barreira entre as equipes e removida com o devops, com o 
devops a equipe não está responsável por parte daquele serviço e sim com todo o 
serviço. 
 
Com uma cultura nova a empresa fica mais unida, quebrando os obstáculos que 
impediam a colaboratividade da equipe. 
 
Como adotar a DevOps? 
A DevOps representa uma verdadeira cultura empresarial. Ela não apenas otimiza 
os processos de desenvolvimento, mas muda a forma dos colaboradores de pensar 
no seu produto e interagir entre si e com os clientes. 
Para adotar essa metodologia, é preciso preparar o terreno e implementar certas 
práticas. Comece estabelecendo as metas específicas que busca alcançar para, 
então, encontrar as ferramentas que farão sua equipe chegar lá. 
Isso envolve algumas mudanças estratégicas, como proporcionar aos 
desenvolvedores maior capacidade de monitoramento dos processos (produção, 
preparo e teste). Dê ​autonomia​ para que as equipes possam visualizar e avaliar o 
próprio desempenho, evitando grandes silos de informações. 
Além disso, torne o desempenho um requisito fundamental do time — afinal, entrega 
rápida exige qualidade na execução e retrabalho perto de zero. Por fim, estabeleça 
métricas compartilhadas e garanta que o foco da equipe esteja na ​experiência do 
usuário​. 
https://www.cronapp.io/5-formas-de-desenvolver-times-auto-organizaveis-em-sua-empresa/
https://www.cronapp.io/experiencia-do-usuario-ux-entenda-como-torna-la-ainda-melhor/
https://www.cronapp.io/experiencia-do-usuario-ux-entenda-como-torna-la-ainda-melhor/
Essas são mudanças essenciais para a implementação da DevOps. Entretanto, não 
se esqueça de que isso depende da adoção de soluções específicas para viabilizar 
a gestão e o desenvolvimento. 
 
 
 
 
 
Mitos: 
DevOps é exclusivista 
Profissionais de TI acostumados a ​frameworks​ bastante consolidados no mercado, 
como ​ITIL e Cobit​, consideram que não há como conjugar esses métodos 
tradicionais com o DevOps. 
O 1º argumento para derrubar essa ideia é a origem do DevOps. Já dissemos que 
ele está inserido no contexto da TI bimodal, que alia as convenções já estabelecidas 
com inovações. E isso, por si só, contraria a noção de exclusividade de um método 
oriundo desse tipo de filosofia. 
Nas organizações onde já há DevOps implementado, é comum a convivência 
pacífica com outros modelos. O importante é saber quais processos migram para o 
novo método e quais permanecem no antigo. Além disso, resolver como esses 2 
polos se comunicarão é o “pulo do gato” para uma gestão eficiente dessa 
bimodalidade em TI. 
Sem Cloud não há DevOps 
Não há dúvidas sobre a importância da nuvem na cultura DevOps. E isso faz alguns 
profissionais entenderem que um não existe sem o outro. 
Mas na realidade não é bem assim. É perfeitamente cabível a instituição de 
modelos DevOps em empresas que optam por manter toda a sua infraestrutura 
internalizada e que preferem desenvolver internamente as suas soluções, de ponta 
a ponta. 
https://gaea.com.br/entenda-o-que-e-framework/
https://gaea.com.br/itil-ou-cobit-ainda-ha-duvida/
O foco, nesse caso, é mais sobre cultura do que sobre localização. O importante é 
que as áreas se integrem para executar da forma mais positiva possível as suas 
atribuições. 
Não há exigência de participação de terceiros nem de alocação de recursos 
externos — embora seja cada vez mais comum e uma forma reconhecidamente 
produtiva de implementar DevOps, já que há mais mobilidade, colaboração e 
escalabilidade. 
Sem um engenheiro de DevOps, o modelo não anda 
Já que DevOps é uma cultura, mais vale disseminar conceitos, conscientizar 
colaboradores e compartilhar conhecimentos do que contratar um agente 
especializado externo para suprir as necessidades de um modelo mais dinâmico, 
rápido e eficiente. 
Trazer o DevOps para dentro da cultura da empresa é preciso, e por isso é 
importante capacitar os times de TI para atuarem dentro desse padrão. 
Isso não significa que seja desaconselhável contratar uma ​consultoria 
especializada. Ela pode ser de grande valia na recomendação de ​ferramentas​, no 
ajuste de processos e na estrutura organizacional mais adequados ao pleno 
funcionamento do novo parâmetro. 
Já se nasce DevOps 
A ideia de que uma empresa tradicional na sua atuação de TI não pode migrar para 
o DevOps ainda existe e precisa ser derrubada. 
Uma área de TI não precisa nascer DevOps para alcançar um bom desempenho 
nesse estilo de atuação. É possível absorver alguns aspectos dessa cultura e 
modificar a situação atual do desenvolvimento e da operação de soluções na 
empresa. 
O mundo gira e o mercado exige adaptação a novas realidades. Então, não há 
como sustentar a noção de que algo seja imutável em uma empresa, tampouco que 
uma TI não possa ser modernizada por já ter se firmado em um alicerce mais 
tradicional. 
DevOps elimina a possibilidade de ​outsourcing 
A afirmação de que DevOps integra equipes às vezes é interpretada com o sentido 
de que o DevOps fecha as possibilidades para que equipes externas entrem no 
jogo. E isso não é verdade. 
https://gaea.com.br/consultoria-de-ti-tire-aqui-todas-as-suas-duvidas/
https://gaea.com.br/e-book-gratuito-guia-das-ferramentas-devops/
Até pela influência da cloud nessa dinâmica, o DevOps é bastante alinhado com 
outsourcing​, de forma que terceiros podem se responsabilizar por entregas, se essa 
for uma direção de interesse na gestão da TI da empresa. 
É sabido que ​outsourcing em TI​ traz, para dentro da empresa, uma visão e uma 
competência especializada. Por isso, a terceirização conjugada com DevOps é 
possível e até desejável, desde que haja compatibilidade e colaboração entre lado 
interno e lado externo. 
 
Ferramentas: 
Plan 
São as principais ferramentas dessa fase: 
● Trello: ferramenta prática, flexível e ajustável para​ gerenciamento ágil de 
projetos​; 
● Jira: criação de tarefas de projetos, com um gerenciamento abrangente; 
● Asana: auxilia no gerenciamento de tarefas em equipe, com foco em gestão 
de projetos. 
Code 
São as principais ferramentas dessa fase: 
● Subversion: focado na área de TI, realiza o controle de versionamento e 
revisão do código fonte; 
● GIT: sistema que facilita a colaboração de criação e manutenção de código 
fonte. 
Build 
São as principais ferramentas desta fase: 
● Maven: permite a automatização de compilação de ​código fonte​, podendo ser 
usada em várias linguagens; 
● DBMaestro: automatiza as entradas de versões de banco de dados com 
maior confiança, já que as atualizações são confirmadas e auditadas pela 
ferramenta. 
Test 
https://gaea.com.br/outsourcing-leitura-obrigatoria-para-entender-os-principais-mitos/
https://gaea.com.br/guia-sobre-gerenciamento-agil-de-projetos/
https://gaea.com.br/guia-sobre-gerenciamento-agil-de-projetos/
https://gaea.com.br/descomplicando-saiba-como-funciona-a-entrega-de-um-codigo-fonte/
São as principais ferramentas desta fase: 
● JUnit: ferramenta facilitadora de testes, com apresentação de resultado, feita 
para programação Java; 
● NUnit: ferramenta de construção de testes de forma automatizada, com 
atuação na plataforma Microsoft.NET. 
Release 
São as principais ferramentas desta fase: 
● DockerHub: gerencia versionamento de artefatos do Docker; 
● Nexus: proporciona um repositório de versionamento para qualquer artefato 
criado ou utilizado em um projeto específico; 
● Python Package Index: repositório de artefatos da linguagem Python. 
Deploy 
São as principais ferramentas dessa fase: 
● Puppet: responsável pelo gerenciamento de configurações, garantindo quesejam feitas igualmente em todas as máquinas do ambiente; 
● Chef: realiza o processo de instalação e configuração de ferramentas 
necessárias para o uso do ambiente. 
Operate 
São as principais ferramentas dessa fase: 
● Amazon AWS: disponibiliza servidores virtuais para execução das aplicações; 
● Azure: similar ao Amazon AWS, porém, fornecido pela Microsoft, oferecendo 
algumas soluções próprias. 
Monitor 
● Splunk: ferramenta analítica de logs; 
● Zabbix: monitora Sistemas Operacionais, Switches e Storages, com agilidade 
e praticidade; 
● Appydynamics: realiza o monitoramento de máquinas virtuais que operem na 
linguagem Java. 
 
Quem usa ? 
Grandes empresas que utilizam o DevOps 
Como já sabemos, o DevOps foi desenvolvido para melhorar as formas 
estratégicas, o trabalho em equipe e a otimização dos serviços. Isto posto, temos 
aqui, exemplos de ​grandes empresas que utilizam o DevOps. 
Walmart 
Uma das redes de supermercados mais conhecidas no Brasil e no mundo já adota a 
cultura do DevOps. Suas estratégias visam estratégias para eliminar a concorrência. 
Adotando o software Opens Stack, formulando a nuvem privada da empresa, o 
Walmart cria aplicativos com uma escrita lógica contando com um código aberto e 
compartilhando infraestruturas que são capazes de diminuir o tempo para o 
desenvolvimento de muitos serviços dentro da empresa. 
Adobe 
A Adobe já tem a cultura adotada desde o ano de 2012 e seu intuito é integrar e 
automatizar de forma muito mais rápida. Os produtos de softwares empacotados 
são entregues aos seus clientes de forma mais rápida. 
Para isso, seus colaboradores estão mais livres manusear os programas uma vez 
que, trabalham CloudMunch, uma nuvem integradora. 
Facebook 
A Fidelity , empresa responsável pelo Facebook, possui muitos negócios que 
desenvolvem aplicativos. 
Neste sentido, os processos de lançamento acabam por serem mais demorados, 
então, a empresa optou pela cultura DevOps que hoje, ela possui uma equipe 
perfeita. 
Nos lançamentos de aplicativos, não existem falhas ou atrasos. Isso quer dizer, que 
a empresa deixa de perder mais de 2 milhões de dólares em processos de 
aplicativos que não fossem devidamente automatizados. 
Target 
Com o desenvolvimento do DevOpsDays, a empresa conseguiu ter mais economia 
em suas compras. Tudo isso porque esta metodologia visa contar às equipes o 
trabalho que está sendo desenvolvido de modo que todos possam opinar. 
A ideia da implantação da cultura do DevOps partiu de uma equipe de 
desenvolvimento de software. 
Netflix 
A empresa que desenvolveu a plataforma mais adorada de todos os tempos, 
sempre adotou a cultura do DevOps para desenvolver seus trabalhos. 
Neste sentido, para atender seus milhares de usuários, a empresa aposta em 
código aberto de automação. Este tipo de implementação permite que os 
engenheiros de sistema façam o seu trabalho de forma mais ágil durante o dia. 
Sony 
A grande e conhecida empresa Sony também adotou a cultura do DevOps e hoje 
fornece sistemas de gerenciamento que visam vários recursos de entretenimento 
aos seus usuários finais. 
Desta maneira, é possível processos mais eficazes que permitem qualidade e 
otimização na hora da entrega. 
 
Nordstrom 
A empresa que lida com lançamentos de serviços compartilhados, implementou em 
seu sistema uma forma de DevOps que visa a otimização da atualização nos 
aplicativos. 
Ela também resolveu adotar a cultura em todas as suas equipes de 
desenvolvimento e evita problemas com atrasos e falhas pertinentes a uma antiga 
sistematização. 
Amazon 
A Amazon ao adotar a cultura do DevOps fez com seus colaboradores parassem de 
desperdiçar 40 % de seu tempo em serviços manuais entre outros. 
A empresa transferiu seus arquivos para a nuvem, e dessa maneira pode reduzir 
custos, otimizar suas entregas e satisfazer seus clientes finais. 
Twiter 
O Twiter também adotou a cultura do DevOps. É certo que os serviços de 
atualização podem ser demorados, neste sentido, a empresa adotou a cultura com o 
objetivo de reduzir a taxa de falhas. 
Isso permite que o tempo da resposta seja fundamentado, além de otimizar as 
eventuais paradas que pode ocasionar no sistema. 
TIM 
A empresa brasileira de telecomunicação também ganhou muitos benefícios com a 
adoção da cultura do DevOps. 
Para isso, ela contou com a virtualização de serviços realizando testes e 
identificando possíveis bugs antes que eles pudessem entrar em produção. 
 
 
Exemplo: 
 
DevOps e suas vantagens O 
DevOps, que une o desenvolvimento e as operações, foi projetado para aumentar a 
frequência e a qualidade das liberações de código. Em uma configuração ideal, 
você deve ter um alto nível de confiança ao divulgar as liberações de código de 
maneira frequente e altamente automatizada. 
A alta automação gera economia de tempo e custo e maior eficiência no 
desenvolvimento. É provável que esses benefícios sejam vistos cada vez mais à 
medida que as equipes de aplicativos e desenvolvimento aumentam. Ter confiança 
em lançamentos de código rápidos e ágeis é essencial para promover uma equipe 
de desenvolvimento eficiente e móvel. 
Neste artigo: 
• Fornecerei um estudo de caso de DevOps na Netflix 
• Examinarei os benefícios de crescer com serviços baseados em nuvem, 
contêineres e criação de falhas 
• Optei por assistir a Netflix devido à escala em em que a empresa opera e por 
causa de sua forte reputação técnica. Eles foram, por exemplo, os primeiros a 
adotar microsserviços ​1 
• Termino com um breve resumo dos benefícios de construir um negócio que 
entenda e tire proveito de uma cultura positiva do DevOps 
Como alavancar os serviços em nuvem existentes 
 Desde 2007 , a Netflix lançou sua oferta de streaming on-line ​2​ desde 2007. Desde 
então, cresceu para uma posição em que em 2015 o serviço representava mais de 
36% do tráfego da Internet na América do Norte ​3 ​ em 2015. E em 2017, seus 
usuários transmitiram pouco mais de um bilhão de horas de conteúdo por semana. ​4 
Para ajudar a lidar com essa escala, a empresa começou a migrar para provedores 
de nuvem em 2008, um processo concluído em janeiro de 2016. 
“Nossa jornada para a nuvem na Netflix 
começou em agosto de 2008, quando 
experimentamos uma grande corrupção de 
banco de dados e por três dias não pudemos 
enviar DVDs para nossos membros. Foi quando 
percebemos que tínhamos que nos afastar de 
pontos únicos de falha na escala vertical, como 
bancos de dados relacionais em nosso 
datacenter, para sistemas distribuídos 
altamente confiáveis ​​e escaláveis 
​​horizontalmente na nuvem. ” 
Yury Izrailevsky, vice-presidente de computação em nuvem e engenharia de 
plataformas da Netflix. 
Você pode obter o dimensionamento horizontal adicionando mais máquinas ao seu 
pool de recursos, em vez de dimensionar verticalmente onde você aumenta o 
desempenho de suas máquinas existentes. A escala horizontal pode fornecer mais 
opções para escalar dinamicamente e reduzir os riscos de tempo de inatividade. 
Como uma empresa que precisa lidar com grandes quantidades de tráfego, a Netflix 
aponta para as vantagens de escalabilidade da nuvem como um dos principais 
fatores para sua decisão de migrar. Você pode criar todos esses recursos a partir do 
zero. Mas isso afastaria o foco da sua empresa das necessidades de negócios e, 
em direção aos inevitáveis ​​desafios técnicos, teria que ser dimensionado de forma 
eficaz e confiável. 
“Permitir que a Amazon se concentre na infraestrutura do datacenter permite que 
nossos engenheiros se concentrem na construção e melhoria de nossos negócios.” 
John Ciancutti, co-fundador, 60dB. 
A Netflix também aponta para um certo nível de incerteza em torno das tendências 
previstas no tráfego e na aceitação de novos recursos. ​7 A ​ alavancagem dos 
serviços em nuvem existentes, com planos de crescimento implementados, elimina 
as suposições do dimensionamento. Se uma empresaprevê que crescerá 50% nos 
próximos seis meses, desejará ter certeza de que sua infraestrutura pode lidar com 
esse aumento de tráfego. Picos curtos no tráfego, onde o tráfego aumenta por um 
breve período de tempo, mas depois retorna à sua taxa normal, também devem ser 
tratados. Com os serviços em nuvem, tudo isso é resolvido, o que significa que, 
como você está menos preocupado com a forma como dimensionará, pode se 
concentrar na criação de um ótimo produto. 
Construindo com contêineres A conteinerização 
é um método de abstrair um ambiente de tempo de execução de aplicativos para 
que você possa executá-lo consistentemente em diferentes plataformas. A 
conteinerização com o Docker se tornou cada vez mais popular nos últimos anos. 
Além de promover a consistência entre ambientes, uma das principais vantagens da 
conteinerização é que os contêineres podem ser destruídos e criados muito 
rapidamente. Isso ajuda com dimensionamento, confiabilidade e reversões 
eficientes. Em abril de 2017, a Netflix ultrapassou um milhão de contêineres 
lançados por semana. ​8 O ​ dimensionamento com serviços em nuvem e contêineres 
geralmente andam de mãos dadas e existem aplicativos como o Kubernetes que 
ajudam a automatizar esse processo. A Netflix desenvolveu sua própria ferramenta 
de gerenciamento de contêiner chamada Titus. 
“Titus: a base de infraestrutura da Netflix para aplicativos baseados em contêiner. O 
Titus fornece gerenciamento de recursos e cluster em escala da Netflix, além de 
execução de contêiner com profunda integração do Amazon EC2 e ativação comum 
da infraestrutura da Netflix. ” Andrew Spyker, Andrew Leung, Tim Bozarth, Blog de 
tecnologia da Netflix. 
A função de Titus é gerenciar contêineres. A Netflix decidiu criar seu próprio 
software de gerenciamento de contêineres por causa de seus próprios requisitos 
exclusivos. Eles também se viram em uma situação em que estavam migrando 
aplicativos de nuvem existentes para um ambiente em contêiner. Titus permite que 
aplicativos existentes sejam executados sem modificação em um contêiner. Ele 
também se integra à AWS, lida com o compartilhamento de recursos e gerencia a 
capacidade. ​9 ​ O aplicativo reduz assim os problemas de atrito e dimensionamento 
que surgem ao executar um aplicativo em um ambiente em contêiner. 
Construindo o fracasso 
Na véspera de Natal de 2012, a Netflix sofreu uma interrupção parcial do serviço 
que durou várias horas. A causa disso foi uma falha na AWS. ​10 ​Em 2014, 
estimou-se que uma hora de inatividade custaria à Netflix US $ 200.000. ​11 
Interrupções mais recentes da AWS viram sites importantes ficarem offline. No 
entanto, a plataforma da Netflix agora pode lidar com esses tipos de problemas. ​12 
13 ​Para ajudar a se preparar para esses cenários, o Netflix cria falhas. Isso significa 
aceitar que em algum momento algumas partes de seus aplicativos provavelmente 
não funcionem conforme o esperado. Com essa expectativa, você pode se preparar, 
da melhor maneira possível, para essas eventualidades. 
O 'Exército Simian da Netflix' faz parte dos esforços da empresa para construir o 
fracasso. Por exemplo, eles têm uma ferramenta que eles chamam de 'Macaco do 
Caos', que os ajuda a testar a estabilidade de seus aplicativos de produção. 
“Uma ferramenta que desativa aleatoriamente nossas instâncias de produção para 
garantir que possamos sobreviver a esse tipo comum de falha sem nenhum impacto 
no cliente. O nome vem da idéia de liberar um macaco selvagem com uma arma em 
seu data center (ou região da nuvem) para abater aleatoriamente instâncias e roçar 
cabos - enquanto continuamos a servir nossos clientes sem interrupção. ” Blog de 
tecnologia da Netflix. 
As equipes, trabalhando para projetar uma solução para proteger contra possíveis 
falhas, devem estar ainda mais motivadas a criar uma boa solução se souberem 
que esses problemas serão simulados em ambientes de produção reais. Ter 
controle sobre o tempo dessas simulações permite alocar recursos adequados. E, 
ao simular as falhas pelas quais a Netflix está construindo, a empresa pode 
aprender com essas experiências e se proteger melhor contra falhas não planejadas 
de natureza semelhante. 
Criando uma cultura de DevOps Observei 
algumas das práticas que a Netflix promove em sua cultura de DevOps, bem como, 
brevemente, algumas das ferramentas que eles desenvolveram como resultado 
disso. Em sua essência, uma cultura DevOps positiva deve promover lançamentos 
frequentes, alta automação e confiabilidade do software. Além disso, é aconselhável 
compartilhar um entendimento de alto nível de algumas das motivações e objetivos 
de uma grande cultura DevOps entre sua equipe de negócios maior. Isso promoverá 
a estabilidade e a capacidade de atualização de aplicativos e ajudará você a alinhar 
seus ambientes de desenvolvimento e operações com os objetivos maiores de seus 
negócios, à medida que se esforça para obter sucesso no mundo online. 
 
A ​Netflix​ realiza centenas de implantações por dia, sem o uso de ferramentas como 
Chef​ ou ​Puppet​, sem um departamento de garantia de qualidade e sem engenheiros 
de liberações. Para conseguir tal feito, a Netflix desenvolveu um PaaS próprio, 
permitindo que cada equipe realize implantações de suas partes da infraestrutura, 
sempre que quiserem e quantas vezes for necessário. Durante a ​QCon Nova York 
2013, Jeremy Edberg​ realizou uma palestra sobre a infraestrutura que a Netflix 
construiu para suportar esse ritmo acelerado de iterações, utilizando serviços de 
nuvem da Amazon. 
A Netflix usa uma arquitetura orientada a serviços para implementar sua API, que 
trata a maioria das requisições do site (cerca de 2 bilhões por dia). Nos bastidores, a 
API é dividida em muitos serviços, com cada serviço gerenciado por um time. Isso 
permite que os times trabalhem de forma relativamente autônoma e decidam por 
eles mesmos quando e com qual frequência querem implantar novas 
funcionalidades. 
A Netflix adota fortemente a cultura DevOps. Os desenvolvedores constroem, 
implantam e operam seus próprios clusters de servidores e têm responsabilidade 
sobre problemas ocorridos em seus setores. No caso de falha, uma reunião é 
organizada para investigar a causa raiz, onde são discutidas abordagens para 
prevenir questões similares no futuro, de modo similar à técnica dos ​cinco porquês​. 
Implantações (deployments) na Netflix são completamente automatizadas. Quando 
um serviço precisa ser implantado, o desenvolvedor primeiro adiciona as alterações 
a um repositório de código. O código é selecionado pelo ​Jenkins​, que 
posteriormente realiza a construção de um novo pacote da aplicação. Após isso, 
uma nova imagem da VM (AMI) é criada a partir de uma imagem base, contendo 
http://www.netflix.com/
http://www.opscode.com/chef/
https://puppetlabs.com/
https://qconnewyork.com/user/310
https://qconnewyork.com/user/310
http://en.wikipedia.org/wiki/5_Whys
http://jenkins-ci.org/
uma distribuição Linux, além do software que todos os servidores da Netflix 
executam, incluindo uma JVM e um Tomcat, possivelmente com customizações 
adicionais feitas pela equipe. Em cima dessa estrutura, o pacote da aplicação é 
instalado. A partir desse conjunto, uma AMI é produzida e registrada com o sistema. 
Para implantar as imagens das VMs na infraestrutura da empresa, a ​Netflix 
construiu o Asgard​. Através da interface web do Asgard, as imagens das VMs 
podem ser instanciadas para criar novos clusters EC2. Todo cluster consiste de pelo 
menos três instâncias EC2 para garantir redundância, espalhadas por múltiplas 
zonas de disponibilidade​. Ao implantar nova versão, o cluster executando a versão 
anterior é mantido em funcionamento, enquanto a nova é instanciada. 
Assim que a nova versão inicializa e se registra utilizando o registro de serviço da 
Netflix, chamado ​Eureka​, o balanceadorde carga direciona todo o tráfego para o 
novo cluster. O novo cluster é monitorado cuidadosamente e mantido em 
funcionamento durante a noite. Se tudo ocorrer bem, o cluster antigo é destruído. Se 
algo der errado, o balanceador de carga é apontado de volta para a versão antiga do 
cluster. 
Falhas acontecem com frequência na infraestrutura da Netflix. O software, portanto, 
precisa ser capaz de lidar com falhas de hardware, falhas de conectividade na rede, 
e muitos outros tipos. Mesmo se a falha não ocorrer naturalmente, ela é provocada 
propositalmente utilizando o ​Simian Army​. O Simian Army consiste de um número 
de "macacos digitais" que introduzem falhas de forma randômica. Por exemplo, o 
Chaos Monkey​ derruba aleatoriamente servidores enquanto o Latency Monkey 
introduz aleatoriamente latência na rede. Assegurar que as falhas ocorram 
https://github.com/Netflix/asgard
https://github.com/Netflix/asgard
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html
https://github.com/Netflix/eureka
https://github.com/Netflix/SimianArmy
http://www.infoq.com/br/news/2012/08/netflix-chaos-monkey
constantemente torna impossível para o time ignorar problemas e cria uma cultura 
onde uma das prioridades principais é a resiliência a falhas. 
Muitas partes da infraestrutura da Netflix já são open source e estão ​disponíveis no 
Github​. É objetivo da Netflix, no fim, ter toda sua infraestrutura liberada para que 
outras companhias se beneficiem dela. 
 
 
 
http://netflix.github.io/
http://netflix.github.io/

Continue navegando