Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Webinar Arquitectura de Microservicios

756 views

Published on

Webinar para describir las diversas arquitecturas y componentes de microservices

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Webinar Arquitectura de Microservicios

  1. 1. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Webinar “Arquitectura de Microservicios”
  2. 2. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Expositor: Domingo Suárez (México) Ingeniero de software por 17 años, trabajando principalmente en el ecosistema JVM para diferentes sectores como Financiero, Medios de comunicación, eCommerce y consultoría. He sido expositor en congresos como SOALatam (Perú), Spring IO (Madrid),Grails eXchange (Londres), BarcelonaJUG, Mexico City JVM Group. Actualmente soy CTO en una compañía de Inteligencia Artificial desarrollando tecnología con Deep Learning y sistemas distribuidos. @domix
  3. 3. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Acerca de Nosotros
 
 Empresa líder de capacitación en las principales y más reconocidas tecnologías, metodologías y marcos de referencia de TI, tales como SOA, BPM, Cloud, Arquitectura Empresarial TOGAF, Hadoop-Big Data de Cloudera, Certificaciones ISO: ISO 27001, ISO 31000, ISO 22301, ISO 27005, entre otros. Proveemos entrenamiento en toda la región.
  4. 4. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Te invitamos a participar en nuestro próximo curso on-line en vivo
 Microservices Workshop Inicio 30 de mayo. Informes: informes@cac-ti.com
  5. 5. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Agenda • SOA • REST • Microservices • Arquitectura • Frameworks • Herramientas
  6. 6. Service Oriented Architecture
  7. 7. SOA • SOA implica demasiadas cosas. En un mundo ideal: • Deseable que las aplicaciones desaparezcan • Existen core services que proveen lógica de negocio y datos • UI que sirven de agregadores y aplican presentaciones.
  8. 8. SOA • SOA implica demasiadas cosas. • Comunicación entre sistemas usando una estructura estándar, generalmente un dialecto basado en XML. "CORBA with angle brackets" • WS-*. Infierno de XML. • Mensajería asíncrona para transferir documentos. Enterprise Application Integration (EAI)
  9. 9. SOA • Riesgos y problemas principales: • Demasiada carga, muchas veces innecesaria. • Costosas implementaciones, tanto en consultoría como en herramientas y runtimes. No olvidemos la operación. • Complejidad innecesaria. • Vendor lock-in
  10. 10. Alternativas al típico SOA • Soluciones in-house usando frameworks típicos • OpenSource runtimes & tools
  11. 11. ¿Necesitamos SOA?
  12. 12. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com ¿Que tipo de organización eres?
  13. 13. REST • Todo lo que puedo decirles sobre REST probablemente sea una mentira (refraseando a un amigo @tomaslin)
  14. 14. RESTafarians dicen:
  15. 15. REST • JSON sobre HTTP • ¿Hypermedia? • Hypermedia APIs
  16. 16. designinghypermediaapis.com
  17. 17. Developer Experience • En el SXSW de 2014 Jeremiah Lee hablo de ‘Developer Experience’ DX http://developerexperience.org
  18. 18. http://dx.jeremiahlee.com
  19. 19. Diseño de APIs REST simples
  20. 20. Micro services
  21. 21. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Microservices • Estilo arquitectónico • Cada servicio funcional o un conjunto muy pequeño se ejecutan como procesos independientes. • Generalmente usan protocolos ligeros y estándar como HTTP o mensajería (JMS, AMQP, etc). • Despliegue independiente. • Pueden o no contener todos los recursos que necesitan. Es decir usan otros servicios para funcionar.
  22. 22. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Microservices • Pueden estar escritos en diferentes lenguajes y ejecutarse en diversos runtimes. • Pueden usar diferentes mecanismos de almacenaje (storage). Relacionales o no-relacionales. • Es común que los datos no estén centralizados.
  23. 23. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Microservices • El enfoque es muy similar a SOA. • La idea principal es no tener paquetes monolíticos de servicios desplegables. • Los paquetes monolíticos de servicios es la manera natural de construir servicios. • Con el tiempo es difícil mantener un paquete monolítico. • Base enorme de código. Paquetes enormes para el despliegue que toma bastante tiempo en despliegue.
  24. 24. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Servicios monolíticos • Cambios “pequeños” necesitan desplegar el paquete completo. • Dependiendo el entorno y la deuda técnica, muchas veces implica hacer despliegues en horas no productivas y tener downtimes. • A la larga el código termina muy acoplado entre servicios internos.
  25. 25. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Componentes en Microservices • La idea es construir componentes, siempre ha sido nuestro sueño poder rehusar y conectar componentes existentes. • Hemos logrado esto parcialmente usando bibliotecas de componentes. Que al final se convierten en dependencias de nuestros servicios. Con todo lo que ello implica. • Los servicios son componentes que se ejecutan fuera de nuestros procesos. Solo conocemos la interfaz.
  26. 26. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Diseño • En diseños monolíticos, es común que existan diversos equipos acorde a cada capa definida. Vista, lógica de negocio, datos, etc. • Algunos cambios implican que todos los equipos participen, para una organización significa costo. • La organización para construir microservices implica que el equipo sea cross-functional, con habilidades para cubrir todas las capas necesarias para cada servicio. Los servicios se organizan en torno a la capacidad de negocio.
  27. 27. Arquitectura
  28. 28. Toolkits
  29. 29. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Dropwizard • Muy maduro, Yammer lo usa. • Basado en estándares como JAX-RS con Jersey • Jackson para JSON • Muy amistoso para DevOps, usa Metrics para monitorear salud de los servicios. • Incluye Jetty y no necesita un AppServer para ejecutarse. !Mira mamá, sin AppServer¡
  30. 30. Ratpack @Grab('org.slf4j:slf4j-simple:1.7.16') @Grab('io.ratpack:ratpack-groovy:1.2.0') import static ratpack.groovy.Groovy.ratpack ratpack { handlers { get(":name") { render "Hello $pathTokens.name!" } get { render "Hello World!" } } }
  31. 31. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Ratpack • Súper simple toolkit para crear webapps, como APIs • Construido sobre Apache Netty. !Mira mamá, sin AppServer¡
  32. 32. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Spring Boot • Usa la base de Spring Framework • Soporte para todas las tecnologías de Pivotal • Se ejecuta sobre Apache Tomcat empotrado • !Mira mamá, sin AppServer¡
  33. 33. Despliegue
  34. 34. The AppServer is DEAD
  35. 35. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com API management • Ciertos requerimientos no funcionales no deben ser implementados en los microservices. • Existen diversas herramientas para aplicar ciertos servicios necesarios como: – Directorio/Descubrimiento – Seguridad – Monitoreo – Métricas – Escalamiento/Aprovisionamiento
  36. 36. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Cosas a observar • Complejidad de un sistema distribuido • Hacer testing es mas complejo • Transacciones distribuidas. Difícil implementar • Deployment • Consumo de recursos
  37. 37. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Sistemas distribuidos (Falacias) • La red es confiable. • La latencia es cero. • Ancho de banda es infinita. • La red es segura. • Topología no cambia. • Hay un administrador. • El costo del transporte es cero. • La red es homogénea.
  38. 38. Herramientas Facilitando el computo distribuido
  39. 39. https://github.com/Netflix/hystrix
  40. 40. Spring Cloud Integra un conjunto de herramientas para sistemas distribuidos, a pesar del nombre no solo sirve para el cloud
  41. 41. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Una opción más • Al final la organización debe analizar que opción es la ideal para si misma. • SOAP/WS-* no son la única opción. • ESB es fantástico si se usa adecuadamente con mensajería.
  42. 42. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Te invitamos a participar en nuestro próximo curso on-line en vivo
 Microservices Workshop Inicio 30 de mayo. Informes: informes@cac-ti.com
  43. 43. Centro de Alta Capacitación en Tecnologías de la Información E-mail: informes@cac-ti.com Web: http://www.cac-ti.com Créditos de las fotos • https://www.flickr.com/photos/kenmainr/9099640785 • https://www.flickr.com/photos/katsrcool/12311382904 • https://www.flickr.com/photos/universalpops/ 6830228354 • https://www.flickr.com/photos/jeezny/3477733058 • https://www.flickr.com/photos/estherase/128983854 • https://www.flickr.com/photos/thelord89/8375835939/ • https://www.flickr.com/photos/ seattlemunicipalarchives/2516780900 • https://www.flickr.com/photos/dvids/9523755479

×