SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
DevOps &
Infraestructura como
código
Promesas Rotas
Consultor Independiente en Rigor Alliance
Ex-CTO Holaluz & Tech Lead de Hailo, Wonga, SocialPoint, Ulabox
Organizador devops.barcelona, php.barcelona, HUG Barcelona
@ricardclau
Ricard Clau
¿Por qué esta charla?
Sensaciones habituales
Veo problemas similares en muchas empresas (colaborando o charlando con CTOs)
Todo es cada vez más complicado y al principio cuesta que los beneficios superen el coste
Están apareciendo nuevos retos y no sabemos bien cómo afrontarlos
Mi visión pragmática
Ni hay “silver bullets” ni todas las empresas están en el mismo momento
No todo el mundo usa Terraform para todo ni tienen todo en K8s en producción
Creo que no hay marcha atrás en adopción de DevOps y Infra-as-code
Promesas vs
realidad
01 Intro
DevOps - Promesas
▪ Desarrolladores y Sistemas / Operaciones trabajando juntos
▪ Deploys más rápidos y seguros, agilidad en la infraestructura
▪ Automatización prácticamente total con, eventualmente, No-Ops
▪ Entornos totalmente unificados y iguales
▪ Ahorro de costes significativo a medio y largo plazo para la empresa
DevOps - Realidad
▪ Nuevos silos, nuevas squads, menos colaboración que antes
▪ Seguimos teniendo pipelines demasiado lentas
▪ Todo es cada vez más complejo, veo difícil no-ops a medio plazo
▪ Sigue siendo difícil probar algunas cosas antes de ir a producción
▪ Incremento de costes considerable, cuanto menos, a medio plazo
Infra as Code - Promesas
▪ Se acabaron los steps manuales
▪ Reducción de costes y aumento de velocidad
▪ Reducción de riesgos: entornos idénticos, estabilidad, escalabilidad,
accountability, documentación, seguridad…
▪ Tests más realistas antes de ir a producción
Infra as Code - Realidad
▪ Las cosas no son más fáciles, demasiadas abstracciones
▪ Complicado tener entornos completos (datos, APIs 3rd parties, coste…)
▪ Algunas cosas siguen pudiendo probarse solo en producción
▪ Los default de las herramientas no siempre son seguros o PCI compliant
▪ Raramente empezamos de 0, y cuesta integrar cosas existentes
▪ Muchas veces quizás acabaríamos antes con un clic en la console
Keep calm!
▪ No hay soluciones mágicas
▪ Volver a tiempos pasados no parece una buena idea
▪ Quedarse en el pasado tampoco, y además, afecta al hiring
▪ Vamos a ver algunos truquillos y estrategias!
Trucos para mejorar
implantación DevOps
02 DevOps
Colaboración Dev - Ops
▪ Los equipos de DevOps / Platform aislados no funcionan casi nunca
▪ “Alguien DevOps” asignado a equipo Dev te hace avanzar, pero cuesta
unificar sin un equipo central
▪ Idea: Combinar equipo “core” responsable de unificar criterios, tooling,
metodologías y que sus miembros “contagien” a los Devs en proyectos
▪ Equipos de desarrollo con ciertos permisos y ser autosuficientes
▪ Hay que cuidar mucho los procesos de selección
Aplicaciones antes
Aplicaciones ahora
Producción - Ese lugar mitológico
Aspiracional
Producción debería ser una key del hashmap de configuración (aspiracional)
Ejercicio Disaster Recovery ¿Somos capaces de levantar producción desde 0 en otra región?
Testear antes de ir a producción
Las pruebas de rendimiento no sirven sin las bbdd igual de llenas
No podemos hacer tests end to end sin tener todos los servicios externos
Los patrones de tráfico real son MUY difíciles de reproducir
Si podéis, añadid A/B testing y rollout gradual a subset de usuarios
DevSecOps
▪ Levantar infraestructura es cada vez más fácil… y es muy habitual dejar la
seguridad hasta el final. Hay pocos profesionales full-time!
▪ Los valores por defecto de muchas APIs no son seguros, y los ejemplos que
corren por Internet tampoco suelen cuidarlo
▪ Cada vez hay más herramientas y cada vez son más fáciles de usar
▪ Creo que es uno de los challenges principales de los próximos años!
Herramientas
battle-tested
03 Infrastructure as code
Configuración de Containers & VMs
Docker, Packer, Ansible, Vagrant...
▪ Con los archivos Dockerfile podemos configurar lo que queremos instalar en
nuestros contenedores
▪ Con Packer podemos generar imágenes en cualquier plataforma cloud o de
virtualización. Todavía es una herramienta muy válida!
▪ Ansible era la tool de moda hace pocos años, con el auge de Docker y K8s ha
quedado un poco relegada. Todavía muy útil para configurar VMs
▪ Con Vagrant podemos configurar VMs en local de forma simple. Un poco en
desuso debido a las nuevas arquitecturas de microservicios
Infraestructura
Terraform, Cloudformation, Pulumi, CDK...
▪ Confesión: Soy MUY fan de Terraform, lo uso a diario desde la versión 0.4
▪ Uséis lo que uséis, por favor, intentad dejar de hacer las cosas a mano!
▪ El sistema de providers de Terraform y lo fácil que es crear uno ha hecho que
a día de hoy tengamos conectores para casi todo lo que es automatizable
▪ Si usáis alguna de las otras tools, perfecto! Pero si no habéis empezado a
definir vuestra infraestructura con código, Terraform os ayudará
▪ La tool, en realidad, es lo de menos, ya que hay que saber de la plataforma!
DevSecOps
Vault, Sentinel, Terrascan, Snyk, SAST analizers...
▪ Hashicorp Vault es muy potente pero requiere aprendizaje y práctica
▪ Quizás para empezar podemos usar el Secrets Manager de nuestro cloud,
tools como Ansible Vault para ofuscar secretos.
▪ Tools como Snyk permiten analizar vulnerabilidades en los contenedores
▪ Terrascan o Sentinel (Terraform Enterprise) analizan reglas en archivos .tf
▪ Hay muchos analizadores SAST que podéis poner en vuestra pipeline para
detectar problemas, secretos commiteados, linting de código, etc...
Trucos para
simplificar
04 Infrastructure as code
Containers vs VMs
▪ K8s es un orquestador de contenedores muy potente y complejo, si podéis
usad soluciones como EKS, GKE, AKS…
▪ Si K8s os parece muy complejo, valorad alternativas como Nomad o ECS
▪ Si tenéis poca experiencia con contenedores, empezad por cosas sin estado
(webapps, etc…) y bases de datos en VM o servicios tipo RDS
▪ Esas VM pueden ser creadas y modificadas con Packer + Ansible
Terraform con infraestructura existente
▪ Raramente empezaremos en una cuenta vacía de AWS, keep calm!
▪ Podemos usar data resources o incluso ids (VPC, Subnets, SGs…)
▪ Terraform import permite importar casi todo (depende del provider)
▪ https://github.com/GoogleCloudPlatform/terraformer (terraform inverso!)
▪ No es necesario migrar todo a Terraform de golpe!
Terraform cada vez más grande
▪ Intentad partir los estados en múltiples estados (red, aplicaciones, entornos,
recursos compartidos…)
▪ Usad modules (propios o open-source) para no duplicar código y para
unificar naming, tagging, etc
▪ Cuidado con modules muy complejos o abusar de dynamic blocks
▪ Seguid a @antonbabenko (http://bit.ly/terraform-youtube)
Infrastructure Drift
▪ Es bastante inevitable, al principio, tocar cosas a mano
▪ Terraform refresh nos puede ayudar a “consolidar”
▪ Parte del drift puede venir por nuevas versiones de APIs / providers
▪ Habilitad Cloudtrail (o equivalentes)
▪ https://driftctl.com/ (y otras herramientas similares)
¿Promesas rotas?
05 Conclusiones
Optimismo
▪ Nunca había sido tan fácil probar nuevas piezas de infraestructura
▪ Nunca había sido tan fácil configurar servidores con código versionable
▪ El movimiento DevOps aún es joven y tiene que acabar de ajustarse (Agile)
▪ Es una inversión importante pero si se hace iterativo hay resultados rápido
▪ No creo que nos falte trabajo durante una larga temporada!
Gracias
Si crees que te puedo ayudar o quieres charlar
ricard.clau@gmail.com | @ricardclau | https://www.linkedin.com/in/ricardclau/

Weitere ähnliche Inhalte

Was ist angesagt?

Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
killfill
 

Was ist angesagt? (20)

Gestionando tu infraestructura con Ansible
Gestionando tu infraestructura con Ansible Gestionando tu infraestructura con Ansible
Gestionando tu infraestructura con Ansible
 
De desarrollo a producción usando docker
De desarrollo a producción usando dockerDe desarrollo a producción usando docker
De desarrollo a producción usando docker
 
El uso correcto de MySQLi
El uso correcto de MySQLi El uso correcto de MySQLi
El uso correcto de MySQLi
 
Provisión Automática de máquinas con Ansible
Provisión Automática de máquinas con AnsibleProvisión Automática de máquinas con Ansible
Provisión Automática de máquinas con Ansible
 
Introducción a Ansible
Introducción a AnsibleIntroducción a Ansible
Introducción a Ansible
 
Casper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end DrupalCasper JS - Asegurando la calidad en front-end Drupal
Casper JS - Asegurando la calidad en front-end Drupal
 
Capistrano drupalcamp-jerez-2015
Capistrano drupalcamp-jerez-2015Capistrano drupalcamp-jerez-2015
Capistrano drupalcamp-jerez-2015
 
Webinar - Radiografía actual del lenguaje PHP
Webinar - Radiografía actual del lenguaje PHPWebinar - Radiografía actual del lenguaje PHP
Webinar - Radiografía actual del lenguaje PHP
 
Rendimiento extremo en php
Rendimiento extremo en phpRendimiento extremo en php
Rendimiento extremo en php
 
Introduccion a Python para la web
Introduccion a Python para la webIntroduccion a Python para la web
Introduccion a Python para la web
 
NodeJS y MongoDB
NodeJS y MongoDBNodeJS y MongoDB
NodeJS y MongoDB
 
Desarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones webDesarrollo modermo de aplicaciones web
Desarrollo modermo de aplicaciones web
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
Nodejs.introduccion
Nodejs.introduccionNodejs.introduccion
Nodejs.introduccion
 
Tests de integración automatizados con Docker y Bamboo
Tests de integración automatizados con Docker y BambooTests de integración automatizados con Docker y Bamboo
Tests de integración automatizados con Docker y Bamboo
 
Webinar –Desplegar Hypervisores en servidores dedicados
Webinar –Desplegar Hypervisores en servidores dedicadosWebinar –Desplegar Hypervisores en servidores dedicados
Webinar –Desplegar Hypervisores en servidores dedicados
 
Optimización Servidor Web
Optimización Servidor WebOptimización Servidor Web
Optimización Servidor Web
 
Tools for High Availability
Tools for High AvailabilityTools for High Availability
Tools for High Availability
 
Gradle vs Maven
Gradle vs MavenGradle vs Maven
Gradle vs Maven
 
PDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHPPDO: Capa de abstracción de base de datos con PHP
PDO: Capa de abstracción de base de datos con PHP
 

Ähnlich wie DevOps & Infraestructura como código: Promesas Rotas

Ähnlich wie DevOps & Infraestructura como código: Promesas Rotas (20)

DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en AzureDotNet 2019 | Alberto Varela - Infraestructura como código en Azure
DotNet 2019 | Alberto Varela - Infraestructura como código en Azure
 
NoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdfNoEresTanEspecial-PulpoCon22.pdf
NoEresTanEspecial-PulpoCon22.pdf
 
Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)Introducción a la Nube Nativa - v1.0es (2021/03)
Introducción a la Nube Nativa - v1.0es (2021/03)
 
Terraform Ansible v3.0
Terraform Ansible v3.0Terraform Ansible v3.0
Terraform Ansible v3.0
 
Presentacion DevSecOps Argentina
Presentacion DevSecOps ArgentinaPresentacion DevSecOps Argentina
Presentacion DevSecOps Argentina
 
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOpsMeetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
Meetup Oracle Technology MAD_BCN: 6.2 DevOps y DataOps
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf Devops episodio 1. devOpsTnf
Devops episodio 1. devOpsTnf
 
DevOps: una breve introducción
DevOps: una breve introducciónDevOps: una breve introducción
DevOps: una breve introducción
 
DevOps, por donde comenzar? - DrupalCon Latin America 2015
DevOps, por donde comenzar?  - DrupalCon Latin America 2015DevOps, por donde comenzar?  - DrupalCon Latin America 2015
DevOps, por donde comenzar? - DrupalCon Latin America 2015
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 
Offering Cloud Solutions
Offering Cloud Solutions Offering Cloud Solutions
Offering Cloud Solutions
 
Framework Catalyst
Framework CatalystFramework Catalyst
Framework Catalyst
 
Dev ops with Data
Dev ops with DataDev ops with Data
Dev ops with Data
 
Plug&play:deploying big data_solutions
Plug&play:deploying big data_solutionsPlug&play:deploying big data_solutions
Plug&play:deploying big data_solutions
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
 
Devsecooops Los Caso de no éxito en DevSecOps
Devsecooops Los Caso de no éxito en DevSecOpsDevsecooops Los Caso de no éxito en DevSecOps
Devsecooops Los Caso de no éxito en DevSecOps
 
Corporaciones en piel de start ups
Corporaciones en piel de start upsCorporaciones en piel de start ups
Corporaciones en piel de start ups
 
Semana de la I+D - Proyecto OPOSSUM
Semana de la I+D - Proyecto OPOSSUMSemana de la I+D - Proyecto OPOSSUM
Semana de la I+D - Proyecto OPOSSUM
 
SGCE 2014 micro services
SGCE 2014 micro servicesSGCE 2014 micro services
SGCE 2014 micro services
 

Mehr von Ricard Clau

Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRedis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHP
Ricard Clau
 
Redis everywhere - PHP London
Redis everywhere - PHP LondonRedis everywhere - PHP London
Redis everywhere - PHP London
Ricard Clau
 

Mehr von Ricard Clau (14)

devopsbcn23.pdf
devopsbcn23.pdfdevopsbcn23.pdf
devopsbcn23.pdf
 
devopsbcn22.pdf
devopsbcn22.pdfdevopsbcn22.pdf
devopsbcn22.pdf
 
DevOps Barcelona Conference 2018 - Intro
DevOps Barcelona Conference 2018 - IntroDevOps Barcelona Conference 2018 - Intro
DevOps Barcelona Conference 2018 - Intro
 
Hashicorp at holaluz
Hashicorp at holaluzHashicorp at holaluz
Hashicorp at holaluz
 
What we talk about when we talk about DevOps
What we talk about when we talk about DevOpsWhat we talk about when we talk about DevOps
What we talk about when we talk about DevOps
 
Building a bakery of Windows servers with Packer - London WinOps
Building a bakery of Windows servers with Packer - London WinOpsBuilding a bakery of Windows servers with Packer - London WinOps
Building a bakery of Windows servers with Packer - London WinOps
 
Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015Modern software architectures - PHP UK Conference 2015
Modern software architectures - PHP UK Conference 2015
 
Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014Big Data! Great! Now What? #SymfonyCon 2014
Big Data! Great! Now What? #SymfonyCon 2014
 
Speed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with RedisSpeed up your Symfony2 application and build awesome features with Redis
Speed up your Symfony2 application and build awesome features with Redis
 
Scaling with Symfony - PHP UK
Scaling with Symfony - PHP UKScaling with Symfony - PHP UK
Scaling with Symfony - PHP UK
 
Redis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHPRedis Everywhere - Sunshine PHP
Redis Everywhere - Sunshine PHP
 
Redis everywhere - PHP London
Redis everywhere - PHP LondonRedis everywhere - PHP London
Redis everywhere - PHP London
 
Betabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticasBetabeers Barcelona - Buenas prácticas
Betabeers Barcelona - Buenas prácticas
 
Desymfony - Servicios
Desymfony  - ServiciosDesymfony  - Servicios
Desymfony - Servicios
 

Kürzlich hochgeladen

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Kürzlich hochgeladen (11)

PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 

DevOps & Infraestructura como código: Promesas Rotas

  • 2. Consultor Independiente en Rigor Alliance Ex-CTO Holaluz & Tech Lead de Hailo, Wonga, SocialPoint, Ulabox Organizador devops.barcelona, php.barcelona, HUG Barcelona @ricardclau Ricard Clau
  • 3. ¿Por qué esta charla? Sensaciones habituales Veo problemas similares en muchas empresas (colaborando o charlando con CTOs) Todo es cada vez más complicado y al principio cuesta que los beneficios superen el coste Están apareciendo nuevos retos y no sabemos bien cómo afrontarlos Mi visión pragmática Ni hay “silver bullets” ni todas las empresas están en el mismo momento No todo el mundo usa Terraform para todo ni tienen todo en K8s en producción Creo que no hay marcha atrás en adopción de DevOps y Infra-as-code
  • 5. DevOps - Promesas ▪ Desarrolladores y Sistemas / Operaciones trabajando juntos ▪ Deploys más rápidos y seguros, agilidad en la infraestructura ▪ Automatización prácticamente total con, eventualmente, No-Ops ▪ Entornos totalmente unificados y iguales ▪ Ahorro de costes significativo a medio y largo plazo para la empresa
  • 6. DevOps - Realidad ▪ Nuevos silos, nuevas squads, menos colaboración que antes ▪ Seguimos teniendo pipelines demasiado lentas ▪ Todo es cada vez más complejo, veo difícil no-ops a medio plazo ▪ Sigue siendo difícil probar algunas cosas antes de ir a producción ▪ Incremento de costes considerable, cuanto menos, a medio plazo
  • 7. Infra as Code - Promesas ▪ Se acabaron los steps manuales ▪ Reducción de costes y aumento de velocidad ▪ Reducción de riesgos: entornos idénticos, estabilidad, escalabilidad, accountability, documentación, seguridad… ▪ Tests más realistas antes de ir a producción
  • 8. Infra as Code - Realidad ▪ Las cosas no son más fáciles, demasiadas abstracciones ▪ Complicado tener entornos completos (datos, APIs 3rd parties, coste…) ▪ Algunas cosas siguen pudiendo probarse solo en producción ▪ Los default de las herramientas no siempre son seguros o PCI compliant ▪ Raramente empezamos de 0, y cuesta integrar cosas existentes ▪ Muchas veces quizás acabaríamos antes con un clic en la console
  • 9. Keep calm! ▪ No hay soluciones mágicas ▪ Volver a tiempos pasados no parece una buena idea ▪ Quedarse en el pasado tampoco, y además, afecta al hiring ▪ Vamos a ver algunos truquillos y estrategias!
  • 11. Colaboración Dev - Ops ▪ Los equipos de DevOps / Platform aislados no funcionan casi nunca ▪ “Alguien DevOps” asignado a equipo Dev te hace avanzar, pero cuesta unificar sin un equipo central ▪ Idea: Combinar equipo “core” responsable de unificar criterios, tooling, metodologías y que sus miembros “contagien” a los Devs en proyectos ▪ Equipos de desarrollo con ciertos permisos y ser autosuficientes ▪ Hay que cuidar mucho los procesos de selección
  • 14. Producción - Ese lugar mitológico Aspiracional Producción debería ser una key del hashmap de configuración (aspiracional) Ejercicio Disaster Recovery ¿Somos capaces de levantar producción desde 0 en otra región? Testear antes de ir a producción Las pruebas de rendimiento no sirven sin las bbdd igual de llenas No podemos hacer tests end to end sin tener todos los servicios externos Los patrones de tráfico real son MUY difíciles de reproducir Si podéis, añadid A/B testing y rollout gradual a subset de usuarios
  • 15. DevSecOps ▪ Levantar infraestructura es cada vez más fácil… y es muy habitual dejar la seguridad hasta el final. Hay pocos profesionales full-time! ▪ Los valores por defecto de muchas APIs no son seguros, y los ejemplos que corren por Internet tampoco suelen cuidarlo ▪ Cada vez hay más herramientas y cada vez son más fáciles de usar ▪ Creo que es uno de los challenges principales de los próximos años!
  • 17. Configuración de Containers & VMs Docker, Packer, Ansible, Vagrant... ▪ Con los archivos Dockerfile podemos configurar lo que queremos instalar en nuestros contenedores ▪ Con Packer podemos generar imágenes en cualquier plataforma cloud o de virtualización. Todavía es una herramienta muy válida! ▪ Ansible era la tool de moda hace pocos años, con el auge de Docker y K8s ha quedado un poco relegada. Todavía muy útil para configurar VMs ▪ Con Vagrant podemos configurar VMs en local de forma simple. Un poco en desuso debido a las nuevas arquitecturas de microservicios
  • 18. Infraestructura Terraform, Cloudformation, Pulumi, CDK... ▪ Confesión: Soy MUY fan de Terraform, lo uso a diario desde la versión 0.4 ▪ Uséis lo que uséis, por favor, intentad dejar de hacer las cosas a mano! ▪ El sistema de providers de Terraform y lo fácil que es crear uno ha hecho que a día de hoy tengamos conectores para casi todo lo que es automatizable ▪ Si usáis alguna de las otras tools, perfecto! Pero si no habéis empezado a definir vuestra infraestructura con código, Terraform os ayudará ▪ La tool, en realidad, es lo de menos, ya que hay que saber de la plataforma!
  • 19. DevSecOps Vault, Sentinel, Terrascan, Snyk, SAST analizers... ▪ Hashicorp Vault es muy potente pero requiere aprendizaje y práctica ▪ Quizás para empezar podemos usar el Secrets Manager de nuestro cloud, tools como Ansible Vault para ofuscar secretos. ▪ Tools como Snyk permiten analizar vulnerabilidades en los contenedores ▪ Terrascan o Sentinel (Terraform Enterprise) analizan reglas en archivos .tf ▪ Hay muchos analizadores SAST que podéis poner en vuestra pipeline para detectar problemas, secretos commiteados, linting de código, etc...
  • 21. Containers vs VMs ▪ K8s es un orquestador de contenedores muy potente y complejo, si podéis usad soluciones como EKS, GKE, AKS… ▪ Si K8s os parece muy complejo, valorad alternativas como Nomad o ECS ▪ Si tenéis poca experiencia con contenedores, empezad por cosas sin estado (webapps, etc…) y bases de datos en VM o servicios tipo RDS ▪ Esas VM pueden ser creadas y modificadas con Packer + Ansible
  • 22. Terraform con infraestructura existente ▪ Raramente empezaremos en una cuenta vacía de AWS, keep calm! ▪ Podemos usar data resources o incluso ids (VPC, Subnets, SGs…) ▪ Terraform import permite importar casi todo (depende del provider) ▪ https://github.com/GoogleCloudPlatform/terraformer (terraform inverso!) ▪ No es necesario migrar todo a Terraform de golpe!
  • 23. Terraform cada vez más grande ▪ Intentad partir los estados en múltiples estados (red, aplicaciones, entornos, recursos compartidos…) ▪ Usad modules (propios o open-source) para no duplicar código y para unificar naming, tagging, etc ▪ Cuidado con modules muy complejos o abusar de dynamic blocks ▪ Seguid a @antonbabenko (http://bit.ly/terraform-youtube)
  • 24. Infrastructure Drift ▪ Es bastante inevitable, al principio, tocar cosas a mano ▪ Terraform refresh nos puede ayudar a “consolidar” ▪ Parte del drift puede venir por nuevas versiones de APIs / providers ▪ Habilitad Cloudtrail (o equivalentes) ▪ https://driftctl.com/ (y otras herramientas similares)
  • 26. Optimismo ▪ Nunca había sido tan fácil probar nuevas piezas de infraestructura ▪ Nunca había sido tan fácil configurar servidores con código versionable ▪ El movimiento DevOps aún es joven y tiene que acabar de ajustarse (Agile) ▪ Es una inversión importante pero si se hace iterativo hay resultados rápido ▪ No creo que nos falte trabajo durante una larga temporada!
  • 27. Gracias Si crees que te puedo ayudar o quieres charlar ricard.clau@gmail.com | @ricardclau | https://www.linkedin.com/in/ricardclau/