SlideShare a Scribd company logo
1 of 33
Download to read offline
On top of Kubernetes
Mauricio Salatino - VMware / Knative OSS
Tokyo, Japan 2022
Building
FaaS Platforms
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Who I am?
Mauricio Salatino
Staff Engineer @VMware, Ex @Red-Hat
Full Time working on Knative OSS
Knative Functions Working Group Co-Lead
https://github.com/knative/func
Contributor to a number of OSS projects like:
Crossplane, Jenkins X, Knative, VCluster, etc.
I am writing a book:
Continuous Delivery for Kubernetes
@ManningBooks
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Agenda
The need for building platforms on top of Kubernetes
A platform in action
that will make your life easier when building platforms
Context:
Demo:
Tools:
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
The need for building platforms
• Kubernetes built-in constructs are just building blocks
• One single Kubernetes Cluster is not enough
• Learning Kubernetes is Hard
• Training large teams
• The CNCF landscape keeps growing
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
How a platform can help?
A platform can help with:
• Reducing the cognitive load from development teams
• Provide a self-service approach to consume complex tools
• Improve our software delivery practices, by paving the paths to production
‟A platform is a collection of services and tools
focused on enabling teams with a self-service
approach to get the tools that they need when
they need them.”
- @salaboy, 2022
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
How does a platform look like?
Platform
Platform APIs
Tools
Kubernetes Clusters
Cloud Resources
On-Prem Services
Virtual Machines
3rd Party Services
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
The challenges of building platforms
Platform
Kubernetes
Infrastructure
App App App App Dev Teams
Platform Team
Infrastructure Team
https://teamtopologies.com/
APIs
Our Application
DEMO
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Our Application
Production Environment
Monolith
Application
External Data
Source
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Let’s add a new feature
Platform API
Can I have a Dev
Environment?
Development
Environment
Sure you can, let me
create one for you …
App Dev Teams
Here, take the keys to
connect
Let’s request a new Development Environment
DEMO
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Functions to extend our monolith
Development
Environment
App Dev Teams
Function
Let’s create a Function
and deploy it to my
new Development
Environment
I can be written in any
programming
language!
I can run functions because
the platform already
installed all the tools that I
need
Let’s create and deploy a function
DEMO
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Functions to extend our monolith
GIT
Production Environment
Function
Development
Environment
Function
App Dev Teams
Ok I am done
with my changes
Platform API
Ok! Let’s promote the changes
by creating a Pull Request to
our Production Environment
con
fi
guration repository
Let’s promote our changes to our production environment
DEMO
Let’s talk about Tools 🛠🪚
Disclaimer:
I haven’t created custom Kubernetes
Controllers for the demos!
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Crossplane
Platform Cluster
GKE Cluster
EKS Cluster
AKS Cluster
GCP Provider
Azure Provider
AWS Provider
S3 Bucket
Cloud SQL
Azure Function
cluster.yaml
…
…
…
database.yaml
Create Cloud Resources using the Kubernetes APIs
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Crossplane
Compose resources into higher-level constructs
<<My Environment>>
Platform Cluster
GKE Cluster
GCP Provider
Cloud SQL
my-environment.yaml
Blob Storage Cloud Function
Platform APIs
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
VCluster
• Isolated fully compliant API Server
• Automatic Sync of Resources
• To create a VCluster you just install a Helm Chart
Kubernetes
VCluster A
API Server
API Server
VCluster B
API Server
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
VCluster for isolation
Isolation without $$$
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Crossplane + Helm + VCluster
Provision Virtual Clusters with Crossplane and Helm
<<My Development Environment>>
Platform Cluster
VCluster
Helm Provider
my-environment.yaml Platform APIs
Monolith
Application
https://salaboy.com/2022/08/03/building-platforms-on-top-of-kubernetes-vcluster-and-crossplane/
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Knative Functions
Developer Experience and Functions Runtime
• Knative Serving (in your Kubernetes Clusters)
• Scaling up and down based on traffic (down to zero)
• Advanced Traffic Management (for release strategies)
• Simplified user experience (less YAML)
• Knative Functions
• Focused on developer experience
• Supports templates and different programming languages
• Reduce the cognitive load on developers and let them focus on coding
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Knative And VCluster
Using our resources wisely - VCluster Knative Plugin
Development Environments
Development
Environment B
Development
Environment A
Development
Environment C
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
ArgoCD
GitOps everywhere
• Sync configuration in Git to Kubernetes Clusters
• Avoid changing configurations manually to clusters
• Revert back changing by just reverting commits in Git
• Keep track of configurations changes
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
ArgoCD
Platform
Production
Environment
Dev Environments
`func` CLI
App
Git
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Other tools & Resources
Other Tools
• OpenFeature https://openfeature.dev/
• Dapr https://dapr.io/
• CloudEvents & CDEvents https://cdevents.dev
• DORA metrics https://github.com/salaboy/from-monolith-to-k8s/tree/main/four-
keys
Resources
• Challenges of building platforms on top of Kubernetes Blogs
• https://salaboy.com
• Step-by-Step tutorial:
•https://github.com/salaboy/kubeday-japan-2022
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Recap
Production
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Recap
Production Platform
Development
Environment
App Dev Teams
Platform Team
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Recap
Production Platform
Development
Environment
Git
App Dev Teams
Platform Team
@salaboy - @salaboy@hackyderm.io - https://salaboy.com
Recap
This is just an example
• But it is amazing how many people are using these tools to build
similar platforms
• A well-define Platform API can help you to pivot and change the
tools that you are using to implement your platform’s functionality
• Focus on developers experience and developers productivity
Production Platform
Development
Environment
Git
App Dev Teams
Platform Team
@Salaboy
Link: http://mng.bz/jjKP
Thanks
35% o
ff
using code:
ctwkubejp22

More Related Content

What's hot

Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes IntroductionPeng Xiao
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesRonny Trommer
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideBytemark
 
Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and componentsD.Rajesh Kumar
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps Chetan Gordhan
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesVolodymyr Shynkar
 
DevOps Culture
DevOps CultureDevOps Culture
DevOps Culturerouanw
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門Yoichi Kawasaki
 
Podman Overview and internals.pdf
Podman Overview and internals.pdfPodman Overview and internals.pdf
Podman Overview and internals.pdfSaim Safder
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Ryan Jarvinen
 
Extending KEDA with External Scalers
Extending KEDA with External ScalersExtending KEDA with External Scalers
Extending KEDA with External ScalersBaltazar Chua
 
Extending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsExtending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsStefan Schimanski
 

What's hot (20)

Kubernetes Introduction
Kubernetes IntroductionKubernetes Introduction
Kubernetes Introduction
 
Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Short bio examples
Short bio examplesShort bio examples
Short bio examples
 
DevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to KubernetesDevJam 2019 - Introduction to Kubernetes
DevJam 2019 - Introduction to Kubernetes
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
Kubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory GuideKubernetes for Beginners: An Introductory Guide
Kubernetes for Beginners: An Introductory Guide
 
Anypoint platform architecture and components
Anypoint platform architecture and componentsAnypoint platform architecture and components
Anypoint platform architecture and components
 
Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps  Microsoft DevOps Solution - DevOps
Microsoft DevOps Solution - DevOps
 
GitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with KubernetesGitOps is the best modern practice for CD with Kubernetes
GitOps is the best modern practice for CD with Kubernetes
 
DevOps Culture
DevOps CultureDevOps Culture
DevOps Culture
 
Istioサービスメッシュ入門
Istioサービスメッシュ入門Istioサービスメッシュ入門
Istioサービスメッシュ入門
 
AKS
AKSAKS
AKS
 
Podman Overview and internals.pdf
Podman Overview and internals.pdfPodman Overview and internals.pdf
Podman Overview and internals.pdf
 
Gitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCDGitlab, GitOps & ArgoCD
Gitlab, GitOps & ArgoCD
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
Best Practices with Azure & Kubernetes
Best Practices with Azure & KubernetesBest Practices with Azure & Kubernetes
Best Practices with Azure & Kubernetes
 
Extending KEDA with External Scalers
Extending KEDA with External ScalersExtending KEDA with External Scalers
Extending KEDA with External Scalers
 
Extending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitionsExtending kubernetes with CustomResourceDefinitions
Extending kubernetes with CustomResourceDefinitions
 
Intro to GitHub Actions
Intro to GitHub ActionsIntro to GitHub Actions
Intro to GitHub Actions
 
Kubernetes 101
Kubernetes 101Kubernetes 101
Kubernetes 101
 

Similar to KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf

The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetessparkfabrik
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxNebulaworks
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesChakradhar Rao Jonagam
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...NETWAYS
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWeaveworks
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps AdoptionServerless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps AdoptionAll Things Open
 
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaA Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaMauricio (Salaboy) Salatino
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - SkaffoldSuman Chakraborty
 
The Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsThe Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsMauricio (Salaboy) Salatino
 
Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"Daniel Bryant
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with BackstageOpsta
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a prosparkfabrik
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...Daniel Bryant
 
London MuleSoft Meetup
London MuleSoft Meetup London MuleSoft Meetup
London MuleSoft Meetup Akshata Sawant
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015DotNetCampus
 

Similar to KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf (20)

The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
WTF_is_SRE_DeveloperEnabledPlatforms.pdfWTF_is_SRE_DeveloperEnabledPlatforms.pdf
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes Toolbox
 
Developing Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/KubernetesDeveloping Microservices Directly in AKS/Kubernetes
Developing Microservices Directly in AKS/Kubernetes
 
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
stackconf 2020 | The path to a Serverless-native era with Kubernetes by Paolo...
 
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for YouWebinar: Capabilities, Confidence and Community – What Flux GA Means for You
Webinar: Capabilities, Confidence and Community – What Flux GA Means for You
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Serverless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps AdoptionServerless Functions: Accelerating DevOps Adoption
Serverless Functions: Accelerating DevOps Adoption
 
Demystifying Docker101
Demystifying Docker101Demystifying Docker101
Demystifying Docker101
 
Demystifying Docker
Demystifying DockerDemystifying Docker
Demystifying Docker
 
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaA Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
 
CI/CD Development in Kubernetes - Skaffold
CI/CD Development in Kubernetes -  SkaffoldCI/CD Development in Kubernetes -  Skaffold
CI/CD Development in Kubernetes - Skaffold
 
The Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsThe Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native Platforms
 
Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"Velocity NY 2018 "The Cloud Native Developer Workflow"
Velocity NY 2018 "The Cloud Native Developer Workflow"
 
Let's build Developer Portal with Backstage
Let's build Developer Portal with BackstageLet's build Developer Portal with Backstage
Let's build Developer Portal with Backstage
 
Gitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a proGitlab ci e kubernetes, build test and deploy your projects like a pro
Gitlab ci e kubernetes, build test and deploy your projects like a pro
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
CloudNativeLondon 2018: "In Search of the Perfect Cloud Native Developer Expe...
 
London MuleSoft Meetup
London MuleSoft Meetup London MuleSoft Meetup
London MuleSoft Meetup
 
TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015TUTTO SU VISUAL STUDIO ALM 2015
TUTTO SU VISUAL STUDIO ALM 2015
 

More from Mauricio (Salaboy) Salatino

Lessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsLessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsMauricio (Salaboy) Salatino
 
Building Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfBuilding Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfMauricio (Salaboy) Salatino
 
Functions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfFunctions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfMauricio (Salaboy) Salatino
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022 Mauricio (Salaboy) Salatino
 
Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Mauricio (Salaboy) Salatino
 
Knative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateKnative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateMauricio (Salaboy) Salatino
 
CDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemCDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemMauricio (Salaboy) Salatino
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesKCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesMauricio (Salaboy) Salatino
 
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingKubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingMauricio (Salaboy) Salatino
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeMauricio (Salaboy) Salatino
 

More from Mauricio (Salaboy) Salatino (20)

Devoxx UK - Platforms on top of K8s
Devoxx UK - Platforms on top of K8sDevoxx UK - Platforms on top of K8s
Devoxx UK - Platforms on top of K8s
 
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsLessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
 
Building Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfBuilding Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdf
 
Functions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfFunctions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdf
 
JBCNConf 2022: Go vs Java (Kubernetes)
JBCNConf 2022: Go vs Java (Kubernetes)JBCNConf 2022: Go vs Java (Kubernetes)
JBCNConf 2022: Go vs Java (Kubernetes)
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
 
Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`
 
KnativeCon 2022 - Knative Functions
KnativeCon 2022 - Knative FunctionsKnativeCon 2022 - Knative Functions
KnativeCon 2022 - Knative Functions
 
Knative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateKnative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and Update
 
CDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemCDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystem
 
Pave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal PlatformPave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal Platform
 
Knative and Spring - Bringing back the func.pdf
Knative and Spring - Bringing back the func.pdfKnative and Spring - Bringing back the func.pdf
Knative and Spring - Bringing back the func.pdf
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesKCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre Abstracciones
 
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingKubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
 
Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish) Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish)
 
Keptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystemKeptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystem
 
Kubernetes Community Day Spain -> Crossplane
Kubernetes Community Day Spain -> CrossplaneKubernetes Community Day Spain -> Crossplane
Kubernetes Community Day Spain -> Crossplane
 
QCon Plus From monoliths to k8s - Workshop
QCon Plus From monoliths to k8s - WorkshopQCon Plus From monoliths to k8s - Workshop
QCon Plus From monoliths to k8s - Workshop
 
Cloud Native Event-Driven Applications on LKE
Cloud Native Event-Driven Applications on LKECloud Native Event-Driven Applications on LKE
Cloud Native Event-Driven Applications on LKE
 

Recently uploaded

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
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
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
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
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Recently uploaded (20)

Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
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...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
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
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
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
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf

  • 1.
  • 2. On top of Kubernetes Mauricio Salatino - VMware / Knative OSS Tokyo, Japan 2022 Building FaaS Platforms
  • 3. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Who I am? Mauricio Salatino Staff Engineer @VMware, Ex @Red-Hat Full Time working on Knative OSS Knative Functions Working Group Co-Lead https://github.com/knative/func Contributor to a number of OSS projects like: Crossplane, Jenkins X, Knative, VCluster, etc. I am writing a book: Continuous Delivery for Kubernetes @ManningBooks @salaboy - @salaboy@hackyderm.io - https://salaboy.com
  • 4. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Agenda The need for building platforms on top of Kubernetes A platform in action that will make your life easier when building platforms Context: Demo: Tools:
  • 5. @salaboy - @salaboy@hackyderm.io - https://salaboy.com The need for building platforms • Kubernetes built-in constructs are just building blocks • One single Kubernetes Cluster is not enough • Learning Kubernetes is Hard • Training large teams • The CNCF landscape keeps growing
  • 6. @salaboy - @salaboy@hackyderm.io - https://salaboy.com How a platform can help? A platform can help with: • Reducing the cognitive load from development teams • Provide a self-service approach to consume complex tools • Improve our software delivery practices, by paving the paths to production ‟A platform is a collection of services and tools focused on enabling teams with a self-service approach to get the tools that they need when they need them.” - @salaboy, 2022
  • 7. @salaboy - @salaboy@hackyderm.io - https://salaboy.com How does a platform look like? Platform Platform APIs Tools Kubernetes Clusters Cloud Resources On-Prem Services Virtual Machines 3rd Party Services
  • 8. @salaboy - @salaboy@hackyderm.io - https://salaboy.com The challenges of building platforms Platform Kubernetes Infrastructure App App App App Dev Teams Platform Team Infrastructure Team https://teamtopologies.com/ APIs
  • 10. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Our Application Production Environment Monolith Application External Data Source
  • 11. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Let’s add a new feature Platform API Can I have a Dev Environment? Development Environment Sure you can, let me create one for you … App Dev Teams Here, take the keys to connect
  • 12. Let’s request a new Development Environment DEMO
  • 13. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Functions to extend our monolith Development Environment App Dev Teams Function Let’s create a Function and deploy it to my new Development Environment I can be written in any programming language! I can run functions because the platform already installed all the tools that I need
  • 14. Let’s create and deploy a function DEMO
  • 15. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Functions to extend our monolith GIT Production Environment Function Development Environment Function App Dev Teams Ok I am done with my changes Platform API Ok! Let’s promote the changes by creating a Pull Request to our Production Environment con fi guration repository
  • 16. Let’s promote our changes to our production environment DEMO
  • 17. Let’s talk about Tools 🛠🪚
  • 18. Disclaimer: I haven’t created custom Kubernetes Controllers for the demos!
  • 19. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Crossplane Platform Cluster GKE Cluster EKS Cluster AKS Cluster GCP Provider Azure Provider AWS Provider S3 Bucket Cloud SQL Azure Function cluster.yaml … … … database.yaml Create Cloud Resources using the Kubernetes APIs
  • 20. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Crossplane Compose resources into higher-level constructs <<My Environment>> Platform Cluster GKE Cluster GCP Provider Cloud SQL my-environment.yaml Blob Storage Cloud Function Platform APIs
  • 21. @salaboy - @salaboy@hackyderm.io - https://salaboy.com VCluster • Isolated fully compliant API Server • Automatic Sync of Resources • To create a VCluster you just install a Helm Chart Kubernetes VCluster A API Server API Server VCluster B API Server
  • 22. @salaboy - @salaboy@hackyderm.io - https://salaboy.com VCluster for isolation Isolation without $$$
  • 23. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Crossplane + Helm + VCluster Provision Virtual Clusters with Crossplane and Helm <<My Development Environment>> Platform Cluster VCluster Helm Provider my-environment.yaml Platform APIs Monolith Application https://salaboy.com/2022/08/03/building-platforms-on-top-of-kubernetes-vcluster-and-crossplane/
  • 24. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Knative Functions Developer Experience and Functions Runtime • Knative Serving (in your Kubernetes Clusters) • Scaling up and down based on traffic (down to zero) • Advanced Traffic Management (for release strategies) • Simplified user experience (less YAML) • Knative Functions • Focused on developer experience • Supports templates and different programming languages • Reduce the cognitive load on developers and let them focus on coding
  • 25. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Knative And VCluster Using our resources wisely - VCluster Knative Plugin Development Environments Development Environment B Development Environment A Development Environment C
  • 26. @salaboy - @salaboy@hackyderm.io - https://salaboy.com ArgoCD GitOps everywhere • Sync configuration in Git to Kubernetes Clusters • Avoid changing configurations manually to clusters • Revert back changing by just reverting commits in Git • Keep track of configurations changes
  • 27. @salaboy - @salaboy@hackyderm.io - https://salaboy.com ArgoCD Platform Production Environment Dev Environments `func` CLI App Git
  • 28. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Other tools & Resources Other Tools • OpenFeature https://openfeature.dev/ • Dapr https://dapr.io/ • CloudEvents & CDEvents https://cdevents.dev • DORA metrics https://github.com/salaboy/from-monolith-to-k8s/tree/main/four- keys Resources • Challenges of building platforms on top of Kubernetes Blogs • https://salaboy.com • Step-by-Step tutorial: •https://github.com/salaboy/kubeday-japan-2022
  • 29. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Recap Production
  • 30. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Recap Production Platform Development Environment App Dev Teams Platform Team
  • 31. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Recap Production Platform Development Environment Git App Dev Teams Platform Team
  • 32. @salaboy - @salaboy@hackyderm.io - https://salaboy.com Recap This is just an example • But it is amazing how many people are using these tools to build similar platforms • A well-define Platform API can help you to pivot and change the tools that you are using to implement your platform’s functionality • Focus on developers experience and developers productivity Production Platform Development Environment Git App Dev Teams Platform Team