43
Chef, Nginx e Capistrano Como usar! Felipe Augusto Navas [email protected]

Chef, Nginx e Capistrano: Como usar!

Embed Size (px)

DESCRIPTION

Apresentação sobre a infraestrutura linux que desenvolvi para aplicações Rails e como o Chef, Nginx e capistrano foram utilizados

Citation preview

Page 1: Chef, Nginx e Capistrano: Como usar!

Chef, Nginx e Capistrano Como usar!

Felipe Augusto [email protected]

Page 2: Chef, Nginx e Capistrano: Como usar!

Chef, Nginx e Capistrano Como usar!

Felipe Augusto [email protected]

Page 3: Chef, Nginx e Capistrano: Como usar!

Browser

Quem é ohttp://control.integration.7prods.corp/ ?

É o 172.16.32.30

DNS

172.16.32.30http://control.integration.7prods.corp/

Fluxo de uma requisição ao Servidor

integration-app

HTTP/1.1 302 Moved TemporarilyServer: nginx/1.1.19Date: Wed, 08 Aug 2012 21:15:35 GMTContent-Type: text/html; charset=utf-8Connection: keep-aliveLocation: http://control.integration.7prods.corp/admin/login<html><body>You are being <a href="http://control.integration...

Page 4: Chef, Nginx e Capistrano: Como usar!

Browser

Quem é ohttp://control.integration.7prods.corp/ ?

É o 172.16.32.30

DNS

172.16.32.30http://control.integration.7prods.corp/

Fluxo de uma requisição ao Servidor

integration-app

HTTP/1.1 302 Moved TemporarilyServer: nginx/1.1.19Date: Wed, 08 Aug 2012 21:15:35 GMTContent-Type: text/html; charset=utf-8Connection: keep-aliveLocation: http://control.integration.7prods.corp/admin/login<html><body>You are being <a href="http://control.integration...

Page 5: Chef, Nginx e Capistrano: Como usar!

Browser

Quem é ohttp://control.integration.7prods.corp/ ?

É o 172.16.32.30

DNS

172.16.32.30http://control.integration.7prods.corp/

Fluxo de uma requisição ao Servidor

integration-app

HTTP/1.1 302 Moved TemporarilyServer: nginx/1.1.19Date: Wed, 08 Aug 2012 21:15:35 GMTContent-Type: text/html; charset=utf-8Connection: keep-aliveLocation: http://control.integration.7prods.corp/admin/login<html><body>You are being <a href="http://control.integration...

MÁGICA}

Page 6: Chef, Nginx e Capistrano: Como usar!

Browser

Quem é ohttp://control.integration.7prods.corp/ ?

É o 172.16.32.30

DNS

172.16.32.30http://control.integration.7prods.corp/

Fluxo de uma requisição ao Servidor

integration-app

HTTP/1.1 302 Moved TemporarilyServer: nginx/1.1.19Date: Wed, 08 Aug 2012 21:15:35 GMTContent-Type: text/html; charset=utf-8Connection: keep-aliveLocation: http://control.integration.7prods.corp/admin/login<html><body>You are being <a href="http://control.integration...

MÁGICA}

SHOW ME HOW!!!PLZ!!!

Page 7: Chef, Nginx e Capistrano: Como usar!

DIG – Consulta ao DNS

● dig @8.8.8.8 +short homolog.7prods.com.br● dig @10.100.20.2 +short homolog.7prods.com.br

● curl control.integration.7prods.corp --head --verbose

CURL – Canivete suiço do HTTP

Page 8: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Estrutura

172.16.32.30http://control.integration.7prods.corp/

integration-app

Page 9: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Estrutura

integration-app

Page 10: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Estrutura Interna

UBUNTU LINUX 12.04 LTS

NGINX

RVM

THIN 7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

THIN 7ACCOUNT

Page 11: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Multi-instância por Aplicação

UBUNTU LINUX 12.04 LTS

RVM

THIN

7CONTROL

Ruby 1.9.2-p290NGINX

THIN

THIN

Page 12: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Unix Domain Sockets

UBUNTU LINUX 12.04 LTS

RVM

THIN

7CONTROL

Ruby 1.9.2-p290NGINX

THIN

THIN

Unix domainSocket ouInter-process Communication Socket

Page 13: Chef, Nginx e Capistrano: Como usar!

Servidor de Aplicação

UBUNTU LINUX 12.04 LTS

RVM

Ruby 1.9.2-p290NGINX

Unix domainSocket ouInter-process Communication Socket

thin.0.sock

thin.1.sock

thin.2.sock

Page 14: Chef, Nginx e Capistrano: Como usar!

Servidor de Aplicação

UBUNTU LINUX 12.04 LTS

RVM

Ruby 1.9.2-p290NGINX

Unix domainSocket ouInter-process Communication Socket

thin.0.sock

thin.1.sock

thin.2.sock

NÃO TEMOS MAIS PORTAS!!!!

Page 15: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Comunicação entre Aplicações

UBUNTU LINUX 12.04 LTS

RVM

7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

7ACCOUNTDNSMASQ

NGINX

Page 16: Chef, Nginx e Capistrano: Como usar!

MAS CADÊ O CHEF E O CAPISTRANO ????

Page 17: Chef, Nginx e Capistrano: Como usar!

Primeiro uma história...

Page 18: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Tava na hora da gente adotar

Servidores Linux

***Felipe

Page 19: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Mas quem vai montar o servidor?

Page 20: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Eu monto !

Page 21: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Page 22: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

É um servidor só né ?

Page 23: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Tem um de desenvolvimento

Page 24: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Tem um de desenvolvimento

E um de homologação

Page 25: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Tem um de desenvolvimento

E um de homologação

E um de produção

Page 26: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Mas é só fazer umamáquina virtual e

pronto né ?

Page 27: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Temos que fazer também em

Máquina Física

Page 28: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Temos que fazer também em

Máquina FísicaE na Locaweb

Page 29: Chef, Nginx e Capistrano: Como usar!

Em uma reunião qualquer...

Temos que fazer também em

Máquina FísicaE na Locaweb

Talvez na Amazon

Page 30: Chef, Nginx e Capistrano: Como usar!
Page 31: Chef, Nginx e Capistrano: Como usar!
Page 32: Chef, Nginx e Capistrano: Como usar!

CHEF

CHEF SERVER

CHEF HOSTED

CHEF SOLO

● Diferentes formas de utilizar:

Page 33: Chef, Nginx e Capistrano: Como usar!

CHEF

CHEF SERVER

CHEF HOSTED

CHEF SOLO

● Diferentes formas de utilizar:

Page 34: Chef, Nginx e Capistrano: Como usar!

CHEF-SOLO

● Node → Cliente que será configurado● Ohai → Coleta informações do Node● Cookbooks → Conjuto de Recipes (Receitas)● Recipes = Comandos + Templates

Page 35: Chef, Nginx e Capistrano: Como usar!
Page 36: Chef, Nginx e Capistrano: Como usar!

CAPISTRANO

● Dois papéis principais:

1. Enviar o código para o(s) servidor(es)

2. Executar comandos no(s) servidor(es)

Page 37: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: O quê Chef e Capistrano fazem afinal ?

RVM

7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

7ACCOUNTDNSMASQ

NGINXNGINX

RVM

THIN 7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

THIN 7ACCOUNT

UBUNTU LINUX 12.04 LTS

Page 38: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Responsabilidades do Chef

UBUNTU LINUX 12.04 LTS

7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

7ACCOUNTDNSMASQ

NGINX

THIN 7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

THIN 7ACCOUNT

RVM

Page 39: Chef, Nginx e Capistrano: Como usar!

SERVIDOR DE APLICAÇÃO:: Responsabilidades do Capistrano

UBUNTU LINUX 12.04 LTS

RVM

7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

7ACCOUNTDNSMASQ

NGINX

THIN 7CONTROL

Ruby 1.9.2-p290

Ruby 1.9.2-p318

THIN 7ACCOUNT

Page 40: Chef, Nginx e Capistrano: Como usar!
Page 41: Chef, Nginx e Capistrano: Como usar!
Page 42: Chef, Nginx e Capistrano: Como usar!

Perguntas ?

Felipe Augusto [email protected]

Page 43: Chef, Nginx e Capistrano: Como usar!

GG