Mauricio Salatino @salaboy / Ishan Khare @ishankhare07
The challenges of building
Cloud Native Platforms
On top of Kubernetes
Who I am?
• Mauricio Salatino
• Sta
ff
Engineer @VMware
• Working for Knative OSS 24/7
• OSS Contributor: Knative, Crossplane,
• Jenkins X, VCluster, Spring Cloud
• Continuous Delivery for Kubernetes
• http://mng.bz/5ml8
• 35% Discount Code: mtploft22
Who I am?
• Mauricio Salatino
• Sta
ff
Engineer @VMware
• Working for Knative OSS 24/7
• OSS Contributor: Knative, Crossplane,
• Jenkins X, VCluster, Spring Cloud
• Continuous Delivery for Kubernetes
• http://mng.bz/5ml8
• 35% Discount Code: mtploft22
Who I am?
• Continuous Delivery for Kubernetes
• http://mng.bz/5ml8
• 35% Discount Code: mtploft22
BUY! BUY! BUY!!!!
•http://mng.bz/5ml8
•35% OFF
•mtploft22
Agenda
• The need for building platforms on top of Kubernetes
• The challenges of building platforms
• DEMO 🤓
The need for building platforms
• Kubernetes is not enough
• One Kubernetes cluster is not enough
• Organisations and Teams have di
ff
erent requirements, di
ff
erent needs
• Avoiding App Dev teams cognitive overload
What is a platform and why we need one?
• Platform == Collection of services (APIs) focused on automating and
providing a self-service approach to consume complex infrastructure + tools
• By building platforms we:
• Reduce the cognitive load on teams
• Provide a self-service API to abstract complexity
• Improve your software delivery practices by treating the platform as a
product
Platform team
An organisational change
Platform
Kubernetes
Infrastructure
App App App App Dev Teams
Platform Team
Infrastructure Team
https://teamtopologies.com/
APIs
Challenges
• Multi Cluster & Multi Cloud setups are complex
• Installing & maintaining platform-wide tools
• CNCF landscape 🤯
Let’s build a platform
• Expectations
• App Dev teams can create environments to do their work
• Without needing to know all the details about how tools are installed,
cluster created and things con
fi
gured
• They need isolation from di
ff
erent teams
• Platform team de
fi
nes which tools are going to be used and how they will
be con
fi
gured
• Platform decisions are encapsulated behind a clearly de
fi
ned API
Tools that we will be using
• Crossplane
• Crossplane Helm Provider
• VCluster
• Knative Serving
• Knative Functions
Crossplane
Provisioning Cloud Resources
• Reuses the Kubernetes Resource model to provision cloud resources
• Compose and con
fi
gure resources together
• Support for multi-cloud providers
With Crossplane
Creating cloud resources is easy
Platform Cluster
GKE Cluster
EKS Cluster
AKS Cluster
GCP Credentials
Azure Credentials
AWS Credentials
S3 Bucket
Cloud SQL
Azure Function
cluster.yaml
…
…
…
<<My Thing>>
With Crossplane
Compose cloud resources
Platform Cluster
GKE Cluster
GCP Credentials
Cloud SQL
mything.yaml
Blob Storage Cloud Function
Crossplane
Is awesome but..
• Creating Cloud Resources cost $$$
• You need to manage Crossplane
• You probably need a separate cluster for running Crossplane
VCluster
Isolated Clusters inside a Cluster
• Isolated API Server per namespace and automatic
sync of resources
• API Server isolation where a namespace is not enough
• It is simple as installing a Helm Chart
Kubernetes
VCluster A
API Server
API Server
VCluster B
API Server
Namespace vs VCluster vs Cluster
Isolation without the $$$
Development Environment
Example
Platform API
Can I have a
Dev
Environment? Development
Environment
Sure you
can, let me
create one
for you …
Staging Environment
Example Crossplane + Cloud Provider
Platform Cluster
Can I have a
Staging
Environment?
Staging
Environment
Sure you
can, let me
create one
for you …
Development Environment
Example Crossplane + VCluster
Platform Cluster
Can I have a
Dev
Environment?
Development
Environment
Sure you
can, let me
create one
for you …
https://salaboy.com/2022/08/03/building-platforms-on-top-of-kubernetes-vcluster-and-crossplane/
Our platform can create clusters!
🥳 🥳 🥳 🥳 🥳 🥳 🥳
Quick recap
• We can create clusters using a declarative approach
• We can compose cloud resources
• We can use VCluster to avoid paying for full-blown Kubernetes clusters
• But… this is just the beginning
What about Tools? 🛠🪚
Knative Serving
• Knative Serving provides
• Scaling up and down (to zero) based on tra
ffi
c
• Advanced tra
ffi
c management
• Simpli
fi
ed developer experience (less yaml)
• You need to install Knative Serving on your clusters
Multiple Environments
Using resources
Platform Cluster
Development
Environment B
Development
Environment A
Staging
Environment
Development
Environment C
Development Environments
Production
Environment
Development Environments
Welcome VCluster Plugins
Using resources wisely
Platform Cluster
Development
Environment B
Development
Environment A
Development
Environment C
Crossplane + VCluster + Knative Serving
DEMO TIME
Demo recap
Developer Experience is important
Platform Cluster
Development
Environment
Let’s create and
deploy a function to
our freshly created
Development
Environment!
Function
Demo recap
Deploying to production
Platform Cluster
Development
Environment
Let’s create and
deploy a function to
our freshly created
Development
Environment!
Function
GIT
Production Cluster
Function
• @Salaboy
• Link: http://mng.bz/5ml8
• 35% o
ff
using code: mtploft22
Thanks

The Challenges of building Cloud Native Platforms

  • 1.
    Mauricio Salatino @salaboy/ Ishan Khare @ishankhare07 The challenges of building Cloud Native Platforms On top of Kubernetes
  • 2.
    Who I am? •Mauricio Salatino • Sta ff Engineer @VMware • Working for Knative OSS 24/7 • OSS Contributor: Knative, Crossplane, • Jenkins X, VCluster, Spring Cloud • Continuous Delivery for Kubernetes • http://mng.bz/5ml8 • 35% Discount Code: mtploft22
  • 3.
    Who I am? •Mauricio Salatino • Sta ff Engineer @VMware • Working for Knative OSS 24/7 • OSS Contributor: Knative, Crossplane, • Jenkins X, VCluster, Spring Cloud • Continuous Delivery for Kubernetes • http://mng.bz/5ml8 • 35% Discount Code: mtploft22
  • 4.
    Who I am? •Continuous Delivery for Kubernetes • http://mng.bz/5ml8 • 35% Discount Code: mtploft22
  • 5.
  • 6.
    Agenda • The needfor building platforms on top of Kubernetes • The challenges of building platforms • DEMO 🤓
  • 7.
    The need forbuilding platforms • Kubernetes is not enough • One Kubernetes cluster is not enough • Organisations and Teams have di ff erent requirements, di ff erent needs • Avoiding App Dev teams cognitive overload
  • 8.
    What is aplatform and why we need one? • Platform == Collection of services (APIs) focused on automating and providing a self-service approach to consume complex infrastructure + tools • By building platforms we: • Reduce the cognitive load on teams • Provide a self-service API to abstract complexity • Improve your software delivery practices by treating the platform as a product
  • 9.
    Platform team An organisationalchange Platform Kubernetes Infrastructure App App App App Dev Teams Platform Team Infrastructure Team https://teamtopologies.com/ APIs
  • 10.
    Challenges • Multi Cluster& Multi Cloud setups are complex • Installing & maintaining platform-wide tools • CNCF landscape 🤯
  • 11.
    Let’s build aplatform • Expectations • App Dev teams can create environments to do their work • Without needing to know all the details about how tools are installed, cluster created and things con fi gured • They need isolation from di ff erent teams • Platform team de fi nes which tools are going to be used and how they will be con fi gured • Platform decisions are encapsulated behind a clearly de fi ned API
  • 12.
    Tools that wewill be using • Crossplane • Crossplane Helm Provider • VCluster • Knative Serving • Knative Functions
  • 13.
    Crossplane Provisioning Cloud Resources •Reuses the Kubernetes Resource model to provision cloud resources • Compose and con fi gure resources together • Support for multi-cloud providers
  • 14.
    With Crossplane Creating cloudresources is easy Platform Cluster GKE Cluster EKS Cluster AKS Cluster GCP Credentials Azure Credentials AWS Credentials S3 Bucket Cloud SQL Azure Function cluster.yaml … … …
  • 15.
    <<My Thing>> With Crossplane Composecloud resources Platform Cluster GKE Cluster GCP Credentials Cloud SQL mything.yaml Blob Storage Cloud Function
  • 16.
    Crossplane Is awesome but.. •Creating Cloud Resources cost $$$ • You need to manage Crossplane • You probably need a separate cluster for running Crossplane
  • 17.
    VCluster Isolated Clusters insidea Cluster • Isolated API Server per namespace and automatic sync of resources • API Server isolation where a namespace is not enough • It is simple as installing a Helm Chart Kubernetes VCluster A API Server API Server VCluster B API Server
  • 18.
    Namespace vs VClustervs Cluster Isolation without the $$$
  • 19.
    Development Environment Example Platform API CanI have a Dev Environment? Development Environment Sure you can, let me create one for you …
  • 20.
    Staging Environment Example Crossplane+ Cloud Provider Platform Cluster Can I have a Staging Environment? Staging Environment Sure you can, let me create one for you …
  • 21.
    Development Environment Example Crossplane+ VCluster Platform Cluster Can I have a Dev Environment? Development Environment Sure you can, let me create one for you … https://salaboy.com/2022/08/03/building-platforms-on-top-of-kubernetes-vcluster-and-crossplane/
  • 22.
    Our platform cancreate clusters! 🥳 🥳 🥳 🥳 🥳 🥳 🥳
  • 23.
    Quick recap • Wecan create clusters using a declarative approach • We can compose cloud resources • We can use VCluster to avoid paying for full-blown Kubernetes clusters • But… this is just the beginning
  • 24.
  • 25.
    Knative Serving • KnativeServing provides • Scaling up and down (to zero) based on tra ffi c • Advanced tra ffi c management • Simpli fi ed developer experience (less yaml) • You need to install Knative Serving on your clusters
  • 26.
    Multiple Environments Using resources PlatformCluster Development Environment B Development Environment A Staging Environment Development Environment C Development Environments Production Environment
  • 27.
    Development Environments Welcome VClusterPlugins Using resources wisely Platform Cluster Development Environment B Development Environment A Development Environment C
  • 28.
    Crossplane + VCluster+ Knative Serving DEMO TIME
  • 29.
    Demo recap Developer Experienceis important Platform Cluster Development Environment Let’s create and deploy a function to our freshly created Development Environment! Function
  • 30.
    Demo recap Deploying toproduction Platform Cluster Development Environment Let’s create and deploy a function to our freshly created Development Environment! Function GIT Production Cluster Function
  • 31.
    • @Salaboy • Link:http://mng.bz/5ml8 • 35% o ff using code: mtploft22 Thanks