SlideShare ist ein Scribd-Unternehmen logo
1 von 78
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

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
 

Was ist angesagt? (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 到各種網路服務
 

Ähnlich wie 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
 

Ähnlich wie 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...
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Kürzlich hochgeladen (20)

Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

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