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

O poder da abstração

O poder da abstração

O poder da abstração, desafios técnicos e culturais para sair do OPS e ir para o DevOPS.

drequena

June 23, 2018
Tweet

More Decks by drequena

Other Decks in Technology

Transcript

  1. O Poder da Abstração

    View full-size slide

  2. Agenda
    ◆ Whoami
    ◆ Disclaimer
    ◆ Objetivo/Motivação
    ◆ Abstração
    ◆ Desafios
    ◆ Referências

    View full-size slide

  3. Hello! - whoami
    Daniel
    Sysadmin há 12 anos
    LPI-1/LPI-2 e Zabbix Specialist
    Bacharel em CCP / Mestre em Eng. da Computação.
    Barista Júnior.

    View full-size slide

  4. Disclaimer
    ◆ Dra. Barbara Liskov
    ◆ Contribuições fundamentais
    ◆ Abstração de dados
    ◆ Desenvolvimento Orientação Objetos
    ◆ Sistemas distribuídos
    ◆ Turing Awards da ACM
    ◆ Autora de livros e artigos

    View full-size slide

  5. Objetivos
    ◆ Breve levantamento histórico da área
    ◆ Papel da abstração nessa história
    ◆ Desafios técnicos e culturais de OPS para DevOPS
    ◆ Passar experiência pessoal
    ◆ Carreira
    ◆ Projetos
    ◆ Ajudar a eliminar esse tipo de talk pra sempre

    View full-size slide

  6. Quem somos nós? Rápida pesquisa
    ◆ Dev ou OPS ?
    ◆ Idade ?
    ◆ Assistiu Divertidamente (inside out)?

    View full-size slide

  7. Abstração
    “The solution to complexity is abstraction, also known as
    information hiding. Abstraction is simply the removal of
    unnecessary detail. The idea is that to design a part of a complex
    system, you must identify what about that part others must know in
    order to design their parts, and what details you can hide. The part
    others must know is the abstraction.” [Cornell University - CS class
    - Abstraction]

    View full-size slide

  8. Abstração: exemplos

    View full-size slide

  9. Abstração: exemplos
    ◆ Tecnologia
    ◆ Processos industriais
    ◆ Materiais
    ◆ Rodovias
    ◆ Engenharia
    ◆ Processos químicos
    ◆ Lógicas de mercado

    View full-size slide

  10. Abstração: exemplos
    ◆ Commodity
    ◆ Comoditização

    View full-size slide

  11. Abstração: exemplos

    View full-size slide

  12. Abstração: exemplos
    ◆ SO
    ◆ Múltiplas arquiteturas e processadores
    ◆ Linguagens de alto nível e compiladores e Libs
    ◆ Linguagens interpretadas
    ◆ VMs
    ◆ Navegador
    ◆ JavaScript

    View full-size slide

  13. Abstração: exemplos

    View full-size slide

  14. Abstração: exemplos

    View full-size slide

  15. Abstração: OPS
    A beleza do mundo físico (90-00)

    View full-size slide

  16. Abstração: OPS

    View full-size slide

  17. Abstração: OPS
    ◆ Virtualização
    ◆ Melhor uso dos recursos
    ◆ Isolamento
    ◆ Múltiplos S.Os
    ◆ etc...

    View full-size slide

  18. Abstração: OPS

    View full-size slide

  19. Abstração: OPS
    ◆ Orquestração de virtualização
    ◆ Multiplos virtualizadores
    ◆ Migração de VM
    ◆ Rede virtual
    ◆ etc...

    View full-size slide

  20. Abstração: OPS

    View full-size slide

  21. Abstração: OPS
    ◆ Cloud
    ◆ Multi-AZ
    ◆ Elasticidade (scale-up/scale-down)
    ◆ Gerenciamento pela “console” WEB
    ◆ “serviços”
    ◇ LoadBalancer
    ◇ VPN
    ◇ DB
    ◇ CDN
    ◇ Object Storage
    ◆ APIs! APIs! APIs para todos os gostos...

    View full-size slide

  22. Abstração: OPS

    View full-size slide

  23. Abstração: OPS
    ◆ IAC
    ◆ Infra Imutável
    ◆ Container
    ◆ Docker
    ◆ Kubernetes
    ◆ Serverless
    ◆ ...

    View full-size slide

  24. Abstração: OPS

    View full-size slide

  25. Abstração: OPS
    Provedor(es)

    View full-size slide

  26. Abstração: OPS

    View full-size slide

  27. iam_instance_profile =
    {
    poc = "poc-instance-profile"
    staging = "staging-instance-profile"
    production = "production-instance-profile"
    }
    iam_instance_profile =
    {
    poc = "poc-instance-profile"
    staging = "staging-instance-profile"
    production = "production-instance-profile"
    }
    key_name="terraform"
    base_image_name_prefix =
    {
    poc = "staging-baseimage"
    staging = "staging-baseimage"
    production = "production-baseimage"
    }
    alb =
    {
    poc.alb_name = "poc-alb"
    poc.subnets = "subnet-100000,subnet-200000,subnet-30000"
    staging.alb_name = "stag-alb"
    staging.subnets = "subnet-10001,subnet-20001,subnet-3001"
    production.alb_name = "prod-alb"
    production.subnets = "subnet-10002,subnet-20002,subnet-3002"
    Abstração: OPS

    View full-size slide

  28. Abstração: OPS

    View full-size slide

  29. Abstração: OPS
    ◆ Democratização tecnológica
    ◆ Independência
    ◆ Flexibilidade
    ◆ Facilidade
    ◆ Novos negócios
    ◆ Comoditização

    View full-size slide

  30. Parênteses.
    (

    View full-size slide

  31. Parênteses.
    )

    View full-size slide

  32. Desafios:
    ◆ Técnicos
    ◆ Culturais

    View full-size slide

  33. Desafios: Técnicos
    CV
    ◆ Formação acadêmica.
    ◆ SO (Linux, Windows, *BSD)
    ◆ Firewall, VPN, Switching, Roteamento.
    ◆ Virtualização: Vmware, Xen, KVM
    ◆ Storage: EMC, NetApp
    ◆ Aplicação: Apache, nginx, ESXi.
    ◆ Banco de dados: Mysql, Postgresql, Oracle
    ◆ Bash, PowerShell
    ◆ H.A (heartbeat, DRBD)
    ◆ Certificações: LPI-1 LPI-2 / RH* / MS*

    View full-size slide

  34. Desafios: Técnicos
    Vagas (2018)
    ◆ Cloud: AWS/Google/Azure
    ◆ Docker
    ◆ Puppet/Ansible
    ◆ Terraform/CloudFormation
    ◆ Kubernetes
    ◆ Elastic Search/Mongo
    ◆ Git
    ◆ Python/Go/Ruby
    ◆ Jenkins/Bamboo/Travis
    ◆ Estratégias de deploy
    ◆ Resiliência de aplicações

    View full-size slide

  35. Desafios: Técnicos

    View full-size slide

  36. Desafios: Técnicos
    ◆ Ferramentas de automação
    ◆ Conhecimento sobre processos e atividades da área de DEV
    ◆ Foco na aplicação
    ◆ Resiliência
    ◆ Arquitetura
    ◆ Ciclo de vida
    ◆ CI/CD
    ◆ QA
    ◆ Certificações
    ◆ Cloud Providers
    ◆ Docker/Kubernetes
    ◆ Gerenciamento de Configuração
    ◆ Ferramentas de deploy
    ◆ SRE *

    View full-size slide

  37. Desafios: Técnicos
    ◆ Profissionais
    ◆ Raros
    ◆ Caros
    ◆ Exemplo:
    ◆ Vagas para pleno/senior
    ◇ Humildade
    ◇ Vontade de aprender
    ◇ Mente aberta

    View full-size slide

  38. Desafios: Técnicos

    View full-size slide

  39. Desafios: Técnicos

    View full-size slide

  40. Desafios: Técnicos

    View full-size slide

  41. Desafios: Técnicos
    ◆ Deficiências técnicas
    ◆ Redes
    ◆ TroubleShooting *
    ◆ Tuning
    ◆ Etc…
    ◆ “Destrói tudo e recria...”

    View full-size slide

  42. Desafios: Culturais
    X

    View full-size slide

  43. Desafios: Culturais
    Sysadmin
    Vs
    DevOPS

    View full-size slide

  44. Desafios: Culturais

    View full-size slide

  45. Desafios: Culturais
    ◆ Ligado a Startups
    ◆ Descolado
    ◆ Conhece de programação
    ◆ Tem automação no sangue
    ◆ Se sente parte do “time”
    ◆ É cobiçado pelo mercado
    ◆ Conhece o processo DEV e QA
    ◆ Tem no CV todas as buzzwords
    ◆ Cloud
    ◆ Deploy
    ◆ SRE
    ◆ IAC
    ◆ É Engenheiro!

    View full-size slide

  46. Desafios: Culturais

    View full-size slide

  47. Desafios: Culturais

    View full-size slide

  48. Desafios: Culturais
    ◆ Não gosta de falar com pessoas
    ◆ Isolado no mundinho dele
    ◆ Gosta de tecnologia (TI pela TI e pra TI)
    ◆ ODEIA Dev
    ◆ Incompente
    ◆ Burro
    ◆ Não tem visão de negócio
    ◆ Uptime é única métrica
    ◆ Não tem Desapego técnico (especialmente agora)
    ◆ Sabe muito tecnicamente
    ◆ Facilidade em aprender

    View full-size slide

  49. Alguns desafios: DEV (técnicos e culturais)
    ◆ Conhecimento da plataforma de execução
    ◆ Sistema distribuído
    ◆ Visão SRE
    ◆ Métricas
    ◆ Resiliência
    ◆ Testes *
    ◆ Responsabilidade compartilhada
    ◆ Também ser acordado.
    ◆ Fazer rollout p/ prod
    ◆ Desapego técnico

    View full-size slide

  50. Alguns desafios: CEOs,CIOs,Diretores, Gerentes...
    ◆ Trate DEV e OPS da mesma forma
    ◆ Entenda que Agile != rápido
    ◆ Transforme o ambiente
    ◆ Cooperativo
    ◆ Inspire-se nas Startups
    ◆ Comece pequeno
    ◆ Squad
    ◆ Produto
    *Dica: Mude o local de trabalho.

    View full-size slide

  51. Desafios: Culturais

    View full-size slide

  52. Desafios: Culturais
    ◆ "se coloque no lugar do coleguinha"
    ◆ "peça desculpas"
    ◆ "isso não está certo, vamos todos sentar e conversar?"
    ◆ "ajude o coleguinha com dificuldade"
    ◆ “Rodar em Docker não significa ser micro-serviço, muito menos
    stateless”
    ◆ "entrega de software sem teste unitário e de integração não é entrega"
    ◆ "configuração chumbada no código fonte é triste, mas se ainda por cima
    for um IP e não uma entrada fqdn, você merece um murro na boca..."
    ◆ etc...

    View full-size slide

  53. Obrigado!
    Perguntas?
    You can find me at @Daniel_Requena (twitter)
    www.linkedin.com/in/danielrequena/
    [email protected]
    [email protected]

    View full-size slide

  54. Referências:
    ❖ https://www.youtube.com/watch?v=4vW62KqKJ5A
    ❖ http://www.cs.cornell.edu/courses/cs211/2006sp/Lectures/L08-Abstraction/08_abstraction.html
    ❖ https://www.youtube.com/watch?t=345&v=IYO3tOqDISE
    ❖ https://landing.google.com/sre/book.html
    ❖ https://www.rundeck.com/blog/reports-of-the-impending-demise-of-ops-are-greatly-exaggerated
    ❖ https://en.wikipedia.org/wiki/The_IT_Crowd
    ❖ https://www.youtube.com/watch?v=GDVAHA0oyJU
    ❖ https://github.com/Developer-Y/Scalable-Software-Architecture
    ❖ https://www.amazon.com.br/Modern-Operating-Systems-Andrew-Tanenbaum/dp/013359162X
    ❖ https://www.youtube.com/watch?v=VANORrzKX50

    View full-size slide