Top Banner
„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
21

Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

Jan 22, 2018

Download

Technology

Andreas Falk
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

„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

Page 2: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

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

Page 3: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

https://12factor.net/

„Cloud-Native“

Java Applications

Page 4: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

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

Page 5: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

$ 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

Page 6: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

Spring Boot Actuator

Monitor & manage via HTTP, JMX, SSH, Telnet

Auditing, health and metrics

CloudFoundry integration Spring Boot

Transparent about state / health

Page 7: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

http://start.spring.io

Page 8: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

https://www.cloudfoundry.org/

Page 9: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

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)

Page 10: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

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

Page 11: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

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

Page 12: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

https://github.com/cloudfoundry/cli

CloudFoundry Command Line Interface

Page 13: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

$ 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

Page 14: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

Elastic

Runtime Services

Buildpack Monitoring

cf push

Page 15: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

IV. Backing services

Treat backing services as attached resources

Microservice

Service Service Binding

Credentials

Page 16: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

$ cf marketplace

$ cf create-service mysql 1gb mysqldb

$ cf bind-service myapp mysqldb

$ cf restage myapp

Page 17: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

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

Page 18: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

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

Page 19: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

CLOUD NATIVE SECURITY

Rotate

Repair

Repave

(Justin Smith)

Page 20: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development
Page 21: Cloud Foundry Meetup Stuttgart 2017 - Spring Cloud Development

Don‘t hesitate to ask: [email protected]

Questions?

The End