deployeando rails

28
AWS + Heroku+ OpsWork Deployeando Rails

Upload: matias-menafra

Post on 13-Aug-2015

106 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Deployeando Rails

A W S + H e r o k u + O p s W o r k

Deployeando Rails

Page 2: Deployeando Rails

Quien Soy

Matias Menafra

@matias_logix

https://cl.linkedin.com/in/mmenafra

https://github.com/mmenafra/

CTO de Medko y Mentor Start-Up Chile

Page 3: Deployeando Rails

( I a a S )

AMAZON WEB SERVICES

Page 4: Deployeando Rails

( P a a S )

HEROKU

Page 5: Deployeando Rails

( P a a S )

OPSWORK

Page 6: Deployeando Rails

Costo Configuración Mantención

AWS vs. Heroku

Page 7: Deployeando Rails

Costos

$ 120 - $ 85

2 dynos + DB + 1 worker dyno

$ 50 - $ 60

3 instancias Ec2

Heroku AWS

Page 8: Deployeando Rails

Mantención y Configuración

Aplicación Lista < 30 min.

Capa de Abstracción de configuración y lógica.

Eco sistema de Add-On’s.

Aprender nuevas tecnologías: Chef, knife, Capistrano, EC2, Base de Datos, etc…

Horas de trabajo, para configurar todo y mas horas de mantención y monitoreo.

Heroku AWS

Page 9: Deployeando Rails

CONCLUSIÓN

Page 10: Deployeando Rails

“MENOS TIEMPO LIDIANDO CON LA INFRAESTRUCTURA Y

MAS TIEMPO ESCRIBIENDO FUNCIONALIDADES PARA

POTENCIAR MI PRODUCTO”

Page 11: Deployeando Rails

REALIDAD DE USAR HEROKU

Page 12: Deployeando Rails

Costos

Rápidamente suben los costos al escalar nuestra aplicación.

Add-on’s aumentan el costo general.

Page 13: Deployeando Rails

Limitaciones

Dynos de solo 512mb o 1G.

Cero accesso SSH para customizar los Dynos.

No tengo control de como se ejecuta mi código por debajo, poco margen para optimizar.

Page 14: Deployeando Rails

Puntos de Falla

Nivel de fallas anuales en Heroku.

Mantenimiento y downtime fuera de mi control.

Solo corre sobre instancia AWS de la costa Este.

Page 15: Deployeando Rails

( P a a S )

OPSWORK

Page 16: Deployeando Rails

Ventajas OpsWork

Costos menores al correr sobre AWS directo. Opswork Gratis!

Mayor rendimiento.

Capa de automatización, abstracción y “One click deploys”.

Ninguna limitación de SSH y Hardware.

Puntos de fallas nuevos.

Page 17: Deployeando Rails

Los stacks son agrupaciones de instancias y recursos que vamos a querer configurar y gestionar al mismo tiempo.

Ejemplos: Producción, Staging, etc…

Stacks

Page 18: Deployeando Rails

Los layers son las configuraciones de nuestras instancias.

Pueden ser desde una instancia de BD hasta una aplicación Rails, Node.js, PHP, etc…

Crear layers completamente customs.

Layers

Page 19: Deployeando Rails

Podemos ver y manipular todas nuestras instancias Ec2.

Agregar nuevas instancias, prenderlas, apagarlas y reiniciarlas.

Existen dos modalidades: por hora o por carga.

Instances

Page 20: Deployeando Rails

Configurar aplicación que vamos a manejar en el stack.

Configurar el acceso a nuestro código fuente para automatizar nuestros deploys.

Apps

Page 21: Deployeando Rails

Efectuar “one click deploys”.

Acceder al historial de los deploys y los logs.

Ejecutar commandos Chef en algunas o todas las instancias.

Deployments

Page 22: Deployeando Rails

Simples herramientas de monitoreo de nuestras instancias.

CPU, RAM, carga y procesos.

Monitoreo

Page 23: Deployeando Rails

Si estamos usando algún servicio extra de AWS como Elastic IP’s, RBDS o volúmenes de disco se podrán gestionar y ver en esta sección.

Recursos

Page 24: Deployeando Rails

DEMO

Page 25: Deployeando Rails

BONUS TIPS

Page 26: Deployeando Rails

Tips Rails

New Relic monitoreo

Mailtrap.io

Airbrake.io

Gem Delayed_job

Page 27: Deployeando Rails

Tips Heroku

Utilizar log2viz.herokuapp.com

Habilitar en los logs el consumo de RAM.

Utilizar servidores Unicorn y Puma.

Configurar la cantidad de Web Processes manualmente para cada app.

Page 28: Deployeando Rails

FIN

Matias Menafra@matias_logix

https://cl.linkedin.com/in/mmenafra

https://github.com/mmenafra/

GRACIAS!!!! Preguntas??