SlideShare uma empresa Scribd logo
1 de 78
Baixar para ler offline
1
Why PCF is the best platform for
Spring Boot
2017-07-20
Toshiaki Maki (@making)
Who am I ?
2
Toshiaki Maki (@making) https://blog.ik.am
Sr. Solutions Architect @Pivotal Japan
Spring Framework 💖
Cloud Foundry 💖
Platform Spring Specific Comparison
3
AWS
BeanStalk
Azure
WebApps
Google
AppEngine
Heroku OpenShift
/k8s
PCF/
PWS
Spring
Cloud
Connector
Spring Cloud
Connector
Heroku
Spring Cloud
Connector Cloud
Foundry
Spring Boot
Integration
* cloud profile
* Apps Manager
Spring Boot
Actuator Support
* Metric
Forwarder
Spring
Cloud
Integration
Spring
Cloud AWS
Spring Cloud
GCP
* Spring
Cloud
Kubernetes
* SCDF
* Spring Cloud
Services
* Trace Exporter
* SCDF
Platform Spring Specific Comparison
3
AWS
BeanStalk
Azure
WebApps
Google
AppEngine
Heroku OpenShift
/k8s
PCF/
PWS
Spring
Cloud
Connector
Spring Cloud
Connector
Heroku
Spring Cloud
Connector Cloud
Foundry
Spring Boot
Integration
* cloud profile
* Apps Manager
Spring Boot
Actuator Support
* Metric
Forwarder
Spring
Cloud
Integration
Spring
Cloud AWS
Spring Cloud
GCP
* Spring
Cloud
Kubernetes
* SCDF
* Spring Cloud
Services
* Trace Exporter
* SCDF
Why PCF for Spring?
4
Why PCF for Spring?
4
Because Pivotal Cloud Foundry gives us
a lot of out-of-the-box features
to manage / operate Spring Boot apps
Why PCF for Spring?
4
Because Pivotal Cloud Foundry gives us
a lot of out-of-the-box features
to manage / operate Spring Boot apps
Why PCF for Spring?
4
Because Pivotal Cloud Foundry gives us
a lot of out-of-the-box features
to manage / operate Spring Boot apps
12 Factors Apps
Microservices
Security
Tracing
Metrics
Spring Support in PCF
5
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
Spring Support in PCF
6
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
"profile" in Spring
7
without PCF/PWS
myapp.foo=I am in local env.
message=I am a default property.
logging.level.com.example=DEBUG
myapp.foo=I am in AWS.
message=I am a production property
logging.level.com.example=INFO
application.properties
application-prod.properties
java -jar app.jar --spring.profiles.active=prod
cloud profile
8
with PCF/PWS
myapp.foo=I am in local env.
message=I am a default property.
logging.level.com.example=DEBUG
myapp.foo=I am in cloud foundry.
message=I am a cloud property.
logging.level.com.example=INFO
application.properties
application-cloud.properties
java -jar app.jar --spring.profiles.active=cloud
cloud profile
8
with PCF/PWS
myapp.foo=I am in local env.
message=I am a default property.
logging.level.com.example=DEBUG
myapp.foo=I am in cloud foundry.
message=I am a cloud property.
logging.level.com.example=INFO
application.properties
application-cloud.properties
java -jar app.jar --spring.profiles.active=cloud
cloud profile is set
by java-buildpack
Spring Support in PCF
9
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
Attach backend services
10
without PCF/PWS
spring.datasource.url=real-db.example.com
spring.datasource.username=real-db-user
spring.datasource.password=readl-db-password
spring.rabbitmq.addresses=real-rabbit.example.com
spring.rabbitmq.username=real-rabbit-user
spring.rabbitmq.password=real-rabbit-password
spring.rabbitmq.virtual-host=real-vhost
application-prod.properties
Attach backend services
11
without PCF/PWS
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
spring.rabbitmq.addresses=${RABBIT_URL}
spring.rabbitmq.username=${RABBIT_USERNAME}
spring.rabbitmq.password=${RABBIT_PASSWORD}
spring.rabbitmq.virtual-host=${RABBIT_VHOST}
application-prod.properties
Attach backend services
11
without PCF/PWS
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}
spring.rabbitmq.addresses=${RABBIT_URL}
spring.rabbitmq.username=${RABBIT_USERNAME}
spring.rabbitmq.password=${RABBIT_PASSWORD}
spring.rabbitmq.virtual-host=${RABBIT_VHOST}
application-prod.properties
export DB_URL=real-db.example.com
export DB_USERNAME=real-db-user
export DB_PASSWORD=real-db-password
...
Spring Cloud Connectors
12
with PCF/PWS
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
@Bean
public DataSource dataSource() {
return connectionFactory().dataSource();
}
@Bean
public ConnectionFactory rabbitConnectionFactory() {
return connectionFactory().rabbitConnectionFactory();
}
}
Spring Cloud Connectors
12
with PCF/PWS
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
@Bean
public DataSource dataSource() {
return connectionFactory().dataSource();
}
@Bean
public ConnectionFactory rabbitConnectionFactory() {
return connectionFactory().rabbitConnectionFactory();
}
}
cf bind-service myapp mydb
cf bind-service myapp myrabbit
Spring Cloud Connectors
13
with PCF/PWS
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-spring-service-connector</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-cloudfoundry-connector</artifactId>
</dependency>
Spring Cloud Connectors
14
• RDB
• RabbitMQ
• Redis
• MongoDB
• SMTP
• Spring Cloud Services (Config Server, Eureka, Hystrix
Dashboard) [1]
• Vault [2]
• ....
with PCF/PWS
[1] ... https://github.com/pivotal-cf/spring-cloud-services-connector
[2] ... https://github.com/pivotal-cf/spring-cloud-vault-connector
⚠ Do NOT use default datasource
15
with PCF/PWS
https://discuss.pivotal.io/hc/en-us/articles/221898227-Connection-pool-warning-message-maxIdle-is-larger-than-
maxActive-setting-maxIdle-to-4-seen-in-PCF-deployed-Spring-app
org.apache.tomcat.jdbc.pool.ConnectionPool WARNING
maxIdle is larger than maxActive, setting maxIdle to: 4
⚠ Do NOT use default datasource
15
with PCF/PWS
https://discuss.pivotal.io/hc/en-us/articles/221898227-Connection-pool-warning-message-maxIdle-is-larger-than-
maxActive-setting-maxIdle-to-4-seen-in-PCF-deployed-Spring-app
org.apache.tomcat.jdbc.pool.ConnectionPool WARNING
maxIdle is larger than maxActive, setting maxIdle to: 4
org.apache.tomcat.jdbc.pool.PoolExhaustedException: [...]
Timeout: Pool empty. Unable to fetch a connection in 30
seconds, none available[size:4; busy:4; idle:0; lastwait:30000]
😱
⚠ Do NOT use default datasource
16
with PCF/PWS
@Profile("cloud")
public class CloudConfig extends AbstractCloudConfig {
@Bean
public DataSource dataSource() {
PooledServiceConnectorConfig.PoolConfig poolConfig
= new PooledServiceConnectorConfig.PoolConfig(
5 /* min */, 30 /* max */, 3000 /* wait */);
return connectionFactory()
.dataSource(new DataSourceConfig(poolConfig, null));
}
}
Spring Support in PCF
17
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
Microservices with Spring Cloud
18
without PCF/PWS
Spring Boot
App
Spring Boot
App
Service Registry
(Eureka)
Config Server
Circuit Breaker Dashboard
(Hystrix Dashboard)
You manage
(deploy + security)
You manage
(deploy + security)
You manage
(deploy + security)
Spring Cloud Services
19
with PCF/PWS
Spring Boot
App
Spring Boot
App
Service Registry
(Eureka)
Config Server
Circuit Breaker Dashboard
(Hystrix Dashboard)
PCF manage
(cf cs & cf bs)
PCF manage
(cf cs & cf bs)
PCF manage
(cf cs & cf bs)
19
UAA
Spring Support in PCF
20
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
Distributed Tracing with Zipkin
21
Spring Boot
App
Spring Boot
App
Spring Boot
App
without PCF/PWS
Spring Boot
App
Zipkin
You manage
(deploy + security)
X-B3-SpaceId
X-B3-TraceId
Distributed Tracing with Zipkin
22
spring.zipkin.url=my-zipkin.example.com
without PCF/PWS
Trace Exporter
23
Spring Boot
App
Spring Boot
App
PCF Metrics
with PCF/PWS
Trace Exporter
GoRouter
Spring Boot
App
Spring Boot
App
X-B3-SpaceId
X-B3-TraceId
Trace Exporter
24
Trace Exporter
25
Spring Support in PCF
26
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
Spring Boot Actuator
27
Spring Boot
Actuator
/health, /info, /loggers, /dump
Spring Boot Actuator
27
Spring Boot
Actuator
/health, /info, /loggers, /dump
Secured by default
since Spring Boot 1.5.
ROLE_ACTUATOR is required.
Secured by Default (since Spring Boot 1.5)
28
🔒
29
😛
management.security.enabled=false
29
😛
management.security.enabled=false
🙅
30
management.security.enabled=true
management.security.enabled=false
application.properties
application-cloud.properties
Many users say ...
31
Many users say ...
31
"Actuator is actually useful,
but
it is not for production, right?"
Nooooooooooooooooo!!!!!
32
Nooooooooooooooooo!!!!!
32 http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready.html
Secure with Spring Security
33
without PCF/PWS
@EnableWebSecurity
@Order(SecurityProperties.ACCESS_OVERRIDE_ORDER)
public class ActuatorSecurityConfig
extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.antMatcher("/admin/**").authorizedRequests()
.anyRequest().hasRole("ACTUATOR")
.and().httpBasic()
.and().csrf().disable();
}
// ...
}
management.context-path=/admin
Spring Actuator Support
in Apps Manager
34
Spring Boot
Actuator
/cloudfoundryapplication/health,
/cloudfoundryapplication/info, ...
Apps Manager
UAA
token
token
with PCF/PWS
Cloud
Controller
token
permission
Spring Actuator Support in Apps Manager
5
Endpoint Description Supported Version
/dump Get thread dump 🆕 1.11~
/env Get env variables, properties
/metrics Get application's metrics
/health Get the result of health checks ✅ 1.9~
/info Get build information ✅ 1.9~
/loggers Change logging level ✅ 1.9~
/trace Get request trace log 🆕 1.11~
/heapdump Download heap dump 🆕 1.11~
Apps Manager
36
/health
37
/info
38
/loggers
39
/dump
40
/dump
41
/trace
42
/heapdump
43
/heapdump
44
/heapdump
45
/heapdump
46
Spring Support in PCF
47
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
Spring Actuator Support in Apps Manager
8
Endpoint Description Supported Version
/dump Get thread dump 🆕 1.11~
/env Get env variables, properties
/metrics Get application's metrics
/health Get the result of health checks ✅ 1.9~
/info Get build information ✅ 1.9~
/loggers Change logging level ✅ 1.9~
/trace Get request trace log 🆕 1.11~
/heapdump Download heap dump 🆕 1.11~
Spring Actuator Support in Apps Manager
8
Endpoint Description Supported Version
/dump Get thread dump 🆕 1.11~
/env Get env variables, properties
/metrics Get application's metrics
/health Get the result of health checks ✅ 1.9~
/info Get build information ✅ 1.9~
/loggers Change logging level ✅ 1.9~
/trace Get request trace log 🆕 1.11~
/heapdump Download heap dump 🆕 1.11~
Spring Boot Actuator Metrics
49
Spring Boot
Actuator
/metrics
Spring Boot Actuator Metrics
49
Spring Boot
Actuator
/metrics
Metrics Writer
Spring Boot Actuator Metrics
49
Spring Boot
Actuator
/metrics
Metrics Writer TSDB or ...
Spring Boot Actuator Metrics
49
Spring Boot
Actuator
/metrics
Redis, OpenTSDB, Statsd, JMX
Metrics Writer TSDB or ...
Spring Boot Actuator Metrics
49
Spring Boot
Actuator
/metrics
send
Redis, OpenTSDB, Statsd, JMX
Metrics Writer TSDB or ...
Spring Boot Actuator Metrics
49
Spring Boot
Actuator
/metrics
send
Redis, OpenTSDB, Statsd, JMX
Dashboard
Metrics Writer TSDB or ...
Spring Boot Actuator Metrics
49
Spring Boot
Actuator
/metrics
send
Redis, OpenTSDB, Statsd, JMX
Dashboard
You configure
Metrics Writer TSDB or ...
Metrics Writer
50
@Bean
@ExportMetricWriter
MetricWriter metricWriter(MetricExportProperties export){
return new RedisMetricRepository(connectionFactory,
export.getRedis().getPrefix(),
export.getRedis().getKey());
}
docs.spring.io/spring-boot/docs/current/reference/html/production-ready-metrics.html#production-ready-metric-writers
without PCF/PWS
Metrics Forwarder Service
51
comes with java buildpack v3.18/4.2+
Enables Actuator's MetricsWriter to Metrics
Forwarder Service automatically
https://github.com/cloudfoundry/java-buildpack-metric-writer
https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-metric_writer.md
with PCF/PWS
Metrics Forwarder Service
52
Spring Boot
Actuator
Metrics Writer
Java
buildpack
Metrics
Forwarder
Service
bind
TSDB
Dashboard
send
send
with PCF/PWS
Metrics Forwarder Service
53
cf bind-service myapp mf
cf cups mf -p '{"endpoint":"X","access_token":"X"}'
cf create-service metric-forwarder plan mf
OR
THEN
with PCF/PWS
DEMO Scenario
54
Spring Boot
Actuator
Metrics Writer
Java
buildpack
Metrics
Forwarder
Service
bind
Grafana
Prometheus
scrape
send
works as
* Metrics Forwarder Service
* Service Broker
* Prometheus Exporter
PromQL
55
Source code
56
https://github.com/making/prometheus-exporter-
metrics-forwarder-service
Integration with PCF (Future)
57
Spring Boot
Actuator
Metrics Writer
Java
buildpack
Metrics
Forwarder
Service
bind
PCF Metrics,
Autoscaler
send
send
will be provided as a "tile"
Recap
58
Why PCF is best platform for Spring
➡ a lot of out-of-the-box features
• cloud profile
• Spring Cloud Connectors
• Spring Cloud Services
• Trace Exporter
• Spring Actuator Support in Apps Manager
• Metrics Forwarder Service
https://www.youtube.com/watch?v=9rPjLaOkEUo
59

Mais conteúdo relacionado

Mais procurados

Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugToshiaki Maki
 
Microservices with Spring and Cloud Foundry
Microservices with Spring and Cloud FoundryMicroservices with Spring and Cloud Foundry
Microservices with Spring and Cloud FoundryAlain Sahli
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerToshiaki Maki
 
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)Tsuyoshi Miyake
 
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsugToshiaki Maki
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07Toshiaki Maki
 
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoToshiaki Maki
 
Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGIntroduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGToshiaki Maki
 
Spring Cloud Stream with Kafka
Spring Cloud Stream with KafkaSpring Cloud Stream with Kafka
Spring Cloud Stream with KafkaDavid Kiss
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpToshiaki Maki
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & ActuatorsVMware Tanzu
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanPei-Tang Huang
 
From Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjugFrom Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjugToshiaki Maki
 
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Matt Raible
 
Spring5 New Features - Nov, 2017
Spring5 New Features - Nov, 2017Spring5 New Features - Nov, 2017
Spring5 New Features - Nov, 2017VMware Tanzu Korea
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with SpringJoshua Long
 
Cloud Foundy Java Client V 2.0 #cf_tokyo
Cloud Foundy Java Client V 2.0 #cf_tokyoCloud Foundy Java Client V 2.0 #cf_tokyo
Cloud Foundy Java Client V 2.0 #cf_tokyoToshiaki Maki
 
Team Support in Concourse CI 2.0 #concourse_tokyo
Team Support in Concourse CI 2.0 #concourse_tokyoTeam Support in Concourse CI 2.0 #concourse_tokyo
Team Support in Concourse CI 2.0 #concourse_tokyoToshiaki Maki
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務Mu Chun Wang
 

Mais procurados (20)

Spring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
 
Microservices with Spring and Cloud Foundry
Microservices with Spring and Cloud FoundryMicroservices with Spring and Cloud Foundry
Microservices with Spring and Cloud Foundry
 
Spring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
 
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
クラウド時代の Spring Framework (aka Spring Framework in Cloud Era)
 
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
 
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
 
Concourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyo
 
Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGIntroduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUG
 
Spring Cloud Stream with Kafka
Spring Cloud Stream with KafkaSpring Cloud Stream with Kafka
Spring Cloud Stream with Kafka
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
 
Spring Boot & Actuators
Spring Boot & ActuatorsSpring Boot & Actuators
Spring Boot & Actuators
 
Spring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', TaiwanSpring Booted, But... @JCConf 16', Taiwan
Spring Booted, But... @JCConf 16', Taiwan
 
From Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjugFrom Zero to Hero with REST and OAuth2 #jjug
From Zero to Hero with REST and OAuth2 #jjug
 
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
Java Microservices with Spring Boot and Spring Cloud - Denver JUG 2019
 
Spring5 New Features - Nov, 2017
Spring5 New Features - Nov, 2017Spring5 New Features - Nov, 2017
Spring5 New Features - Nov, 2017
 
Spring Boot
Spring BootSpring Boot
Spring Boot
 
REST APIs with Spring
REST APIs with SpringREST APIs with Spring
REST APIs with Spring
 
Cloud Foundy Java Client V 2.0 #cf_tokyo
Cloud Foundy Java Client V 2.0 #cf_tokyoCloud Foundy Java Client V 2.0 #cf_tokyo
Cloud Foundy Java Client V 2.0 #cf_tokyo
 
Team Support in Concourse CI 2.0 #concourse_tokyo
Team Support in Concourse CI 2.0 #concourse_tokyoTeam Support in Concourse CI 2.0 #concourse_tokyo
Team Support in Concourse CI 2.0 #concourse_tokyo
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 

Semelhante a Why PCF is the best platform for Spring Boot

Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonVMware Tanzu
 
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonVMware Tanzu
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSAOracle Korea
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316Jupil Hwang
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudVMware Tanzu
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasVMware Tanzu
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuVMware Tanzu
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliVMware Tanzu
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivotalOpenSourceHub
 
Spring Boot & Spring Cloud on Pivotal Application Service - Alexandre Roman
Spring Boot & Spring Cloud on Pivotal Application Service - Alexandre RomanSpring Boot & Spring Cloud on Pivotal Application Service - Alexandre Roman
Spring Boot & Spring Cloud on Pivotal Application Service - Alexandre RomanVMware Tanzu
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudRamnivas Laddad
 
Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development
Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud DevelopmentCloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development
Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud DevelopmentAndreas Falk
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTKai Zhao
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceVMware Tanzu
 
How to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCFHow to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCFVMware Tanzu
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootVMware Tanzu
 
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architectureDevoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architectureBen Wilcock
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesJakarta_EE
 
DEVNET-2009 Intercloud Fabric REST APIs for Providers
DEVNET-2009	Intercloud Fabric REST APIs for ProvidersDEVNET-2009	Intercloud Fabric REST APIs for Providers
DEVNET-2009 Intercloud Fabric REST APIs for ProvidersCisco DevNet
 
Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...
Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...
Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...Marco Obinu
 

Semelhante a Why PCF is the best platform for Spring Boot (20)

Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
 
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy ClarksonScheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
Scheduling Apps in the Cloud - Glenn Renfro & Roy Clarkson
 
SpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSASpringBoot and Spring Cloud Service for MSA
SpringBoot and Spring Cloud Service for MSA
 
Microservices with kubernetes @190316
Microservices with kubernetes @190316Microservices with kubernetes @190316
Microservices with kubernetes @190316
 
Resilient Microservices with Spring Cloud
Resilient Microservices with Spring CloudResilient Microservices with Spring Cloud
Resilient Microservices with Spring Cloud
 
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour DallasSpring and Pivotal Application Service - SpringOne Tour Dallas
Spring and Pivotal Application Service - SpringOne Tour Dallas
 
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan GoksuSpring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
Spring Cloud Services with Pivotal Cloud Foundry- Gokhan Goksu
 
Spring on PAS - Fabio Marinelli
Spring on PAS - Fabio MarinelliSpring on PAS - Fabio Marinelli
Spring on PAS - Fabio Marinelli
 
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby AnandanPivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
Pivoting Spring XD to Spring Cloud Data Flow with Sabby Anandan
 
Spring Boot & Spring Cloud on Pivotal Application Service - Alexandre Roman
Spring Boot & Spring Cloud on Pivotal Application Service - Alexandre RomanSpring Boot & Spring Cloud on Pivotal Application Service - Alexandre Roman
Spring Boot & Spring Cloud on Pivotal Application Service - Alexandre Roman
 
Simplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring CloudSimplify Cloud Applications using Spring Cloud
Simplify Cloud Applications using Spring Cloud
 
Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development
Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud DevelopmentCloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development
Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development
 
GE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoTGE Predix 新手入门 赵锴 物联网_IoT
GE Predix 新手入门 赵锴 物联网_IoT
 
Spring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application ServiceSpring Boot & Spring Cloud on Pivotal Application Service
Spring Boot & Spring Cloud on Pivotal Application Service
 
How to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCFHow to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCF
 
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring BootSpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
SpringOne Tour: Deliver 15-Factor Applications on Kubernetes with Spring Boot
 
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architectureDevoxx 2018 -  Pivotal and AxonIQ - Quickstart your event driven architecture
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
 
Building 12-factor Cloud Native Microservices
Building 12-factor Cloud Native MicroservicesBuilding 12-factor Cloud Native Microservices
Building 12-factor Cloud Native Microservices
 
DEVNET-2009 Intercloud Fabric REST APIs for Providers
DEVNET-2009	Intercloud Fabric REST APIs for ProvidersDEVNET-2009	Intercloud Fabric REST APIs for Providers
DEVNET-2009 Intercloud Fabric REST APIs for Providers
 
Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...
Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...
Automazione serverless con Azure Functions e PowerShell - Marco Obinu - DevOp...
 

Mais de Toshiaki Maki

Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tToshiaki Maki
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
 
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Toshiaki Maki
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jpToshiaki Maki
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoToshiaki Maki
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Toshiaki Maki
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...Toshiaki Maki
 
今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_k今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_kToshiaki Maki
 
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techConsumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techToshiaki Maki
 
Implement Service Broker with Spring Boot #cf_tokyo
Implement Service Broker with Spring Boot #cf_tokyoImplement Service Broker with Spring Boot #cf_tokyo
Implement Service Broker with Spring Boot #cf_tokyoToshiaki Maki
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...Toshiaki Maki
 
Concourse CI Meetup Demo
Concourse CI Meetup DemoConcourse CI Meetup Demo
Concourse CI Meetup DemoToshiaki Maki
 
Install Concourse CI with BOSH
Install Concourse CI with BOSHInstall Concourse CI with BOSH
Install Concourse CI with BOSHToshiaki Maki
 
Introduction to Concourse CI #渋谷Java
Introduction to Concourse CI #渋谷JavaIntroduction to Concourse CI #渋谷Java
Introduction to Concourse CI #渋谷JavaToshiaki Maki
 

Mais de Toshiaki Maki (14)

Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
 
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
 
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
 
Zipkin Components #zipkin_jp
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
 
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
 
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
 
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
 
今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_k今すぐ始めるCloud Foundry #hackt #hackt_k
今すぐ始めるCloud Foundry #hackt #hackt_k
 
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3techConsumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
Consumer Driven Contractsで REST API/マイクロサービスをテスト #m3tech
 
Implement Service Broker with Spring Boot #cf_tokyo
Implement Service Broker with Spring Boot #cf_tokyoImplement Service Broker with Spring Boot #cf_tokyo
Implement Service Broker with Spring Boot #cf_tokyo
 
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
#jjug_ccc #ccc_gh5 What's new in Spring Framework 4.3 / Boot 1.4 + Pivotal's ...
 
Concourse CI Meetup Demo
Concourse CI Meetup DemoConcourse CI Meetup Demo
Concourse CI Meetup Demo
 
Install Concourse CI with BOSH
Install Concourse CI with BOSHInstall Concourse CI with BOSH
Install Concourse CI with BOSH
 
Introduction to Concourse CI #渋谷Java
Introduction to Concourse CI #渋谷JavaIntroduction to Concourse CI #渋谷Java
Introduction to Concourse CI #渋谷Java
 

Último

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URLRuncy Oommen
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioChristian Posta
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncObject Automation
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.YounusS2
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServiceRenan Moreira de Oliveira
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsSeth Reyes
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Websitedgelyza
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfAnna Loughnan Colquhoun
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdfJamie (Taka) Wang
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemAsko Soukka
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8DianaGray10
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 

Último (20)

Designing A Time bound resource download URL
Designing A Time bound resource download URLDesigning A Time bound resource download URL
Designing A Time bound resource download URL
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
Comparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and IstioComparing Sidecar-less Service Mesh from Cilium and Istio
Comparing Sidecar-less Service Mesh from Cilium and Istio
 
GenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation IncGenAI and AI GCC State of AI_Object Automation Inc
GenAI and AI GCC State of AI_Object Automation Inc
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.Basic Building Blocks of Internet of Things.
Basic Building Blocks of Internet of Things.
 
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer ServicePicPay - GenAI Finance Assistant - ChatGPT for Customer Service
PicPay - GenAI Finance Assistant - ChatGPT for Customer Service
 
Computer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and HazardsComputer 10: Lesson 10 - Online Crimes and Hazards
Computer 10: Lesson 10 - Online Crimes and Hazards
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
COMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a WebsiteCOMPUTER 10 Lesson 8 - Building a Website
COMPUTER 10 Lesson 8 - Building a Website
 
Spring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdfSpring24-Release Overview - Wellingtion User Group-1.pdf
Spring24-Release Overview - Wellingtion User Group-1.pdf
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
20200723_insight_release_plan_v6.pdf20200723_insight_release_plan_v6.pdf
 
Bird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystemBird eye's view on Camunda open source ecosystem
Bird eye's view on Camunda open source ecosystem
 
UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8UiPath Studio Web workshop series - Day 8
UiPath Studio Web workshop series - Day 8
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 

Why PCF is the best platform for Spring Boot

  • 1. 1 Why PCF is the best platform for Spring Boot 2017-07-20 Toshiaki Maki (@making)
  • 2. Who am I ? 2 Toshiaki Maki (@making) https://blog.ik.am Sr. Solutions Architect @Pivotal Japan Spring Framework 💖 Cloud Foundry 💖
  • 3. Platform Spring Specific Comparison 3 AWS BeanStalk Azure WebApps Google AppEngine Heroku OpenShift /k8s PCF/ PWS Spring Cloud Connector Spring Cloud Connector Heroku Spring Cloud Connector Cloud Foundry Spring Boot Integration * cloud profile * Apps Manager Spring Boot Actuator Support * Metric Forwarder Spring Cloud Integration Spring Cloud AWS Spring Cloud GCP * Spring Cloud Kubernetes * SCDF * Spring Cloud Services * Trace Exporter * SCDF
  • 4. Platform Spring Specific Comparison 3 AWS BeanStalk Azure WebApps Google AppEngine Heroku OpenShift /k8s PCF/ PWS Spring Cloud Connector Spring Cloud Connector Heroku Spring Cloud Connector Cloud Foundry Spring Boot Integration * cloud profile * Apps Manager Spring Boot Actuator Support * Metric Forwarder Spring Cloud Integration Spring Cloud AWS Spring Cloud GCP * Spring Cloud Kubernetes * SCDF * Spring Cloud Services * Trace Exporter * SCDF
  • 5. Why PCF for Spring? 4
  • 6. Why PCF for Spring? 4 Because Pivotal Cloud Foundry gives us a lot of out-of-the-box features to manage / operate Spring Boot apps
  • 7. Why PCF for Spring? 4 Because Pivotal Cloud Foundry gives us a lot of out-of-the-box features to manage / operate Spring Boot apps
  • 8. Why PCF for Spring? 4 Because Pivotal Cloud Foundry gives us a lot of out-of-the-box features to manage / operate Spring Boot apps 12 Factors Apps Microservices Security Tracing Metrics
  • 9. Spring Support in PCF 5 • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service
  • 10. Spring Support in PCF 6 • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service
  • 11. "profile" in Spring 7 without PCF/PWS myapp.foo=I am in local env. message=I am a default property. logging.level.com.example=DEBUG myapp.foo=I am in AWS. message=I am a production property logging.level.com.example=INFO application.properties application-prod.properties java -jar app.jar --spring.profiles.active=prod
  • 12. cloud profile 8 with PCF/PWS myapp.foo=I am in local env. message=I am a default property. logging.level.com.example=DEBUG myapp.foo=I am in cloud foundry. message=I am a cloud property. logging.level.com.example=INFO application.properties application-cloud.properties java -jar app.jar --spring.profiles.active=cloud
  • 13. cloud profile 8 with PCF/PWS myapp.foo=I am in local env. message=I am a default property. logging.level.com.example=DEBUG myapp.foo=I am in cloud foundry. message=I am a cloud property. logging.level.com.example=INFO application.properties application-cloud.properties java -jar app.jar --spring.profiles.active=cloud cloud profile is set by java-buildpack
  • 14. Spring Support in PCF 9 • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service
  • 15. Attach backend services 10 without PCF/PWS spring.datasource.url=real-db.example.com spring.datasource.username=real-db-user spring.datasource.password=readl-db-password spring.rabbitmq.addresses=real-rabbit.example.com spring.rabbitmq.username=real-rabbit-user spring.rabbitmq.password=real-rabbit-password spring.rabbitmq.virtual-host=real-vhost application-prod.properties
  • 16. Attach backend services 11 without PCF/PWS spring.datasource.url=${DB_URL} spring.datasource.username=${DB_USERNAME} spring.datasource.password=${DB_PASSWORD} spring.rabbitmq.addresses=${RABBIT_URL} spring.rabbitmq.username=${RABBIT_USERNAME} spring.rabbitmq.password=${RABBIT_PASSWORD} spring.rabbitmq.virtual-host=${RABBIT_VHOST} application-prod.properties
  • 17. Attach backend services 11 without PCF/PWS spring.datasource.url=${DB_URL} spring.datasource.username=${DB_USERNAME} spring.datasource.password=${DB_PASSWORD} spring.rabbitmq.addresses=${RABBIT_URL} spring.rabbitmq.username=${RABBIT_USERNAME} spring.rabbitmq.password=${RABBIT_PASSWORD} spring.rabbitmq.virtual-host=${RABBIT_VHOST} application-prod.properties export DB_URL=real-db.example.com export DB_USERNAME=real-db-user export DB_PASSWORD=real-db-password ...
  • 18. Spring Cloud Connectors 12 with PCF/PWS @Profile("cloud") public class CloudConfig extends AbstractCloudConfig { @Bean public DataSource dataSource() { return connectionFactory().dataSource(); } @Bean public ConnectionFactory rabbitConnectionFactory() { return connectionFactory().rabbitConnectionFactory(); } }
  • 19. Spring Cloud Connectors 12 with PCF/PWS @Profile("cloud") public class CloudConfig extends AbstractCloudConfig { @Bean public DataSource dataSource() { return connectionFactory().dataSource(); } @Bean public ConnectionFactory rabbitConnectionFactory() { return connectionFactory().rabbitConnectionFactory(); } } cf bind-service myapp mydb cf bind-service myapp myrabbit
  • 20. Spring Cloud Connectors 13 with PCF/PWS <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-spring-service-connector</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-cloudfoundry-connector</artifactId> </dependency>
  • 21. Spring Cloud Connectors 14 • RDB • RabbitMQ • Redis • MongoDB • SMTP • Spring Cloud Services (Config Server, Eureka, Hystrix Dashboard) [1] • Vault [2] • .... with PCF/PWS [1] ... https://github.com/pivotal-cf/spring-cloud-services-connector [2] ... https://github.com/pivotal-cf/spring-cloud-vault-connector
  • 22. ⚠ Do NOT use default datasource 15 with PCF/PWS https://discuss.pivotal.io/hc/en-us/articles/221898227-Connection-pool-warning-message-maxIdle-is-larger-than- maxActive-setting-maxIdle-to-4-seen-in-PCF-deployed-Spring-app org.apache.tomcat.jdbc.pool.ConnectionPool WARNING maxIdle is larger than maxActive, setting maxIdle to: 4
  • 23. ⚠ Do NOT use default datasource 15 with PCF/PWS https://discuss.pivotal.io/hc/en-us/articles/221898227-Connection-pool-warning-message-maxIdle-is-larger-than- maxActive-setting-maxIdle-to-4-seen-in-PCF-deployed-Spring-app org.apache.tomcat.jdbc.pool.ConnectionPool WARNING maxIdle is larger than maxActive, setting maxIdle to: 4 org.apache.tomcat.jdbc.pool.PoolExhaustedException: [...] Timeout: Pool empty. Unable to fetch a connection in 30 seconds, none available[size:4; busy:4; idle:0; lastwait:30000] 😱
  • 24. ⚠ Do NOT use default datasource 16 with PCF/PWS @Profile("cloud") public class CloudConfig extends AbstractCloudConfig { @Bean public DataSource dataSource() { PooledServiceConnectorConfig.PoolConfig poolConfig = new PooledServiceConnectorConfig.PoolConfig( 5 /* min */, 30 /* max */, 3000 /* wait */); return connectionFactory() .dataSource(new DataSourceConfig(poolConfig, null)); } }
  • 25. Spring Support in PCF 17 • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service
  • 26. Microservices with Spring Cloud 18 without PCF/PWS Spring Boot App Spring Boot App Service Registry (Eureka) Config Server Circuit Breaker Dashboard (Hystrix Dashboard) You manage (deploy + security) You manage (deploy + security) You manage (deploy + security)
  • 27. Spring Cloud Services 19 with PCF/PWS Spring Boot App Spring Boot App Service Registry (Eureka) Config Server Circuit Breaker Dashboard (Hystrix Dashboard) PCF manage (cf cs & cf bs) PCF manage (cf cs & cf bs) PCF manage (cf cs & cf bs) 19 UAA
  • 28. Spring Support in PCF 20 • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service
  • 29. Distributed Tracing with Zipkin 21 Spring Boot App Spring Boot App Spring Boot App without PCF/PWS Spring Boot App Zipkin You manage (deploy + security) X-B3-SpaceId X-B3-TraceId
  • 30. Distributed Tracing with Zipkin 22 spring.zipkin.url=my-zipkin.example.com without PCF/PWS
  • 31. Trace Exporter 23 Spring Boot App Spring Boot App PCF Metrics with PCF/PWS Trace Exporter GoRouter Spring Boot App Spring Boot App X-B3-SpaceId X-B3-TraceId
  • 34. Spring Support in PCF 26 • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service
  • 35. Spring Boot Actuator 27 Spring Boot Actuator /health, /info, /loggers, /dump
  • 36. Spring Boot Actuator 27 Spring Boot Actuator /health, /info, /loggers, /dump Secured by default since Spring Boot 1.5. ROLE_ACTUATOR is required.
  • 37. Secured by Default (since Spring Boot 1.5) 28 🔒
  • 41. Many users say ... 31
  • 42. Many users say ... 31 "Actuator is actually useful, but it is not for production, right?"
  • 45. Secure with Spring Security 33 without PCF/PWS @EnableWebSecurity @Order(SecurityProperties.ACCESS_OVERRIDE_ORDER) public class ActuatorSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.antMatcher("/admin/**").authorizedRequests() .anyRequest().hasRole("ACTUATOR") .and().httpBasic() .and().csrf().disable(); } // ... } management.context-path=/admin
  • 46. Spring Actuator Support in Apps Manager 34 Spring Boot Actuator /cloudfoundryapplication/health, /cloudfoundryapplication/info, ... Apps Manager UAA token token with PCF/PWS Cloud Controller token permission
  • 47. Spring Actuator Support in Apps Manager 5 Endpoint Description Supported Version /dump Get thread dump 🆕 1.11~ /env Get env variables, properties /metrics Get application's metrics /health Get the result of health checks ✅ 1.9~ /info Get build information ✅ 1.9~ /loggers Change logging level ✅ 1.9~ /trace Get request trace log 🆕 1.11~ /heapdump Download heap dump 🆕 1.11~
  • 59. Spring Support in PCF 47 • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service
  • 60. Spring Actuator Support in Apps Manager 8 Endpoint Description Supported Version /dump Get thread dump 🆕 1.11~ /env Get env variables, properties /metrics Get application's metrics /health Get the result of health checks ✅ 1.9~ /info Get build information ✅ 1.9~ /loggers Change logging level ✅ 1.9~ /trace Get request trace log 🆕 1.11~ /heapdump Download heap dump 🆕 1.11~
  • 61. Spring Actuator Support in Apps Manager 8 Endpoint Description Supported Version /dump Get thread dump 🆕 1.11~ /env Get env variables, properties /metrics Get application's metrics /health Get the result of health checks ✅ 1.9~ /info Get build information ✅ 1.9~ /loggers Change logging level ✅ 1.9~ /trace Get request trace log 🆕 1.11~ /heapdump Download heap dump 🆕 1.11~
  • 62. Spring Boot Actuator Metrics 49 Spring Boot Actuator /metrics
  • 63. Spring Boot Actuator Metrics 49 Spring Boot Actuator /metrics Metrics Writer
  • 64. Spring Boot Actuator Metrics 49 Spring Boot Actuator /metrics Metrics Writer TSDB or ...
  • 65. Spring Boot Actuator Metrics 49 Spring Boot Actuator /metrics Redis, OpenTSDB, Statsd, JMX Metrics Writer TSDB or ...
  • 66. Spring Boot Actuator Metrics 49 Spring Boot Actuator /metrics send Redis, OpenTSDB, Statsd, JMX Metrics Writer TSDB or ...
  • 67. Spring Boot Actuator Metrics 49 Spring Boot Actuator /metrics send Redis, OpenTSDB, Statsd, JMX Dashboard Metrics Writer TSDB or ...
  • 68. Spring Boot Actuator Metrics 49 Spring Boot Actuator /metrics send Redis, OpenTSDB, Statsd, JMX Dashboard You configure Metrics Writer TSDB or ...
  • 69. Metrics Writer 50 @Bean @ExportMetricWriter MetricWriter metricWriter(MetricExportProperties export){ return new RedisMetricRepository(connectionFactory, export.getRedis().getPrefix(), export.getRedis().getKey()); } docs.spring.io/spring-boot/docs/current/reference/html/production-ready-metrics.html#production-ready-metric-writers without PCF/PWS
  • 70. Metrics Forwarder Service 51 comes with java buildpack v3.18/4.2+ Enables Actuator's MetricsWriter to Metrics Forwarder Service automatically https://github.com/cloudfoundry/java-buildpack-metric-writer https://github.com/cloudfoundry/java-buildpack/blob/master/docs/framework-metric_writer.md with PCF/PWS
  • 71. Metrics Forwarder Service 52 Spring Boot Actuator Metrics Writer Java buildpack Metrics Forwarder Service bind TSDB Dashboard send send with PCF/PWS
  • 72. Metrics Forwarder Service 53 cf bind-service myapp mf cf cups mf -p '{"endpoint":"X","access_token":"X"}' cf create-service metric-forwarder plan mf OR THEN with PCF/PWS
  • 73. DEMO Scenario 54 Spring Boot Actuator Metrics Writer Java buildpack Metrics Forwarder Service bind Grafana Prometheus scrape send works as * Metrics Forwarder Service * Service Broker * Prometheus Exporter PromQL
  • 74. 55
  • 76. Integration with PCF (Future) 57 Spring Boot Actuator Metrics Writer Java buildpack Metrics Forwarder Service bind PCF Metrics, Autoscaler send send will be provided as a "tile"
  • 77. Recap 58 Why PCF is best platform for Spring ➡ a lot of out-of-the-box features • cloud profile • Spring Cloud Connectors • Spring Cloud Services • Trace Exporter • Spring Actuator Support in Apps Manager • Metrics Forwarder Service