Upload
concrete-solutions
View
279
Download
0
Embed Size (px)
Citation preview
Criamos produtos digitais de sucesso.
Ansible + Docker.Uma escolha natural!
Gabriel [email protected] / gabrielferreira.com
Gabriel Ferreira●Formado em Ciência da Computação●"Pythonista"●Entusiasta do movimento DevOps●Chapter Lead de DevOps●Gerente regional do time Cloud
AgendaO que é Ansible
O que é Docker
Como e quando usar Ansible + Docker
Ansible
É uma ferramenta de automação para TI ou ferramenta de gerenciamento de configuração
Configurar sistemasDeploy de softwareOrquestrar ambientesDeploy contínuo
Outros exemplos de ferramentas
Ansible - CaracterísticasGerenciamento de configuração simples e de fácil usoIdempotenteDesenvolvido em PythonAgentlessPython e acesso SSHArquivos/Playbooks escritos em YAMLFacilmente extensívelPossui centenas de módulos prontos para executar tasksComunidade ativa e Powered by RedHat
Ansible - Playbook---- name: install and start apache hosts: webservers user: root tasks: - name: install httpd yum: name=httpd state: latest - name: start httpd service: name=httpd state=running
Playbook
Play
Tasks
Ansible - Estrutura de pastas
Docker
Docker é uma plataforma Open Source escrita em Go, que facilita a criação e administração de ambientes isolados, possibilitando o empacotamento de uma aplicação ou ambiente inteiro dentro de um container, tornando o ambiente inteiro portável para qualquer outro Host que contenha o Docker instalado.
Docker - Container x VM
Virtual Machine Container
Containers são executados como um processo isolado dentro do Host e
compartilham o kernel (SO), enquanto na VM nós temos um SO completo
para cada máquina virtual.
Docker - História
Solaris 8 Containers (2004)OpenVZ (2005)LXC (2008)Google lmctfy - Let Me Contain For You (2013)Docker (2013)
Docker - Popularização
Simplificou a configuração e build usando o conceito de text-based com o Dockerfile
Provisionou repositório e registrador gratuitos para que qualquer um possa compartilhar os containers criados
Docker - Dockerfile
INSTRUÇÃO argumento
FROM ubuntu:14.04RUN apt-get update && apt-get install -y \
curl \nginxEXPOSE 80 443CMD ["nginx", "-g", "daemon off;"]
Ansible + Docker - Por quê?Scripts Ansible são portáveis, ignorando a camada de SO,
podendo ser executados em uma máquina Linux, Docker, AWS EC2, VM Vagrant…
Scripts Ansible podem provisionar múltiplos hosts simultaneamente
Scripts Ansible são idempotentesDevido à grande quantidade de módulos existentes, você ganha
mais poder do que utilizando o Dockerfile sozinho
Ansible + Docker - SSH no Docker?
Quem usa Docker deve saber que é uma má prática usar SSH no Docker, fique calmo, o Ansible pode ser executado localmente.
Ansible + Docker - Quando?
Existem basicamente 2 formas de usar o Ansible e o Docker em conjunto, cada uma para um objetivo diferente:
Construir sua imagem Docker com base nos playbooks do Ansible
Orquestrar o deploy e configuração dos seus containers Docker
Demo 1
demo-ansible-docker-imageBuild da imagemRodar a imagem e abrir no Browser em
http://DOCKER_URL:9000
Demo 2
Instalação do Docker em uma instância EC2Build do DockerfileExecutar imagem Docker na instância EC2https://github.com/gabrielferreira/demo-ansible-docker-orchestration
blog.concretesolutions.com.brwww.concretesolutions.com.br
Rio de JaneiroRua São José, 90 cj. 2121 - Centro (21) 2240-2030
São PauloRua Sansão Alves dos Santos, 433 -
4º andar - Brooklin(11) 4119-0449
Dúvidas?