SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
Just Code
How I learned to write code and stop worrying
about the environment
¡Hola !
Enrique Sánchez
Tester & Automation Engineer
PhD Student
• Technical Team Leader y Responsable Técnico del Área de
Testing en
!
!
!
• Más de 3 años de experiencia en testing en empresas como
!
!
!
• Evangelista BDD y Agile
¿Quién soy?
¿Porquéestacharla?
¿Cuántas veces hemos intentado probar un
“juguete” nuevo y hemos dejado el ordenador
lleno de basura?
¿Cuántas veces tenemos que luchar contra
configs porque tenemos una versión de SO
“especial”?
¿Por qué si intentamos subir a producción/
integrado/el ordenador de al lado un código
que en nuestro local funciona pero que
mágicamente deja de funcionar?
¿¿¡¡Porquénopuedosólo
programar!!??
PongamosunCasoPrácticoEl extraordinario caso de Joan y Enric
Joan y Enric son dos colegas que tienen una idea…
Crear un programa con las tecnologías más
hipsters del momento y vendérselo a
Enseguida empiezan a pensar y les salen unas
cuantas tecnologías que pueden usar:
Tras arduas discusiones deciden que usarán un
SO concreto para desarrollar
!
!
Y llevarán su aplicación a Amazon Web Services
¿Problemas?
Hacer pruebas ahí es muy caro
Tienen que estar conectados por ssh
constantemente
Es un engorro tener que pusiera
constantemente a un repo para hacer pruebas
en remoto. ¿Qué pasa si se rompe algo?
Virtualización
Enric investiga por Internet y descubre algo
llamado
¿QuéesVagrant?
Vagrant es un gestor de máquinas virtuales
Permite provisionar las máquinas mediante un
archivo de configuración llamado Vagrantfile
Puede ser provisionado usando:
Bash,Puppet,Chef,Docker…
Permite tener versionado la forma en la que se
provisiona una máquina (virtual o física)
Pueden hacer pruebas en local sin miedo a
romper nada
Además descubre una cosa llamada
¿QuéesPacker?
Packer is a tool for creating identical machine
images for multiple platforms from a single source
configuration.
Packer permite crear una máquina virtual
precompilada
Puedes tener la misma versión para producción
(Amazon) y para local (Vagrant)
Packer+Vagrant+Puppet
DemoI
Joan y Enric están muy felices y contentos, tienen un
entorno para jugar y hacer experimentos
Joan se encargará del Front y Enric del Back
Joan decide usar 	
  	
  	
  	
  	
  	
  	
  	
  	
  y
!
Enric piensa que NodeJS es muy bonito pero
que prefiere y que mejor usa
Joan y Enric se paran a pensar y dibujan un
esbozo de cómo sería la arquitectura
FrontEndBackEndHype
QueueDB
JHipster
http://jhipster.github.io/
¿Cómometemosestoenuna
VM?
¿Puppet, Chef, Bash? Están bien para pequeñas
cosas pero levantar un servicio es un “poco”
más complejo de lo que parece
Además, ¿qué pasa si queremos que las BBDD
estén en otra máquina?
Docker is an open platform for developers and
sysadmins to build, ship, and run distributed
applications.
Extiende LXC (contenedores que corren en
paralelo sobre la misma máquina anfitriona)
No emula una máquina virtual completa ni
corre un sistema operativo íntegro dentro de
ella, a costa de quedar “atado” al sistema
operativo anfitrión, que se expone a las
aplicaciones
¿Cómogestionanelsoftware?
flow
Vagrant+Puppet+Docker+
stack
DemoII
Pero el código aumenta y hackear en paralelo a
ver qué se consigue deja de ser una opción si
quieren conseguir algo más estable.
Pero el código aumenta y hackear en paralelo a
ver qué se consigue deja de ser una opción si
quieren conseguir algo más estable.
Integración
Continua
¿QuéesIC?
Continuous Integration is a software
development practice where members of a
team integrate their work frequently (…)
Each integration is verified by an automated
build (including test) to detect integration errors
as quickly as possible
Un job para Máster …
otro que pruebe Release …
otro para Develop/Rama …
otro para desplegar el código en los entornos
Una vez que el software funciona hay que
desplegarlo en Amazon…
Una vez que el software funciona hay que
desplegarlo en Amazon…
Artefactos, versiones del front…
Rock’n’roll
DemoIII
Preguntas?
Gracias!
Enrique Sánchez | hola@enrique-sanchez.me | @EnriqueSanchezB

Weitere ähnliche Inhalte

Ähnlich wie Just Code or How I learned to write code and stop worrying about the environment

Historia de c++
Historia de c++Historia de c++
Historia de c++edwin562
 
Historia de c++
Historia de c++Historia de c++
Historia de c++david-27
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.jsINSIGNIA4U
 
Historia de c++
Historia de c++Historia de c++
Historia de c++edwin562
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Ricardo Guerrero Gómez-Olmedo
 
Software libre en entidades educacionales
Software libre en entidades educacionalesSoftware libre en entidades educacionales
Software libre en entidades educacionalesLuis Lastra Cid
 
Taller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo LinuxTaller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo LinuxJuan Percy Rojas Cruz
 
Taller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo LinuxTaller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo LinuxJuan Percy Rojas Cruz
 
Introducción a la Arquitectura y Desarrollo en KDE4
Introducción a la Arquitectura y Desarrollo en KDE4Introducción a la Arquitectura y Desarrollo en KDE4
Introducción a la Arquitectura y Desarrollo en KDE4Arturo Hoffstadt
 
Virtualizacion o el_arte_de_tener_muchas_pcs_e
Virtualizacion o el_arte_de_tener_muchas_pcs_eVirtualizacion o el_arte_de_tener_muchas_pcs_e
Virtualizacion o el_arte_de_tener_muchas_pcs_eMarco Carranza
 
Internet123456789
Internet123456789Internet123456789
Internet123456789Javy Zamora
 
Iniciando c
Iniciando cIniciando c
Iniciando c____
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOnacho mascort
 
PulpoCon23 Los Datos que no sabes que tienes y como usarlos
PulpoCon23 Los Datos que no sabes que tienes y como usarlosPulpoCon23 Los Datos que no sabes que tienes y como usarlos
PulpoCon23 Los Datos que no sabes que tienes y como usarlosNino Dafonte
 
Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)
Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)
Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)Osvaldo Mercado Coss
 
historia del lenguaje c++
historia del lenguaje c++historia del lenguaje c++
historia del lenguaje c++Carlota Guzman
 

Ähnlich wie Just Code or How I learned to write code and stop worrying about the environment (20)

Historia de c++
Historia de c++Historia de c++
Historia de c++
 
Historia de c++
Historia de c++Historia de c++
Historia de c++
 
Code Blast 2012 - Node.js
Code Blast 2012 - Node.jsCode Blast 2012 - Node.js
Code Blast 2012 - Node.js
 
Historia de c++
Historia de c++Historia de c++
Historia de c++
 
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
Spain AI 2022 - ¡Oh, un modelo de ML, vamos a desplegarlo! - Machine Learning...
 
Historia de c++
Historia de c++Historia de c++
Historia de c++
 
El coste de no usar integración continua
El coste de no usar integración continuaEl coste de no usar integración continua
El coste de no usar integración continua
 
Software libre en entidades educacionales
Software libre en entidades educacionalesSoftware libre en entidades educacionales
Software libre en entidades educacionales
 
Taller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo LinuxTaller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo Linux
 
Taller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo LinuxTaller de Mono - Desarrollo Visual en .NET bajo Linux
Taller de Mono - Desarrollo Visual en .NET bajo Linux
 
Introducción a la Arquitectura y Desarrollo en KDE4
Introducción a la Arquitectura y Desarrollo en KDE4Introducción a la Arquitectura y Desarrollo en KDE4
Introducción a la Arquitectura y Desarrollo en KDE4
 
Virtualizacion o el_arte_de_tener_muchas_pcs_e
Virtualizacion o el_arte_de_tener_muchas_pcs_eVirtualizacion o el_arte_de_tener_muchas_pcs_e
Virtualizacion o el_arte_de_tener_muchas_pcs_e
 
Internet123456789
Internet123456789Internet123456789
Internet123456789
 
Iniciando c
Iniciando cIniciando c
Iniciando c
 
Conceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEOConceptos básicos y aplicaciones prácticas de programación para SEO
Conceptos básicos y aplicaciones prácticas de programación para SEO
 
PulpoCon23 Los Datos que no sabes que tienes y como usarlos
PulpoCon23 Los Datos que no sabes que tienes y como usarlosPulpoCon23 Los Datos que no sabes que tienes y como usarlos
PulpoCon23 Los Datos que no sabes que tienes y como usarlos
 
Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)
Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)
Geekend 2018 - No trabajes en Local! (Utiliza Vagrant o Docker)
 
Organizacion computacional
Organizacion computacionalOrganizacion computacional
Organizacion computacional
 
historia del lenguaje c++
historia del lenguaje c++historia del lenguaje c++
historia del lenguaje c++
 
Tecnodiario
TecnodiarioTecnodiario
Tecnodiario
 

Mehr von Enrique Sánchez-Bayuela (10)

Lecciones aprendidas con appium
Lecciones aprendidas con appiumLecciones aprendidas con appium
Lecciones aprendidas con appium
 
Workshop calabash appium
Workshop calabash appiumWorkshop calabash appium
Workshop calabash appium
 
Capybara vs watir
Capybara vs watirCapybara vs watir
Capybara vs watir
 
Cómo ser un Agile Tester (y no morir intentándolo)
Cómo ser un Agile Tester (y no morir intentándolo)Cómo ser un Agile Tester (y no morir intentándolo)
Cómo ser un Agile Tester (y no morir intentándolo)
 
Workshop Calabash Appium
Workshop Calabash AppiumWorkshop Calabash Appium
Workshop Calabash Appium
 
Seminario Calabash - VLCTesting 2014
Seminario Calabash - VLCTesting 2014Seminario Calabash - VLCTesting 2014
Seminario Calabash - VLCTesting 2014
 
BDD para la mejora de la calidad software
BDD para la mejora de la calidad softwareBDD para la mejora de la calidad software
BDD para la mejora de la calidad software
 
Why do you say BDD if it is Cucumber?
Why do you say BDD if it is Cucumber?Why do you say BDD if it is Cucumber?
Why do you say BDD if it is Cucumber?
 
BDD & Cucumber
BDD & CucumberBDD & Cucumber
BDD & Cucumber
 
Tuenti & QA
Tuenti & QATuenti & QA
Tuenti & QA
 

Kürzlich hochgeladen

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOELIAMARYTOVARFLOREZD
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++luzgaray6
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Leonardo J. Caballero G.
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Leonardo J. Caballero G.
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxcalzadillasluis134
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.CeteliInmaculada
 

Kürzlich hochgeladen (6)

SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVOSISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
SISTEMA INTEGRADO DE ADMINISTRACION FINANCIERA - SIAF MODULO ADMINISTRATIVO
 
Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++Semana 5-Conceptualización del lenguaje de programación C++
Semana 5-Conceptualización del lenguaje de programación C++
 
Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024Introducción a Plone CMS - World Plone Day 2024
Introducción a Plone CMS - World Plone Day 2024
 
Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024Theme design in Plone 6 - World Plone Day 2024
Theme design in Plone 6 - World Plone Day 2024
 
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptxMacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
MacOS SISTEMA OPERATIVO CARACTERISTICAS.pptx
 
Presentación de html, css y javascript.
Presentación  de html, css y javascript.Presentación  de html, css y javascript.
Presentación de html, css y javascript.
 

Just Code or How I learned to write code and stop worrying about the environment