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

What's hot (20)

PDF
Cloud Native Application
VMUG IT
 
PPTX
2015 cloud trend and cloud DR
bizmerce
 
PDF
Evolving to Cloud-Native - Anand Rao
VMware Tanzu
 
PDF
Dipping Your Toes Into Cloud Native Application Development
Matthew Farina
 
PPTX
CF SUMMIT: Partnerships, Business and Cloud Foundry
Nima Badiey
 
PDF
LIVE DEMO: Pivotal Cloud Foundry
VMware Tanzu
 
PDF
Pivotal Cloud Foundry: A Technical Overview
VMware Tanzu
 
PDF
Introduction to Cloud Native Computing
Saju Thomas
 
PDF
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
VMware Tanzu
 
PDF
Microservices Best Practices
Aliasgar Muchhala
 
PDF
Agile integration: Decomposing the monolith
Judy Breedlove
 
ODP
micro services architecture (FrosCon2014)
smancke
 
PDF
LIVE DEMO: Pivotal Cloud Foundry
VMware Tanzu
 
PDF
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
VMware Tanzu
 
PDF
Continuous Delivery de vos applications dans un environnement multi-cloud et ...
VMware Tanzu
 
PPTX
Cloud Native Infrastructure Automation
VMware Tanzu
 
PPTX
"The Cloud Native Enterprise is Coming"
James Watters
 
PPTX
Cloud Native Runtime Platform
VMware Tanzu
 
PPTX
Think Small To Go Big - Introduction To Microservices
Ryan Baxter
 
PDF
API Microservices with Node.js and Docker
Apigee | Google Cloud
 
Cloud Native Application
VMUG IT
 
2015 cloud trend and cloud DR
bizmerce
 
Evolving to Cloud-Native - Anand Rao
VMware Tanzu
 
Dipping Your Toes Into Cloud Native Application Development
Matthew Farina
 
CF SUMMIT: Partnerships, Business and Cloud Foundry
Nima Badiey
 
LIVE DEMO: Pivotal Cloud Foundry
VMware Tanzu
 
Pivotal Cloud Foundry: A Technical Overview
VMware Tanzu
 
Introduction to Cloud Native Computing
Saju Thomas
 
Cloud Event Driven Architectures with Spring Cloud Stream 2.0 - Oleg Zhurakousky
VMware Tanzu
 
Microservices Best Practices
Aliasgar Muchhala
 
Agile integration: Decomposing the monolith
Judy Breedlove
 
micro services architecture (FrosCon2014)
smancke
 
LIVE DEMO: Pivotal Cloud Foundry
VMware Tanzu
 
How to Overcome Data Challenges When Refactoring Monoliths to Microservices
VMware Tanzu
 
Continuous Delivery de vos applications dans un environnement multi-cloud et ...
VMware Tanzu
 
Cloud Native Infrastructure Automation
VMware Tanzu
 
"The Cloud Native Enterprise is Coming"
James Watters
 
Cloud Native Runtime Platform
VMware Tanzu
 
Think Small To Go Big - Introduction To Microservices
Ryan Baxter
 
API Microservices with Node.js and Docker
Apigee | Google Cloud
 

Viewers also liked (19)

PDF
Using Docker, Neo4j, and Spring Cloud for Developing Microservices
Kenny Bastani
 
PPTX
Building REST APIs with Spring Boot and Spring Cloud
Kenny Bastani
 
PDF
Cloud Native Java Microservices
Kenny Bastani
 
PDF
Introduction To The DANE Protocol (DNSSEC)
Deploy360 Programme (Internet Society)
 
PDF
Ethernet Over Dwdm Whitepaper
Sarmad Saleem Gul
 
PPTX
Top 10 deputy director interview questions and answers
JoshHartnett123
 
PDF
Introduction to Data Collection
National Resource Center for Paraprofessionals
 
ZIP
Demand forecasting
PT Education, Indore
 
PPTX
The Fashion Channel - A case Analysis
Devanand Hariperumal
 
PPTX
Distributed System Management
Ibrahim Amer
 
PDF
Fixed Income Trading System Architecture
Khader Shaik
 
PPTX
Digital Engagement Strategies
Drew Diskin
 
PPT
Enterprise Architecture Frameworks
Stephen Lahanas
 
PPTX
Developingan Export Strategy Marketing Plan (1)
Rob Perhamus MBA, PMP® ASQ SS Black Belt, CGBP
 
PPT
Mga isyu at problema sa pilipinas bunga ng mga pagbabago sa asya
Rodel Sinamban
 
PDF
Mobile Money Business Models
NetHopeOrg
 
PPT
Introduction to fixed partial denture
jinishnath
 
PDF
内容组织
flydream
 
Using Docker, Neo4j, and Spring Cloud for Developing Microservices
Kenny Bastani
 
Building REST APIs with Spring Boot and Spring Cloud
Kenny Bastani
 
Cloud Native Java Microservices
Kenny Bastani
 
Introduction To The DANE Protocol (DNSSEC)
Deploy360 Programme (Internet Society)
 
Ethernet Over Dwdm Whitepaper
Sarmad Saleem Gul
 
Top 10 deputy director interview questions and answers
JoshHartnett123
 
Introduction to Data Collection
National Resource Center for Paraprofessionals
 
Demand forecasting
PT Education, Indore
 
The Fashion Channel - A case Analysis
Devanand Hariperumal
 
Distributed System Management
Ibrahim Amer
 
Fixed Income Trading System Architecture
Khader Shaik
 
Digital Engagement Strategies
Drew Diskin
 
Enterprise Architecture Frameworks
Stephen Lahanas
 
Developingan Export Strategy Marketing Plan (1)
Rob Perhamus MBA, PMP® ASQ SS Black Belt, CGBP
 
Mga isyu at problema sa pilipinas bunga ng mga pagbabago sa asya
Rodel Sinamban
 
Mobile Money Business Models
NetHopeOrg
 
Introduction to fixed partial denture
jinishnath
 
内容组织
flydream
 
Ad

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

PDF
Cloud Native Java with Spring Cloud Services
VMware Tanzu
 
PDF
Consumer Driven Contracts and Your Microservice Architecture
Marcin Grzejszczak
 
PDF
Lattice: A Cloud-Native Platform for Your Spring Applications
Matt Stine
 
PPTX
Zuul @ Netflix SpringOne Platform
Mikey Cohen - Hiring Amazing Engineers
 
PDF
Managing the Complexity of Microservices Deployments
VMware Tanzu
 
PDF
Continuous Delivery for Microservice Architectures with Concourse & Cloud Fou...
VMware Tanzu
 
PDF
Marcin Grzejszczak - Contract Tests in the Enterprise
SegFaultConf
 
PPTX
Experience + Education = Empowerment
VMware Tanzu
 
PDF
Cloud Configuration Ecosystem at Intuit
VMware Tanzu
 
PDF
Consumer Driven Contracts and Your Microservice Architecture
Marcin Grzejszczak
 
PDF
Fast 5 Things You Can Do Now to Get Ready for the Cloud
VMware Tanzu
 
PDF
Containers Were Never Your End State
VMware Tanzu
 
PPTX
How to Build More Secure Service Brokers
VMware Tanzu
 
PDF
Building .NET Microservices
VMware Tanzu
 
PPTX
Consumer Driven Contracts and Your Microservice Architecture
VMware Tanzu
 
PDF
So You're Up to Your Eyes in Foundations
VMware Tanzu
 
PDF
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
VMware Tanzu
 
PDF
Cloud-Native Streaming Platform: Running Apache Kafka on PKS (Pivotal Contain...
VMware Tanzu
 
PPTX
Crossing the CI/CD/DevOps Chasm
VMware Tanzu
 
PDF
Implementing microservices tracing with spring cloud and zipkin (spring one)
Reshmi Krishna
 
Cloud Native Java with Spring Cloud Services
VMware Tanzu
 
Consumer Driven Contracts and Your Microservice Architecture
Marcin Grzejszczak
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Matt Stine
 
Zuul @ Netflix SpringOne Platform
Mikey Cohen - Hiring Amazing Engineers
 
Managing the Complexity of Microservices Deployments
VMware Tanzu
 
Continuous Delivery for Microservice Architectures with Concourse & Cloud Fou...
VMware Tanzu
 
Marcin Grzejszczak - Contract Tests in the Enterprise
SegFaultConf
 
Experience + Education = Empowerment
VMware Tanzu
 
Cloud Configuration Ecosystem at Intuit
VMware Tanzu
 
Consumer Driven Contracts and Your Microservice Architecture
Marcin Grzejszczak
 
Fast 5 Things You Can Do Now to Get Ready for the Cloud
VMware Tanzu
 
Containers Were Never Your End State
VMware Tanzu
 
How to Build More Secure Service Brokers
VMware Tanzu
 
Building .NET Microservices
VMware Tanzu
 
Consumer Driven Contracts and Your Microservice Architecture
VMware Tanzu
 
So You're Up to Your Eyes in Foundations
VMware Tanzu
 
12 Factor, or Cloud Native Apps - What EXACTLY Does that Mean for Spring Deve...
VMware Tanzu
 
Cloud-Native Streaming Platform: Running Apache Kafka on PKS (Pivotal Contain...
VMware Tanzu
 
Crossing the CI/CD/DevOps Chasm
VMware Tanzu
 
Implementing microservices tracing with spring cloud and zipkin (spring one)
Reshmi Krishna
 
Ad

More from Kenny Bastani (8)

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

Recently uploaded (20)

PPTX
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
PDF
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
PPTX
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
PDF
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
PDF
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
PDF
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PDF
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
PPTX
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PPTX
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
PPTX
Human Resources Information System (HRIS)
Amity University, Patna
 
PDF
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
PDF
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PPTX
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
PDF
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
PDF
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 
AEM User Group: India Chapter Kickoff Meeting
jennaf3
 
Automate Cybersecurity Tasks with Python
VICTOR MAESTRE RAMIREZ
 
Agentic Automation: Build & Deploy Your First UiPath Agent
klpathrudu
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
Digger Solo: Semantic search and maps for your local files
seanpedersen96
 
[Solution] Why Choose the VeryPDF DRM Protector Custom-Built Solution for You...
Lingwen1998
 
Generic or Specific? Making sensible software design decisions
Bert Jan Schrijver
 
AI + DevOps = Smart Automation with devseccops.ai.pdf
Devseccops.ai
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Driver Easy Pro 6.1.1 Crack Licensce key 2025 FREE
utfefguu
 
Homogeneity of Variance Test Options IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
Agentic Automation Journey Series Day 2 – Prompt Engineering for UiPath Agents
klpathrudu
 
Human Resources Information System (HRIS)
Amity University, Patna
 
IDM Crack with Internet Download Manager 6.42 Build 43 with Patch Latest 2025
bashirkhan333g
 
Online Queue Management System for Public Service Offices in Nepal [Focused i...
Rishab Acharya
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Home Care Tools: Benefits, features and more
Third Rock Techkno
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
HiHelloHR – Simplify HR Operations for Modern Workplaces
HiHelloHR
 
Linux Certificate of Completion - LabEx Certificate
VICTOR MAESTRE RAMIREZ
 

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