cloud foundry meetup stuttgart 2017 - spring cloud development

21
„Cloud-Native“ Java (Kotlin) Applications & Cloud Foundry Spring Boot Spring Cloud https://projects.spring.io/spring-boot/ https://projects.spring.io/spring-cloud/ Cloud Foundry Stuttgart Meetup - 26.4.2017

Upload: andreas-falk

Post on 22-Jan-2018

166 views

Category:

Technology


3 download

TRANSCRIPT

„Cloud-Native“ Java (Kotlin)

Applications & Cloud Foundry

Spring Boot Spring Cloud

https://projects.spring.io/spring-boot/ https://projects.spring.io/spring-cloud/

Cloud Foundry Stuttgart Meetup - 26.4.2017

Spring Cloud

Spring IO Platform

Spring Boot

Spring Cloud Config Spring Cloud Netflix

Spring Cloud for

CloudFoundry

Spring Cloud Bus

Spring Cloud Security

Spring Cloud Data Flow Spring Cloud Sleuth

Spring Cloud Stream

Spring Cloud Task Spring Cloud Connectors

Spring Cloud Contract Spring Cloud

for AWS

Spring Cloud Function https://github.com/markfisher/spring-cloud-function Spring Cloud Gateway

https://github.com/spring-cloud-incubator/spring-

cloud-gateway Spring Cloud Pipelines

https://12factor.net/

„Cloud-Native“

Java Applications

buildscript {

ext {

springBootVersion = '1.5.3.RELEASE'

}

}

dependencies {

compile('org.springframework.boot:spring-boot-starter-actuator')

compile('org.springframework.boot:spring-boot-starter-web')

testCompile('org.springframework.boot:spring-boot-starter-test')

}

Spring Boot

II. Dependencies

Explicitly declare and isolate dependencies

http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#appendix-dependency-versions

$ java -jar helloworld-0.0.1-SNAPSHOT.jar

$ ./helloworld-0.0.1-SNAPSHOT.jar

… --- [main] HelloworldApplication : Started HelloworldApplication in 3.801 seconds (JVM running for 4.403)

$ <Ctrl-C>

…Closing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext

…Stopping beans in phase 0

…Unregistering JMX-exposed beans on shutdown

$ ./helloworld-0.0.1-SNAPSHOT.jar

… --- [main] HelloworldApplication : Started HelloworldApplication in 3.801 seconds (JVM running for 4.403)

Spring Boot

IX. Disposability

Maximize robustness with fast startup and graceful shutdown

Spring Boot Actuator

Monitor & manage via HTTP, JMX, SSH, Telnet

Auditing, health and metrics

CloudFoundry integration Spring Boot

Transparent about state / health

http://start.spring.io

https://www.cloudfoundry.org/

cf push

Here is my source code

Run it on the cloud for me

I do not care how

cf push my-app …

“Here is my source code

Run it on the cloud for me

I do not care how!” ONSI FAKHOURI (VP Cloud R&D, Pivotal)

https://network.pivotal.io/products/pcfdev

https://network.pivotal.io/products/pcfdev

https://github.com/cloudfoundry/cli

CloudFoundry Command Line Interface

$ cf login -a api.run.pivotal.io -u [email protected] -p xxx -s development

API endpoint: api.run.pivotal.io

Authenticating...

OK

API endpoint: https://api.run.pivotal.io (API version: 2.78.0)

User: [email protected]

Org: NT-Labs

Space: development

$ cf login -a api.local.pcfdev.io -u admin -p admin -o pcfdev-org -s pcfdev-space

Elastic

Runtime Services

Buildpack Monitoring

cf push

IV. Backing services

Treat backing services as attached resources

Microservice

Service Service Binding

Credentials

$ cf marketplace

$ cf create-service mysql 1gb mysqldb

$ cf bind-service myapp mysqldb

$ cf restage myapp

Spring Cloud Config

Externalize configuration to git repository

Refresh application configuration without restart

Store encrypted sensible configuration data Spring Cloud

https://cloud.spring.io/spring-cloud-config/

III. Config

Store config in the environment

Spring Cloud Sleuth

Distributed tracing

PCF Metrics

Logs, metrics and event data from apps

Trace explorer

Spring Cloud

https://content.pivotal.io/blog/distributed-tracing-in-pcf-metrics-breakthrough-insight-for-microservices

XI. Logs

Treat logs as event streams

https://docs.pivotal.io/pcf-metrics/1-3/index.html

https://cloud.spring.io/spring-cloud-sleuth

CLOUD NATIVE SECURITY

Rotate

Repair

Repave

(Justin Smith)

Don‘t hesitate to ask: [email protected]

Questions?

The End