SlideShare una empresa de Scribd logo
Infraestructura como código
en Azure
ORGANIZATION
PLATINUM SPONSORS
Thank you!
COLLABORATORS
@artberri
alberto@berriart.com
Llámalo Full Stack, desarrollador generalista o como tú prefieras. Soy de
esos desarrolladores a los que les gusta saber algo de todo, aunque
nunca lleguen a saber mucho de nada.
En 2015 la empresa para la que trabajaba comenzó una transición hacia
la nube que incluía la automatización de múltiples procesos, incluyendo
despliegues de aplicaciones y de infraestructura, y tuve la suerte de
participar activamente en ella. No sé si venía de antes, pero es seguro
que a partir de ese momento me convertí en un obseso de la
automatización.
Actualmente trabajo en Plain Concepts desde Bilbao.
Alberto Varela Sánchez
Desarrollador de software en Plain Concepts
¿Qué es DevOps?
¿Qué NO es DevOps?
¿Qué NO es DevOps?
• No es no tener equipo de IT/Ops
• No son (solamente) herramientas
• No es (solamente) una cultura
• No es (solamente) unir Dev y Ops
• No es (solamente) un trabajo
¿Qué NO es DevOps?
• No es no tener equipo de IT/Ops
• No son (solamente) herramientas
• No es (solamente) una cultura
• No es (solamente) unir Dev y Ops
• No es (solamente) un trabajo *https://theagileadmin.com/what-is-devops/
Aún así, las herramientas son necesarias
• Testing automatizado
• Integración continua
• Entrega continua
• Infraestructura como código
• Monitorización
• Logging
“No es para mí, yo ya tengo mi nube”
¿Es Azure Portal suficiente?
Puede que sí, pero…
• ¿Tienes que hacer cambios incrementales
con cierta frecuencia en tu infraestructura?
• La primera vez que vas a producción
¿Cuánto tardas en replicar la infraestructura
de desarrollo?
• Si te has tenido que recuperar alguna vez de
un desastre ¿tenías todo documentado?
• …
“Si algo malo puede pasar, pasará”
Ley de Murphy
Infrastructure as Code
Like the principle that the same source code generates the same
binary, an Infrastructure as Code model generates the same
environment every time it is applied.
Sam Guckenheimer (Product Owner for Azure Devops)
¿Qué es Infrastructure as Code?
Básicamente: “Trata tu infraestuctura como si fuera tu aplicación”
• Définela con Código
• Qué se entienda, es tu documentación
• Utiliza un control de versiones
• Haz despliegues automáticos
• Flexibiliza el despliegue
• Despliegues atómicos e idempotentes
What?
¿Por qué debería hacerlo?
• Más automatización = Menos errores
• Transparencia
• Trazabilidad
• Integridad
• Reproducibilidad y repetibilidad
• Tu documentación es la “única funete de
verdad”
• Anima a la colaboración entre operaciones y
desarrollo
Why?
¿Como empiezo?
• Elige un proyecto fácil o pequeño, minimiza
esfuerzo y riesgo
• Si no lo has hecho antes encontrarás problemas,
estás experimentando, así que maneja bien las
expectativas
• Recoge datos, antes y después, demuestra que
funciona
• Elige una buena herramienta ;)
How?
Herramientas
¡ARM al rescate!
Demo
Demo Project:
https://berriart.visualstudio.com/Dotnet2019Demo
Algunos problemas
con ARM
• Demasiado verboso
• Gestión de dependencias
explícita
• Modularización
• Legibilidad y naming
• “Escribibilidad”
“Stop using ARM templates! Use the Azure CLI instead”
Pascal Naber - MVP on Microsoft Azure
¡Yo ya tengo un script!
Desventajas de un script
• Idempotencia
• Paralelización
• Escalabilidad
• Borrado de recursos explícito
• Modularización
• “Escribibilidad”
Alternativas
Alternativas
• En 2015 fue comprado por RedHat que
es la compañía que lo mantiene ahora.
• Inicialmente fue concebido para
“Configuración como código” o
“Provisionamiento de software”.
• Aún no tiene mucho soporte para Azure.
• Está pensado para realizar “secuencias
de comandos”, paralelizar es
complicado.
• Es una herramienta creada por
Hashicorp. Autores de Vagrant, Consul,
Packer,….
• Introduce el concepto de ‘plan’ para
poder previsualizar los cambios antes de
que sucedan.
• Usa una sintaxis propia, bastante
sencilla y fácil de aprender, pero nueva.
• Tiene una comunidad activa.
• Es la más reciente de las herramientas y
está soportada por una empresa
relativamente pequeña gestionada por
un grupo inversor.
• Su funcionamiento es muy similar al de
Terraform pero es la primera en utilizar
lenguajes de programación de “verdad”
(JS, Go o Python).
Comparativa: tecnologías
ARM ANSIBLE TERRAFORM PULUMI
Sistema Operativo
donde usar la CLI Todos Linux Todos Todos
Lenguaje para
declarar recursos
JSON YAML HCL / JSON
JS / Typescript / Go /
Python
Open Source /
License
Sí (CLI)
MIT
Sí
GPL v3.0
Sí
Mozilla Public 2.0
Sí
Apache 2.0
Escrito en
Python Python Go Go +
Opción Premium
No No Sí Sí
Comparativa: soporte
ARM ANSIBLE TERRAFORM PULUMI
Recursos de Azure
disponibles All (?) 146 543 342
Proveedores cloud
1 41 103 6
Azure Cloud Shell
Sí Sí Sí No
Disponible desde…
Build 2014 / 2015 Abril 2016 (2.1) Junio 2015 (0.6) Junio 2018
Stackoverflow
questions
1 486 11 974 (84) 2 893 (256) 25 (6)
Comparativa: funcionamiento
ARM ANSIBLE TERRAFORM PULUMI
Gestión de estado
Basado en nombre Basado en nombre Fichero de estado Fichero de estado
Borrado de recursos Borrado de código
(complete mode)
Basado en estado de
recurso
Borrado de código Borrado de código
Dependencias
Explícitas & Implícitas Explícitas Implícitas Implícitas
Paralelismo
Sí No por defecto Sí Sí
Extensible/Plugins
Plantillas de ejemplo Sí pero no Sí No
Cuando usar cada uno
ARM
Especialmente indicado si utilizas las
últimas funcionalidades de Azure y si
toda tu infraestrutura está y estará
basada siempre en Azure.
Ansible
Ahora no parece una herramienta
suficientemente madura para IaC, pero
puede ser una opción si usas mucha
VM y ya las configuras con Ansible.
TERRAFORM
Es la alternativa a ARM más utilizada,
más madura y con gran soporte. La
recomendaría a menos que ya tengas
Know How en ARM.
PULUMI
Es una herramienta joven y le falta
comunidad, pero puede ser una gran
opción cuando es el propio equipo de
desarrollo quien opera.
Questions & Answers
Demo Project:
https://berriart.visualstudio.com/Dotnet2019Demo
Feedback
https://feedback.dotnet2019.com/
Thanks and …
See you soon!
Thanks also to the sponsors.
Without whom this would not have been posible.

Más contenido relacionado

Similar a DotNet 2019 | Alberto Varela - Infraestructura como código en Azure

DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas Rotas
Ricard Clau
 
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
avanttic Consultoría Tecnológica
 
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
Taller Negócio Digitais
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)
Armando Picón Z.
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
Vicente Gerardo Guzman Lucio
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robóticaSoftware Guru
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completa
Travis Alford
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft Argentina
Luciano Moreira da Cruz
 
Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019
Luciano Moreira da Cruz
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
Amazon Web Services LATAM
 
Azure infrastructure testing con inspec
Azure infrastructure testing con inspecAzure infrastructure testing con inspec
Azure infrastructure testing con inspec
Alejandro García Miravet
 
Construir y publicar software de manera más sencilla, confiable y rápida con...
Construir y publicar software de manera más  sencilla, confiable y rápida con...Construir y publicar software de manera más  sencilla, confiable y rápida con...
Construir y publicar software de manera más sencilla, confiable y rápida con...
Luis Cosio
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
Carlos Buenosvinos
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
Eduardo Diaz
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
Jose Patricio Bovet Derpich
 
Presentacion DevSecOps Argentina
Presentacion DevSecOps ArgentinaPresentacion DevSecOps Argentina
Presentacion DevSecOps Argentina
CSA Argentina
 
Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019
Santi Macias Rodriguez
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
Kleer Agile Coaching & Training
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónKleer Agile Coaching & Training
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
Luciano Moreira da Cruz
 

Similar a DotNet 2019 | Alberto Varela - Infraestructura como código en Azure (20)

DevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas RotasDevOps & Infraestructura como código: Promesas Rotas
DevOps & Infraestructura como código: Promesas Rotas
 
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
 
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
 
Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)Desarrollo Móvil con Android (...y Firebase)
Desarrollo Móvil con Android (...y Firebase)
 
Infraestructura como Código en Azure
Infraestructura como Código en AzureInfraestructura como Código en Azure
Infraestructura como Código en Azure
 
Re evolución robótica
Re evolución robóticaRe evolución robótica
Re evolución robótica
 
Azure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completaAzure Dev(Sec)Ops EPIDATA completa
Azure Dev(Sec)Ops EPIDATA completa
 
Workshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft ArgentinaWorkshop azure devsecops Microsoft Argentina
Workshop azure devsecops Microsoft Argentina
 
Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019Devsecops con azure devops en global azure bootcamp 2019
Devsecops con azure devops en global azure bootcamp 2019
 
Comenzando a usar el Continuous Delivery
 Comenzando a usar el Continuous Delivery Comenzando a usar el Continuous Delivery
Comenzando a usar el Continuous Delivery
 
Azure infrastructure testing con inspec
Azure infrastructure testing con inspecAzure infrastructure testing con inspec
Azure infrastructure testing con inspec
 
Construir y publicar software de manera más sencilla, confiable y rápida con...
Construir y publicar software de manera más  sencilla, confiable y rápida con...Construir y publicar software de manera más  sencilla, confiable y rápida con...
Construir y publicar software de manera más sencilla, confiable y rápida con...
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014 Devops meetup 10 diciembre 2014
Devops meetup 10 diciembre 2014
 
Conociendo Nuestro Fua interno
Conociendo Nuestro Fua internoConociendo Nuestro Fua interno
Conociendo Nuestro Fua interno
 
Presentacion DevSecOps Argentina
Presentacion DevSecOps ArgentinaPresentacion DevSecOps Argentina
Presentacion DevSecOps Argentina
 
Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019Un viaje por Azure DevOps - Meetup Barcelona 2019
Un viaje por Azure DevOps - Meetup Barcelona 2019
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Dev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producciónDev ops e infraestructura – acompañando nuestro software a producción
Dev ops e infraestructura – acompañando nuestro software a producción
 
Devsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivoDevsecops superstar un movimiento masivo
Devsecops superstar un movimiento masivo
 

Más de Plain Concepts

R y Python con Power BI, la ciencia y el análisis de datos, juntos
R y Python con Power BI, la ciencia y el análisis de datos, juntosR y Python con Power BI, la ciencia y el análisis de datos, juntos
R y Python con Power BI, la ciencia y el análisis de datos, juntos
Plain Concepts
 
Video kills the radio star: e-mail is crap and needed disruption
 Video kills the radio star: e-mail is crap and needed disruption Video kills the radio star: e-mail is crap and needed disruption
Video kills the radio star: e-mail is crap and needed disruption
Plain Concepts
 
Cómo redefinir tu organización con IA
Cómo redefinir tu organización con IACómo redefinir tu organización con IA
Cómo redefinir tu organización con IA
Plain Concepts
 
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelinesDx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Plain Concepts
 
¿Qué es real? Cuando la IA intenta engañar al ojo humano
¿Qué es real? Cuando la IA intenta engañar al ojo humano¿Qué es real? Cuando la IA intenta engañar al ojo humano
¿Qué es real? Cuando la IA intenta engañar al ojo humano
Plain Concepts
 
Inteligencia artificial para detectar el cáncer de mama
Inteligencia artificial para  detectar el cáncer de mamaInteligencia artificial para  detectar el cáncer de mama
Inteligencia artificial para detectar el cáncer de mama
Plain Concepts
 
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
Plain Concepts
 
Cognitive Services en acción
Cognitive Services en acciónCognitive Services en acción
Cognitive Services en acción
Plain Concepts
 
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
Plain Concepts
 
What if AI was your daughter?
What if AI was your daughter?What if AI was your daughter?
What if AI was your daughter?
Plain Concepts
 
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Plain Concepts
 
Revolucionando la experiencia de cliente con Big Data e IA
Revolucionando la experiencia de cliente con Big Data e IARevolucionando la experiencia de cliente con Big Data e IA
Revolucionando la experiencia de cliente con Big Data e IA
Plain Concepts
 
IA Score en InfoJobs
IA Score en InfoJobsIA Score en InfoJobs
IA Score en InfoJobs
Plain Concepts
 
Recuperación de información para solicitantes de empleo
Recuperación de información para solicitantes de empleoRecuperación de información para solicitantes de empleo
Recuperación de información para solicitantes de empleo
Plain Concepts
 
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
La nueva revolución Industrial: Inteligencia Artificial & IoT EdgeLa nueva revolución Industrial: Inteligencia Artificial & IoT Edge
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
Plain Concepts
 
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native ScriptDotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
Plain Concepts
 
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
Plain Concepts
 
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
Plain Concepts
 
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - IntroductionEl camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
Plain Concepts
 
El camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AIEl camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AI
Plain Concepts
 

Más de Plain Concepts (20)

R y Python con Power BI, la ciencia y el análisis de datos, juntos
R y Python con Power BI, la ciencia y el análisis de datos, juntosR y Python con Power BI, la ciencia y el análisis de datos, juntos
R y Python con Power BI, la ciencia y el análisis de datos, juntos
 
Video kills the radio star: e-mail is crap and needed disruption
 Video kills the radio star: e-mail is crap and needed disruption Video kills the radio star: e-mail is crap and needed disruption
Video kills the radio star: e-mail is crap and needed disruption
 
Cómo redefinir tu organización con IA
Cómo redefinir tu organización con IACómo redefinir tu organización con IA
Cómo redefinir tu organización con IA
 
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelinesDx29: assisting genetic disease diagnosis with physician-focused AI pipelines
Dx29: assisting genetic disease diagnosis with physician-focused AI pipelines
 
¿Qué es real? Cuando la IA intenta engañar al ojo humano
¿Qué es real? Cuando la IA intenta engañar al ojo humano¿Qué es real? Cuando la IA intenta engañar al ojo humano
¿Qué es real? Cuando la IA intenta engañar al ojo humano
 
Inteligencia artificial para detectar el cáncer de mama
Inteligencia artificial para  detectar el cáncer de mamaInteligencia artificial para  detectar el cáncer de mama
Inteligencia artificial para detectar el cáncer de mama
 
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
¿Está tu compañía preparada para el reto de la Inteligencia Artificial?
 
Cognitive Services en acción
Cognitive Services en acciónCognitive Services en acción
Cognitive Services en acción
 
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
El Hogar Inteligente. De los datos de IoT a los hábitos de una familia a trav...
 
What if AI was your daughter?
What if AI was your daughter?What if AI was your daughter?
What if AI was your daughter?
 
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
Recomendación Basada en Contenidos con Deep Learning: Qué queríamos hacer, Qu...
 
Revolucionando la experiencia de cliente con Big Data e IA
Revolucionando la experiencia de cliente con Big Data e IARevolucionando la experiencia de cliente con Big Data e IA
Revolucionando la experiencia de cliente con Big Data e IA
 
IA Score en InfoJobs
IA Score en InfoJobsIA Score en InfoJobs
IA Score en InfoJobs
 
Recuperación de información para solicitantes de empleo
Recuperación de información para solicitantes de empleoRecuperación de información para solicitantes de empleo
Recuperación de información para solicitantes de empleo
 
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
La nueva revolución Industrial: Inteligencia Artificial & IoT EdgeLa nueva revolución Industrial: Inteligencia Artificial & IoT Edge
La nueva revolución Industrial: Inteligencia Artificial & IoT Edge
 
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native ScriptDotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
DotNet 2019 | Sherry List - Azure Cognitive Services with Native Script
 
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
DotNet 2019 | Quique Fernández - Potenciando VUE con TypeScript, Inversify, V...
 
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
DotNet 2019 | Daniela Solís y Manuel Rodrigo Cabello - IoT, una Raspberry Pi ...
 
El camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - IntroductionEl camino a las Cloud Native Apps - Introduction
El camino a las Cloud Native Apps - Introduction
 
El camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AIEl camino a las Cloud Native Apps - Azure AI
El camino a las Cloud Native Apps - Azure AI
 

Último

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
ItsSofi
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
coloradxmaria
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
Ing. Julio Iván Mera Casas
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
CesarPazosQuispe
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
samuelvideos
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
cofferub
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
vazquezgarciajesusma
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
raquelariza02
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
AlejandraCasallas7
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
zoecaicedosalazar
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
marianabz2403
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
SamuelRamirez83524
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
Fernando Villares
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
DanielErazoMedina
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
JimmyTejadaSalizar
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
DiegoCampos433849
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
cristianrb0324
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
IsabellaRubio6
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
Luis Enrique Zafra Haro
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
cdraco
 

Último (20)

Estructuras básicas_ conceptos básicos de programación.pdf
Estructuras básicas_  conceptos básicos de programación.pdfEstructuras básicas_  conceptos básicos de programación.pdf
Estructuras básicas_ conceptos básicos de programación.pdf
 
Conceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. TecnologíaConceptos Básicos de Programación. Tecnología
Conceptos Básicos de Programación. Tecnología
 
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB  S2. PARA VSATMANUAL DEL DECODIFICADOR DVB  S2. PARA VSAT
MANUAL DEL DECODIFICADOR DVB S2. PARA VSAT
 
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
Semana 10_MATRIZ IPER_UPN_ADM_03.06.2024
 
Desarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdfDesarrollo de habilidades de pensamiento (2).pdf
Desarrollo de habilidades de pensamiento (2).pdf
 
Conceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación ProyectoConceptos Básicos de Programación Proyecto
Conceptos Básicos de Programación Proyecto
 
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
(PROYECTO) Límites entre el Arte, los Medios de Comunicación y la Informática
 
proyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmusproyecto invernadero desde el departamento de tecnología para Erasmus
proyecto invernadero desde el departamento de tecnología para Erasmus
 
Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.Desarrollo de Habilidades de Pensamiento.
Desarrollo de Habilidades de Pensamiento.
 
trabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6ftrabajo de tecnologia, segundo periodo 9-6f
trabajo de tecnologia, segundo periodo 9-6f
 
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdfDESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
DESARROLO DE HABILIDADES DE PENSAMIENTO.pdf
 
Estructuras básicas_ conceptos de programación (1).docx
Estructuras básicas_ conceptos de programación  (1).docxEstructuras básicas_ conceptos de programación  (1).docx
Estructuras básicas_ conceptos de programación (1).docx
 
Posnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativaPosnarrativas en la era de la IA generativa
Posnarrativas en la era de la IA generativa
 
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
ACTIVIDAD DE TECNOLOGÍA AÑO LECTIVO 2024
 
maestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdfmaestria-motores-combustion-interna-alternativos (1).pdf
maestria-motores-combustion-interna-alternativos (1).pdf
 
Diagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestreDiagrama de flujo - ingenieria de sistemas 5to semestre
Diagrama de flujo - ingenieria de sistemas 5to semestre
 
Estructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdfEstructuras Básicas_Tecnología_Grado10-7.pdf
Estructuras Básicas_Tecnología_Grado10-7.pdf
 
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdfEstructuras Básicas_ Conceptos Basicos De Programacion.pdf
Estructuras Básicas_ Conceptos Basicos De Programacion.pdf
 
biogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectosbiogas industrial para guiarse en proyectos
biogas industrial para guiarse en proyectos
 
3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto3Redu: Responsabilidad, Resiliencia y Respeto
3Redu: Responsabilidad, Resiliencia y Respeto
 

DotNet 2019 | Alberto Varela - Infraestructura como código en Azure

  • 3. @artberri alberto@berriart.com Llámalo Full Stack, desarrollador generalista o como tú prefieras. Soy de esos desarrolladores a los que les gusta saber algo de todo, aunque nunca lleguen a saber mucho de nada. En 2015 la empresa para la que trabajaba comenzó una transición hacia la nube que incluía la automatización de múltiples procesos, incluyendo despliegues de aplicaciones y de infraestructura, y tuve la suerte de participar activamente en ella. No sé si venía de antes, pero es seguro que a partir de ese momento me convertí en un obseso de la automatización. Actualmente trabajo en Plain Concepts desde Bilbao. Alberto Varela Sánchez Desarrollador de software en Plain Concepts
  • 5. ¿Qué NO es DevOps?
  • 6. ¿Qué NO es DevOps? • No es no tener equipo de IT/Ops • No son (solamente) herramientas • No es (solamente) una cultura • No es (solamente) unir Dev y Ops • No es (solamente) un trabajo
  • 7. ¿Qué NO es DevOps? • No es no tener equipo de IT/Ops • No son (solamente) herramientas • No es (solamente) una cultura • No es (solamente) unir Dev y Ops • No es (solamente) un trabajo *https://theagileadmin.com/what-is-devops/
  • 8. Aún así, las herramientas son necesarias • Testing automatizado • Integración continua • Entrega continua • Infraestructura como código • Monitorización • Logging
  • 9. “No es para mí, yo ya tengo mi nube”
  • 10. ¿Es Azure Portal suficiente? Puede que sí, pero… • ¿Tienes que hacer cambios incrementales con cierta frecuencia en tu infraestructura? • La primera vez que vas a producción ¿Cuánto tardas en replicar la infraestructura de desarrollo? • Si te has tenido que recuperar alguna vez de un desastre ¿tenías todo documentado? • …
  • 11. “Si algo malo puede pasar, pasará” Ley de Murphy
  • 13. Like the principle that the same source code generates the same binary, an Infrastructure as Code model generates the same environment every time it is applied. Sam Guckenheimer (Product Owner for Azure Devops)
  • 14. ¿Qué es Infrastructure as Code? Básicamente: “Trata tu infraestuctura como si fuera tu aplicación” • Définela con Código • Qué se entienda, es tu documentación • Utiliza un control de versiones • Haz despliegues automáticos • Flexibiliza el despliegue • Despliegues atómicos e idempotentes What?
  • 15. ¿Por qué debería hacerlo? • Más automatización = Menos errores • Transparencia • Trazabilidad • Integridad • Reproducibilidad y repetibilidad • Tu documentación es la “única funete de verdad” • Anima a la colaboración entre operaciones y desarrollo Why?
  • 16. ¿Como empiezo? • Elige un proyecto fácil o pequeño, minimiza esfuerzo y riesgo • Si no lo has hecho antes encontrarás problemas, estás experimentando, así que maneja bien las expectativas • Recoge datos, antes y después, demuestra que funciona • Elige una buena herramienta ;) How?
  • 20. Algunos problemas con ARM • Demasiado verboso • Gestión de dependencias explícita • Modularización • Legibilidad y naming • “Escribibilidad”
  • 21. “Stop using ARM templates! Use the Azure CLI instead” Pascal Naber - MVP on Microsoft Azure
  • 22. ¡Yo ya tengo un script!
  • 23. Desventajas de un script • Idempotencia • Paralelización • Escalabilidad • Borrado de recursos explícito • Modularización • “Escribibilidad”
  • 26. • En 2015 fue comprado por RedHat que es la compañía que lo mantiene ahora. • Inicialmente fue concebido para “Configuración como código” o “Provisionamiento de software”. • Aún no tiene mucho soporte para Azure. • Está pensado para realizar “secuencias de comandos”, paralelizar es complicado.
  • 27. • Es una herramienta creada por Hashicorp. Autores de Vagrant, Consul, Packer,…. • Introduce el concepto de ‘plan’ para poder previsualizar los cambios antes de que sucedan. • Usa una sintaxis propia, bastante sencilla y fácil de aprender, pero nueva. • Tiene una comunidad activa.
  • 28. • Es la más reciente de las herramientas y está soportada por una empresa relativamente pequeña gestionada por un grupo inversor. • Su funcionamiento es muy similar al de Terraform pero es la primera en utilizar lenguajes de programación de “verdad” (JS, Go o Python).
  • 29. Comparativa: tecnologías ARM ANSIBLE TERRAFORM PULUMI Sistema Operativo donde usar la CLI Todos Linux Todos Todos Lenguaje para declarar recursos JSON YAML HCL / JSON JS / Typescript / Go / Python Open Source / License Sí (CLI) MIT Sí GPL v3.0 Sí Mozilla Public 2.0 Sí Apache 2.0 Escrito en Python Python Go Go + Opción Premium No No Sí Sí
  • 30. Comparativa: soporte ARM ANSIBLE TERRAFORM PULUMI Recursos de Azure disponibles All (?) 146 543 342 Proveedores cloud 1 41 103 6 Azure Cloud Shell Sí Sí Sí No Disponible desde… Build 2014 / 2015 Abril 2016 (2.1) Junio 2015 (0.6) Junio 2018 Stackoverflow questions 1 486 11 974 (84) 2 893 (256) 25 (6)
  • 31. Comparativa: funcionamiento ARM ANSIBLE TERRAFORM PULUMI Gestión de estado Basado en nombre Basado en nombre Fichero de estado Fichero de estado Borrado de recursos Borrado de código (complete mode) Basado en estado de recurso Borrado de código Borrado de código Dependencias Explícitas & Implícitas Explícitas Implícitas Implícitas Paralelismo Sí No por defecto Sí Sí Extensible/Plugins Plantillas de ejemplo Sí pero no Sí No
  • 32. Cuando usar cada uno ARM Especialmente indicado si utilizas las últimas funcionalidades de Azure y si toda tu infraestrutura está y estará basada siempre en Azure. Ansible Ahora no parece una herramienta suficientemente madura para IaC, pero puede ser una opción si usas mucha VM y ya las configuras con Ansible. TERRAFORM Es la alternativa a ARM más utilizada, más madura y con gran soporte. La recomendaría a menos que ya tengas Know How en ARM. PULUMI Es una herramienta joven y le falta comunidad, pero puede ser una gran opción cuando es el propio equipo de desarrollo quien opera.
  • 33. Questions & Answers Demo Project: https://berriart.visualstudio.com/Dotnet2019Demo Feedback https://feedback.dotnet2019.com/
  • 34. Thanks and … See you soon! Thanks also to the sponsors. Without whom this would not have been posible.