SlideShare a Scribd company logo
Cloud Native Applications
for
Cloud Foundry using Spring Cloud
Workshop
Corneil du Plessis
About Me
• Working as Programmer since 1985
• Smallest to very large systems.
• Cobol, Fortan, Pascal, Algol, C/C++, Java, JavaScript,
Groovy, Python, Scala, Kotlin and more.
• Scientific instrumentation, Sports event
management, Mining, Banking, Treasury and
Insurance.
• Software Architect (with a preference for coding)
@corneil
Agenda
• Background
• Cloud Foundry command-line
• Your first Cloud Foundry application
• Connecting to database
• Connecting to message queues
• Scaling your application
• Application Discovery
Background
• What is Cloud Foundry?
• Application Runtime
• Container Runtime
• Who provides Cloud Foundry
Application Runtime?
• Atos
• Cloud.gov
• Fujitsu Cloud Service K5
• Huawei FusionStage
• IBM Bluemix
• Pivotal Cloud Foundry
• SAP Cloud Platform
• Suse Cloud Application Platform
• Swisscom Application Cloud
• Who uses Cloud Foundry?
• Governments
• Banks
• Insurance
• Telecomms
• Airlines
• Retail (Online)
• Retail (Bricks and mortar)
• Aerospace
https://www.cloudfoundry.org/case-studies/
Cloud Foundry Application Runtime
Terminology
• CAT
• BOSCH
• Deigo
• Services
• Application Manifest
• Organisation
• Space
• Buildpack
Cloud Foundry Buildpacks
• Binary
• Go
• Java
• .Net Core
• Node.js
• PHP
• Python
• Ruby
• Staticfile
• NGIX
• HWC (Hosted Web Core)
• Community
• TomEE
• WebSphere Liberty
• Jetty
• Erlang
• Haskell
• Swift
The 12 Factors
https://12factor.net
1. One Codebase in revision control
2. Dependencies must be explicit
3. Config in environment
4. Backing services as attached resources
5. Build, release, run as separate stages
6. One or more stateless processes
7. Export services via port binding
8. Concurrency in Process over threads
9. Disposable with quick startup and graceful shutdown.
10. Keep development/test/production in parity
11. Treat logs as event streams
12. Admin/management tasks as one-off processes
Cloud Foundry command-line
• cf login
• cf push
• cf marketplace
• cf create-service
• cf bind-service
• cf scale
• cf restart
• Many Plugins
• Authenticate Operator
• Deploy Application
• List services
• Create / Provision a service
• Bind service to application
• Scale application
• Restart the application
Visit Workshop Page
https://github.com/corneil/cf-demo
Your first Application
View Logs and Invoke
Connecting to Database
• Create Spring Data Repository.
• Update EventServiceImpl to use the repository.
• Add @Configuration extending AbstractCloudConfig to
provide @Bean of type DataSource.
• Add @Transactional to Controller to preserve the Stream
Provision PostgreSQL and Deploy
Connecting to Message Queues
• Create @Bean for RabbitMQ ConnectionFactory by extending
AbstractCloudConfig.
• Create @Bean for Queue.
• Implement listener method with @RabbitListener that saves
Event using repository.
• Modify createEvent to send event to message queue using
AmqpTemplate.
Provision RabbitMQ and Deploy
Scaling your application
Application Discovery
• @EnableDiscoveryClient
• Access resources:
• https://<target-name>/
• OpenFeign Client
Cloud Foundry Plugins
• Maven Push
https://github.com/fitzoh/maven-push-plugin
• Java
https://github.com/SAP/cf-cli-java-plugin
• Spring Cloud Services
https://github.com/pivotal-cf/spring-cloud-services-cli-plugin
• Spring Cloud Data Flow for PCF
https://github.com/pivotal-cf/spring-cloud-dataflow-for-pcf-cli-plugin
• Zero downtime deployments
https://github.com/bluemixgaragelondon/cf-blue-green-deploy
Finally
• Code: https://github.com/corneil/cf-demo
• Resources:
• https://docs.cloudfoundry.org/buildpacks/java/getting-started-deploying-apps/gsg-spring.html
• https://docs.cloudfoundry.org/buildpacks/java/configuring-service-connections/spring-service-bindings.html
• https://docs.spring.io/spring-cloud/docs/current/api/org/springframework/cloud/config/java/AbstractCloudConfig.html

More Related Content

What's hot

Azure functions
Azure functionsAzure functions
Running Spring, .NET, and IBM Watson Voice on PCF 2.0
Running Spring, .NET, and IBM Watson Voice on PCF 2.0Running Spring, .NET, and IBM Watson Voice on PCF 2.0
Running Spring, .NET, and IBM Watson Voice on PCF 2.0
VMware Tanzu
 
Welcome - Kubernetes for the Enterprise - London
Welcome - Kubernetes for the Enterprise - LondonWelcome - Kubernetes for the Enterprise - London
Welcome - Kubernetes for the Enterprise - London
VMware Tanzu
 
Core Concepts
Core ConceptsCore Concepts
Core Concepts
Mohamed Labouardy
 
Cloud hub - Overview
Cloud hub - OverviewCloud hub - Overview
Cloud hub - Overview
Prakash Chakravarthi
 
Nils Rhode - Does it always have to be k8s - TeC Day 2019
Nils Rhode - Does it always have to be k8s - TeC Day 2019Nils Rhode - Does it always have to be k8s - TeC Day 2019
Nils Rhode - Does it always have to be k8s - TeC Day 2019
Haufe-Lexware GmbH & Co KG
 
Using Azure Functions for Integration
Using Azure Functions for IntegrationUsing Azure Functions for Integration
Using Azure Functions for Integration
BizTalk360
 
Facilitez votre transition DevOps grâce à l'automatisation de votre infras...
 Facilitez votre transition DevOps grâce à l'automatisation de votre infras... Facilitez votre transition DevOps grâce à l'automatisation de votre infras...
Facilitez votre transition DevOps grâce à l'automatisation de votre infras...
VMware Tanzu
 
The Future of Enterprise Applications is Serverless
The Future of Enterprise Applications is ServerlessThe Future of Enterprise Applications is Serverless
The Future of Enterprise Applications is Serverless
Eficode
 
Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!
BizTalk360
 
Azure Web Application Fundamentals
Azure Web Application FundamentalsAzure Web Application Fundamentals
Azure Web Application Fundamentals
Maik van der Gaag
 
Shipping apps to eks with code pipeline and lambda functions
Shipping apps to eks with code pipeline and lambda functionsShipping apps to eks with code pipeline and lambda functions
Shipping apps to eks with code pipeline and lambda functions
Štěpán Vraný
 
Amazingly Simple Serverless Go
Amazingly Simple Serverless GoAmazingly Simple Serverless Go
Amazingly Simple Serverless Go
Yun Zhi Lin
 
Serverless with Google Cloud Functions
Serverless with Google Cloud FunctionsServerless with Google Cloud Functions
Serverless with Google Cloud Functions
Jerry Jalava
 
Collab365 Global Summit Slides
Collab365 Global Summit SlidesCollab365 Global Summit Slides
Collab365 Global Summit Slides
Rick Van Rousselt
 
The journey of Moving from AWS ELK to GCP Data Pipeline
The journey of Moving from AWS ELK to GCP Data PipelineThe journey of Moving from AWS ELK to GCP Data Pipeline
The journey of Moving from AWS ELK to GCP Data Pipeline
Randy Huang
 
Intro to the Google Cloud for Developers
Intro to the Google Cloud for DevelopersIntro to the Google Cloud for Developers
Intro to the Google Cloud for Developers
Lynn Langit
 
Azure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparisonAzure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparison
Alex Zyl
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service Platform
BizTalk360
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
Yochay Kiriaty
 

What's hot (20)

Azure functions
Azure functionsAzure functions
Azure functions
 
Running Spring, .NET, and IBM Watson Voice on PCF 2.0
Running Spring, .NET, and IBM Watson Voice on PCF 2.0Running Spring, .NET, and IBM Watson Voice on PCF 2.0
Running Spring, .NET, and IBM Watson Voice on PCF 2.0
 
Welcome - Kubernetes for the Enterprise - London
Welcome - Kubernetes for the Enterprise - LondonWelcome - Kubernetes for the Enterprise - London
Welcome - Kubernetes for the Enterprise - London
 
Core Concepts
Core ConceptsCore Concepts
Core Concepts
 
Cloud hub - Overview
Cloud hub - OverviewCloud hub - Overview
Cloud hub - Overview
 
Nils Rhode - Does it always have to be k8s - TeC Day 2019
Nils Rhode - Does it always have to be k8s - TeC Day 2019Nils Rhode - Does it always have to be k8s - TeC Day 2019
Nils Rhode - Does it always have to be k8s - TeC Day 2019
 
Using Azure Functions for Integration
Using Azure Functions for IntegrationUsing Azure Functions for Integration
Using Azure Functions for Integration
 
Facilitez votre transition DevOps grâce à l'automatisation de votre infras...
 Facilitez votre transition DevOps grâce à l'automatisation de votre infras... Facilitez votre transition DevOps grâce à l'automatisation de votre infras...
Facilitez votre transition DevOps grâce à l'automatisation de votre infras...
 
The Future of Enterprise Applications is Serverless
The Future of Enterprise Applications is ServerlessThe Future of Enterprise Applications is Serverless
The Future of Enterprise Applications is Serverless
 
Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!Create a modern(ish) BAM portal in (roughly) one hour!
Create a modern(ish) BAM portal in (roughly) one hour!
 
Azure Web Application Fundamentals
Azure Web Application FundamentalsAzure Web Application Fundamentals
Azure Web Application Fundamentals
 
Shipping apps to eks with code pipeline and lambda functions
Shipping apps to eks with code pipeline and lambda functionsShipping apps to eks with code pipeline and lambda functions
Shipping apps to eks with code pipeline and lambda functions
 
Amazingly Simple Serverless Go
Amazingly Simple Serverless GoAmazingly Simple Serverless Go
Amazingly Simple Serverless Go
 
Serverless with Google Cloud Functions
Serverless with Google Cloud FunctionsServerless with Google Cloud Functions
Serverless with Google Cloud Functions
 
Collab365 Global Summit Slides
Collab365 Global Summit SlidesCollab365 Global Summit Slides
Collab365 Global Summit Slides
 
The journey of Moving from AWS ELK to GCP Data Pipeline
The journey of Moving from AWS ELK to GCP Data PipelineThe journey of Moving from AWS ELK to GCP Data Pipeline
The journey of Moving from AWS ELK to GCP Data Pipeline
 
Intro to the Google Cloud for Developers
Intro to the Google Cloud for DevelopersIntro to the Google Cloud for Developers
Intro to the Google Cloud for Developers
 
Azure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparisonAzure Functions VS AWS Lambda: overview and comparison
Azure Functions VS AWS Lambda: overview and comparison
 
Integrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service PlatformIntegrating SaaS application using Microsoft’s Azure App Service Platform
Integrating SaaS application using Microsoft’s Azure App Service Platform
 
Azure Functions Real World Examples
Azure Functions Real World Examples Azure Functions Real World Examples
Azure Functions Real World Examples
 

Similar to Cloud Native Applications for Cloud Foundry using Spring Cloud : A Workshop

.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
VMware Tanzu
 
Cloud Foundry Roadmap in 2016
Cloud Foundry Roadmap in 2016Cloud Foundry Roadmap in 2016
Cloud Foundry Roadmap in 2016
Cloud Standards Customer Council
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Jack-Junjie Cai
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016
Stormy Peters
 
Cloud foundry
Cloud foundryCloud foundry
Cloud foundry
shyamkumar chauhan
 
IBM Open Cloud Update XCITE Fall 2014
IBM Open Cloud Update   XCITE Fall 2014IBM Open Cloud Update   XCITE Fall 2014
IBM Open Cloud Update XCITE Fall 2014
Christopher Ferris
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
David Currie
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
James Watters
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
VMware Tanzu
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
Jake Peyser
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
Paula Peña (She, Her, Hers)
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
Dev_Events
 
PaaSVSContainerization
PaaSVSContainerizationPaaSVSContainerization
PaaSVSContainerization
Seyed Ehsan Beheshtian
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
VMware Tanzu
 
Get over the Cloud with Bluemix
Get over the Cloud with BluemixGet over the Cloud with Bluemix
Get over the Cloud with Bluemix
Codemotion
 
Cloud Foundry May 1 2014
Cloud Foundry May 1 2014Cloud Foundry May 1 2014
Cloud Foundry May 1 2014
Christopher Ferris
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
Lars Rosenquist
 
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Tomohiro Ichimura
 
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it YourselfWhy Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
DATAVERSITY
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platform
Daniela Zuppini
 

Similar to Cloud Native Applications for Cloud Foundry using Spring Cloud : A Workshop (20)

.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
Cloud Foundry Roadmap in 2016
Cloud Foundry Roadmap in 2016Cloud Foundry Roadmap in 2016
Cloud Foundry Roadmap in 2016
 
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
Migrating Java EE applications to IBM Bluemix platform as-a-service (CloudFou...
 
Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016Cloud Foundry Technical Overview at IBM Interconnect 2016
Cloud Foundry Technical Overview at IBM Interconnect 2016
 
Cloud foundry
Cloud foundryCloud foundry
Cloud foundry
 
IBM Open Cloud Update XCITE Fall 2014
IBM Open Cloud Update   XCITE Fall 2014IBM Open Cloud Update   XCITE Fall 2014
IBM Open Cloud Update XCITE Fall 2014
 
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-ServiceMigrating Java EE applications to IBM Bluemix Platform-as-a-Service
Migrating Java EE applications to IBM Bluemix Platform-as-a-Service
 
"The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming" "The Cloud Native Enterprise is Coming"
"The Cloud Native Enterprise is Coming"
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
Getting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on BluemixGetting Started with Cloud Foundry on Bluemix
Getting Started with Cloud Foundry on Bluemix
 
PaaSVSContainerization
PaaSVSContainerizationPaaSVSContainerization
PaaSVSContainerization
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
 
Get over the Cloud with Bluemix
Get over the Cloud with BluemixGet over the Cloud with Bluemix
Get over the Cloud with Bluemix
 
Cloud Foundry May 1 2014
Cloud Foundry May 1 2014Cloud Foundry May 1 2014
Cloud Foundry May 1 2014
 
Spring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCFSpring Boot & Spring Cloud on k8s and PCF
Spring Boot & Spring Cloud on k8s and PCF
 
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016Cloud Foundry Introduction for CF Meetup Tokyo March 2016
Cloud Foundry Introduction for CF Meetup Tokyo March 2016
 
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it YourselfWhy Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
Why Cloud-Native Kafka Matters: 4 Reasons to Stop Managing it Yourself
 
IBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platformIBM Bluemix cloudfoundry platform
IBM Bluemix cloudfoundry platform
 

More from Corneil du Plessis

Sweet Streams (Are made of this)
Sweet Streams (Are made of this)Sweet Streams (Are made of this)
Sweet Streams (Are made of this)
Corneil du Plessis
 
QueryDSL - Lightning Talk
QueryDSL - Lightning TalkQueryDSL - Lightning Talk
QueryDSL - Lightning Talk
Corneil du Plessis
 
Enhancements in Java 9 Streams
Enhancements in Java 9 StreamsEnhancements in Java 9 Streams
Enhancements in Java 9 Streams
Corneil du Plessis
 
Reactive Spring 5
Reactive Spring 5Reactive Spring 5
Reactive Spring 5
Corneil du Plessis
 
Empathic API-Design
Empathic API-DesignEmpathic API-Design
Empathic API-Design
Corneil du Plessis
 
Performance Comparison JVM Languages
Performance Comparison JVM LanguagesPerformance Comparison JVM Languages
Performance Comparison JVM Languages
Corneil du Plessis
 
Microservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsMicroservices Patterns and Anti-Patterns
Microservices Patterns and Anti-Patterns
Corneil du Plessis
 
Consume Spring Data Rest with Angularjs
Consume Spring Data Rest with AngularjsConsume Spring Data Rest with Angularjs
Consume Spring Data Rest with Angularjs
Corneil du Plessis
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
Corneil du Plessis
 
Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!
Corneil du Plessis
 
Polyglot persistence with Spring Data
Polyglot persistence with Spring DataPolyglot persistence with Spring Data
Polyglot persistence with Spring Data
Corneil du Plessis
 
Data repositories
Data repositoriesData repositories
Data repositories
Corneil du Plessis
 
Gradle: The Build system you have been waiting for
Gradle: The Build system you have been waiting forGradle: The Build system you have been waiting for
Gradle: The Build system you have been waiting for
Corneil du Plessis
 
Dependency Injection in Spring in 10min
Dependency Injection in Spring in 10minDependency Injection in Spring in 10min
Dependency Injection in Spring in 10minCorneil du Plessis
 

More from Corneil du Plessis (15)

Sweet Streams (Are made of this)
Sweet Streams (Are made of this)Sweet Streams (Are made of this)
Sweet Streams (Are made of this)
 
QueryDSL - Lightning Talk
QueryDSL - Lightning TalkQueryDSL - Lightning Talk
QueryDSL - Lightning Talk
 
Enhancements in Java 9 Streams
Enhancements in Java 9 StreamsEnhancements in Java 9 Streams
Enhancements in Java 9 Streams
 
Reactive Spring 5
Reactive Spring 5Reactive Spring 5
Reactive Spring 5
 
Empathic API-Design
Empathic API-DesignEmpathic API-Design
Empathic API-Design
 
Performance Comparison JVM Languages
Performance Comparison JVM LanguagesPerformance Comparison JVM Languages
Performance Comparison JVM Languages
 
Microservices Patterns and Anti-Patterns
Microservices Patterns and Anti-PatternsMicroservices Patterns and Anti-Patterns
Microservices Patterns and Anti-Patterns
 
Consume Spring Data Rest with Angularjs
Consume Spring Data Rest with AngularjsConsume Spring Data Rest with Angularjs
Consume Spring Data Rest with Angularjs
 
The Evolution of Java
The Evolution of JavaThe Evolution of Java
The Evolution of Java
 
Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!
 
Polyglot persistence with Spring Data
Polyglot persistence with Spring DataPolyglot persistence with Spring Data
Polyglot persistence with Spring Data
 
Data repositories
Data repositoriesData repositories
Data repositories
 
Gradle: The Build system you have been waiting for
Gradle: The Build system you have been waiting forGradle: The Build system you have been waiting for
Gradle: The Build system you have been waiting for
 
Dependency Injection in Spring in 10min
Dependency Injection in Spring in 10minDependency Injection in Spring in 10min
Dependency Injection in Spring in 10min
 
Spring Data in 10 minutes
Spring Data in 10 minutesSpring Data in 10 minutes
Spring Data in 10 minutes
 

Recently uploaded

BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 

Recently uploaded (20)

BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 

Cloud Native Applications for Cloud Foundry using Spring Cloud : A Workshop

  • 1. Cloud Native Applications for Cloud Foundry using Spring Cloud Workshop Corneil du Plessis
  • 2. About Me • Working as Programmer since 1985 • Smallest to very large systems. • Cobol, Fortan, Pascal, Algol, C/C++, Java, JavaScript, Groovy, Python, Scala, Kotlin and more. • Scientific instrumentation, Sports event management, Mining, Banking, Treasury and Insurance. • Software Architect (with a preference for coding) @corneil
  • 3. Agenda • Background • Cloud Foundry command-line • Your first Cloud Foundry application • Connecting to database • Connecting to message queues • Scaling your application • Application Discovery
  • 4. Background • What is Cloud Foundry? • Application Runtime • Container Runtime • Who provides Cloud Foundry Application Runtime? • Atos • Cloud.gov • Fujitsu Cloud Service K5 • Huawei FusionStage • IBM Bluemix • Pivotal Cloud Foundry • SAP Cloud Platform • Suse Cloud Application Platform • Swisscom Application Cloud • Who uses Cloud Foundry? • Governments • Banks • Insurance • Telecomms • Airlines • Retail (Online) • Retail (Bricks and mortar) • Aerospace https://www.cloudfoundry.org/case-studies/
  • 6. Terminology • CAT • BOSCH • Deigo • Services • Application Manifest • Organisation • Space • Buildpack
  • 7. Cloud Foundry Buildpacks • Binary • Go • Java • .Net Core • Node.js • PHP • Python • Ruby • Staticfile • NGIX • HWC (Hosted Web Core) • Community • TomEE • WebSphere Liberty • Jetty • Erlang • Haskell • Swift
  • 8. The 12 Factors https://12factor.net 1. One Codebase in revision control 2. Dependencies must be explicit 3. Config in environment 4. Backing services as attached resources 5. Build, release, run as separate stages 6. One or more stateless processes 7. Export services via port binding 8. Concurrency in Process over threads 9. Disposable with quick startup and graceful shutdown. 10. Keep development/test/production in parity 11. Treat logs as event streams 12. Admin/management tasks as one-off processes
  • 9. Cloud Foundry command-line • cf login • cf push • cf marketplace • cf create-service • cf bind-service • cf scale • cf restart • Many Plugins • Authenticate Operator • Deploy Application • List services • Create / Provision a service • Bind service to application • Scale application • Restart the application
  • 12. View Logs and Invoke
  • 13. Connecting to Database • Create Spring Data Repository. • Update EventServiceImpl to use the repository. • Add @Configuration extending AbstractCloudConfig to provide @Bean of type DataSource. • Add @Transactional to Controller to preserve the Stream
  • 15. Connecting to Message Queues • Create @Bean for RabbitMQ ConnectionFactory by extending AbstractCloudConfig. • Create @Bean for Queue. • Implement listener method with @RabbitListener that saves Event using repository. • Modify createEvent to send event to message queue using AmqpTemplate.
  • 18. Application Discovery • @EnableDiscoveryClient • Access resources: • https://<target-name>/ • OpenFeign Client
  • 19. Cloud Foundry Plugins • Maven Push https://github.com/fitzoh/maven-push-plugin • Java https://github.com/SAP/cf-cli-java-plugin • Spring Cloud Services https://github.com/pivotal-cf/spring-cloud-services-cli-plugin • Spring Cloud Data Flow for PCF https://github.com/pivotal-cf/spring-cloud-dataflow-for-pcf-cli-plugin • Zero downtime deployments https://github.com/bluemixgaragelondon/cf-blue-green-deploy
  • 20. Finally • Code: https://github.com/corneil/cf-demo • Resources: • https://docs.cloudfoundry.org/buildpacks/java/getting-started-deploying-apps/gsg-spring.html • https://docs.cloudfoundry.org/buildpacks/java/configuring-service-connections/spring-service-bindings.html • https://docs.spring.io/spring-cloud/docs/current/api/org/springframework/cloud/config/java/AbstractCloudConfig.html