Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Compartilhando experiências sobre DevOps nas em...

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

Compartilhando experiências sobre DevOps nas empresas

DevOps é um termo derivado da junção das palavras "desenvolvimento" e "operações", designando um conjunto de práticas de engenharia de software para melhor integração das equipes de desenvolvedores com as equipes de operação (infraestrutura e administração de sistemas). Nesta palestra, os participantes poderão acompanhar experiências vivenciadas pelo palestrante ao longo de suas passagens por diversas empresas de renome, atuando com administração de sistemas e DevOps.

Avatar for Hugo Branquinho de Carvalho

Hugo Branquinho de Carvalho

November 09, 2019

Transcript

  1. Agenda • Whoami • Objetivos • Experiências passadas como SysAdmin

    • A transformação para DevOps • O que é DevOps? • Estratégias DevOps • Oportunidades de carreira • Referências
  2. • 34 anos • Natural de Franca - SP •

    Formado em Sistemas de Informação • MBA em Gestão Estratégica de TI • Certificado Red Hat (RHCSA, RHCSA-RHOS e RHCE) • Sysadmin há 16 anos • Apaixonado por DevOps, Linux, Cloud, Containers, Kubernetes, Shell, GOLang… • Atualmente SRE no iFood Hugo Branquinho de Carvalho $ whoami • Extras: Trilhas, motos, boxe, café….
  3. • Entender a dificuldade de colocar um sistema em produção

    antes da cultura/ferramentas DevOps. • O que mudou e quais os benefícios de usar a cultura/ferramentas DevOps. • Estratégias DevOps. • Oportunidades de carreira e o que as empresas esperam. Objetivos
  4. • O que é? • O que faz? SysAdmin •

    O que comem? • Onde vivem? • Como se reproduzem?
  5. Os slides referente as histórias das empresas, foi com base

    no aspecto delas no passado, o que não se reflete no momento atual.
  6. Obs.: Visão do passado (antes DevOps) que não se reflete

    no momento atual. Comitês para avaliar e organizar deploys. Deploys efetuados pela equipe de operações de madrugada. Não interação da equipe de Desenvolvimento com a de Operações. Uso de gerenciador de configuração (Puppet).
  7. Sistema (Gemco) era um monolito. Início da “quebra” dos serviços

    (microserviços) Compilação do pacote para produção era feito por ciclos de uma a duas semanas. Entregas de novas features com atraso. Obs.: Visão do passado (antes DevOps) que não se reflete no momento atual.
  8. Solicitações de alterações e novos serviços através de GMUD/RDM. Comitê

    para aprovação das alterações e novas aplicações. Falta de um monitoramento adequado. (Uso do Nagios veio com o passar do tempo). Falta de gerenciador de configuração. Obs.: Visão do passado (antes DevOps) que não se reflete no momento atual.
  9. “O DevOps é a combinação de filosofias culturais, práticas e

    ferramentas que aumentam a capacidade de uma empresa de distribuir aplicativos e serviços em alta velocidade: otimizando e aperfeiçoando produtos em um ritmo mais rápido do que o das empresas que usam processos tradicionais de desenvolvimento de software e gerenciamento de infraestrutura. Essa velocidade permite que as empresas atendam melhor aos seus clientes e compitam de modo mais eficaz no mercado.” O que é DevOps? https://aws.amazon.com/pt/devops/what-is-devops/
  10. Uso de microserviços. Ferramentas de CI/CD. Uso de containers, provisionadores

    de configuração/infraestrutura, versionamento do código de infra, uso da Nuvem (Cloud). Deploys ágeis a qualquer momento do dia. Colaboração entre as equipes de Dev e Operações.
  11. • Sair fora da caixa (pensar além) • Times Multidisciplinares

    • Todos são responsáveis • Versionamento de código (Git) • Testes automáticos (CI) • Entrega automática (CD) • Infraestrutura ágil (Cloud) • Microserviços Como alcançar?
  12. • Highlander: Subir a versão nova de uma aplicação, matando

    a antiga de uma vez. • Rollout: Entregas por faseamento. • Blue Green: Associado mais ao DNS, apontando para a nova versão. • Canary: Direciona x% do tráfego para a nova versão. • A/B: Direciona o tráfego baseado na característica do usuário final. Ex.: Por região, por tipo de navegador… • Shadow: Cópia do tráfego real de produção para a nova versão (não tem response, apenas a request). Objetivo Comum: Reduzir o downtime e os riscos de uma alteração de versão para uma nova aplicação/sistema em produção. Estratégias de Deploy
  13. • Controle de versionamento (Github / Gitlab / Bitbucket) •

    Gerenciamento de configuração (Puppet, Chef, Ansible…) • Infraestrutura como código (Terraform) • Ferramenta para criar imagens customizadas do S.O (Packer) • CI/CD (Jenkins, TravisCI, CircleCI, Drone, …) • Servers web/proxy reverso (Nginx, Kong, …) • Containers (Docker, Rocket, CRI-O) • Gerenciador de Containers (Kubernetes) • Monitoramento/Logs (Prometheus, Grafana, NewRelic, DataDog, ELK, Graylog, …) • Linguagens de Script (Shell, Python, …) • Cloud (AWS, Azure, GoogleCloud) O que as empresas esperam?