Microservicios sobre tecnologías Pivotal y VMware

38
MEETUP: Microservicios sobre tecnologías Pivotal y VMware Madrid, 28 de octubre de 2015 #userviciosmad rid

Transcript of Microservicios sobre tecnologías Pivotal y VMware

Page 1: Microservicios sobre tecnologías Pivotal y VMware

MEETUP: Microservicios sobre tecnologías Pivotal y VMware

Madrid, 28 de octubre de 2015#userviciosmadrid

Page 2: Microservicios sobre tecnologías Pivotal y VMware

service creation

service deployment

service management

service consumption

herramientas desarrolladores

plataformas desarrolladores

automatización integración

hacia producción

service automation &

brokerageIT service mgmt

business mobility

plataformas de servicios para usuario final

cloud platforms (PaaS)

cloud platforms (IaaS)

cloud platforms (on premises)

servicios datos & DR

VMware vRealize

#userviciosmadrid

Page 3: Microservicios sobre tecnologías Pivotal y VMware

WHO IS PIVOTAL?

...

Pivotal

#userviciosmadrid

Page 4: Microservicios sobre tecnologías Pivotal y VMware

MODERN DIGITAL PRODUCT DEVELOPMENT

SpeedScaleCost

Development (People)• Integrated Teams (Business & Development)• Agile Practices• Continuous Delivery

Platform• Optimized for Modern Development

• Continuous Delivery • Microservices• Secure/Manageable

• Open, Multi-Cloud (private & public)• Broad Ecosystem

Analytics & Learning• Cloud-Native: Scale-out,

Cost-effective• Choice of Semantics

(SQL to Deep Learning)• Open, Broad Ecosystem

“Become a software company”

#userviciosmadrid

Page 5: Microservicios sobre tecnologías Pivotal y VMware

CIERRE

feedback

siguiente meetup: 28 de enero de 2016VMware Photon y Pivotal Lattice:

minicontenedores linux y apps nativas cloud, en tu portátil

#userviciosmadrid

Page 6: Microservicios sobre tecnologías Pivotal y VMware

‹#›© 2014 Pivotal Software, Inc. All rights reserved.© 2015 Pivotal Software, Inc. All rights reserved.

Aplicaciones nativas cloudAntonio Gallego - [email protected] Engineering - Pivotal

Page 7: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Cómo solía ser (y sigue siendo…)

Middleware

OS

Middleware

OS

7

Page 8: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Consecuencias

Paradas de servidor para actualizacionesUn pequeño cambio o arreglo - nueva versiónEscalabilidad - vertical / horizontal?Dimensionamiento para picos - Crystal ball

analysisTM

Silos operacionales

8

Page 9: Microservicios sobre tecnologías Pivotal y VMware

‹#›© 2014 Pivotal Software, Inc. All rights reserved.

El mundo ha cambiado

9

Page 10: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Y, ¿en qué ha cambiado?

Computación distribuidaDesacoplamiento de componentesMejores latencias en las comunicacionesDependenciasEscalas según creces - contamos con los

recursos que necesitamos justo ahoraEficiencias en costes

10

Page 11: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Cloud impone sus reglas1.Oh! Se cayó!!!• Prepárate para lo

peor2.Ver (1)

A central truth in cloud computing is that failure is inevitable.  As systems scale, we expect nodes tofail ungracefully in random and unexpected ways, networks to experience sudden partitions, and messages to be dropped at any time.

Rather than fight this truth, we embrace it.HEATHER NAKAMA

Software Engineer, Azure Search

11

Page 12: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

¿Qué significa esto para las aplicaciones?EscalabilidadInter-dependenciasDependencia de la plataformaDependencia de la ubicaciónResistencia / disponibilidadTrazabilidad

12

Page 13: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 13

Escalabilidad• Las aplicaciones tradicionales se

modelaron como monolíticas para que su modelo de despliegue fuera más sencillo

• En ellas, varios servicios se combinan en una sola aplicación, masiva

• Este modelo conlleva un desaprovechamiento de los recursos disponibles cuando queremos escalar la aplicación

• Ciertos componentes pueden apropiarse de recursos de otros procesos situados en la misma máquina, que los necesiten después

Page 14: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 14

Page 15: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 15

Y, ¿cómo deberíamos de escalar esta app?

Page 16: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 16

InterdependenciasLas aplicaciones monolíticas definen

las dependencias entre sus componentes dentro del código

Es difícil aplicar un modelo independiente de escalado en arquitectura orientadas a servicios

Page 17: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 17

Especificidad de la plataformaimport javax.servlet.http.HttpServlet;

import com.ibm.servlet.engine.webapp.*;

Las dependencias a fuego en el entorno de ejecución hacen que las aplicaciones no sean portablesTanto si las llevan a nivel de

código con dependencias de runtime

Como si las llevan a nivel de SO (dependiendo del planificador, p.ej. cron)

Page 18: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 18

Especificidad de la ubicación: escribiendo a disco• Las aplicaciones a menudo necesitan acceder a disco, por ejemplo,

ante submits de formularios con datos binarios, o contenidos en la mayoría de sistemas CMS (p.ej. Wordpress)

• La vida de los contenedores es corta, por lo que se ejecutan en diferente HW cada vez que necesitan arrancar. Depender de un sistema de ficheros local es una gran dependencia que algunas aplicaciones imponen en tiempo de ejecución.

• Algunos proveedores de CMS soportan el uso de servicios externos como S3 para proporcionar un mecanismo persistente a esta necesidad.

Page 19: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 19

Especificidad de la ubicación: ubicación del servicioCache.hosts=10.68.27.41,10.68.27.42

#naming does not help eitherCache.hosts=cacheserver1, cacheserver2

Fichero de propiedades incorporado en el despliegue de la aplicación

Page 20: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

12 factor Apps - 12factor.net1.Codebase

One codebase tracked in revision control, many deploys

2.DependenciesExplicitly declare and isolate dependencies

3.ConfigStore config in the environment

4.Backing ServicesTreat backing services as attached resources

5.Build, release, runStrictly separate build and run stages

6.ProcessesExecute the app as one or more stateless processes

7.Port bindingExport services via port binding

8.ConcurrencyScale out via the process model

9.DisposabilityMaximize robustness with fast startup and graceful shutdown

10.Dev/prod parityKeep development, staging, and production as similar as possible

11.LogsTreat logs as event streams

12.Admin processesRun admin/management tasks as one-off processes

20

Page 21: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved.

Arquitectura monolítica

21

BD Relacional

Data Access

Service

HTML JavaScript MVC

Service

Aplicación monolíticaBrowser

Page 22: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved.

Architectura de µservicios

22

HTTP

HTTP

HTTP

HTTP

HTTP

HTTP

AMQPAMQP

BD Relacional

Almacén Clave/Valor

BD gráf.

Page 23: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved. 23

Los principios de una arquitectura de µserviciosModularidad basada en servicios de componentesCiclos de cambio desacoplados / Habilitada para cambios

frecuentesEscalado eficiente de recursosComponentes individuales, más asimilables por los nuevos

desarrolladoresPreparada para escalar los equipos de desarrolloElimina el compromiso a largo plazo con la infraestructura y

tecnología de soporte

Page 24: Microservicios sobre tecnologías Pivotal y VMware

© Copyright 2014 Pivotal. All rights reserved.

Organizada alrededor de las capacidades del negocio

24

Acceso a datos

Servicio

HTML JavaScript MVC

Servicio

Especialistas en interfaz de usuario

Especialistas en m

iddleware

DBAs

Capacidad de negocio

Capacidad de negocio

Capacidad de negocioTorres de

equipos funcionales

http://martinfowler.com/articles/µservices.html#OrganizedAroundBusinessCapabilities

Torres de arquitecturas de aplicación

Equipos transversales

Arquitecturas basadasen µservicios

Page 25: Microservicios sobre tecnologías Pivotal y VMware

‹#›© 2015 Pivotal Software, Inc. All rights reserved.

Gestionar de forma fiable los datos de configuración proporcionados a los µservicios a través del entorno?

Actualizar simultáneamente los datos de configuración a todas las instancias donde se ejecutan los µservicios?

Asegurar que los µservicios pueden descubrirse entre sí, a pesar de ser “eliminables”? (Factor nº9)

Manejar el balanceo de carga entre µservicios del mismo tipo? (Factor nº 8)Protegerse frente a fallos en cascada cuando todas las instancias del mismo µservicio

fallen?Asegurar la resistencia del sistema restaurando automáticamente los µservicios

caídos?

Pero 12 factores no son suficientesLos sistemas distribuidos son complicados!!!

Ya que, ¿cómo conseguimos…

25

Page 26: Microservicios sobre tecnologías Pivotal y VMware

‹#›© 2015 Pivotal Software, Inc. All rights reserved.

Contamos con ayuda…

Spring CloudPara añadir rápidamente

patrones de sistemas distribuidos a tus

µservicios

conPivotal Cloud

FoundryEjecuta eficientemente

tus µservicios!

26

Page 27: Microservicios sobre tecnologías Pivotal y VMware

‹#›© 2015 Pivotal Software, Inc. All rights reserved.

27

Page 28: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Eureka - Registro y autodescubrimiento de servicios

28

Page 29: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Eureka - Registro y autodescubrimiento de servicios

@SpringBootApplication@EnableEurekaServer //@EnableDiscoveryClientpublic class RegistryApplication {

public static void main(String[] args) {SpringApplication.run(RegistryApplication.class, args);

}}

29

Page 30: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Ribbon - balanceo de carga en el cliente

30

Page 31: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

@Autowired@LoadBalancedprivate RestTemplate restTemplate;

Quote quote = restTemplate.getForObject("http://quotes/quote/{symbol}", Quote.class, symbol);

Ribbon - balanceo de carga en el cliente

31

Page 32: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Hystrix - el rompe-circuitos

32

Page 33: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

@HystrixCommand(fallbackMethod = "getCompaniesFallback")public List<CompanyInfo> getCompanies(String name) {

CompanyInfo[] infos = restTemplate.getForObject("http://quotes/company/{name}", CompanyInfo[].class, name);

return Arrays.asList(infos);}

private List<CompanyInfo> getCompaniesFallback(String name) {List<CompanyInfo> infos = new ArrayList<>();return infos;

}

Hystrix - el rompe-circuitos

33

Page 34: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

Servidor de configuraciones

34

Page 35: Microservicios sobre tecnologías Pivotal y VMware

‹#›© 2015 Pivotal Software, Inc. All rights reserved.

Spring Cloud Services para PCFhttps://network.pivotal.io/products/p-spring-cloud-services

35

Page 36: Microservicios sobre tecnologías Pivotal y VMware

‹#›© 2014 Pivotal Software, Inc. All rights reserved. ‹#›© 2014 Pivotal Software, Inc. All rights reserved.

En resumen…

36

Page 37: Microservicios sobre tecnologías Pivotal y VMware

© 2015 Pivotal Software, Inc. All rights reserved.

ResumenEs un mundo diferente, nuevoQue desacopla las aplicaciones de la

infraestructuraY que desacopla los componentes de

aplicaciónPodemos utilizar plataformas que automatizan

la ejecución de las aplicaciones Contamos también con un marco de trabajo

para simplificar el desarrollo de aplicaciones nativas cloud

37

Page 38: Microservicios sobre tecnologías Pivotal y VMware

38