SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
MAD · NOV 24-25 · 2017
Practical Spring Cloud
Álvaro Sánchez-Mariscal
Software Engineer, Grails Team
Sobre mí
• Trabajando como programador desde 2001.
• Java, Spring, Groovy, Grails, Docker, Ansible, etc.
• Fundador de Salenda.
• Actualmente en Object Computing, Inc (OCI)
Introducción
¿Qué es Spring Cloud?
• Conjunto de herramientas para microservicios.
• Impulsado por Pivotal.
• Distributed & versioned configuration.
• SC Config, SC Consul.
• Service discovery.
• SC Netflix (Eureka), SC Zookeeper, SC Consul.
¿Qué es Spring Cloud?
• Load balancing.
• SC Netflix (Ribbon, Feign).
• Circuit breakers.
• SC Netflix (Hystrix).
• Distributed tracing.
• SC Sleuth, SC Zipkin.
¿Qué es Spring Cloud?
• Event bus & message-driven microservices.
• SC Bus, SC Stream.
• OAuth 2.
• SC Security.
• Consumer-Driven Contracts.
• SC Contract.
¿Qué es Spring Cloud?
• Data integration pipelines.
• SC Data Flow, SC Stream, SC Task.
• Serverless.
• SC Function.
Primeros pasos
• start.spring.io:
Primeros pasos: Gradle
• Importa el BOM de Spring Cloud BOM:
• Elige los starters:
• Activa Spring Cloud:
dependencyManagement {
imports {
mavenBom “org.springframework.cloud:spring-cloud-dependencies:Dalston.SR4"
}
}
compile ‘org.springframework.cloud:spring-cloud-starter-config'
compile ‘org.springframework.cloud:spring-cloud-starter-consul-discovery’
@SpringBootApplication
@EnableDiscoveryClient
class SpringCloudDemoApplication {
	 static void main(String[] args) {
	 	 SpringApplication.run SpringCloudDemoApplication, args
	 }
}
Primeros pasos: Maven
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Dalston.SR4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
Primeros pasos: CLI
Distributed
configuration
Nivel
Nivel
server:
port: 9000
---
spring:
profiles: staging
server:
port: 9001
---
spring:
profiles: production
server:
port: 9002
Problemas
• Los ficheros de configuración son difíciles de
mantener:
• Diferentes valores para diferentes entornos.
• Secretos (p.ej.: contraseñas).
• ¿JAR/WAR por entorno?
Nivel
Nivel
Nivel
Demo - Spring Cloud
Config
Service Discovery
El problema
• En una arquitectura de microservicios, el
número de llamadas HTTP a realizar es alto.
• Configurar los clientes REST es complicado.
• ¿Entornos?
• ¿Máquinas? ¿Puertos?
• ¿Configuración SSL?
La solución
• Service discovery al rescate.
• Un servidor centralizado y en alta disponibilidad.
• Los clientes se registran ellos mismos, y además
piden los detalles sobre sus dependencias.
Service Discovery en Spring Cloud
• Opciones:
• Spring Cloud Netflix (Eureka Server).
• Consul con Spring Cloud Consul.
• Zookeeper con Spring Cloud Zookeeper.
Consul UI
Demo - Spring Cloud
Consul
Distributed tracing
El problema
• En un proceso que transcurre a través de
varios microservicios que se llaman unos a
otros, es difícil ver:
• Dónde está transcurriendo el tiempo.
• Cómo encontrar los logs de los distintos
servicios, agregados por petición.
La solución
• Spring Cloud Sleuth y Zipkin facilitan:
• Visualizar, para una operación end-to-end, el
tiempo que ha tardado cada servicio.
• Agregar los logs a través de un correlation ID.
Log correlation
Tracing
MAD · NOV 24-25 · 2017
¡Gracias!
¿Preguntas?
Álvaro Sánchez-Mariscal
Software Engineer, Grails Team

Contenu connexe

Similaire à Practical Spring Cloud

An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1Arkhotech
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
 
Web App Container
Web App ContainerWeb App Container
Web App ContainerCDS
 
Santiago de Chile - Seguridad Continua en Cloud Computing
Santiago de Chile - Seguridad Continua en Cloud ComputingSantiago de Chile - Seguridad Continua en Cloud Computing
Santiago de Chile - Seguridad Continua en Cloud ComputingWalter Vargas
 
1 la arquitectura cloud computing
1 la arquitectura cloud computing1 la arquitectura cloud computing
1 la arquitectura cloud computingOmega Peripherals
 
Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013
Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013
Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013Arsys
 
Consideraciones al diseñar aplicaciones móviles para la nube
Consideraciones al diseñar aplicaciones móviles para la nubeConsideraciones al diseñar aplicaciones móviles para la nube
Consideraciones al diseñar aplicaciones móviles para la nubeOracle User Group Mexico
 
Presentacion cloud computing
Presentacion cloud computingPresentacion cloud computing
Presentacion cloud computingJosé Vergara
 
1 la arquitectura cloud computing
1   la arquitectura cloud computing1   la arquitectura cloud computing
1 la arquitectura cloud computingOmega Peripherals
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsErnesto Anaya
 
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesDomingo Suarez Torres
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en AzureGermán Küber
 
Bajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subirBajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subirPedro Colmenares
 
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...RootedCON
 
Patrones avanzados de implementación de microservicios con Amazon ECS
Patrones avanzados de implementación de microservicios con Amazon ECSPatrones avanzados de implementación de microservicios con Amazon ECS
Patrones avanzados de implementación de microservicios con Amazon ECSAmazon Web Services LATAM
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...Francisco Javier Barrena
 
Industria 4.0 Cloud computing
Industria 4.0 Cloud computingIndustria 4.0 Cloud computing
Industria 4.0 Cloud computingAula Cloud
 
Seguridad de las aplicaciones web con Spring Security 3.x
Seguridad de las aplicaciones web con Spring Security 3.xSeguridad de las aplicaciones web con Spring Security 3.x
Seguridad de las aplicaciones web con Spring Security 3.xFernando Redondo Ramírez
 

Similaire à Practical Spring Cloud (20)

computación en la nube
computación en la nubecomputación en la nube
computación en la nube
 
An evening with... Microservices - Session 1
An evening with... Microservices - Session 1An evening with... Microservices - Session 1
An evening with... Microservices - Session 1
 
Contenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
 
Web App Container
Web App ContainerWeb App Container
Web App Container
 
Santiago de Chile - Seguridad Continua en Cloud Computing
Santiago de Chile - Seguridad Continua en Cloud ComputingSantiago de Chile - Seguridad Continua en Cloud Computing
Santiago de Chile - Seguridad Continua en Cloud Computing
 
1 la arquitectura cloud computing
1 la arquitectura cloud computing1 la arquitectura cloud computing
1 la arquitectura cloud computing
 
Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013
Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013
Seguridad y Entornos Críticos en Cloud - Cloud Leadership 2013
 
Consideraciones al diseñar aplicaciones móviles para la nube
Consideraciones al diseñar aplicaciones móviles para la nubeConsideraciones al diseñar aplicaciones móviles para la nube
Consideraciones al diseñar aplicaciones móviles para la nube
 
Presentacion cloud computing
Presentacion cloud computingPresentacion cloud computing
Presentacion cloud computing
 
1 la arquitectura cloud computing
1   la arquitectura cloud computing1   la arquitectura cloud computing
1 la arquitectura cloud computing
 
BBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOpsBBVA Arquitectura - Demo DevOps
BBVA Arquitectura - Demo DevOps
 
Chaos Engineering
Chaos EngineeringChaos Engineering
Chaos Engineering
 
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de KubernetesCloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
Cloud Native MX Meetup - Asegurando tu Cluster de Kubernetes
 
Aplicaciones escalables en Azure
Aplicaciones escalables en AzureAplicaciones escalables en Azure
Aplicaciones escalables en Azure
 
Bajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subirBajandose de la nube y volviendose a subir
Bajandose de la nube y volviendose a subir
 
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
Andrés Tarasco y Miguel Tarasco - OWISAM - Open WIreless Security Assessment ...
 
Patrones avanzados de implementación de microservicios con Amazon ECS
Patrones avanzados de implementación de microservicios con Amazon ECSPatrones avanzados de implementación de microservicios con Amazon ECS
Patrones avanzados de implementación de microservicios con Amazon ECS
 
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
VLCSofting 2021 - HARD AS A POD 落. HARDENING DE DESPLIEGUES EN KUBERNETES CON...
 
Industria 4.0 Cloud computing
Industria 4.0 Cloud computingIndustria 4.0 Cloud computing
Industria 4.0 Cloud computing
 
Seguridad de las aplicaciones web con Spring Security 3.x
Seguridad de las aplicaciones web con Spring Security 3.xSeguridad de las aplicaciones web con Spring Security 3.x
Seguridad de las aplicaciones web con Spring Security 3.x
 

Plus de Alvaro Sanchez-Mariscal

Asynchronous and event-driven Grails applications
Asynchronous and event-driven Grails applicationsAsynchronous and event-driven Grails applications
Asynchronous and event-driven Grails applicationsAlvaro Sanchez-Mariscal
 
Reactive microservices with Micronaut - GR8Conf EU 2018
Reactive microservices with Micronaut - GR8Conf EU 2018Reactive microservices with Micronaut - GR8Conf EU 2018
Reactive microservices with Micronaut - GR8Conf EU 2018Alvaro Sanchez-Mariscal
 
Reactive microservices with Micronaut - Greach 2018
Reactive microservices with Micronaut - Greach 2018Reactive microservices with Micronaut - Greach 2018
Reactive microservices with Micronaut - Greach 2018Alvaro Sanchez-Mariscal
 
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...Alvaro Sanchez-Mariscal
 
Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016Alvaro Sanchez-Mariscal
 
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring Security
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring SecurityDesarrollo de aplicaciones con Grails 3, Angular JS y Spring Security
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring SecurityAlvaro Sanchez-Mariscal
 
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...Alvaro Sanchez-Mariscal
 
Mastering Grails 3 Plugins - GR8Conf US 2016
Mastering Grails 3 Plugins - GR8Conf US 2016Mastering Grails 3 Plugins - GR8Conf US 2016
Mastering Grails 3 Plugins - GR8Conf US 2016Alvaro Sanchez-Mariscal
 
Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016Alvaro Sanchez-Mariscal
 
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...Alvaro Sanchez-Mariscal
 
Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016Alvaro Sanchez-Mariscal
 
Creating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring SecurityCreating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring SecurityAlvaro Sanchez-Mariscal
 
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016Alvaro Sanchez-Mariscal
 
Efficient HTTP applications on the JVM with Ratpack - JDD 2015
Efficient HTTP applications on the JVM with Ratpack - JDD 2015Efficient HTTP applications on the JVM with Ratpack - JDD 2015
Efficient HTTP applications on the JVM with Ratpack - JDD 2015Alvaro Sanchez-Mariscal
 
Stateless authentication with OAuth 2 and JWT - JavaZone 2015
Stateless authentication with OAuth 2 and JWT - JavaZone 2015Stateless authentication with OAuth 2 and JWT - JavaZone 2015
Stateless authentication with OAuth 2 and JWT - JavaZone 2015Alvaro Sanchez-Mariscal
 
Stateless authentication for microservices - GR8Conf 2015
Stateless authentication for microservices - GR8Conf 2015Stateless authentication for microservices - GR8Conf 2015
Stateless authentication for microservices - GR8Conf 2015Alvaro Sanchez-Mariscal
 

Plus de Alvaro Sanchez-Mariscal (20)

Serverless functions with Micronaut
Serverless functions with MicronautServerless functions with Micronaut
Serverless functions with Micronaut
 
Asynchronous and event-driven Grails applications
Asynchronous and event-driven Grails applicationsAsynchronous and event-driven Grails applications
Asynchronous and event-driven Grails applications
 
6 things you need to know about GORM 6
6 things you need to know about GORM 66 things you need to know about GORM 6
6 things you need to know about GORM 6
 
Reactive microservices with Micronaut - GR8Conf EU 2018
Reactive microservices with Micronaut - GR8Conf EU 2018Reactive microservices with Micronaut - GR8Conf EU 2018
Reactive microservices with Micronaut - GR8Conf EU 2018
 
Reactive microservices with Micronaut - Greach 2018
Reactive microservices with Micronaut - Greach 2018Reactive microservices with Micronaut - Greach 2018
Reactive microservices with Micronaut - Greach 2018
 
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
Creating applications with Grails, Angular JS and Spring Security - G3 Summit...
 
Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016Mastering Grails 3 Plugins - G3 Summit 2016
Mastering Grails 3 Plugins - G3 Summit 2016
 
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring Security
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring SecurityDesarrollo de aplicaciones con Grails 3, Angular JS y Spring Security
Desarrollo de aplicaciones con Grails 3, Angular JS y Spring Security
 
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf U...
 
Mastering Grails 3 Plugins - GR8Conf US 2016
Mastering Grails 3 Plugins - GR8Conf US 2016Mastering Grails 3 Plugins - GR8Conf US 2016
Mastering Grails 3 Plugins - GR8Conf US 2016
 
Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016Mastering Grails 3 Plugins - GR8Conf EU 2016
Mastering Grails 3 Plugins - GR8Conf EU 2016
 
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
Creating applications with Grails, Angular JS and Spring Security - GR8Conf E...
 
Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016Mastering Grails 3 Plugins - Greach 2016
Mastering Grails 3 Plugins - Greach 2016
 
Creating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring SecurityCreating applications with Grails, Angular JS and Spring Security
Creating applications with Grails, Angular JS and Spring Security
 
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
Efficient HTTP applications on the JVM with Ratpack - Voxxed Days Berlin 2016
 
Efficient HTTP applications on the JVM with Ratpack - JDD 2015
Efficient HTTP applications on the JVM with Ratpack - JDD 2015Efficient HTTP applications on the JVM with Ratpack - JDD 2015
Efficient HTTP applications on the JVM with Ratpack - JDD 2015
 
Stateless authentication with OAuth 2 and JWT - JavaZone 2015
Stateless authentication with OAuth 2 and JWT - JavaZone 2015Stateless authentication with OAuth 2 and JWT - JavaZone 2015
Stateless authentication with OAuth 2 and JWT - JavaZone 2015
 
Stateless authentication for microservices - GR8Conf 2015
Stateless authentication for microservices - GR8Conf 2015Stateless authentication for microservices - GR8Conf 2015
Stateless authentication for microservices - GR8Conf 2015
 
Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015Ratpack 101 - GR8Conf 2015
Ratpack 101 - GR8Conf 2015
 
Ratpack 101 - GeeCON 2015
Ratpack 101 - GeeCON 2015Ratpack 101 - GeeCON 2015
Ratpack 101 - GeeCON 2015
 

Practical Spring Cloud