soa y microservices diferencias y aplicaciones

29
ORACLE OTN Tour LA 2016 Gua temala Sandra Flores SOA Architect @sandyFloresMX desarrolloconsoa.blogspot.mx ¡Bienvenidos! SOA y Microservices Diferencias y Aplicaciones

Upload: guatemala-user-group

Post on 12-Apr-2017

281 views

Category:

Technology


10 download

TRANSCRIPT

Page 1: SOA y Microservices Diferencias y Aplicaciones

ORACLE OTN Tour LA 2016 Guatemala

Sandra FloresSOA Architect

@sandyFloresMX desarrolloconsoa.blogspot.mx

¡Bienvenidos!

SOA y Microservices Diferencias y Aplicaciones

Page 2: SOA y Microservices Diferencias y Aplicaciones

2

Comunidad mundial más grande de Desarrolladores, Administradores y Arquitectos que utilizan productos Oracle

Y

Oracle Technology Network LA

Comunidad de tecnólogos Oracle en Guatemala que se reúnen frecuentemente virtual o físicamente a intercambiar conocimiento sobre Oracle Tech.

ORAUGGT ORACLE USERS GROUP - GUATEMALA

Page 3: SOA y Microservices Diferencias y Aplicaciones

3

SOA y Microservices

IntroducciónEn los úlFmos años el término Microservices ha atraído la atención de muchos de nosotros. Gran canFdad de información se genera al respecto y pareciera que cada vez más gente se quiere unir a éste movimiento. Sin embargo, aún existe mucha confusión, constantemente escuchamos preguntas como: ¿Qué son los Microservices? ¿Dónde y cómo implemento una solución con Microservices? ¿Acaso los Microservices no son más que Servicios SOA bien diseñados? ¿Si yo ya tengo mi solución SOA, debería pensar en cambiar a Microservices? ¿Si yo ya implemento servicios REST, significa que estoy haciendo Microservices?

Page 4: SOA y Microservices Diferencias y Aplicaciones

Temas relevantes de la sesión

Contenido

SOAConceptos generales de SOA

Microservices¿Qué son los Microservices?

Diferencias¿En qué se diferencian SOA y Microservices?

AplicacionesDudas generales de Microservices

01

0203

04

Page 5: SOA y Microservices Diferencias y Aplicaciones

5SOAService Oriented Architecture

Bases

Tipos de Servicios

Foco

Modelo arquitectónico para sistemas distribuidos, cuyos fines son mejorar la agilidad organizacional, mantener una alineación entre negocio y TI, y al mismo Fempo,

implementar la Orientación a Servicios.

Se basa en Servicios como unidades fundamentales que

engloban la lógica de negocio. Así, lo procesos de negocio son

compuestos de dichas piezas.

Definición

Sigue una serie de principios de la Orientación a Servicios y patrones de diseño. Se enfoca en la composición y reuFlización de Servicios y promueve que éstos sean agnósFcos en su mayoría, y orquestaciones para procesos completos.

Servicios Web SOAP Servicios REST Componentes

Page 6: SOA y Microservices Diferencias y Aplicaciones

6

Martin Fowler

Microservices

Enfoque para desarrollo de una sola aplicación como un conjunto de pequeños servicios, cada uno ejecutándose en su propio proceso, y en constante comunicación usando mecanismos ligeros, a menudo un API HTTP.

Están construidos alrededor de las capacidades de negocio y Fenen independencia de despliegue, gracias a la maquinaria totalmente automaFzada que los soporta.

Son altamente escalables y cada uno posee una firma asociada limitada de un módulo. Diferentes servicios pueden ser escritos en diferentes lenguajes de programación y también pueden ser administrados por diferentes equipos de trabajo.

hcp://marFnfowler.com/arFcles/microservices.html

12

3

1

2

3

Page 7: SOA y Microservices Diferencias y Aplicaciones

7

SOA Patterns ORG

Microservices

Cada servicio es tratado como un producto independiente, por ende se desarrolla, se empaqueta y se despliega de forma independiente. Dicho servicio puede ser calificado como un "Microservice".

¿Cómo puede un servicio desplegarse de forma independiente para evitar las limitaciones impuestas por una implementación monolíFca?

Los Microservices están diseñados como servicios altamente autónomos que dependen principalmente de la comunicación asíncrona entre los disFntos servicios.

El uso de contenedores de soiware (patrón Containerized Service Deployment Pacern) produce una variación del modelo. La tecnología de los contenedores se uFliza a menudo para empaquetar una aplicación completa junto con el servidor de aplicaciones y otra infraestructura necesaria para generar un único despliegue. UFlizando la tecnología de contenedores, cada Microservice puede ser "contenerizado" de forma independiente como si se tratara de una aplicación independiente.

hcp://soapacerns.org

Page 8: SOA y Microservices Diferencias y Aplicaciones

8

Según Martin Fowler

De Monolito a Microservices

Page 9: SOA y Microservices Diferencias y Aplicaciones

9

Creada en 1978, simplificada en 1994

Filosofía UNIX

Crear programas que hagan solo una cosa y que la hagan bien.

Crear programas que trabajen juntos.

Crear programas que usen flujos de texto, porque es una interface universal.

Page 10: SOA y Microservices Diferencias y Aplicaciones

10

Los Microservices:

Características

Son totalmente autónomos y abstractos.

Tienen un alcance funcional pequeño y limitado.

No requieren parFcipar en transacciones distribuidas.

Están organizados entorno a las capacidades del negocio, por equipos de trabajo especializados.

No dependen de invocaciones síncronas de otros servicios.

No deben ser parte de composiciones complejas de servicios.

Page 11: SOA y Microservices Diferencias y Aplicaciones

11

Los Microservices:

Características Cont.

Soportan interoperabilidad por medio de mecanismos de comunicación basados en mensajes.

Usan tecnología de ComponenFzación.

Usan infraestructura automaFzada.

Se enfocan en el planteamiento Smart Endpoints & Dumb Pipes

Poseen un gobierno descentralizado, sin ataduras a lenguajes o plataformas.

Manejan sus propio almacenamiento de datos (Persistencia Políglota)

Page 12: SOA y Microservices Diferencias y Aplicaciones

12

Relación entre SOA, Microservices y la Orientación a Servicios

SOA vs Microservices

SOA

Microservices

Orientación a Servicios

Microservices

SOA

Page 13: SOA y Microservices Diferencias y Aplicaciones

13Orientación a ServiciosPrincipios Básicos

1 2 3 4 5 6

Standardized

Service Contract

CONTRATO ABSTRAER

DESACOPLAR

AUTONOMIA

REUSAR SIN ESTADO

7 8

DESCUBRIR

COMPONER

Service Loose

Coopling

Service

AbstracFon

Service

Reusability

Service

Autonomy

Service

Statelessness

Service

Discoverability

Service

Composability

Page 14: SOA y Microservices Diferencias y Aplicaciones

14

¿Realmente están peleados?

SOA vs Microservices

SOA

Standardized Service Contract

Microservices

Service Reusability

Service Composability

Service Autonomy

Service AbstracFon

Service Loose Coopling

Fuente: hcps://soamythbusters.wordpress.com/2016/05/30/episode-4-soa-vs-microservices-architecture/

Page 15: SOA y Microservices Diferencias y Aplicaciones

15

Coreografía VS Orquestación

SOA vs Microservices

hcp://www.slideshare.net/KellyGoetsch/microservices-oracle-a-bright-future

Page 16: SOA y Microservices Diferencias y Aplicaciones

16

Comparación

SOA vs Microservices

hcp://www.soa4u.co.uk/2016/06/a-microservice-approach-for-legacy.html

SOA Microservices

Page 17: SOA y Microservices Diferencias y Aplicaciones

17

Para implementación de Microservices

Oferta de Oracle

hcp://www.slideshare.net/KellyGoetsch/microservices-oracle-a-bright-future

Page 18: SOA y Microservices Diferencias y Aplicaciones

18

Conceptos Erróneos

SOA vs Microservices

¿Porqué dicen que el ESB una “Atroz caja de

espagueF”?

¿Acaso los Microservices no son más que Servicios SOA

bien diseñados?

¿Cómo sé si los Microservices son una buena opción para mi?

¿Si yo ya implemento servicios REST, significa que estoy haciendo Microservices?

¿Si yo ya tengo mi solución SOA, debería pensar en

cambiar a Microservices?

Page 19: SOA y Microservices Diferencias y Aplicaciones
Page 20: SOA y Microservices Diferencias y Aplicaciones

20

Soluciones con Microservices

Casos de Exito

Amazon Netflix ebay

google soundCloud Nike

Twitter

Hailo

Page 21: SOA y Microservices Diferencias y Aplicaciones

21

People try to copy Newlix, but they can only copy what they see. They copy the results,

not the process.

”“

Adrian CockcroftFormer Netflix Chief Cloud Architect

Los Resultados son solo la punta del Iceberg

Determinando la Factibilidad

Page 22: SOA y Microservices Diferencias y Aplicaciones

22

Cuestionamiento clave sobre Microservices

Determinando la Factibilidad

¿Modernización de Legados o Implementaciones nuevas?

Page 23: SOA y Microservices Diferencias y Aplicaciones

23

Aversión al riesgo

Corporaciones vs Startups

hcp://www.soa4u.co.uk/2016/06/a-microservice-approach-for-legacy.html

Page 24: SOA y Microservices Diferencias y Aplicaciones

24

ADP CTO en Dockercon 16

Microservices como Nuggets

hcps://www.youtube.com/watch?v=4ywzwCmML2Y

Page 25: SOA y Microservices Diferencias y Aplicaciones

25

¿Son los Microservices adecuados para mi implementación?

Preguntas a resolver

1. ¿Mi negocio hace énfasis en la alta velocidad de entrega de valores a mis clientes?

2. ¿Tengo capacidad de adaptación al cambio drásFco en mi forma de trabajo?

3. ¿Tengo experiencia definiendo, diseñando y categorizando servicios?

4. ¿Estoy dispuesto a poner en prácFca una cultura de DevOps en mis equipos de trabajo?

5. ¿Mis datos residen en repositorios centralizados y monolíFcos?

6. ¿Estoy dispuesto a descentralizar mi repositorio de datos y usar mecanismos complejos de sincronización usando nuevas y modernas tecnologías?

7. ¿Mi infraestructura de red es lo suficientemente robusta para soportar un fuerte incremento de comunicaciones?

8. ¿Estoy dispuesto a cambiar la infraestructura y la base tecnológica que soporta mi operación actual?

Page 26: SOA y Microservices Diferencias y Aplicaciones

26Consideraciones RelevantesRestricciones al implementar Microservices

InexperienciaLas implementaciones con Microservices aún no maduran completamente.

Oferta del Mercado

Documentación

Datos

Estrategia

Las herramientas emergen y evolucionan con rapidez, lo cual complica las decisiones de arquitectura.

Aún no hay mucha documentación o patrones de diseño sobre los cuales basarse para las soluciones.

Los repositorios de datos centralizados requieren ser divididos a medida que la transición a Microservices avanza.

Es vital definir una estrategia de implementación, ya sea para modernización de legados o aplicaciones nuevas.

Page 27: SOA y Microservices Diferencias y Aplicaciones

27

¿Cuándo usar SOA?

SOA

Integración de un stack de aplicaciones dispares

No es posible descentralizar los repositorios de datos

Existen Legados que no serán modernizados

Se requiere una plataforma bien conocida para implementar soluciones Orientadas a Servicios

Requiero centralizar y gobernar mi inventario de Servicios

Page 28: SOA y Microservices Diferencias y Aplicaciones

28

WHAT WHY WHERE WHEN WHO HOW

¿Preguntas?

Page 29: SOA y Microservices Diferencias y Aplicaciones

29

Sandra Flores SOA Architect

@sandyFloresMX

desarrolloconsoa.blogspot.mx

Contacto

¡Gracias por su Fempo!

OTN En Españolhcp://www.oracle.com/technetwork/es/index.html

ORAMEXhcp://oramex.com.mx

@oramexico

@oracleotnla