SlideShare a Scribd company logo
1 of 26
Download to read offline
Challenges of Implementing
the OSB API
NAIL ISLAMOV | ATLASSIAN | @NILEBOX
Service brokers advertise a catalog
of service offerings and service
plans, as well as interpreting calls for
provision (create), bind, unbind, and
deprovision (delete).
SERVICE BROKERS
SERVICE BROKER ARCHITECTURE
Catalog
List of “service classes” (resource
types) and their plans (tiers).
SERVICE BROKER FEATURES
Service Instances
Provisioning reserved resource
instance
Service Instance Binding
Creating and fetching credentials for
resource instance
SERVICE BROKER ARCHITECTURE
Most of the OSB API decisions have
been made at the times of Cloud
Foundry Service Broker.
OSB
CloudFoundry
Spring Boot MySQL broker example
https://github.com/cloudfoundry-community/cf-mysql-java-broker
EXAMPLES
AWS brokers (built using Ansible broker)
https://github.com/awslabs/aws-servicebroker-documentation/wiki
Ansible broker
https://github.com/openshift/ansible-service-broker/blob/master/docs/introduction.md
Other vendors (Azure, GCP) supply their official brokers as well
OSB documentation
Links to some implementation examples
https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md
Brokers for different languages/platforms
Go, Java, NodeJS
Help the OSB community by
opensourcing generic libraries for
building brokers in different
languages.
EXAMPLES
The only authentication mode
explicitly defined in the OSB
specification is Basic Auth.
AUTHENTICATION
Bearer Token Auth (JWT, OAuth 2.0, vendor specific implementations)
Service Catalog has support for arbitrary Bearer tokens provided via Secret resource
AUTHENTICATION
Other authentication modes
OSB allows a platform to support any other authentication protocols, so feel free to reach Service
Catalog or Cloud Foundry folks to add support for yours
Basic Auth
The only authentication mode explicitly defined in the OSB spec
Mutual TLS
OSB doesn’t explicitly define the
requirements of the instance state
after the failed update.
INSTANCE UPDATES
Update with the fix
Sometimes it might be fine to leave the instance in the “broken” state until the correct update or retries
fixes it
INSTANCE UPDATES
Rollback
If possible, rollback to the previous stable state of the instance
You can define different JSON
schemas for instance CREATE and
UPDATE requests.
But you should think twice before
doing that.
INSTANCE UPDATES
Cloud Foundry
For some historical reasons Cloud Foundry does not keep the parameters for instance, so every CREATE
or INSTANCE request just gets forwarded to the broker.
INSTANCE UPDATES
Service Catalog
Kubernetes API is declarative and asynchronous, so there is little difference between CREATE and
UPDATE requests, and it is a challenge to support “diff” for PATCH requests.
Update parameters
Some parameters might be sensible only for the initial provisioning of the resource, and are immutable
Keep CREATE and UPDATE request
parameters the same. Implement all
specifics on the broker side (ignore
irrelevant parameters, apply only
parameters that have changed since
the last provisioning/update).
INSTANCE UPDATES
There is a section in the request that
provides platform-specific
information.
PLATFORM CONTEXT
PLATFORM CONTEXT
{
"context": {
"platform": "kubernetes",
"namespace": “myapp"
},
"service_id": "service-id-here",
"plan_id": "plan-id-here",
"bind_resource": {
"app_guid": "app-guid-here"
},
"parameters": {
"parameter1-name-here": 1,
"parameter2-name-here": "parameter2-value-here"
}
}
PLATFORM CONTEXT
Vendor specific context
- RedHat OpenShift
- IBM Bluemix
- Microsoft Azure
Platform specific context
- Kubernetes (Service Catalog)
- Cloud Foundry
Avoid relying on a particular
platform implementation details if
you can.
PLATFORM CONTEXT
OSB makes the Platform (Service
Catalog, Cloud Foundry) responsible
for the orphan mitigation.
ORPHAN MITIGATION
Implement cleanup in the broker as
part of asynchronous provisioning
request processing.
ORPHAN MITIGATION
IDs are client-provided in OSB
instance/binding requests.
Don’t make assumptions about their
specific format or pattern.
EXTERNAL ID
Stateless OSB brokers is a myth.
Try to be smarter.
- Orphan mitigation
- Rollback after the failed update
- Idempotency
- Get ready to support GET requests
STATELESS OSB BROKERS
Services support operations (restart,
pause, stop) and jobs (backup,
restore). It’s important to automate
the Ops side of DevOps.
This part is not covered by OSB spec
yet.
OPERATIONS / JOBS / ACTIONS
In some situations the service backed
by OSB broker might change its state
by itself.
Currently there is no way to tell the
platform to re-sync.
SYNC AFTER BROKER DRIVEN CHANGES
Stateless OSB brokers is a myth.
STATELESS OSB BROKERS

More Related Content

What's hot

WSO2 Use Case - API Facade Pattern
WSO2 Use Case - API  Facade PatternWSO2 Use Case - API  Facade Pattern
WSO2 Use Case - API Facade PatternWSO2
 
Clean up this mess - API Gateway & Service Discovery in .NET
Clean up this mess - API Gateway & Service Discovery in .NETClean up this mess - API Gateway & Service Discovery in .NET
Clean up this mess - API Gateway & Service Discovery in .NETMarcin Tyborowski
 
Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...
Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...
Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...EPC Group
 
Server-side OSGi with Apache Sling
Server-side OSGi with Apache SlingServer-side OSGi with Apache Sling
Server-side OSGi with Apache SlingFelix Meschberger
 
Get Queue List from Microsoft Azure using Mule ESB
Get Queue List from Microsoft Azure using Mule ESBGet Queue List from Microsoft Azure using Mule ESB
Get Queue List from Microsoft Azure using Mule ESBSanjeet Pandey
 
Sharepoint as a service platform
Sharepoint as a service platformSharepoint as a service platform
Sharepoint as a service platformKashif Akram
 
Microservices and elastic resource pools with Amazon EC2 Container Service
Microservices and elastic resource pools with Amazon EC2 Container ServiceMicroservices and elastic resource pools with Amazon EC2 Container Service
Microservices and elastic resource pools with Amazon EC2 Container ServiceBoyan Dimitrov
 
03 spring cloud eureka service discovery
03 spring cloud eureka   service discovery03 spring cloud eureka   service discovery
03 spring cloud eureka service discoveryJanani Velmurugan
 
Be a Hero on Day 1 with ASP.Net Boilerplate
Be a Hero on Day 1 with ASP.Net BoilerplateBe a Hero on Day 1 with ASP.Net Boilerplate
Be a Hero on Day 1 with ASP.Net BoilerplateLee Richardson
 
Creating an Ecosystem Platform with Vertical PaaS
Creating an Ecosystem Platform with Vertical PaaSCreating an Ecosystem Platform with Vertical PaaS
Creating an Ecosystem Platform with Vertical PaaSWSO2
 
Building REST Web Services With Spring Boot | Microservices Architecture Trai...
Building REST Web Services With Spring Boot | Microservices Architecture Trai...Building REST Web Services With Spring Boot | Microservices Architecture Trai...
Building REST Web Services With Spring Boot | Microservices Architecture Trai...Edureka!
 
Api gateway : To be or not to be
Api gateway : To be or not to beApi gateway : To be or not to be
Api gateway : To be or not to beJaewoo Ahn
 
Miracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubMiracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubkishore ippili
 
Introduction to Windows Azure AppFabric Applications
Introduction to Windows Azure AppFabric ApplicationsIntroduction to Windows Azure AppFabric Applications
Introduction to Windows Azure AppFabric ApplicationsNeil Mackenzie
 
My most complex ARM template - Story from the trenches
My most complex ARM template - Story from the trenchesMy most complex ARM template - Story from the trenches
My most complex ARM template - Story from the trenchesNills Franssens
 
Mule cloudhub application
Mule cloudhub applicationMule cloudhub application
Mule cloudhub applicationD.Rajesh Kumar
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS Amazon Web Services
 

What's hot (20)

WSO2 Use Case - API Facade Pattern
WSO2 Use Case - API  Facade PatternWSO2 Use Case - API  Facade Pattern
WSO2 Use Case - API Facade Pattern
 
Java & Microservices in Azure
Java & Microservices in AzureJava & Microservices in Azure
Java & Microservices in Azure
 
Azure serverless security
Azure serverless securityAzure serverless security
Azure serverless security
 
Clean up this mess - API Gateway & Service Discovery in .NET
Clean up this mess - API Gateway & Service Discovery in .NETClean up this mess - API Gateway & Service Discovery in .NET
Clean up this mess - API Gateway & Service Discovery in .NET
 
Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...
Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...
Windows Azure Pack Enabling Virtual Machines - IaaS & Virtual Machine Role - ...
 
Server-side OSGi with Apache Sling
Server-side OSGi with Apache SlingServer-side OSGi with Apache Sling
Server-side OSGi with Apache Sling
 
Get Queue List from Microsoft Azure using Mule ESB
Get Queue List from Microsoft Azure using Mule ESBGet Queue List from Microsoft Azure using Mule ESB
Get Queue List from Microsoft Azure using Mule ESB
 
Sharepoint as a service platform
Sharepoint as a service platformSharepoint as a service platform
Sharepoint as a service platform
 
Microservices and elastic resource pools with Amazon EC2 Container Service
Microservices and elastic resource pools with Amazon EC2 Container ServiceMicroservices and elastic resource pools with Amazon EC2 Container Service
Microservices and elastic resource pools with Amazon EC2 Container Service
 
03 spring cloud eureka service discovery
03 spring cloud eureka   service discovery03 spring cloud eureka   service discovery
03 spring cloud eureka service discovery
 
Be a Hero on Day 1 with ASP.Net Boilerplate
Be a Hero on Day 1 with ASP.Net BoilerplateBe a Hero on Day 1 with ASP.Net Boilerplate
Be a Hero on Day 1 with ASP.Net Boilerplate
 
Creating an Ecosystem Platform with Vertical PaaS
Creating an Ecosystem Platform with Vertical PaaSCreating an Ecosystem Platform with Vertical PaaS
Creating an Ecosystem Platform with Vertical PaaS
 
Building REST Web Services With Spring Boot | Microservices Architecture Trai...
Building REST Web Services With Spring Boot | Microservices Architecture Trai...Building REST Web Services With Spring Boot | Microservices Architecture Trai...
Building REST Web Services With Spring Boot | Microservices Architecture Trai...
 
App fabric introduction
App fabric introductionApp fabric introduction
App fabric introduction
 
Api gateway : To be or not to be
Api gateway : To be or not to beApi gateway : To be or not to be
Api gateway : To be or not to be
 
Miracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hubMiracle mulesoft tech_cloud_hub
Miracle mulesoft tech_cloud_hub
 
Introduction to Windows Azure AppFabric Applications
Introduction to Windows Azure AppFabric ApplicationsIntroduction to Windows Azure AppFabric Applications
Introduction to Windows Azure AppFabric Applications
 
My most complex ARM template - Story from the trenches
My most complex ARM template - Story from the trenchesMy most complex ARM template - Story from the trenches
My most complex ARM template - Story from the trenches
 
Mule cloudhub application
Mule cloudhub applicationMule cloudhub application
Mule cloudhub application
 
Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS Accelerating DevOps Pipelines with AWS
Accelerating DevOps Pipelines with AWS
 

Similar to Challenges of implemeting the OSB API (KubeCon US 2017)

Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbsAWS Chicago
 
Service Discovery in MicroServices
Service Discovery in MicroServicesService Discovery in MicroServices
Service Discovery in MicroServicesSRINIVAS KOLAPARTHI
 
Kubernetes your next application server
Kubernetes  your next application serverKubernetes  your next application server
Kubernetes your next application serverRed Hat Developers
 
Make Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EEMake Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EETeodoro Cipresso
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpToshiaki Maki
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoringOracle Korea
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringDonghuKIM2
 
Kubernetes101 - Pune Kubernetes Meetup 6
Kubernetes101 - Pune Kubernetes Meetup 6Kubernetes101 - Pune Kubernetes Meetup 6
Kubernetes101 - Pune Kubernetes Meetup 6Harshal Shah
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldAmazon Web Services
 
Microservice bus tutorial
Microservice bus tutorialMicroservice bus tutorial
Microservice bus tutorialHuabing Zhao
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platformsPaul Czarkowski
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerAmazon Web Services
 
Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...
Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...
Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...Srini Karlekar
 
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021AWSKRUG - AWS한국사용자모임
 
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as CodeAWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as CodeCobus Bernard
 
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...Amazon Web Services
 
Service stack linkedin
Service stack linkedinService stack linkedin
Service stack linkedinRaju Golla
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 WorkshopVishal Biyani
 

Similar to Challenges of implemeting the OSB API (KubeCon US 2017) (20)

Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
Serverless Framework Workshop - Tyler Hendrickson, Chicago/burbs
 
Deep Dive on Serverless Stack
Deep Dive on Serverless StackDeep Dive on Serverless Stack
Deep Dive on Serverless Stack
 
Service Discovery in MicroServices
Service Discovery in MicroServicesService Discovery in MicroServices
Service Discovery in MicroServices
 
AWS Serverless Workshop
AWS Serverless WorkshopAWS Serverless Workshop
AWS Serverless Workshop
 
Kubernetes your next application server
Kubernetes  your next application serverKubernetes  your next application server
Kubernetes your next application server
 
Make Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EEMake Your API Catalog Essential with z/OS Connect EE
Make Your API Catalog Essential with z/OS Connect EE
 
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
 
Spring boot microservice metrics monitoring
Spring boot   microservice metrics monitoringSpring boot   microservice metrics monitoring
Spring boot microservice metrics monitoring
 
Spring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics MonitoringSpring Boot - Microservice Metrics Monitoring
Spring Boot - Microservice Metrics Monitoring
 
Kubernetes101 - Pune Kubernetes Meetup 6
Kubernetes101 - Pune Kubernetes Meetup 6Kubernetes101 - Pune Kubernetes Meetup 6
Kubernetes101 - Pune Kubernetes Meetup 6
 
Application Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless WorldApplication Lifecycle Management in a Serverless World
Application Lifecycle Management in a Serverless World
 
Microservice bus tutorial
Microservice bus tutorialMicroservice bus tutorial
Microservice bus tutorial
 
Successful Patterns for running platforms
Successful Patterns for running platformsSuccessful Patterns for running platforms
Successful Patterns for running platforms
 
Multi-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service BrokerMulti-container Applications on OpenShift with Ansible Service Broker
Multi-container Applications on OpenShift with Ansible Service Broker
 
Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...
Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...
Building Cross-Cloud Platform Cognitive Microservices Using Serverless Archit...
 
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
IaC로 AWS인프라 관리하기 - 이진성 (AUSG) :: AWS Community Day Online 2021
 
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as CodeAWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
AWS SSA Webinar 28 - Getting Started with AWS - Infrastructure as Code
 
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
Application Lifecycle Management in a Serverless World | AWS Public Sector Su...
 
Service stack linkedin
Service stack linkedinService stack linkedin
Service stack linkedin
 
Kubernetes 101 Workshop
Kubernetes 101 WorkshopKubernetes 101 Workshop
Kubernetes 101 Workshop
 

Recently uploaded

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutionsmonugehlot87
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 

Recently uploaded (20)

办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
buds n tech IT solutions
buds n  tech IT                solutionsbuds n  tech IT                solutions
buds n tech IT solutions
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 

Challenges of implemeting the OSB API (KubeCon US 2017)

  • 1. Challenges of Implementing the OSB API NAIL ISLAMOV | ATLASSIAN | @NILEBOX
  • 2. Service brokers advertise a catalog of service offerings and service plans, as well as interpreting calls for provision (create), bind, unbind, and deprovision (delete). SERVICE BROKERS
  • 4. Catalog List of “service classes” (resource types) and their plans (tiers). SERVICE BROKER FEATURES Service Instances Provisioning reserved resource instance Service Instance Binding Creating and fetching credentials for resource instance
  • 6. Most of the OSB API decisions have been made at the times of Cloud Foundry Service Broker. OSB
  • 7. CloudFoundry Spring Boot MySQL broker example https://github.com/cloudfoundry-community/cf-mysql-java-broker EXAMPLES AWS brokers (built using Ansible broker) https://github.com/awslabs/aws-servicebroker-documentation/wiki Ansible broker https://github.com/openshift/ansible-service-broker/blob/master/docs/introduction.md Other vendors (Azure, GCP) supply their official brokers as well OSB documentation Links to some implementation examples https://github.com/openservicebrokerapi/servicebroker/blob/master/gettingStarted.md Brokers for different languages/platforms Go, Java, NodeJS
  • 8. Help the OSB community by opensourcing generic libraries for building brokers in different languages. EXAMPLES
  • 9. The only authentication mode explicitly defined in the OSB specification is Basic Auth. AUTHENTICATION
  • 10. Bearer Token Auth (JWT, OAuth 2.0, vendor specific implementations) Service Catalog has support for arbitrary Bearer tokens provided via Secret resource AUTHENTICATION Other authentication modes OSB allows a platform to support any other authentication protocols, so feel free to reach Service Catalog or Cloud Foundry folks to add support for yours Basic Auth The only authentication mode explicitly defined in the OSB spec Mutual TLS
  • 11. OSB doesn’t explicitly define the requirements of the instance state after the failed update. INSTANCE UPDATES
  • 12. Update with the fix Sometimes it might be fine to leave the instance in the “broken” state until the correct update or retries fixes it INSTANCE UPDATES Rollback If possible, rollback to the previous stable state of the instance
  • 13. You can define different JSON schemas for instance CREATE and UPDATE requests. But you should think twice before doing that. INSTANCE UPDATES
  • 14. Cloud Foundry For some historical reasons Cloud Foundry does not keep the parameters for instance, so every CREATE or INSTANCE request just gets forwarded to the broker. INSTANCE UPDATES Service Catalog Kubernetes API is declarative and asynchronous, so there is little difference between CREATE and UPDATE requests, and it is a challenge to support “diff” for PATCH requests. Update parameters Some parameters might be sensible only for the initial provisioning of the resource, and are immutable
  • 15. Keep CREATE and UPDATE request parameters the same. Implement all specifics on the broker side (ignore irrelevant parameters, apply only parameters that have changed since the last provisioning/update). INSTANCE UPDATES
  • 16. There is a section in the request that provides platform-specific information. PLATFORM CONTEXT
  • 17. PLATFORM CONTEXT { "context": { "platform": "kubernetes", "namespace": “myapp" }, "service_id": "service-id-here", "plan_id": "plan-id-here", "bind_resource": { "app_guid": "app-guid-here" }, "parameters": { "parameter1-name-here": 1, "parameter2-name-here": "parameter2-value-here" } }
  • 18. PLATFORM CONTEXT Vendor specific context - RedHat OpenShift - IBM Bluemix - Microsoft Azure Platform specific context - Kubernetes (Service Catalog) - Cloud Foundry
  • 19. Avoid relying on a particular platform implementation details if you can. PLATFORM CONTEXT
  • 20. OSB makes the Platform (Service Catalog, Cloud Foundry) responsible for the orphan mitigation. ORPHAN MITIGATION
  • 21. Implement cleanup in the broker as part of asynchronous provisioning request processing. ORPHAN MITIGATION
  • 22. IDs are client-provided in OSB instance/binding requests. Don’t make assumptions about their specific format or pattern. EXTERNAL ID
  • 23. Stateless OSB brokers is a myth. Try to be smarter. - Orphan mitigation - Rollback after the failed update - Idempotency - Get ready to support GET requests STATELESS OSB BROKERS
  • 24. Services support operations (restart, pause, stop) and jobs (backup, restore). It’s important to automate the Ops side of DevOps. This part is not covered by OSB spec yet. OPERATIONS / JOBS / ACTIONS
  • 25. In some situations the service backed by OSB broker might change its state by itself. Currently there is no way to tell the platform to re-sync. SYNC AFTER BROKER DRIVEN CHANGES
  • 26. Stateless OSB brokers is a myth. STATELESS OSB BROKERS