deployeando rails
TRANSCRIPT
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??