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.

Dd500b30db98bd254ffc5a7982a70803?s=128

drequena

June 23, 2018
Tweet

Transcript

  1. O Poder da Abstração

  2. Agenda ◆ Whoami ◆ Disclaimer ◆ Objetivo/Motivação ◆ Abstração ◆

    Desafios ◆ Referências
  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.
  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
  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
  6. Objetivos

  7. Quem somos nós? Rápida pesquisa ◆ Dev ou OPS ?

    ◆ Idade ? ◆ Assistiu Divertidamente (inside out)?
  8. Abstração

  9. 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]
  10. Abstração: exemplos

  11. Abstração: exemplos ◆ Tecnologia ◆ Processos industriais ◆ Materiais ◆

    Rodovias ◆ Engenharia ◆ Processos químicos ◆ Lógicas de mercado
  12. Abstração: exemplos ◆ Commodity ◆ Comoditização

  13. Abstração: exemplos

  14. Abstração: exemplos ◆ SO ◆ Múltiplas arquiteturas e processadores ◆

    Linguagens de alto nível e compiladores e Libs ◆ Linguagens interpretadas ◆ VMs ◆ Navegador ◆ JavaScript
  15. Abstração: exemplos

  16. Abstração: exemplos

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

  18. Abstração: OPS

  19. Abstração: OPS ◆ Virtualização ◆ Melhor uso dos recursos ◆

    Isolamento ◆ Múltiplos S.Os ◆ etc...
  20. Abstração: OPS

  21. Abstração: OPS ◆ Orquestração de virtualização ◆ Multiplos virtualizadores ◆

    Migração de VM ◆ Rede virtual ◆ etc...
  22. Abstração: OPS

  23. 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...
  24. Abstração: OPS

  25. Abstração: OPS ◆ IAC ◆ Infra Imutável ◆ Container ◆

    Docker ◆ Kubernetes ◆ Serverless ◆ ...
  26. Abstração: OPS

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

  28. Abstração: OPS

  29. 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
  30. Abstração: OPS

  31. Abstração: OPS ◆ Democratização tecnológica ◆ Independência ◆ Flexibilidade ◆

    Facilidade ◆ Novos negócios ◆ Comoditização
  32. Parênteses. (

  33. Parênteses. )

  34. Desafios

  35. Desafios: ◆ Técnicos ◆ Culturais

  36. 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*
  37. 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
  38. Desafios: Técnicos

  39. 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 *
  40. Desafios: Técnicos ◆ Profissionais ◆ Raros ◆ Caros ◆ Exemplo:

    ◆ Vagas para pleno/senior ◇ Humildade ◇ Vontade de aprender ◇ Mente aberta
  41. Desafios: Técnicos

  42. Desafios: Técnicos

  43. Desafios: Técnicos

  44. Desafios: Técnicos ◆ Deficiências técnicas ◆ Redes ◆ TroubleShooting *

    ◆ Tuning ◆ Etc… ◆ “Destrói tudo e recria...”
  45. Desafios: Culturais X

  46. Desafios: Culturais Sysadmin Vs DevOPS

  47. Desafios: Culturais

  48. 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!
  49. Desafios: Culturais

  50. Desafios: Culturais

  51. 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
  52. 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
  53. 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.
  54. Desafios: Culturais

  55. 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...
  56. Obrigado! Perguntas? You can find me at @Daniel_Requena (twitter) www.linkedin.com/in/danielrequena/

    daniel.requena@rivendel.com.br requena@gmail.com
  57. 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