Copyright 2015 Google Inc
Python Floripa 29
Flask e Docker
Rumo à AWS!
Ryan Padilha (ryan.padilha@gmail.com)
Os desafios da entrega no mundo em cloud
Copyright 2015 Google Inc
Simply in love with technology.
JavaEE expert, SOA specialist and technical writer.
Experience of 13+ years in solution design and development software.
Working on Software Architecture, DevOps Culture and Cloud Computing.
http://ryanpadilha.com.br
http://br.linkedin.com/in/ryanpadilha
Ryan Padilha
Copyright 2015 Google Inc
Agenda
Introdução
Python com Flask
1
2
Empacotamento com Docker3
• Descritivo
• Python como linguagem de produtividade com Flask micro-framework
• Deploy de aplicação em ambiente de cloud computing utilizando Docker
O mundo mudou, e agora?4
Copyright 2015 Google Inc
Introdução
• Desenvolvimento rápido de aplicações web
• Flask Framework como vantagem competitiva
• Produtividade baseada em arquitetura funcional
• Estrutura de infraestrutura com load balance e workers
• Configuração e organização de infraestrutura para deploy
• Empacotamento de aplicações com Docker
• Pensamento inicial da cultura de DevOps
Copyright 2015 Google Inc
Python com Flask
• Flask é um microframework baseado em WSGI
• Possui um vasto conjunto maduro de extensões
• Características principais:
• Servidor werkzeug de desenvolvimento e debug integrado
• RESTful request dispatching
• Template engine baseado em Jinja2
• Suporte a cookies seguros (client session)
• Documentação extensa
• Comunidade presente e ativa!
Copyright 2015 Google Inc
Arquitetura em Flask
• Confusão ou liberdade para arquitetar aplicações?
• Application Factory
• Blueprints
• Gerenciamento de rotas
• Environment Configuration
• Error Handlers
• Logging e Debugging
• Webservices RESTful
• Renderização de templates
• Conexão com Base de Dados
• Modelo de autenticação e autorização
Copyright 2015 Google Inc
Arquitetura em Flask
• Blueprint é usado para organizar o projeto entre componentes distintos
• Escolha seu modelo de acordo com o projeto:
• Estrutura Funcional - flask-website github
• Organização baseada em responsabilidades
• Agrupa arquivos semelhantes
• Estrutura Divisional
• Organização baseada em módulos
• Empacotamento
• http://exploreflask.com/en/latest/index.html
Copyright 2015 Google Inc
Empacotamento - Introdução
• Ambiente de execução bare-metal ou cloud computing ?
• Configuração de load balance
• Configuração de banco de dados
• Instalação do Python e gerenciamento de dependências - venv
• Escolha do servidor de WSGI - Gunicorn ou uWSGI
• Modelo de empacotamento - Distutils ou Setuptools
• Modelo tradicional de deploy
• O que podemos fazer para levar para produção a aplicação?
Copyright 2015 Google Inc
Empacotamento - Introdução
Copyright 2015 Google Inc
Conhecendo o Docker
• Apresentado na PyCon US em 2013
• Plataforma para “develop, deploy and run”
• Camada adicional de abstração e automação de virtualização
• Containers como serviços e integração contínua
• Automatização por scripts no estilo “Infraestrutura como Código”
• Características principais:
• Baseado em LXC (LinuX Containers)
• Isolamento de recursos do kernel com cgroups e namespaces
• Sistema de arquivos baseado em camadas - UnionFS
• Idempotente e agnóstico em relação a cloud computing
Copyright 2015 Google Inc
Conhecendo o Docker
Copyright 2015 Google Inc
• Pré-requisitos:
• Instalação do Docker CE Runtime - AWS e Azure
• Instalação do Docker Compose
• Familiaridade com repositório de container - Docker Hub
• Passos - exemplo gist:
• Arquivo dockerfile para build de imagem **
• Dockerfile na raiz do projeto
• Docker Compose descritivo de ambiente de infraestrutura
Empacotando com Docker
Copyright 2015 Google Inc
Empacotando com Docker
• Modelo simplificado de infraestrutura
Copyright 2015 Google Inc
• Comandos básicos:
• docker --version & docker-compose --version
• docker images
• docker ps -a
• docker pull <image-name>
• docker run -it debian /bin/bash
• docker run -d 8080:8080 -v <volume>
• docker push <user>/<image-name>
• docker save <image-name> > /var/company/<image-name>.tar
• docker load < /var/company/<image-name>.tar
• docker image rm <image-id>
• docker rm <container-id>
• docker inspect <container-name>
Empacotando com Docker
Copyright 2015 Google Inc
O mundo mudou, e agora ?
Copyright 2015 Google Inc
Meu muito obrigado!
“Quando você descobre algo,
você se sente como se estivesse
apaixonado”. Wozniak

Flask e Docker - rumo a AWS!

  • 1.
    Copyright 2015 GoogleInc Python Floripa 29 Flask e Docker Rumo à AWS! Ryan Padilha (ryan.padilha@gmail.com) Os desafios da entrega no mundo em cloud
  • 2.
    Copyright 2015 GoogleInc Simply in love with technology. JavaEE expert, SOA specialist and technical writer. Experience of 13+ years in solution design and development software. Working on Software Architecture, DevOps Culture and Cloud Computing. http://ryanpadilha.com.br http://br.linkedin.com/in/ryanpadilha Ryan Padilha
  • 3.
    Copyright 2015 GoogleInc Agenda Introdução Python com Flask 1 2 Empacotamento com Docker3 • Descritivo • Python como linguagem de produtividade com Flask micro-framework • Deploy de aplicação em ambiente de cloud computing utilizando Docker O mundo mudou, e agora?4
  • 4.
    Copyright 2015 GoogleInc Introdução • Desenvolvimento rápido de aplicações web • Flask Framework como vantagem competitiva • Produtividade baseada em arquitetura funcional • Estrutura de infraestrutura com load balance e workers • Configuração e organização de infraestrutura para deploy • Empacotamento de aplicações com Docker • Pensamento inicial da cultura de DevOps
  • 5.
    Copyright 2015 GoogleInc Python com Flask • Flask é um microframework baseado em WSGI • Possui um vasto conjunto maduro de extensões • Características principais: • Servidor werkzeug de desenvolvimento e debug integrado • RESTful request dispatching • Template engine baseado em Jinja2 • Suporte a cookies seguros (client session) • Documentação extensa • Comunidade presente e ativa!
  • 6.
    Copyright 2015 GoogleInc Arquitetura em Flask • Confusão ou liberdade para arquitetar aplicações? • Application Factory • Blueprints • Gerenciamento de rotas • Environment Configuration • Error Handlers • Logging e Debugging • Webservices RESTful • Renderização de templates • Conexão com Base de Dados • Modelo de autenticação e autorização
  • 7.
    Copyright 2015 GoogleInc Arquitetura em Flask • Blueprint é usado para organizar o projeto entre componentes distintos • Escolha seu modelo de acordo com o projeto: • Estrutura Funcional - flask-website github • Organização baseada em responsabilidades • Agrupa arquivos semelhantes • Estrutura Divisional • Organização baseada em módulos • Empacotamento • http://exploreflask.com/en/latest/index.html
  • 8.
    Copyright 2015 GoogleInc Empacotamento - Introdução • Ambiente de execução bare-metal ou cloud computing ? • Configuração de load balance • Configuração de banco de dados • Instalação do Python e gerenciamento de dependências - venv • Escolha do servidor de WSGI - Gunicorn ou uWSGI • Modelo de empacotamento - Distutils ou Setuptools • Modelo tradicional de deploy • O que podemos fazer para levar para produção a aplicação?
  • 9.
    Copyright 2015 GoogleInc Empacotamento - Introdução
  • 10.
    Copyright 2015 GoogleInc Conhecendo o Docker • Apresentado na PyCon US em 2013 • Plataforma para “develop, deploy and run” • Camada adicional de abstração e automação de virtualização • Containers como serviços e integração contínua • Automatização por scripts no estilo “Infraestrutura como Código” • Características principais: • Baseado em LXC (LinuX Containers) • Isolamento de recursos do kernel com cgroups e namespaces • Sistema de arquivos baseado em camadas - UnionFS • Idempotente e agnóstico em relação a cloud computing
  • 11.
    Copyright 2015 GoogleInc Conhecendo o Docker
  • 12.
    Copyright 2015 GoogleInc • Pré-requisitos: • Instalação do Docker CE Runtime - AWS e Azure • Instalação do Docker Compose • Familiaridade com repositório de container - Docker Hub • Passos - exemplo gist: • Arquivo dockerfile para build de imagem ** • Dockerfile na raiz do projeto • Docker Compose descritivo de ambiente de infraestrutura Empacotando com Docker
  • 13.
    Copyright 2015 GoogleInc Empacotando com Docker • Modelo simplificado de infraestrutura
  • 14.
    Copyright 2015 GoogleInc • Comandos básicos: • docker --version & docker-compose --version • docker images • docker ps -a • docker pull <image-name> • docker run -it debian /bin/bash • docker run -d 8080:8080 -v <volume> • docker push <user>/<image-name> • docker save <image-name> > /var/company/<image-name>.tar • docker load < /var/company/<image-name>.tar • docker image rm <image-id> • docker rm <container-id> • docker inspect <container-name> Empacotando com Docker
  • 15.
    Copyright 2015 GoogleInc O mundo mudou, e agora ?
  • 16.
    Copyright 2015 GoogleInc Meu muito obrigado! “Quando você descobre algo, você se sente como se estivesse apaixonado”. Wozniak