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

  • 425 views
Uploaded on

Cómo crear un entorno de desarrollo que pueda ser llevado a producción

Cómo crear un entorno de desarrollo que pueda ser llevado a producción

More in: Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
425
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
4
Comments
0
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Just Code How I learned to write code and stop worrying about the environment
  • 2. ¡Hola ! Enrique Sánchez Tester & Automation Engineer PhD Student
  • 3. • 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?
  • 4. ¿Porquéestacharla?
  • 5. ¿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”?
  • 6. ¿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?
  • 7. ¿¿¡¡Porquénopuedosólo programar!!??
  • 8. PongamosunCasoPrácticoEl extraordinario caso de Joan y Enric
  • 9. Joan y Enric son dos colegas que tienen una idea…
  • 10. Crear un programa con las tecnologías más hipsters del momento y vendérselo a
  • 11. Enseguida empiezan a pensar y les salen unas cuantas tecnologías que pueden usar:
  • 12. Tras arduas discusiones deciden que usarán un SO concreto para desarrollar ! ! Y llevarán su aplicación a Amazon Web Services
  • 13. ¿Problemas?
  • 14. 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?
  • 15. Virtualización
  • 16. Enric investiga por Internet y descubre algo llamado
  • 17. ¿QuéesVagrant?
  • 18. Vagrant es un gestor de máquinas virtuales Permite provisionar las máquinas mediante un archivo de configuración llamado Vagrantfile
  • 19. Puede ser provisionado usando: Bash,Puppet,Chef,Docker…
  • 20. 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
  • 21. Además descubre una cosa llamada
  • 22. ¿QuéesPacker?
  • 23. Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.
  • 24. Packer permite crear una máquina virtual precompilada Puedes tener la misma versión para producción (Amazon) y para local (Vagrant)
  • 25. Packer+Vagrant+Puppet DemoI
  • 26. 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
  • 27. Joan decide usar                  y ! Enric piensa que NodeJS es muy bonito pero que prefiere y que mejor usa
  • 28. Joan y Enric se paran a pensar y dibujan un esbozo de cómo sería la arquitectura
  • 29. FrontEndBackEndHype QueueDB
  • 30. JHipster http://jhipster.github.io/
  • 31. ¿Cómometemosestoenuna VM?
  • 32. ¿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?
  • 33. Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.
  • 34. 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
  • 35. ¿Cómogestionanelsoftware?
  • 36. flow
  • 37. Vagrant+Puppet+Docker+ stack DemoII
  • 38. 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.
  • 39. 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
  • 40. ¿QuéesIC?
  • 41. 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
  • 42. Un job para Máster … otro que pruebe Release … otro para Develop/Rama …
  • 43. otro para desplegar el código en los entornos
  • 44. Una vez que el software funciona hay que desplegarlo en Amazon…
  • 45. Una vez que el software funciona hay que desplegarlo en Amazon… Artefactos, versiones del front…
  • 46. Rock’n’roll DemoIII
  • 47. Preguntas? Gracias!
  • 48. Enrique Sánchez | hola@enrique-sanchez.me | @EnriqueSanchezB