24
Criamos produtos digitais de sucesso. Ansible + Docker. Uma escolha natural! Gabriel Ferreira [email protected] / gabrielferreira.com

Ansible + Docker

Embed Size (px)

Citation preview

Page 1: Ansible + Docker

Criamos produtos digitais de sucesso.

Ansible + Docker.Uma escolha natural!

Gabriel [email protected] / gabrielferreira.com

Page 2: Ansible + Docker

Gabriel Ferreira●Formado em Ciência da Computação●"Pythonista"●Entusiasta do movimento DevOps●Chapter Lead de DevOps●Gerente regional do time Cloud

[email protected]

Page 3: Ansible + Docker

AgendaO que é Ansible

O que é Docker

Como e quando usar Ansible + Docker

Page 4: Ansible + Docker
Page 5: Ansible + Docker

Ansible

É uma ferramenta de automação para TI ou ferramenta de gerenciamento de configuração

Configurar sistemasDeploy de softwareOrquestrar ambientesDeploy contínuo

Page 6: Ansible + Docker

Outros exemplos de ferramentas

Page 7: Ansible + Docker

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

Page 8: Ansible + Docker

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

Page 9: Ansible + Docker

Ansible - Estrutura de pastas

Page 10: Ansible + Docker
Page 11: Ansible + Docker

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.

Page 12: Ansible + Docker

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.

Page 13: Ansible + Docker

Docker - História

Solaris 8 Containers (2004)OpenVZ (2005)LXC (2008)Google lmctfy - Let Me Contain For You (2013)Docker (2013)

Page 14: Ansible + Docker

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

Page 15: Ansible + Docker

Docker - Dockerfile

INSTRUÇÃO argumento

FROM ubuntu:14.04RUN apt-get update && apt-get install -y \

curl \nginxEXPOSE 80 443CMD ["nginx", "-g", "daemon off;"]

Page 16: Ansible + Docker
Page 17: Ansible + Docker
Page 18: Ansible + Docker
Page 19: Ansible + Docker

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

Page 20: Ansible + Docker

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.

Page 21: Ansible + Docker

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

Page 22: Ansible + Docker

Demo 1

demo-ansible-docker-imageBuild da imagemRodar a imagem e abrir no Browser em

http://DOCKER_URL:9000

Page 23: Ansible + Docker

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

Page 24: Ansible + Docker

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?