SlideShare a Scribd company logo
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Extending the Platform
Kenny Bastani
@kennybastani
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 2
@kennybastani
Spring Developer Advocate
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What makes an application
legacy?
3
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What makes an application legacy?
• How fast can you make changes to the application and deliver it into
production?
• How much work is it to upgrade the application framework?
4
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Legacy is an architecture problem
5
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Monolith
6
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7
Microservices…
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
If we're creating 10x the number of apps,
we're creating 10x the technical debt
8
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
What does your microservice architecture look
like in 10 years?
9
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
If you have to implement the same thing
in every application, it should be provided
by the platform as a service
10
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Do this successfully, and the only thing is left
is the valuable business logic
11
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
The two road blocks of cloud native
• Legacy applications
• Legacy culture
12
Legacy culture looks
like this
Legacy applications look like this
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
How do we do better?
15
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Platform Engineering
16
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Platform Engineering
• Everything that sits around your applications is vital to supporting the health of
your applications
• Unfortunately, anything that is not business logic is going to make it harder to
upgrade your application later
• Platform engineering is the art of automating standards in an application
architecture by reducing redundancy across applications
17
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Redundancy in code creates technical debt.
In microservices, multiply that debt by the
number of apps
18
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Boot + Cloud Foundry Service Brokers
19
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Backing services
20
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Online Store Example
21
Extending the Platform with Spring Boot and Cloud Foundry
Backing services
Microservices
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Boot
24
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Platform engineers can take an opinionated
view on how application developers will
consume services
25
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Cloud Foundry Service Brokers
• The Cloud Foundry marketplace is similar to the idea of starter projects in Spring
Boot
• Services can be offered on Cloud Foundry and bound to your application
deployments
• These marketplace services can be seen as backing services for your
applications
26
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 27
Microservices…
Backing services
Microservices
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Amazon S3 Service Broker
• The demo for this presentation is going to create an Amazon S3 service broker
• We’ll release the broker to PCF Dev
• Extend Spring Boot to automatically consume service instances from the
broker
• Deploy Spring Boot S3 browser that uses a starter project to connect to
Amazon S3
29
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Cloud Controller
• The Cloud Controller is the contract that Cloud Foundry exposes over HTTP as a
REST API
• We can create service brokers that implement expectations from this contract to
allow CF and other broker applications to talk to each other
30
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Spring Boot Service Broker Template
• The Spring team maintains an example project that provides the boiler plate for
creating custom service brokers using Spring Boot
• https://github.com/spring-cloud/spring-cloud-cloudfoundry-service-broker
33
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Implementing the service contracts
• Service Catalog
• Service Instances
• Service Bindings
34
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Service Catalog
35
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Service Instances
• Each method in the interface represents the implementation of a repository
pattern
• Controls the lifecycle of resources on AWS that provide exclusive access to a
S3 bucket
• The two resources that we will manage are:
• S3 buckets
• IAM users
38
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Service Bindings
• The goal of the Amazon S3 Broker is to create S3 buckets that can be
automatically bound to an application
• Further, we want to make the service as easy to consume in a cloud native
environment using Spring Boot starter projects to auto-configure the connection
• The result of this is that a service binding will attach to a Cloud Foundry
deployment and inject the environment variables into the application’s container
• Our Spring Boot application will look for those environment variables at runtime
and automatically configure an S3 connection
45
Extending the Platform with Spring Boot and Cloud Foundry
Extending the Platform with Spring Boot and Cloud Foundry
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Releasing the Service Broker
• There are multiple options for releasing service brokers
• Deploy as a CF app
• Release with BOSH
48
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Why should we use BOSH to release a service broker
instead of deploying the application with Cloud Foundry?
49
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
It depends on the virtualized compute
resources you intend to manage with your
custom broker
50
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
When to use BOSH
• When you need to orchestrate resources with the IaaS provider that your CF
deployment uses
• Virtual machines
• Network resources
• BOSH provides a director API you can use to manage IaaS resources
• Portable with different IaaS providers that have a BOSH CPI
51
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
When not to use BOSH
• When you do not need to manage resources using the IaaS
• Example:
• Amazon S3
• Basically any AWS service that has an SDK
• Sometimes we just want to wrap another cloud service in a service broker, and
that is OK
52
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Releasing with Cloud Foundry
• Let’s jump into code and release the S3 service broker as a CF deployment
53
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Release steps
• Create MySQL database as a service binding for the S3 broker
• Build and push the S3 broker app
• Bind Amazon AWS credentials as environment variables
• Restage the S3 broker
• Create service broker using CF CLI
• Enable marketplace access to S3 broker
• Create new service instance named s3-service
54
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Extending Spring Boot
• We can create a starter project that includes an Amazon S3 template for
consuming S3 service instances
• All we need to do is to include the Amazon S3 starter project as a dependency
55
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Custom Spring Boot starter projects
• We need to create two project modules
• Auto-configuration project with the client libraries to consume a service
instance (Amazon S3 Template)
• Basic starter dependency project that includes the auto-configuration
project using Maven
56
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Conclusion
57
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Platforms are forever
58
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Build value into the platform and reduce
redundancies early in microservice
architectures
59
Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a
Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/
Learn More. Stay Connected.
Thanks!
@kennybastani on Twitter
@springcentral
spring.io/blog
@pivotal
pivotal.io/blog
@pivotalcf
http://engineering.pivotal.io

More Related Content

PDF
Back your app with MySQL and Redis on Cloud Foundry
PDF
Building Cloud Native Architectures with Spring
PDF
In the Eventual Consistency of Succeeding at Microservices
PDF
The Making of a Cloud Native Application Platform
PPTX
The Cloud Native Journey
PDF
The Need of Cloud-Native Application
PDF
Cloud Native Computing: What does it mean, and is your app Cloud Native?
PPTX
Cloud Native Application Framework
Back your app with MySQL and Redis on Cloud Foundry
Building Cloud Native Architectures with Spring
In the Eventual Consistency of Succeeding at Microservices
The Making of a Cloud Native Application Platform
The Cloud Native Journey
The Need of Cloud-Native Application
Cloud Native Computing: What does it mean, and is your app Cloud Native?
Cloud Native Application Framework

What's hot (20)

PDF
Cloud Native Application
PPTX
2015 cloud trend and cloud DR
PDF
Evolving to Cloud-Native - Anand Rao
PDF
Dipping Your Toes Into Cloud Native Application Development
PPTX
CF SUMMIT: Partnerships, Business and Cloud Foundry
PDF
LIVE DEMO: Pivotal Cloud Foundry
PDF
Pivotal Cloud Foundry: A Technical Overview
PDF
Introduction to Cloud Native Computing
PDF
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
PDF
Microservices Best Practices
PDF
Agile integration: Decomposing the monolith
ODP
micro services architecture (FrosCon2014)
PDF
LIVE DEMO: Pivotal Cloud Foundry
PDF
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
PDF
Continuous Delivery de vos applications dans un environnement multi-cloud et ...
PPTX
Cloud Native Infrastructure Automation
PPTX
"The Cloud Native Enterprise is Coming"
PPTX
Cloud Native Runtime Platform
PPTX
Think Small To Go Big - Introduction To Microservices
PDF
API Microservices with Node.js and Docker
Cloud Native Application
2015 cloud trend and cloud DR
Evolving to Cloud-Native - Anand Rao
Dipping Your Toes Into Cloud Native Application Development
CF SUMMIT: Partnerships, Business and Cloud Foundry
LIVE DEMO: Pivotal Cloud Foundry
Pivotal Cloud Foundry: A Technical Overview
Introduction to Cloud Native Computing
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
Microservices Best Practices
Agile integration: Decomposing the monolith
micro services architecture (FrosCon2014)
LIVE DEMO: Pivotal Cloud Foundry
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
Continuous Delivery de vos applications dans un environnement multi-cloud et ...
Cloud Native Infrastructure Automation
"The Cloud Native Enterprise is Coming"
Cloud Native Runtime Platform
Think Small To Go Big - Introduction To Microservices
API Microservices with Node.js and Docker
Ad

Viewers also liked (19)

PDF
Using Docker, Neo4j, and Spring Cloud for Developing Microservices
PPTX
Building REST APIs with Spring Boot and Spring Cloud
PDF
Cloud Native Java Microservices
PDF
Introduction To The DANE Protocol (DNSSEC)
PDF
Ethernet Over Dwdm Whitepaper
PPTX
Top 10 deputy director interview questions and answers
PDF
Introduction to Data Collection
ZIP
Demand forecasting
PPTX
The Fashion Channel - A case Analysis
PPTX
Distributed System Management
PDF
Fixed Income Trading System Architecture
PPTX
Digital Engagement Strategies
PPT
Enterprise Architecture Frameworks
PPTX
Developingan Export Strategy Marketing Plan (1)
PPT
Mga isyu at problema sa pilipinas bunga ng mga pagbabago sa asya
PDF
Mobile Money Business Models
PPT
Introduction to fixed partial denture
PDF
内容组织
Using Docker, Neo4j, and Spring Cloud for Developing Microservices
Building REST APIs with Spring Boot and Spring Cloud
Cloud Native Java Microservices
Introduction To The DANE Protocol (DNSSEC)
Ethernet Over Dwdm Whitepaper
Top 10 deputy director interview questions and answers
Introduction to Data Collection
Demand forecasting
The Fashion Channel - A case Analysis
Distributed System Management
Fixed Income Trading System Architecture
Digital Engagement Strategies
Enterprise Architecture Frameworks
Developingan Export Strategy Marketing Plan (1)
Mga isyu at problema sa pilipinas bunga ng mga pagbabago sa asya
Mobile Money Business Models
Introduction to fixed partial denture
内容组织
Ad

Similar to Extending the Platform with Spring Boot and Cloud Foundry (20)

PPTX
How to Build More Secure Service Brokers
PDF
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
PDF
To Microservices and Beyond
PDF
Microservices for java architects it-symposium-2015-09-15
PDF
Full lifecycle of a microservice
PPTX
Spring cloud-netflix-oss-microservices
PDF
Concevoir et déployer vos applications a base de microservices sur Cloud Foundry
PDF
Pivotal microservices spring_pcf_skillsmatter.pptx
PDF
Microservices for java architects coders-conf-2015-05-15
PDF
Cloudify your applications: microservices and beyond
PDF
Cloud-native Data: Every Microservice Needs a Cache
PDF
Microservices on a budget meetup
PDF
Lattice: A Cloud-Native Platform for Your Spring Applications
PDF
The Beginner’s Guide To Spring Cloud
PDF
Developing microservices with Java and applying Spring security framework and...
PDF
Microservice-based software architecture
PDF
Cloud native Microservices using Spring Boot
PDF
Building .NET Microservices
PDF
Accion Labs - Cloud in practice - Cloud computing platforms
PDF
Accion Cloud in Practice - Cloud Comuting Platforms Classification
How to Build More Secure Service Brokers
Devoxx 2018 - Pivotal and AxonIQ - Quickstart your event driven architecture
To Microservices and Beyond
Microservices for java architects it-symposium-2015-09-15
Full lifecycle of a microservice
Spring cloud-netflix-oss-microservices
Concevoir et déployer vos applications a base de microservices sur Cloud Foundry
Pivotal microservices spring_pcf_skillsmatter.pptx
Microservices for java architects coders-conf-2015-05-15
Cloudify your applications: microservices and beyond
Cloud-native Data: Every Microservice Needs a Cache
Microservices on a budget meetup
Lattice: A Cloud-Native Platform for Your Spring Applications
The Beginner’s Guide To Spring Cloud
Developing microservices with Java and applying Spring security framework and...
Microservice-based software architecture
Cloud native Microservices using Spring Boot
Building .NET Microservices
Accion Labs - Cloud in practice - Cloud computing platforms
Accion Cloud in Practice - Cloud Comuting Platforms Classification

More from Kenny Bastani (8)

PDF
Open Source Big Graph Analytics on Neo4j with Apache Spark
PPT
Big Graph Analytics on Neo4j with Apache Spark
PPTX
Document Classification with Neo4j
PDF
Neo4j Graph Data Modeling
PDF
Building a Graph-based Analytics Platform
PDF
Building Killer Apps with Neo4j 2.0
PPT
Natural Language Processing with Neo4j
PPT
Natural language search using Neo4j
Open Source Big Graph Analytics on Neo4j with Apache Spark
Big Graph Analytics on Neo4j with Apache Spark
Document Classification with Neo4j
Neo4j Graph Data Modeling
Building a Graph-based Analytics Platform
Building Killer Apps with Neo4j 2.0
Natural Language Processing with Neo4j
Natural language search using Neo4j

Recently uploaded (20)

PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PPTX
history of c programming in notes for students .pptx
PDF
System and Network Administration Chapter 2
PPTX
Reimagine Home Health with the Power of Agentic AI​
PPTX
ai tools demonstartion for schools and inter college
PDF
Nekopoi APK 2025 free lastest update
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
L1 - Introduction to python Backend.pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
medical staffing services at VALiNTRY
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
PTS Company Brochure 2025 (1).pdf.......
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
How to Migrate SBCGlobal Email to Yahoo Easily
history of c programming in notes for students .pptx
System and Network Administration Chapter 2
Reimagine Home Health with the Power of Agentic AI​
ai tools demonstartion for schools and inter college
Nekopoi APK 2025 free lastest update
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
Navsoft: AI-Powered Business Solutions & Custom Software Development
L1 - Introduction to python Backend.pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
medical staffing services at VALiNTRY
Odoo Companies in India – Driving Business Transformation.pdf
How to Choose the Right IT Partner for Your Business in Malaysia
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PTS Company Brochure 2025 (1).pdf.......

Extending the Platform with Spring Boot and Cloud Foundry

  • 1. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Extending the Platform Kenny Bastani @kennybastani
  • 2. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 2 @kennybastani Spring Developer Advocate
  • 3. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What makes an application legacy? 3
  • 4. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What makes an application legacy? • How fast can you make changes to the application and deliver it into production? • How much work is it to upgrade the application framework? 4
  • 5. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Legacy is an architecture problem 5
  • 6. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Monolith 6
  • 7. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 7 Microservices…
  • 8. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ If we're creating 10x the number of apps, we're creating 10x the technical debt 8
  • 9. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ What does your microservice architecture look like in 10 years? 9
  • 10. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ If you have to implement the same thing in every application, it should be provided by the platform as a service 10
  • 11. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Do this successfully, and the only thing is left is the valuable business logic 11
  • 12. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ The two road blocks of cloud native • Legacy applications • Legacy culture 12
  • 15. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ How do we do better? 15
  • 16. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Platform Engineering 16
  • 17. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Platform Engineering • Everything that sits around your applications is vital to supporting the health of your applications • Unfortunately, anything that is not business logic is going to make it harder to upgrade your application later • Platform engineering is the art of automating standards in an application architecture by reducing redundancy across applications 17
  • 18. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Redundancy in code creates technical debt. In microservices, multiply that debt by the number of apps 18
  • 19. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Boot + Cloud Foundry Service Brokers 19
  • 20. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Backing services 20
  • 21. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Online Store Example 21
  • 24. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Boot 24
  • 25. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Platform engineers can take an opinionated view on how application developers will consume services 25
  • 26. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Cloud Foundry Service Brokers • The Cloud Foundry marketplace is similar to the idea of starter projects in Spring Boot • Services can be offered on Cloud Foundry and bound to your application deployments • These marketplace services can be seen as backing services for your applications 26
  • 27. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ 27 Microservices…
  • 29. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Amazon S3 Service Broker • The demo for this presentation is going to create an Amazon S3 service broker • We’ll release the broker to PCF Dev • Extend Spring Boot to automatically consume service instances from the broker • Deploy Spring Boot S3 browser that uses a starter project to connect to Amazon S3 29
  • 30. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Cloud Controller • The Cloud Controller is the contract that Cloud Foundry exposes over HTTP as a REST API • We can create service brokers that implement expectations from this contract to allow CF and other broker applications to talk to each other 30
  • 33. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Spring Boot Service Broker Template • The Spring team maintains an example project that provides the boiler plate for creating custom service brokers using Spring Boot • https://github.com/spring-cloud/spring-cloud-cloudfoundry-service-broker 33
  • 34. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Implementing the service contracts • Service Catalog • Service Instances • Service Bindings 34
  • 35. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Service Catalog 35
  • 38. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Service Instances • Each method in the interface represents the implementation of a repository pattern • Controls the lifecycle of resources on AWS that provide exclusive access to a S3 bucket • The two resources that we will manage are: • S3 buckets • IAM users 38
  • 45. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Service Bindings • The goal of the Amazon S3 Broker is to create S3 buckets that can be automatically bound to an application • Further, we want to make the service as easy to consume in a cloud native environment using Spring Boot starter projects to auto-configure the connection • The result of this is that a service binding will attach to a Cloud Foundry deployment and inject the environment variables into the application’s container • Our Spring Boot application will look for those environment variables at runtime and automatically configure an S3 connection 45
  • 48. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Releasing the Service Broker • There are multiple options for releasing service brokers • Deploy as a CF app • Release with BOSH 48
  • 49. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Why should we use BOSH to release a service broker instead of deploying the application with Cloud Foundry? 49
  • 50. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ It depends on the virtualized compute resources you intend to manage with your custom broker 50
  • 51. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ When to use BOSH • When you need to orchestrate resources with the IaaS provider that your CF deployment uses • Virtual machines • Network resources • BOSH provides a director API you can use to manage IaaS resources • Portable with different IaaS providers that have a BOSH CPI 51
  • 52. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ When not to use BOSH • When you do not need to manage resources using the IaaS • Example: • Amazon S3 • Basically any AWS service that has an SDK • Sometimes we just want to wrap another cloud service in a service broker, and that is OK 52
  • 53. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Releasing with Cloud Foundry • Let’s jump into code and release the S3 service broker as a CF deployment 53
  • 54. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Release steps • Create MySQL database as a service binding for the S3 broker • Build and push the S3 broker app • Bind Amazon AWS credentials as environment variables • Restage the S3 broker • Create service broker using CF CLI • Enable marketplace access to S3 broker • Create new service instance named s3-service 54
  • 55. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Extending Spring Boot • We can create a starter project that includes an Amazon S3 template for consuming S3 service instances • All we need to do is to include the Amazon S3 starter project as a dependency 55
  • 56. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Custom Spring Boot starter projects • We need to create two project modules • Auto-configuration project with the client libraries to consume a service instance (Amazon S3 Template) • Basic starter dependency project that includes the auto-configuration project using Maven 56
  • 57. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Conclusion 57
  • 58. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Platforms are forever 58
  • 59. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Build value into the platform and reduce redundancies early in microservice architectures 59
  • 60. Unless otherwise indicated, these slides are © 2013-2016 Pivotal Software, Inc. and licensed under a Creative Commons Attribution-NonCommercial license: http://creativecommons.org/licenses/by-nc/3.0/ Learn More. Stay Connected. Thanks! @kennybastani on Twitter @springcentral spring.io/blog @pivotal pivotal.io/blog @pivotalcf http://engineering.pivotal.io