$30 off During Our Annual Pro Sale. View Details »

Docker e CoreOS: escalando serviços usando fleet

Docker e CoreOS: escalando serviços usando fleet

Slides da palestra apresentada na trilha Desenvolvimento e Testes da AgileBrazil 2015, em 22/10/2015.

Guilherme de Maio, nirev

October 22, 2015
Tweet

More Decks by Guilherme de Maio, nirev

Other Decks in Programming

Transcript

  1. Docker e CoreOS:
    Docker e CoreOS:
    escalando serviços
    escalando serviços
    usando fleet
    usando fleet
    @nirev
    http://slides.com/nirev

    View Slide

  2. Quem sou eu?
    Quem sou eu?
    Greyjoy:
    time de busca e data science
    Guilherme Nogueira
    Ex-Desenvolvedor @ Elo7

    View Slide

  3. Greyjoy: Busca e
    Greyjoy: Busca e
    Data Science
    Data Science
    Todos rodando em containers Docker no CoreOS

    View Slide

  4. Por quê?
    Por quê?

    View Slide

  5. Antes
    Antes
    Imagem X
    Não dava pra testar localmente,
    apenas na AWS
    Ambiente local != produção
    Muito difícil de recriar do zero Imagem Y

    View Slide

  6. Antes - pt2
    Antes - pt2
    Código que cria a máquina == Fácil de recriar
    Mesma stack de integração e produção
    Muito chato de testar localmente, mas dá (Vagrant + hacks)
    Ambiente local != produção

    View Slide

  7. View Slide

  8. View Slide

  9. View Slide

  10. View Slide

  11. View Slide

  12. Exemplo:
    Exemplo:

    View Slide

  13. View Slide

  14. CoreOS
    CoreOS
    Boot rápido
    Distro leve
    Apps apenas em containers
    Atualizações on-the-fly
    SystemD

    View Slide

  15. SystemD
    SystemD

    View Slide

  16. cloud-config
    cloud-config

    View Slide

  17. Fleet
    Fleet

    View Slide

  18. O que é?
    O que é?

    View Slide

  19. O que é?
    O que é?

    View Slide

  20. cloud-config
    cloud-config

    View Slide

  21. service unit
    service unit

    View Slide

  22. Tipos de deployment
    Tipos de deployment
    global-unit.service
    my-app.service
    [email protected]
    Escalável
    Único service
    Global

    View Slide

  23. Gerenciando serviços
    Gerenciando serviços
    $ fleetctl list-unit-files
    UNIT HASH DSTATE STATE TMACHINE
    goodbye.service d4c61bf launched launched 85c0c595.../172.17.8.102
    hello.service e55c0ae launched launched 113f16a7.../172.17.8.103
    $ fleetctl list-machines
    MACHINE IP METADATA
    148a18ff-6e95-4cd8-92da-c9de9bb90d5a 10.10.1.1 search_api=true,env=integration
    491586a6-508f-4583-a71d-bfc4d146e996 10.10.1.2 search_api=true,env=integration
    c9de9451-6a6f-1d80-b7e6-46e996bfc4d1 10.10.1.3 search_api=true,env=integration
    $ fleetctl list-units
    UNIT MACHINE ACTIVE SUB
    global-unit.service 148a18ff.../10.10.1.1 active running
    global-unit.service 491586a6.../10.10.1.2 active running
    global-unit.service c9de9451.../10.10.1.3 active running

    View Slide

  24. Gerenciando Serviços
    Gerenciando Serviços
    $ fleetctl list-units
    UNIT MACHINE ACTIVE SUB
    global-unit.service 148a18ff.../10.10.1.1 active running
    global-unit.service 491586a6.../10.10.1.2 active running
    global-unit.service c9de9451.../10.10.1.3 active running
    my-app.service 491586a6.../10.10.1.2 active running
    $ fleetctl start my-app

    View Slide

  25. Gerenciando Serviços
    Gerenciando Serviços
    $ fleetctl start my-app@{1..2}
    $ fleetctl list-units
    UNIT MACHINE ACTIVE SUB
    global-unit.service 148a18ff.../10.10.1.1 active running
    global-unit.service 491586a6.../10.10.1.2 active running
    global-unit.service c9de9451.../10.10.1.3 active running
    [email protected] 491586a6.../10.10.1.2 active running
    [email protected] c9de9451.../10.10.1.3 active running

    View Slide

  26. Mas... e os
    Mas... e os
    problemas?
    problemas?
    logs
    split-brain etcd
    monitoração
    estado dos serviços
    (qual versão está rodando?)

    View Slide

  27. View Slide

  28. Container para Monitorar containers
    Log aggregators:
    Docker 1.8 tem suporte para "log drivers"
    etcd split-brain: MONITORE sempre!
    não é comum, mas pode acontecer
    estado dos serviços:
    monitoração, métricas, autoscaling, alertas

    View Slide

  29. Obrigado!
    Obrigado!
    @nirev
    http://slides.com/nirev

    [email protected]
    [email protected]
    Perguntas?

    View Slide