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

Deploys de forma fácil com Tsuru

Deploys de forma fácil com Tsuru

Palestra apresentada no GruPy-SP dia 30/04/2016

More Decks by Rafael Henrique da Silva Correia

Other Decks in Technology

Transcript

  1. Eu Eu Rafael Henrique da Silva Correia @rafaelhenrique http://blog.abraseucodigo.com.br -

    Desenvolvedor por opção – Uma ótima opção! - Ex-administrador de sistemas Linux - Atuando atualmente como desenvolvedor web no Luizalabs - “Coordenador/instrutor” do Grupo de Estudos Python Sorocaba - Viciado em World of Warcraft o/ - Palestrante nas horas que sobram
  2. SaaS SaaS Software as a Service Você usa o software

    sem se preocupar com o próprio software ou com o hardware, isso é transparente ao cliente final. O fornecedor da solução te entrega o serviço e você usa este serviço. Exemplo: Google docs
  3. IaaS IaaS Infrastructure as a Service Você não se preocupa

    com a infraestrutura, mas o software é de sua responsabilidade. O fornecedor apenas te da a infraestrutura e você faz o que quer com ela. Exemplo: Amazon EC2
  4. PaaS PaaS Platform as a Service É o meio termo

    entre SaaS e IaaS. O fornecedor te “dá” uma plataforma onde você é o responsável por fazer deploy das suas aplicações, uma vez que a aplicação foi “deployada” com sucesso você não precisa se preocupar com o funcionamento da infraestrutura. Nesta categoria a gente tem vários nomes conhecidos: Heroku, Openshift, Microsoft Azure ……. e …...
  5. PaaS vs “Método tradicional” PaaS vs “Método tradicional” • Dá

    trabalho instalar um sistema operacional; • Dá trabalho atualizar um sistema operacional; • Dá trabalho provisionar (supervisor, nginx, etc); • Custo (dinheiro/tempo) de manter; • Eventualmente o sistema não vai para produção e você quer somente “testar/homologar” uma ideia.
  6. O que esse tal de O que esse tal de

    Tsuru tem de diferente? Tsuru tem de diferente? tsuru is an open source PaaS that makes it easy and fast to deploy and manage applications on your own servers. tsuru é um PaaS open source que torna mais fácil e rápido de implantar e gerenciar aplicações em seus próprios servidores. https://docs.tsuru.io/stable/
  7. Tsuru Tsuru características resumidas • Open source: https://github.com/tsuru • Multiplataformas:

    https://github.com/tsuru/basebuilder • Escalável/Extensível: Aumenta conforme a necessidade • Você é o dono da cloud!
  8. Como criar sua própria cloud Como criar sua própria cloud

    Instalando a cloud http://blog.abraseucodigo.com.br/como-criar-seu-paas-com-tsuru.html
  9. Comandos Tsuru Comandos Tsuru o que você precisa para usar?

    • Tsuru client Usado pelos desenvolvedores para criar, listar, vincular (bind) e gerenciar apps • Crane Usado por administradores da cloud para gerenciar serviços • Tsuru admin Parecido com o tsuru client porém com superpoderes! https://docs.tsuru.io/stable/using/install-client.html
  10. Comandos (admin) úteis para um Comandos (admin) úteis para um

    marinheiro de primeira viagem marinheiro de primeira viagem Comando para adicionar nova plataforma: # tsuru-admin platform-add python3 --dockerfile https://raw.githubusercontent.com/tsuru/basebuilder/master/p ython3/Dockerfile Todas as plataformas estão disponíveis em: https://github.com/tsuru/basebuilder
  11. Times, users e apps Times, users e apps quem é

    dono de quem? https://speakerdeck.com/andrewsmedina/fazendo-deploys-de-forma-simples-e-divertida-com-tsuru APP User Team App
  12. Apps, Serviços e Platforms Apps, Serviços e Platforms quem é

    dono de quem? https://speakerdeck.com/andrewsmedina/fazendo-deploys-de-forma-simples-e-divertida-com-tsuru Platform Services Apps MySQL APP
  13. Hands-on Hands-on Fazendo o primeiro deploy! Aplicação 1: Flask Hello

    • Repositório: https://github.com/rafaelhenrique/flask_hello • Objetivo: Escreve uma linda mensagem na index page <3
  14. Passo a passo Passo a passo Fazendo o primeiro deploy!

    Dica de como configurar: http://<ip do tsuru target>:8080/ Setando meu target: $ tsuru target-add <nome> http://<ip do tsuru target>:8080 -s Criando a app: $ tsuru app-create flask-hello python3 Realizando o deploy: $ tsuru app-deploy . -a flask-hello
  15. Passo a passo Passo a passo Deu errado!? :-o Lendo

    logs: $ tsuru app-log -a flask-hello -f Informações da app: $ tsuru app-info -a flask-hello Filosofando… se tudo correu bem então correu bem! :P
  16. Hands-on Hands-on Fazendo o segundo deploy! Aplicação 2: Amigo secreto

    Django • Repositório: https://github.com/rafaelhenrique/amigo_secreto • Objetivo: Sorteia amigo secreto no fim de ano :P
  17. Passo a passo Passo a passo Fazendo o segundo deploy!

    Verificando serviços disponíveis: $ tsuru service-list Verificando informações do serviço: $ tsuru service-info mysql-api $ tsuru service-doc mysql-api Criando um serviço: $ tsuru service-add mysql-api amigosecreto-mysql Criando a app: $ tsuru app-create amigosecreto python3
  18. Passo a passo Passo a passo Fazendo o segundo deploy!

    Associar a app ao serviço criado: $ tsuru service-bind mysql-api amigosecreto-mysql -a amigosecreto Setando as variáveis: $ tsuru env-set SECRET_KEY="chave" -p -a amigosecreto $ tsuru env-set ALLOWED_HOSTS="127.0.0.1, .localhost, . 172.16.100.2.nip.io" -a amigosecreto $ tsuru env-set DEBUG=False -p -a amigosecreto Verificando as variáveis: $ tsuru env-get -a amigosecreto
  19. Passo a passo Passo a passo Finish HIM! Realizando o

    deploy (ufa!): $ tsuru app-deploy . -a amigosecreto Lendo logs: $ tsuru app-log -a amigosecreto -f Informações da app: $ tsuru app-info -a amigosecreto Filosofando… se tudo correu bem então correu bem! :P