SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
1
MicroServicios
Techiepoint #2
Sergio Maurenzi
Arquitectura e Innovación – IT
Telecom Argentina
30-Abr-2015
Descomposición de Servicios
Arquitectura Monolítica vs. SOA vs. Microservicios
Características de los Microservicios
Ventajas / Desventajas
Primeras experiencias
Conclusión
AGENDA
Descomposición de Servicios
Arquitectura Monolítica vs. SOA vs. Microservicios
Características de los Microservicios
Ventajas / Desventajas
Primeras experiencias
Conclusión
AGENDA
Arquitectura Monolítica
Aplicación simple – tres capas
Arquitectura Monolítica - Simple CRM
• Simple de desarrollar - único ciclo de vida;
IDEs preparadas para una única aplicación
• Simples de Probar (testing) - pruebas
sobre una única aplicación
• Simples de desplegar - copiar un archivo o
un directorio, a un equipo (servidor)
• Simple de escalar - se pueden ejecutar
múltiples copias de la aplicación detrás de
un balanceador de carga.
Arquitectura Monolítica – Pros y Contras
Para aplicaciones
simples …
Para aplicaciones
complejas …
• Complejo manejar Cambios – por cada
cambio, à redesplegar toda la aplicación.
+Riesgos à +miedos à +tests à +tiempos à
+coordinación y +comunicación
• Mayores tiempos – el negocio debe esperar
• Calidad no garantizada – por dependencias
en el código.
• Escalabilidad y Resilencia disminuida – si
un módulo requiere escalar lo debemos hacer
para toda la aplicación. Si algo falla, todo deja
de funcionar.
SOA (Service Oriented Architecture)
La Arquitectura Orientada a Servicios (SOA) es un paradigma de arquitectura para
diseñar y desarrollar sistemas distribuidos. Las soluciones SOA han sido creadas para
satisfacer los objetivos de negocio los cuales incluyen facilidad y flexibilidad de
integración con sistemas legados, alineación directa a los procesos de negocio
reduciendo costos de implementación, innovación de servicios a clientes y una
adaptación ágil ante cambios incluyendo reacción temprana ante la competitividad.(*)
(*) Wikipedia
http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
Qué son los Microservicios?
Microservicios*: es un estilo de arquitectura, una
forma de desarrollar una aplicación, basado en un
conjunto de pequeños servicios, cada uno corriendo en
sus propios procesos y comunicándose mediante
mecanismos livianos, generalmente un recurso API de
HTTP.
Estos servicios son altamente desacoplados, construidos alrededor
de funcionalidades de negocio y desplegados de manera
independiente a través de una maquinaria de despliegue
completamente automatizada.
(*) Según Martin Fowler y James Lewis - Thoughtworks
http://martinfowler.com/articles/microservices.html
Arquitectura Monolítica vs. Microservicios
Una aplicación monolítica pone
todas sus funcionalidades en
un único proceso…
Una arquitectura de
microservicios pone cada
elemento de funcionalidad
en un servicio separado…
…y escala replicando lo
monolítico en múltiples servidores
…y escala distribuyendo dichos servicios a
través de los servidores, según se requiera
Monolítico SOA Microservicios
Monolítico vs. SOA vs. Microservicios
1990´s 2000´s 2010´s
Acoplamiento fuerte Acoplamiento débil Desacoplado
Ej. evolución arq. Monolítica a Microservicios
Monolítico C++ à Perl / C++ à Java / Scala à microservicios
Monolítico Perl à Monolítico C++ à Java à microservicios
Monolítico Rails à JS / Rails / Scala à microservicios
Monolítico Java à Java / Scala à microservicios
1) Rápido Crecimiento
2) Control de Costos
3) Aumentar la Velocidad
Drivers comunes
Descomposición de Servicios
Arquitectura Monolítica vs. Microservicios vs. SOA
Características de los Microservicios
Ventajas / Desventajas
Primeras experiencias
Conclusión
AGENDA
El cubo de escalamiento aplicativo
Eje Y: división por
función o servicio
Eje X: duplicación horizontal
Punto de
partida
Sin divisiones
Un Sistema/
Servicio
Monolítico
Muchos
Sistemas, cada
uno clonado y
balanceado x
carga
Sin divisiones
Más datos de
sector o
usuarios
Escalamiento
casi infinitoDivisión por
Servicio o
información
similar
Ej. escalamiento aplicativo en los 3 ejes
Single Responsibility Principle – Principio Responsabilidad Individual
“There should never be more than one
reason for a class to change”
Se deben reunir aquellas cosas que cambian
por la misma razón y separar aquellas cosas
que cambian por diferentes razones
(*) SRP - Principio de diseño de Programación Orientada a Objetos - Robert C. Martin
http://www.objectmentor.com/resources/articles/srp.pdf
Demasiadas
responsabilidades
en una sola cosa
pueden causar
problemas
Ej. simple: diseño de una clase que llama a un número
de móvil específico, con previa validación del mismo
Arquitectura Microservicios – Ej. CRM
Arquitectura Microservicios – Cómo interactúan los clientes?
Arquitectura Microservicios – Cómo interactúan los clientes?
Arquitectura Microservicios – Cómo interactúan los clientes?
Arquitectura Microservicios – Ej. CRM
Descomposición de Servicios
Arquitectura Monolítica vs. Microservicios vs. SOA
Características de los Microservicios
Ventajas / Desventajas
Primeras experiencias
Conclusión
AGENDA
Ventajas / Desventajas
Microservicios
• Servicios pequeños – mejor entendimiento
de los desarrolladores
• Despliegue independiente – autonomía y
velocidad en la cadena de despliegue
• Desarrollo escalable - organiza el esfuerzo
de desarrollo en varios equipos
• Aislamiento de fallas – se afecta sólo el
servicio donde se produce la falla
• Libre selección de tecnología – libera
compromiso tecnológico y habilita probar
nuevas tecnologías más fácilmente
Arquitectura Microservicios – Pros y Contras
• Mayor complejidad – desarrollo y testing mas
complejo por sistema distribuido
• Transacciones distribuidas por múltiples
servicios – manejo más complejo
• Complejidad en la implementación –
complejidad operativa de despliegue,
monitoreo y gestión
Descomposición de Servicios
Arquitectura Monolítica vs. SOA vs. Microservicios
Características de los Microservicios
Ventajas / Desventajas
Primeras experiencias
Conclusión
AGENDA
#1 Componentización a través de servicios
Componentes = Servicios, No Bibliotecas
Ley de Conway: "Any organization that designs a system (defined broadly) will produce
a design whose structure is copy of the organization's communication structure.”
-- Melvyn Conway, 1967
Especialistas UI
Especialistas
Middeware
DBAs
#2 Organizado en torno a capacidades de negocio
Organización Tradicional
#2 Organizado en torno a capacidades de negocio
Organización Microservicios
#2 Organizado en torno a capacidades de negocio
Organización en Netflix
Fuente: Adrian Cockcroft
#3 Productos, no Proyectos
#4 Extremos inteligentes, tuberías bobas
#4 Extremos inteligentes, tuberías bobas
Orquestación Coreografía
Vs.
Ej. Orquestación vs. Coreografía
1.  Crear registro de fidelidad/lealtad y acreditarle una
cantidad de puntos de bienvenida
2.  Enviarle un kit de bienvenida, a través del correo postal
3.  Enviarle un correo electrónico de bienvenida al cliente
Servicio CRM,
pasos posteriores
al alta de un
nuevo cliente
Ej. Orquestación vs. Coreografía, cont.
Ej. Orquestación vs. Coreografía, cont.
#5 Gobierno descentralizado
#6 Gestión de datos descentralizada Domain-
Driven
Design
• DDD es un patrón de diseño
• Dominio: contexto del problema real de negocio
• Modelo: abstracción del dominio
• Software design ≠ Code Design
• Metodologías: Waterfalls vs. Agile
• Colaboración entre expertos de dominio y
especialistas de software
• Idioma común = Ubiquitous Language
#6 Gestión de datos descentralizada CQRS
#6 Gestión de datos descentralizada Persistencia
Políglota
#7 Automatización de la infraestructura
Clave:
1.  Automatización
2.  Control de versiones
y gestión de las
configuraciones
3.  Arquitectura
#8 Diseño pensado en las fallas
bulkheads
circuit breakers
timeouts
#8 Diseño pensado en las fallas
timeouts
Ej. Portabilidad Numérica Móvil: Mensajes SOAP
portin
#8 Diseño pensado en las fallas
circuit breakers
#8 Diseño pensado en las fallas
circuit breakers
Ej. Problemas con robot “validar IMSI”
#8 Diseño pensado en las fallas
bulkheads
Ej. Separación ventas internas OC / externas AC
#8 Diseño pensado en las fallas
Descomposición de Servicios
Arquitectura Monolítica vs. SOA vs. Microservicios
Características de los Microservicios
Ventajas / Desventajas
Primeras experiencias
Conclusión
AGENDA
Hecho en casa
CRM Prepago
Web (FE)
API Gateway
•  Solución Front-End
ejecutada en el browser
utilizando JavaScript,
Angular, Jquery, Bootstrap.
•  Basada en Código Abierto
•  Tecnologías y prácticas de
uso en el mercado
•  Soporte comunitario de las
herramientas
•  Construcción de servicios
(FE / BE) por equipos
diferentes de desarrollo.
BOPCRM Prepago (BE)
Ej. CRM Prepago
Utiliza
consulta
completa
de línea
para el
estado
Consulta Lite de
saldo
Consulta histórico
de recargas
Consulta de
linea
Ej. CRM Prepago Web (FE)
Preventa /
CatálogoVenta
productos
Ej. CRM Prepago – Servicios Back End (BE)
Ej. CRM Prepago – Equipo
Descomposición de Servicios
Arquitectura Monolítica vs. SOA vs. Microservicios
Características de los Microservicios
Ventajas / Desventajas
Primeras experiencias
Conclusión
AGENDA
Recap. Microservicios
ü  Servicios pequeños
ü  Contexto acotado, hacen una cosa bien
ü  Organizados en torno a capacidades de negocio
ü  Extremos inteligentes, tuberías bobas
ü  Productos, no proyectos
ü  Tecnología heterogénea
ü  Gestión de datos descentralizada
ü  Automatización à Continuous Delivery, DevOps
ü  Diseño contemplando fallas à Organización Antifrágil
Conclusión
Los microservicios representan,
un nuevo estilo de diseño de software,
una nueva manera de optimizar en velocidad,
de reemplazar los silos por equipos de alto desempeño,
de generar una cultura de gran autonomía y
responsabilidad, en resumen…
de generar valor al negocio.
Muchas Gracias!
@sergiomaurenzi
sergiomaurenzi.blogspot.com.ar
sergio.maurenzi@personal.com.ar
ar.linkedin.com/in/sergiomaurenzi
Referencias
[1] Microservices - Martin Fowler / James Lewis
http://martinfowler.com/articles/microservices.html
[2] eBay Architecture - Randy Shoup & Dan Pritchett / Tony Ng
http://www.slideshare.net/RandyShoup/the-ebay-architecture-striking-a-balance-between-site-stability-feature-velocity-performance-and-cost
http://www.slideshare.net/tcng3716/ebay-architecture?next_slideshow=1
[3] Episode 216 - Modern Cloud-based platform - Adrian Cockcroft
http://www.se-radio.net/2014/12/episode-216-adrian-cockcroft-on-the-modern-cloud-based-platform/
[4] The Art of Scalability - Martin Abbott y Michael Fisher
http://theartofscalability.com
[5] Single Responsibility Principle - Robert C. Martin
http://programmer.97things.oreilly.com/wiki/index.php/The_Single_Responsibility_Principle
http://www.objectmentor.com/resources/articles/srp.pdf
[6] A pattern language for microservices - Chris Richardson
http://microservices.io/patterns/index.html
[7] The Conway's Law - The original paper - Melvin Conway
http://www.melconway.com/Home/Committees_Paper.html
[8] A conversation with Werner Vogels (Amazon CTO)
https://queue.acm.org/detail.cfm?id=1142065
[9] Domain-Driven Design
http://dddcommunity.org/learning-ddd/what_is_ddd/
http://www.infoq.com/resource/minibooks/domain-driven-design-quickly/en/pdf/DomainDrivenDesignQuicklyOnline.pdf
[10] Episode 218 - CQRS (Command Query Responsibility Segregation) - Udi Dahan
http://www.se-radio.net/2015/01/episode-218-udi-dahan-on-cqrs-command-query-responsibility-segregation/
Referencias, cont.
[11] Episode 221 - Continuous Delivery - Jez Humble
http://www.se-radio.net/2015/02/episode-221-jez-humble-on-continuous-delivery/
[12] The Facebook Release Process - Chuck Rossi, Presentation & video
http://www.infoq.com/presentations/Facebook-Release-Process
[13] Release It! - Design and Deploy Production-Ready Software - Michael T. Nygard, Excerpt and Review of the book
http://www.infoq.com/articles/nygard-release-it/
[14] Fault Tolerance in a High-volume Distributed System - The Netflix Tech Blog
http://techblog.netflix.com/2012/02/fault-tolerance-in-high-volume.html
[15] Introducing Hystrix for Resilience Engineering - The Netflix Tech Blog
http://techblog.netflix.com/2012/11/hystrix.html
[16] Antifragile - Nassim Nicholas Taleb
http://www.tematika.com/libros/ciencias_de_la_salud__naturales_y_divulgacion_cientifica--7/divulgacion_cientifica--1/en_general--1/
antifragil--565390.htm
[17] Chaos Monkey Released into the wild - The Netflix Tech Blog
http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html
[18] Tha Netflix Simian Army - The Netflix Tech Blog
http://techblog.netflix.com/search/label/chaos%20monkey
[19] Building Microservices, Designing Fine-grained Systems – Sam Newman
http://shop.oreilly.com/product/0636920033158.do
[20] Microservices: It’s not (only) the size that matters, it’s (also) how you use them - Tigerteam
https://www.tigerteam.dk/2014/microservices-its-not-only-the-size-that-matters-its-also-how-you-use-them-part-4/
Agradecimientos,
1.  Honeycomb: https://flic.kr/p/2UHtEd
2.  Stonehenge: https://flic.kr/p/5x4KLZ
3.  Belts and pulleys: https://flic.kr/p/Be77A
4.  The EKC Studio Scale. Eastman Kodak Company: https://flic.kr/p/9vxKRp
5.  Carnegie Mellon Philharmonic: https://flic.kr/p/aQE9vi
6.  Cirque Du Soleil: Ovo - Gran Carpa Santa Fe: https://flic.kr/p/aB1Gh3
7.  Stopwatch: https://flic.kr/p/81m4L5
8.  Circuit breaker: https://flic.kr/p/Ce71k
9.  Home Made Gingerbread: https://flic.kr/p/bkq5Qt
10.  Buque Containers Maersk: http://blogs.lainformacion.com/futuretech/files/2013/09/maersk2.jpg
Dibujos a mano alzada realizados con “Tayasui Sketches for Ipad”:
https://itunes.apple.com/us/app/tayasui-sketches-draw-paint/id641900855?mt=8

Más contenido relacionado

La actualidad más candente

Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionJorge Guerra
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareSoftware Guru
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del softwareaagalvisg
 
Arquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache KafkaArquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache KafkaSoftware Guru
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Edureka!
 
Métricas de Calidad del Software.pptx
Métricas de Calidad del Software.pptxMétricas de Calidad del Software.pptx
Métricas de Calidad del Software.pptxEduardo Robayo
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecturetyrantbrian
 
CMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableCMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableSoftware Guru
 
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...Amazon Web Services Korea
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices PatternsDimosthenis Botsaris
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de SoftwareCamila Arbelaez
 
Ejemplo soa
Ejemplo soaEjemplo soa
Ejemplo soabrccq
 

La actualidad más candente (20)

Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Sistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e ImplementacionSistemas Distribuidos. Diseño e Implementacion
Sistemas Distribuidos. Diseño e Implementacion
 
Especificación de Arquitectura de Software
Especificación de Arquitectura de SoftwareEspecificación de Arquitectura de Software
Especificación de Arquitectura de Software
 
Estandares y modelos de calidad del software
Estandares y modelos de calidad del softwareEstandares y modelos de calidad del software
Estandares y modelos de calidad del software
 
Arquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache KafkaArquitectura basada a Eventos para principiantes con Apache Kafka
Arquitectura basada a Eventos para principiantes con Apache Kafka
 
Automatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOpsAutomatização de Ambientes CI & CD & DevOps
Automatização de Ambientes CI & CD & DevOps
 
Cbs aws-fundamentals-1
Cbs aws-fundamentals-1Cbs aws-fundamentals-1
Cbs aws-fundamentals-1
 
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
Microservices Tutorial for Beginners | Microservices Architecture | Microserv...
 
Métricas de Calidad del Software.pptx
Métricas de Calidad del Software.pptxMétricas de Calidad del Software.pptx
Métricas de Calidad del Software.pptx
 
Mitos del software
Mitos del softwareMitos del software
Mitos del software
 
Microservice Architecture
Microservice ArchitectureMicroservice Architecture
Microservice Architecture
 
CMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptableCMMI v2.0: Más dinámico, ligero y adaptable
CMMI v2.0: Más dinámico, ligero y adaptable
 
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
AWS Fault Injection Simulator를 통한 실전 카오스 엔지니어링 - 윤석찬 AWS 수석 테크에반젤리스트 / 김신 SW엔...
 
Sistemas distribuidos pnn2
Sistemas distribuidos pnn2Sistemas distribuidos pnn2
Sistemas distribuidos pnn2
 
Introduction to Microservices Patterns
Introduction to Microservices PatternsIntroduction to Microservices Patterns
Introduction to Microservices Patterns
 
25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software25 Estandares - IEEE Calidad de Software
25 Estandares - IEEE Calidad de Software
 
Métricas OO
Métricas OOMétricas OO
Métricas OO
 
Implementando una Arquitectura de Microservicios
Implementando una Arquitectura de MicroserviciosImplementando una Arquitectura de Microservicios
Implementando una Arquitectura de Microservicios
 
Ejemplo soa
Ejemplo soaEjemplo soa
Ejemplo soa
 

Destacado

Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosThoughtworks
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosDomingo Suarez Torres
 
Comparativa iso 29119 PRESSMAN
Comparativa iso 29119 PRESSMANComparativa iso 29119 PRESSMAN
Comparativa iso 29119 PRESSMANOscar Limachi
 
2 Aenor Solo Pruebas 2009
2 Aenor Solo Pruebas 20092 Aenor Solo Pruebas 2009
2 Aenor Solo Pruebas 2009Pepe
 
Procesos ligeros vs pesados, MSF MOF ITIL
Procesos ligeros vs pesados, MSF MOF ITILProcesos ligeros vs pesados, MSF MOF ITIL
Procesos ligeros vs pesados, MSF MOF ITILOscar Limachi
 
Programación de Drones (Vehículos aéreos no tripulados)
Programación de Drones (Vehículos aéreos no tripulados)Programación de Drones (Vehículos aéreos no tripulados)
Programación de Drones (Vehículos aéreos no tripulados)Carlos Toxtli
 
MicroServices: Advantages ans Disadvantages
MicroServices: Advantages ans DisadvantagesMicroServices: Advantages ans Disadvantages
MicroServices: Advantages ans DisadvantagesDimitar Danailov
 

Destacado (9)

Arquitecturas de microservicios - Codemotion 2014
Arquitecturas de microservicios  -  Codemotion 2014Arquitecturas de microservicios  -  Codemotion 2014
Arquitecturas de microservicios - Codemotion 2014
 
Divide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los MicroserviciosDivide y Vencerás: introducción a los Microservicios
Divide y Vencerás: introducción a los Microservicios
 
Webinar Arquitectura de Microservicios
Webinar Arquitectura de MicroserviciosWebinar Arquitectura de Microservicios
Webinar Arquitectura de Microservicios
 
Comparativa iso 29119 PRESSMAN
Comparativa iso 29119 PRESSMANComparativa iso 29119 PRESSMAN
Comparativa iso 29119 PRESSMAN
 
2 Aenor Solo Pruebas 2009
2 Aenor Solo Pruebas 20092 Aenor Solo Pruebas 2009
2 Aenor Solo Pruebas 2009
 
Procesos ligeros vs pesados, MSF MOF ITIL
Procesos ligeros vs pesados, MSF MOF ITILProcesos ligeros vs pesados, MSF MOF ITIL
Procesos ligeros vs pesados, MSF MOF ITIL
 
Programación de Drones (Vehículos aéreos no tripulados)
Programación de Drones (Vehículos aéreos no tripulados)Programación de Drones (Vehículos aéreos no tripulados)
Programación de Drones (Vehículos aéreos no tripulados)
 
MicroServices: Advantages ans Disadvantages
MicroServices: Advantages ans DisadvantagesMicroServices: Advantages ans Disadvantages
MicroServices: Advantages ans Disadvantages
 
From SOA to MSA
From SOA to MSAFrom SOA to MSA
From SOA to MSA
 

Similar a Microservicios

Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIsJorge Rodriguez
 
Open southcode arquitectura microservicios
Open southcode   arquitectura microserviciosOpen southcode   arquitectura microservicios
Open southcode arquitectura microserviciosJuan Manuel Cintas Peña
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricBelatrix Software
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeBruno Capuano
 
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)Larry Magallanes
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1Arkhotech
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...ssuserc860fb
 
SOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFSOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFjuliocasal
 
Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaFrancisco Arturo Viveros
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesJaime Contreras
 
Presentacion Capaintermedia
Presentacion CapaintermediaPresentacion Capaintermedia
Presentacion CapaintermediaJhon Zuluaga
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayPlain Concepts
 
Arquitectura_de_microservicios.pdf
Arquitectura_de_microservicios.pdfArquitectura_de_microservicios.pdf
Arquitectura_de_microservicios.pdfDavidMurillo97
 
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...Martín Cabrera
 

Similar a Microservicios (20)

Microservicios - RabbitMQ
Microservicios - RabbitMQMicroservicios - RabbitMQ
Microservicios - RabbitMQ
 
Microservicios y Gestion de APIs
Microservicios y Gestion de APIsMicroservicios y Gestion de APIs
Microservicios y Gestion de APIs
 
Open southcode arquitectura microservicios
Open southcode   arquitectura microserviciosOpen southcode   arquitectura microservicios
Open southcode arquitectura microservicios
 
Microservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service FabricMicroservicios con Net Core y Azure Service Fabric
Microservicios con Net Core y Azure Service Fabric
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
 
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero CodeVisual Studio 2010 Ligthswitch + AZURE + Zero Code
Visual Studio 2010 Ligthswitch + AZURE + Zero Code
 
Trabajo de microservicios
Trabajo de microserviciosTrabajo de microservicios
Trabajo de microservicios
 
M vs m
M vs mM vs m
M vs m
 
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
MuleSoft y la Arquitectura Orientada a Microservicios (MSA)
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1
 
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
Orquestación de Microservicios Introducción a arquitecturas de desarrollo mod...
 
SOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSFSOA en la Práctica: WCF & WSSF
SOA en la Práctica: WCF & WSSF
 
Patrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración ModernaPatrones de Diseño en la Arquitectura de Integración Moderna
Patrones de Diseño en la Arquitectura de Integración Moderna
 
Evolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de TelecomunicacionesEvolución TI en el sector de Telecomunicaciones
Evolución TI en el sector de Telecomunicaciones
 
Presentacion Capaintermedia
Presentacion CapaintermediaPresentacion Capaintermedia
Presentacion Capaintermedia
 
Introducción SOA - Cloud Computing
Introducción SOA - Cloud ComputingIntroducción SOA - Cloud Computing
Introducción SOA - Cloud Computing
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
Casos exito santiago toribio almatech
Casos exito santiago toribio almatechCasos exito santiago toribio almatech
Casos exito santiago toribio almatech
 
Arquitectura_de_microservicios.pdf
Arquitectura_de_microservicios.pdfArquitectura_de_microservicios.pdf
Arquitectura_de_microservicios.pdf
 
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
¿Qué debemos hacer desde Tecnología para estar alineados con la Transformac...
 

Último

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
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 eyvanamcerpam
 
10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXI10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXIantoniopalmieriluna
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...solanocortezluisalfr
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfaxelv9257
 
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 estossgonzalezp1
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...axelv9257
 
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.FlorenciaCattelani
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
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...JohnRamos830530
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxgustavovasquezv56
 

Último (15)

EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
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
 
10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXI10°8 - Avances tecnologicos del siglo XXI
10°8 - Avances tecnologicos del siglo XXI
 
Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...Generaciones de las Computadoras..pdf...
Generaciones de las Computadoras..pdf...
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
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
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
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.
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
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...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 

Microservicios

  • 1. 1 MicroServicios Techiepoint #2 Sergio Maurenzi Arquitectura e Innovación – IT Telecom Argentina 30-Abr-2015
  • 2. Descomposición de Servicios Arquitectura Monolítica vs. SOA vs. Microservicios Características de los Microservicios Ventajas / Desventajas Primeras experiencias Conclusión AGENDA
  • 3. Descomposición de Servicios Arquitectura Monolítica vs. SOA vs. Microservicios Características de los Microservicios Ventajas / Desventajas Primeras experiencias Conclusión AGENDA
  • 7. • Simple de desarrollar - único ciclo de vida; IDEs preparadas para una única aplicación • Simples de Probar (testing) - pruebas sobre una única aplicación • Simples de desplegar - copiar un archivo o un directorio, a un equipo (servidor) • Simple de escalar - se pueden ejecutar múltiples copias de la aplicación detrás de un balanceador de carga. Arquitectura Monolítica – Pros y Contras Para aplicaciones simples … Para aplicaciones complejas … • Complejo manejar Cambios – por cada cambio, à redesplegar toda la aplicación. +Riesgos à +miedos à +tests à +tiempos à +coordinación y +comunicación • Mayores tiempos – el negocio debe esperar • Calidad no garantizada – por dependencias en el código. • Escalabilidad y Resilencia disminuida – si un módulo requiere escalar lo debemos hacer para toda la aplicación. Si algo falla, todo deja de funcionar.
  • 8. SOA (Service Oriented Architecture) La Arquitectura Orientada a Servicios (SOA) es un paradigma de arquitectura para diseñar y desarrollar sistemas distribuidos. Las soluciones SOA han sido creadas para satisfacer los objetivos de negocio los cuales incluyen facilidad y flexibilidad de integración con sistemas legados, alineación directa a los procesos de negocio reduciendo costos de implementación, innovación de servicios a clientes y una adaptación ágil ante cambios incluyendo reacción temprana ante la competitividad.(*) (*) Wikipedia http://es.wikipedia.org/wiki/Arquitectura_orientada_a_servicios
  • 9. Qué son los Microservicios? Microservicios*: es un estilo de arquitectura, una forma de desarrollar una aplicación, basado en un conjunto de pequeños servicios, cada uno corriendo en sus propios procesos y comunicándose mediante mecanismos livianos, generalmente un recurso API de HTTP. Estos servicios son altamente desacoplados, construidos alrededor de funcionalidades de negocio y desplegados de manera independiente a través de una maquinaria de despliegue completamente automatizada. (*) Según Martin Fowler y James Lewis - Thoughtworks http://martinfowler.com/articles/microservices.html
  • 10. Arquitectura Monolítica vs. Microservicios Una aplicación monolítica pone todas sus funcionalidades en un único proceso… Una arquitectura de microservicios pone cada elemento de funcionalidad en un servicio separado… …y escala replicando lo monolítico en múltiples servidores …y escala distribuyendo dichos servicios a través de los servidores, según se requiera
  • 11. Monolítico SOA Microservicios Monolítico vs. SOA vs. Microservicios 1990´s 2000´s 2010´s Acoplamiento fuerte Acoplamiento débil Desacoplado
  • 12. Ej. evolución arq. Monolítica a Microservicios Monolítico C++ à Perl / C++ à Java / Scala à microservicios Monolítico Perl à Monolítico C++ à Java à microservicios Monolítico Rails à JS / Rails / Scala à microservicios Monolítico Java à Java / Scala à microservicios 1) Rápido Crecimiento 2) Control de Costos 3) Aumentar la Velocidad Drivers comunes
  • 13. Descomposición de Servicios Arquitectura Monolítica vs. Microservicios vs. SOA Características de los Microservicios Ventajas / Desventajas Primeras experiencias Conclusión AGENDA
  • 14. El cubo de escalamiento aplicativo Eje Y: división por función o servicio Eje X: duplicación horizontal Punto de partida Sin divisiones Un Sistema/ Servicio Monolítico Muchos Sistemas, cada uno clonado y balanceado x carga Sin divisiones Más datos de sector o usuarios Escalamiento casi infinitoDivisión por Servicio o información similar
  • 16. Single Responsibility Principle – Principio Responsabilidad Individual “There should never be more than one reason for a class to change” Se deben reunir aquellas cosas que cambian por la misma razón y separar aquellas cosas que cambian por diferentes razones (*) SRP - Principio de diseño de Programación Orientada a Objetos - Robert C. Martin http://www.objectmentor.com/resources/articles/srp.pdf Demasiadas responsabilidades en una sola cosa pueden causar problemas Ej. simple: diseño de una clase que llama a un número de móvil específico, con previa validación del mismo
  • 18. Arquitectura Microservicios – Cómo interactúan los clientes?
  • 19. Arquitectura Microservicios – Cómo interactúan los clientes?
  • 20. Arquitectura Microservicios – Cómo interactúan los clientes?
  • 22. Descomposición de Servicios Arquitectura Monolítica vs. Microservicios vs. SOA Características de los Microservicios Ventajas / Desventajas Primeras experiencias Conclusión AGENDA
  • 24. • Servicios pequeños – mejor entendimiento de los desarrolladores • Despliegue independiente – autonomía y velocidad en la cadena de despliegue • Desarrollo escalable - organiza el esfuerzo de desarrollo en varios equipos • Aislamiento de fallas – se afecta sólo el servicio donde se produce la falla • Libre selección de tecnología – libera compromiso tecnológico y habilita probar nuevas tecnologías más fácilmente Arquitectura Microservicios – Pros y Contras • Mayor complejidad – desarrollo y testing mas complejo por sistema distribuido • Transacciones distribuidas por múltiples servicios – manejo más complejo • Complejidad en la implementación – complejidad operativa de despliegue, monitoreo y gestión
  • 25. Descomposición de Servicios Arquitectura Monolítica vs. SOA vs. Microservicios Características de los Microservicios Ventajas / Desventajas Primeras experiencias Conclusión AGENDA
  • 26. #1 Componentización a través de servicios Componentes = Servicios, No Bibliotecas
  • 27. Ley de Conway: "Any organization that designs a system (defined broadly) will produce a design whose structure is copy of the organization's communication structure.” -- Melvyn Conway, 1967 Especialistas UI Especialistas Middeware DBAs #2 Organizado en torno a capacidades de negocio Organización Tradicional
  • 28. #2 Organizado en torno a capacidades de negocio Organización Microservicios
  • 29. #2 Organizado en torno a capacidades de negocio Organización en Netflix Fuente: Adrian Cockcroft
  • 30. #3 Productos, no Proyectos
  • 31. #4 Extremos inteligentes, tuberías bobas
  • 32. #4 Extremos inteligentes, tuberías bobas Orquestación Coreografía Vs.
  • 33. Ej. Orquestación vs. Coreografía 1.  Crear registro de fidelidad/lealtad y acreditarle una cantidad de puntos de bienvenida 2.  Enviarle un kit de bienvenida, a través del correo postal 3.  Enviarle un correo electrónico de bienvenida al cliente Servicio CRM, pasos posteriores al alta de un nuevo cliente
  • 34. Ej. Orquestación vs. Coreografía, cont.
  • 35. Ej. Orquestación vs. Coreografía, cont.
  • 37. #6 Gestión de datos descentralizada Domain- Driven Design • DDD es un patrón de diseño • Dominio: contexto del problema real de negocio • Modelo: abstracción del dominio • Software design ≠ Code Design • Metodologías: Waterfalls vs. Agile • Colaboración entre expertos de dominio y especialistas de software • Idioma común = Ubiquitous Language
  • 38. #6 Gestión de datos descentralizada CQRS
  • 39. #6 Gestión de datos descentralizada Persistencia Políglota
  • 40. #7 Automatización de la infraestructura Clave: 1.  Automatización 2.  Control de versiones y gestión de las configuraciones 3.  Arquitectura
  • 41. #8 Diseño pensado en las fallas bulkheads circuit breakers timeouts
  • 42. #8 Diseño pensado en las fallas timeouts Ej. Portabilidad Numérica Móvil: Mensajes SOAP portin
  • 43. #8 Diseño pensado en las fallas circuit breakers
  • 44. #8 Diseño pensado en las fallas circuit breakers Ej. Problemas con robot “validar IMSI”
  • 45. #8 Diseño pensado en las fallas bulkheads Ej. Separación ventas internas OC / externas AC
  • 46. #8 Diseño pensado en las fallas
  • 47. Descomposición de Servicios Arquitectura Monolítica vs. SOA vs. Microservicios Características de los Microservicios Ventajas / Desventajas Primeras experiencias Conclusión AGENDA
  • 49. CRM Prepago Web (FE) API Gateway •  Solución Front-End ejecutada en el browser utilizando JavaScript, Angular, Jquery, Bootstrap. •  Basada en Código Abierto •  Tecnologías y prácticas de uso en el mercado •  Soporte comunitario de las herramientas •  Construcción de servicios (FE / BE) por equipos diferentes de desarrollo. BOPCRM Prepago (BE) Ej. CRM Prepago
  • 50. Utiliza consulta completa de línea para el estado Consulta Lite de saldo Consulta histórico de recargas Consulta de linea Ej. CRM Prepago Web (FE)
  • 51. Preventa / CatálogoVenta productos Ej. CRM Prepago – Servicios Back End (BE)
  • 52. Ej. CRM Prepago – Equipo
  • 53. Descomposición de Servicios Arquitectura Monolítica vs. SOA vs. Microservicios Características de los Microservicios Ventajas / Desventajas Primeras experiencias Conclusión AGENDA
  • 54. Recap. Microservicios ü  Servicios pequeños ü  Contexto acotado, hacen una cosa bien ü  Organizados en torno a capacidades de negocio ü  Extremos inteligentes, tuberías bobas ü  Productos, no proyectos ü  Tecnología heterogénea ü  Gestión de datos descentralizada ü  Automatización à Continuous Delivery, DevOps ü  Diseño contemplando fallas à Organización Antifrágil
  • 55. Conclusión Los microservicios representan, un nuevo estilo de diseño de software, una nueva manera de optimizar en velocidad, de reemplazar los silos por equipos de alto desempeño, de generar una cultura de gran autonomía y responsabilidad, en resumen… de generar valor al negocio.
  • 57. Referencias [1] Microservices - Martin Fowler / James Lewis http://martinfowler.com/articles/microservices.html [2] eBay Architecture - Randy Shoup & Dan Pritchett / Tony Ng http://www.slideshare.net/RandyShoup/the-ebay-architecture-striking-a-balance-between-site-stability-feature-velocity-performance-and-cost http://www.slideshare.net/tcng3716/ebay-architecture?next_slideshow=1 [3] Episode 216 - Modern Cloud-based platform - Adrian Cockcroft http://www.se-radio.net/2014/12/episode-216-adrian-cockcroft-on-the-modern-cloud-based-platform/ [4] The Art of Scalability - Martin Abbott y Michael Fisher http://theartofscalability.com [5] Single Responsibility Principle - Robert C. Martin http://programmer.97things.oreilly.com/wiki/index.php/The_Single_Responsibility_Principle http://www.objectmentor.com/resources/articles/srp.pdf [6] A pattern language for microservices - Chris Richardson http://microservices.io/patterns/index.html [7] The Conway's Law - The original paper - Melvin Conway http://www.melconway.com/Home/Committees_Paper.html [8] A conversation with Werner Vogels (Amazon CTO) https://queue.acm.org/detail.cfm?id=1142065 [9] Domain-Driven Design http://dddcommunity.org/learning-ddd/what_is_ddd/ http://www.infoq.com/resource/minibooks/domain-driven-design-quickly/en/pdf/DomainDrivenDesignQuicklyOnline.pdf [10] Episode 218 - CQRS (Command Query Responsibility Segregation) - Udi Dahan http://www.se-radio.net/2015/01/episode-218-udi-dahan-on-cqrs-command-query-responsibility-segregation/
  • 58. Referencias, cont. [11] Episode 221 - Continuous Delivery - Jez Humble http://www.se-radio.net/2015/02/episode-221-jez-humble-on-continuous-delivery/ [12] The Facebook Release Process - Chuck Rossi, Presentation & video http://www.infoq.com/presentations/Facebook-Release-Process [13] Release It! - Design and Deploy Production-Ready Software - Michael T. Nygard, Excerpt and Review of the book http://www.infoq.com/articles/nygard-release-it/ [14] Fault Tolerance in a High-volume Distributed System - The Netflix Tech Blog http://techblog.netflix.com/2012/02/fault-tolerance-in-high-volume.html [15] Introducing Hystrix for Resilience Engineering - The Netflix Tech Blog http://techblog.netflix.com/2012/11/hystrix.html [16] Antifragile - Nassim Nicholas Taleb http://www.tematika.com/libros/ciencias_de_la_salud__naturales_y_divulgacion_cientifica--7/divulgacion_cientifica--1/en_general--1/ antifragil--565390.htm [17] Chaos Monkey Released into the wild - The Netflix Tech Blog http://techblog.netflix.com/2012/07/chaos-monkey-released-into-wild.html [18] Tha Netflix Simian Army - The Netflix Tech Blog http://techblog.netflix.com/search/label/chaos%20monkey [19] Building Microservices, Designing Fine-grained Systems – Sam Newman http://shop.oreilly.com/product/0636920033158.do [20] Microservices: It’s not (only) the size that matters, it’s (also) how you use them - Tigerteam https://www.tigerteam.dk/2014/microservices-its-not-only-the-size-that-matters-its-also-how-you-use-them-part-4/
  • 59. Agradecimientos, 1.  Honeycomb: https://flic.kr/p/2UHtEd 2.  Stonehenge: https://flic.kr/p/5x4KLZ 3.  Belts and pulleys: https://flic.kr/p/Be77A 4.  The EKC Studio Scale. Eastman Kodak Company: https://flic.kr/p/9vxKRp 5.  Carnegie Mellon Philharmonic: https://flic.kr/p/aQE9vi 6.  Cirque Du Soleil: Ovo - Gran Carpa Santa Fe: https://flic.kr/p/aB1Gh3 7.  Stopwatch: https://flic.kr/p/81m4L5 8.  Circuit breaker: https://flic.kr/p/Ce71k 9.  Home Made Gingerbread: https://flic.kr/p/bkq5Qt 10.  Buque Containers Maersk: http://blogs.lainformacion.com/futuretech/files/2013/09/maersk2.jpg Dibujos a mano alzada realizados con “Tayasui Sketches for Ipad”: https://itunes.apple.com/us/app/tayasui-sketches-draw-paint/id641900855?mt=8