Deployeando Rails

Post on 13-Aug-2015

107 views 0 download

Tags:

Transcript of Deployeando Rails

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

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

( I a a S )

AMAZON WEB SERVICES

( P a a S )

HEROKU

( P a a S )

OPSWORK

Costo Configuración Mantención

AWS vs. Heroku

Costos

$ 120 - $ 85

2 dynos + DB + 1 worker dyno

$ 50 - $ 60

3 instancias Ec2

Heroku AWS

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

CONCLUSIÓN

“MENOS TIEMPO LIDIANDO CON LA INFRAESTRUCTURA Y

MAS TIEMPO ESCRIBIENDO FUNCIONALIDADES PARA

POTENCIAR MI PRODUCTO”

REALIDAD DE USAR HEROKU

Costos

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

Add-on’s aumentan el costo general.

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.

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.

( P a a S )

OPSWORK

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.

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

Ejemplos: Producción, Staging, etc…

Stacks

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

Podemos ver y manipular todas nuestras instancias Ec2.

Agregar nuevas instancias, prenderlas, apagarlas y reiniciarlas.

Existen dos modalidades: por hora o por carga.

Instances

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

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

Apps

Efectuar “one click deploys”.

Acceder al historial de los deploys y los logs.

Ejecutar commandos Chef en algunas o todas las instancias.

Deployments

Simples herramientas de monitoreo de nuestras instancias.

CPU, RAM, carga y procesos.

Monitoreo

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

DEMO

BONUS TIPS

Tips Rails

New Relic monitoreo

Mailtrap.io

Airbrake.io

Gem Delayed_job

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.

FIN

Matias Menafra@matias_logix

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

https://github.com/mmenafra/

GRACIAS!!!! Preguntas??