Kubernetes and the Rise of Application-centric Computing

Bitnami
BitnamiBitnami
Kubernetes and the Rise of Application-centric Computing
Kubernetes
and the Rise of
Application-centric Computing
Angus Lees <gus@bitnami.com>
Why
The Software Stack
Your Code
Framework
Language
Software Distribution
OS/Kernel
CPU
Physical Enclosure
Electricity/Cooling
Maturity CurveRisk
Novelty
ExperimentationCommoditisation Maturation
Open-Source dominates here
Businesses want to be here
Maturity CurveRisk
Novelty
Niche/CrazyBoring Interesting
The Server-Side Software Stack
Your Code
Framework
Language
Software Distribution
OS/Kernel
CPU
Physical Enclosure
Electricity/Cooling
Boring infrastructure
Interesting 3rd-party
choices
Your actual problem
Somewhere here
Introducing Kubernetes
• Cluster orchestrator/manager
• Often abbreviated to “k8s”
• Runs jobs in containers (usually Docker images) - no VM overhead
• Originally created/released by Google based on internal experience
• Vibrant Free Software project (Apache2 license)
• Application-centric focus
Application-centric
You tell Kubernetes:
• Application executable, required libraries (as a docker image)
• Command line arguments, environment variables
• Config files
• Application health checks
• (Optionally) memory/cpu requirements, scheduling hints
... and Kubernetes does everything else
… with Kubernetes + Docker
Your Code
Framework
Language
Software Distribution
OS/Kernel
CPU
Physical Enclosure
Electricity/Cooling
Boring infrastructure
Interesting 3rd-party
choices
Your actual problem
Somewhere here
Application-Centric Computing
Before: After Kubernetes+Docker:
✓ Where to run
✓ How to run
✓ How to upgrade
✓ Recovering from failures
Interesting: Orchestration
Boring: Hardware
Interesting: Applications
Boring: Everything else
Kubernetes
Now boring is “how”, and
interesting is “what”
What
Declarative Configuration
• Say what not how
• Install/upgrade/downgrade is
all derived from single config
• Allows for strong tooling
ecosystem
• No mention of host details,
VMs, network topology, etc
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
replicas: 3
template:
metadata:
labels:
app: guestbook
tier: frontend
spec:
containers:
- name: php-redis
image: gcr.io/google-samples/gb-frontend:v4
resources:
requests:
cpu: 100m
memory: 100Mi
env:
- name: GET_HOSTS_FROM
value: dns
ports:
- containerPort: 80
Building Blocks
Most common:
• Pod - group of containers that always run together
• Deployment - describes a number of replicas of a pod
• Service - exposes several pods as a single load-balanced entity
• PersistentVolume - abstraction over network attached storage
• ConfigMap - configuration made available to pods
• Secret - like ConfigMap, but assumed to contain sensitive material
Internal Architecture
… with Kubernetes + Docker
Your Code
Framework
Language
Software Distribution
OS/Kernel
CPU
Physical Enclosure
Electricity/Cooling
Boring infrastructure
Interesting 3rd-party
choices
Your actual problem
Somewhere here
Functions aim to be general purpose infrastructure, unlike PaaS.
Functions raise the level of “boring”, into your application.
#!Boring
boring(boring)
boring
# Boring boring
boring boring(boring):
--> Your code goes here <--
Boring(boring) -> boring;
boring {{boring.boring}}
Next? Functions as a Service
Highlight: Kubeless
• Kubernetes native - designed specifically for Kubernetes
• Simple - reuses existing Kubernetes pieces wherever possible
• Node.js, Python, Ruby and more on the way
• Open Source project, led by Bitnami
• Get prometheus metrics, error handling, etc for free from runtime,
you just provide the “do work” function
Example: Automatic Thumbnail Creation
#!python
# (Some imports and global variable declarations elided)
def thumbnail(context):
bucket = os.path.dirname(context['Key'])
_, file_extension = os.path.splitext(context['Key'])
filename = os.path.basename(context['Key'])
if file_extension.upper() != ".JPEG":
return "Not a picture"
if context['EventType'] == "s3:ObjectCreated:Put" and bucket == 'foobar':
tf = tempfile.NamedTemporaryFile()
tf_thumb = tempfile.NamedTemporaryFile()
client.fget_object(bucket, filename, tf.name)
img = Image.open(tf.name)
img.thumbnail((120,120))
img.save(tf_thumb.name, "JPEG")
# puts the thumbnail in a thumbnail bucket
client.fput_object('thumb', thumb_name = filename + '.thumb', tf_thumb.name)
return "Thumbnail creation triggered"
Minio (an object store) configured to send notifications to kafka pubsub.
Install function:
% kubeless function deploy thumb1 
--trigger-topic s3 
--runtime python2.7 
--handler resize.thumbnail 
--from-file resize.py 
--dependencies requirements.txt
Done.
Example: Automatic Thumbnail Creation
kubeless-ui
Behind the scenes, Kubeless builds:
Example: Automatic Thumbnail Creation
Function
ThirdParty
Resource
Service
(for HTTP
triggers)
ConfigMap
Deployment
kubeless
client or
kubectl
Code
Code
https://kubernetes.io
Local Kubernetes experiments: minikube
Kubernetes on Oracle Cloud Platform How-To:
https://docs.bitnami.com/kubernetes/how-to/set-kubernetes-cluster-oracle/
http://kubeless.io/
Next Steps
Thank You
1 of 25

Recommended

Going Serverless with Kubeless In Google Container Engine (GKE) by
Going Serverless with Kubeless In Google Container Engine (GKE)Going Serverless with Kubeless In Google Container Engine (GKE)
Going Serverless with Kubeless In Google Container Engine (GKE)Bitnami
1.1K views34 slides
Building Resilient Cloud Native Apps in GKE by
Building Resilient Cloud Native Apps in GKEBuilding Resilient Cloud Native Apps in GKE
Building Resilient Cloud Native Apps in GKEJerry Jalava
517 views43 slides
Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L... by
Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L...Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L...
Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L...Bitnami
1.7K views47 slides
Containers & Cloud Native Ops Cloud Foundry Approach by
Containers & Cloud Native Ops Cloud Foundry ApproachContainers & Cloud Native Ops Cloud Foundry Approach
Containers & Cloud Native Ops Cloud Foundry ApproachCodeOps Technologies LLP
5.7K views34 slides
KubeCon EU 2016 Keynote: Kubernetes State of the Union by
KubeCon EU 2016 Keynote: Kubernetes State of the UnionKubeCon EU 2016 Keynote: Kubernetes State of the Union
KubeCon EU 2016 Keynote: Kubernetes State of the UnionKubeAcademy
1.8K views33 slides
On Prem Container Cloud - Lessons Learned by
On Prem Container Cloud - Lessons LearnedOn Prem Container Cloud - Lessons Learned
On Prem Container Cloud - Lessons LearnedCodeOps Technologies LLP
6.1K views23 slides

More Related Content

What's hot

KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING by
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLINGKUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLINGCodeOps Technologies LLP
5.4K views21 slides
A Million ways of Deploying a Kubernetes Cluster by
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes ClusterJimmy Lu
1.5K views21 slides
Knative And Pivotal Function As a Service by
Knative And Pivotal Function As a ServiceKnative And Pivotal Function As a Service
Knative And Pivotal Function As a ServiceJay Lee
291 views36 slides
Kubernetes Helm: Why It Matters by
Kubernetes Helm: Why It MattersKubernetes Helm: Why It Matters
Kubernetes Helm: Why It MattersPlatform9
951 views9 slides
Why kubernetes matters by
Why kubernetes mattersWhy kubernetes matters
Why kubernetes mattersPlatform9
3K views48 slides
Gdsc muk - innocent by
Gdsc   muk - innocentGdsc   muk - innocent
Gdsc muk - innocentjunaidhasan17
133 views21 slides

What's hot(20)

KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING by CodeOps Technologies LLP
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLINGKUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
KUBERNETES AS A FRAMEWORK FOR WRITING DEVOPS & MICROSERVICES TOOLING
A Million ways of Deploying a Kubernetes Cluster by Jimmy Lu
A Million ways of Deploying a Kubernetes ClusterA Million ways of Deploying a Kubernetes Cluster
A Million ways of Deploying a Kubernetes Cluster
Jimmy Lu1.5K views
Knative And Pivotal Function As a Service by Jay Lee
Knative And Pivotal Function As a ServiceKnative And Pivotal Function As a Service
Knative And Pivotal Function As a Service
Jay Lee291 views
Kubernetes Helm: Why It Matters by Platform9
Kubernetes Helm: Why It MattersKubernetes Helm: Why It Matters
Kubernetes Helm: Why It Matters
Platform9951 views
Why kubernetes matters by Platform9
Why kubernetes mattersWhy kubernetes matters
Why kubernetes matters
Platform93K views
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja... by VMware Tanzu
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
How to Live in a Post-Spring-Cloud-Netflix World - Olga Maciaszek-Sharma & Ja...
VMware Tanzu1.4K views
How to contribute to cloud native computing foundation (CNCF) by Krishna-Kumar
How to contribute to cloud native computing foundation (CNCF)How to contribute to cloud native computing foundation (CNCF)
How to contribute to cloud native computing foundation (CNCF)
Krishna-Kumar 1.2K views
Top 5 Considerations for Successful Deployment of Kubernetes by Platform9
Top 5 Considerations for Successful Deployment of KubernetesTop 5 Considerations for Successful Deployment of Kubernetes
Top 5 Considerations for Successful Deployment of Kubernetes
Platform9249 views
Cost-effective Compute Clusters with Spot and Pre-emptible Instances - KubeCo... by Platform9
Cost-effective Compute Clusters with Spot and Pre-emptible Instances - KubeCo...Cost-effective Compute Clusters with Spot and Pre-emptible Instances - KubeCo...
Cost-effective Compute Clusters with Spot and Pre-emptible Instances - KubeCo...
Platform9485 views
Adopting containers and kubernetes in production by Ta Ching Chen
Adopting containers and kubernetes in productionAdopting containers and kubernetes in production
Adopting containers and kubernetes in production
Ta Ching Chen4.2K views
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns by CoreOS
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for UnknownsTectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
Tectonic Summit 2016: Multi-Cluster Kubernetes: Planning for Unknowns
CoreOS529 views
DevOps: Kubernetes + Helm with Azure by Jessica Deen
DevOps: Kubernetes + Helm with AzureDevOps: Kubernetes + Helm with Azure
DevOps: Kubernetes + Helm with Azure
Jessica Deen568 views
Azure kubernetes service (aks) by Akash Agrawal
Azure kubernetes service (aks)Azure kubernetes service (aks)
Azure kubernetes service (aks)
Akash Agrawal4.1K views
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser... by Patrick Chanezon
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
KubeCon China 2019 - Building Apps with Containers, Functions and Managed Ser...
Patrick Chanezon628 views
How kubernetes operators can rescue dev secops in midst of a pandemic updated by Shikha Srivastava
How kubernetes operators can rescue dev secops in midst of a pandemic updatedHow kubernetes operators can rescue dev secops in midst of a pandemic updated
How kubernetes operators can rescue dev secops in midst of a pandemic updated
Shikha Srivastava111 views
6 Things You Need to Know to Safely Run Kubernetes by VMware Tanzu
6 Things You Need to Know to Safely Run Kubernetes6 Things You Need to Know to Safely Run Kubernetes
6 Things You Need to Know to Safely Run Kubernetes
VMware Tanzu541 views
Building Developer Pipelines with PKS, Harbor, Clair, and Concourse by VMware Tanzu
Building Developer Pipelines with PKS, Harbor, Clair, and ConcourseBuilding Developer Pipelines with PKS, Harbor, Clair, and Concourse
Building Developer Pipelines with PKS, Harbor, Clair, and Concourse
VMware Tanzu3.5K views

Similar to Kubernetes and the Rise of Application-centric Computing

Docker and kubernetes by
Docker and kubernetesDocker and kubernetes
Docker and kubernetesDongwon Kim
5.6K views33 slides
Adf with docker by
Adf with dockerAdf with docker
Adf with dockerEugene Fedorenko
1.4K views43 slides
Kubernetes @ meetic by
Kubernetes @ meeticKubernetes @ meetic
Kubernetes @ meeticSébastien Le Gall
652 views63 slides
Why do we even have Kubernetes? by
Why do we even have Kubernetes?Why do we even have Kubernetes?
Why do we even have Kubernetes?Sean Walberg
8 views46 slides
.NET Core: a new .NET Platform by
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET PlatformAlex Thissen
1.4K views60 slides
”Bare-Metal Container" presented at HPCC2016 by
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016Kuniyasu Suzaki
1.1K views24 slides

Similar to Kubernetes and the Rise of Application-centric Computing(20)

Docker and kubernetes by Dongwon Kim
Docker and kubernetesDocker and kubernetes
Docker and kubernetes
Dongwon Kim5.6K views
Why do we even have Kubernetes? by Sean Walberg
Why do we even have Kubernetes?Why do we even have Kubernetes?
Why do we even have Kubernetes?
Sean Walberg8 views
.NET Core: a new .NET Platform by Alex Thissen
.NET Core: a new .NET Platform.NET Core: a new .NET Platform
.NET Core: a new .NET Platform
Alex Thissen1.4K views
”Bare-Metal Container" presented at HPCC2016 by Kuniyasu Suzaki
”Bare-Metal Container" presented at HPCC2016”Bare-Metal Container" presented at HPCC2016
”Bare-Metal Container" presented at HPCC2016
Kuniyasu Suzaki1.1K views
DevOps with Azure, Kubernetes, and Helm Webinar by Codefresh
DevOps with Azure, Kubernetes, and Helm WebinarDevOps with Azure, Kubernetes, and Helm Webinar
DevOps with Azure, Kubernetes, and Helm Webinar
Codefresh2.2K views
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster by byonggon chun
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV ClusterMethod of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
Method of NUMA-Aware Resource Management for Kubernetes 5G NFV Cluster
byonggon chun403 views
Containers, Serverless and Functions in a nutshell by Eugene Fedorenko
Containers, Serverless and Functions in a nutshellContainers, Serverless and Functions in a nutshell
Containers, Serverless and Functions in a nutshell
Eugene Fedorenko451 views
Docker kubernetes fundamental(pod_service)_190307 by Inhye Park
Docker kubernetes fundamental(pod_service)_190307Docker kubernetes fundamental(pod_service)_190307
Docker kubernetes fundamental(pod_service)_190307
Inhye Park1.5K views
Kubernetes deployment on bare metal with container linux by macchiang
Kubernetes deployment on bare metal with container linuxKubernetes deployment on bare metal with container linux
Kubernetes deployment on bare metal with container linux
macchiang1.1K views
Gordon's secret session kubernetes on windows by Docker, Inc.
Gordon's secret session   kubernetes on windowsGordon's secret session   kubernetes on windows
Gordon's secret session kubernetes on windows
Docker, Inc.449 views
DevOps for Databricks by Databricks
DevOps for DatabricksDevOps for Databricks
DevOps for Databricks
Databricks1.1K views
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2 by Amazon Web Services
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2
Amazon EC2 Container Service: Manage Docker-Enabled Apps in EC2

More from Bitnami

Deploying a Java Application on Azure Kubernetes Service with Cosmos DB by
Deploying a Java Application on Azure Kubernetes Service with Cosmos DBDeploying a Java Application on Azure Kubernetes Service with Cosmos DB
Deploying a Java Application on Azure Kubernetes Service with Cosmos DBBitnami
325 views7 slides
Continous Delivery to Kubernetes using Helm by
Continous Delivery to Kubernetes using HelmContinous Delivery to Kubernetes using Helm
Continous Delivery to Kubernetes using HelmBitnami
2K views27 slides
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo... by
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...Bitnami
949 views24 slides
Contenedores y el Futuro del Despliegue de Aplicaciones by
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de AplicacionesBitnami
341 views36 slides
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless by
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBitnami
1.4K views33 slides
Banishing the Shadow Cloud by
Banishing the Shadow CloudBanishing the Shadow Cloud
Banishing the Shadow CloudBitnami
1K views12 slides

More from Bitnami(6)

Deploying a Java Application on Azure Kubernetes Service with Cosmos DB by Bitnami
Deploying a Java Application on Azure Kubernetes Service with Cosmos DBDeploying a Java Application on Azure Kubernetes Service with Cosmos DB
Deploying a Java Application on Azure Kubernetes Service with Cosmos DB
Bitnami325 views
Continous Delivery to Kubernetes using Helm by Bitnami
Continous Delivery to Kubernetes using HelmContinous Delivery to Kubernetes using Helm
Continous Delivery to Kubernetes using Helm
Bitnami2K views
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo... by Bitnami
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Thinking One Step Further with Time-saving DevOps Tools with Open Telekom Clo...
Bitnami949 views
Contenedores y el Futuro del Despliegue de Aplicaciones by Bitnami
Contenedores y el Futuro del Despliegue de AplicacionesContenedores y el Futuro del Despliegue de Aplicaciones
Contenedores y el Futuro del Despliegue de Aplicaciones
Bitnami341 views
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless by Bitnami
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Bitnami1.4K views
Banishing the Shadow Cloud by Bitnami
Banishing the Shadow CloudBanishing the Shadow Cloud
Banishing the Shadow Cloud
Bitnami1K views

Recently uploaded

PharoJS - Zürich Smalltalk Group Meetup November 2023 by
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023Noury Bouraqadi
132 views17 slides
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc
11 views29 slides
Melek BEN MAHMOUD.pdf by
Melek BEN MAHMOUD.pdfMelek BEN MAHMOUD.pdf
Melek BEN MAHMOUD.pdfMelekBenMahmoud
14 views1 slide
SUPPLIER SOURCING.pptx by
SUPPLIER SOURCING.pptxSUPPLIER SOURCING.pptx
SUPPLIER SOURCING.pptxangelicacueva6
16 views1 slide
Five Things You SHOULD Know About Postman by
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About PostmanPostman
36 views43 slides
Unit 1_Lecture 2_Physical Design of IoT.pdf by
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdfStephenTec
12 views36 slides

Recently uploaded(20)

PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi132 views
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f... by TrustArc
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc Webinar - Managing Online Tracking Technology Vendors_ A Checklist f...
TrustArc11 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman36 views
Unit 1_Lecture 2_Physical Design of IoT.pdf by StephenTec
Unit 1_Lecture 2_Physical Design of IoT.pdfUnit 1_Lecture 2_Physical Design of IoT.pdf
Unit 1_Lecture 2_Physical Design of IoT.pdf
StephenTec12 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10300 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely25 views
Special_edition_innovator_2023.pdf by WillDavies22
Special_edition_innovator_2023.pdfSpecial_edition_innovator_2023.pdf
Special_edition_innovator_2023.pdf
WillDavies2218 views
SAP Automation Using Bar Code and FIORI.pdf by Virendra Rai, PMP
SAP Automation Using Bar Code and FIORI.pdfSAP Automation Using Bar Code and FIORI.pdf
SAP Automation Using Bar Code and FIORI.pdf
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive by Network Automation Forum
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLiveAutomating a World-Class Technology Conference; Behind the Scenes of CiscoLive
Automating a World-Class Technology Conference; Behind the Scenes of CiscoLive
"Running students' code in isolation. The hard way", Yurii Holiuk by Fwdays
"Running students' code in isolation. The hard way", Yurii Holiuk "Running students' code in isolation. The hard way", Yurii Holiuk
"Running students' code in isolation. The hard way", Yurii Holiuk
Fwdays17 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software280 views
Voice Logger - Telephony Integration Solution at Aegis by Nirmal Sharma
Voice Logger - Telephony Integration Solution at AegisVoice Logger - Telephony Integration Solution at Aegis
Voice Logger - Telephony Integration Solution at Aegis
Nirmal Sharma39 views

Kubernetes and the Rise of Application-centric Computing

  • 2. Kubernetes and the Rise of Application-centric Computing Angus Lees <gus@bitnami.com>
  • 3. Why
  • 4. The Software Stack Your Code Framework Language Software Distribution OS/Kernel CPU Physical Enclosure Electricity/Cooling
  • 7. The Server-Side Software Stack Your Code Framework Language Software Distribution OS/Kernel CPU Physical Enclosure Electricity/Cooling Boring infrastructure Interesting 3rd-party choices Your actual problem Somewhere here
  • 8. Introducing Kubernetes • Cluster orchestrator/manager • Often abbreviated to “k8s” • Runs jobs in containers (usually Docker images) - no VM overhead • Originally created/released by Google based on internal experience • Vibrant Free Software project (Apache2 license) • Application-centric focus
  • 9. Application-centric You tell Kubernetes: • Application executable, required libraries (as a docker image) • Command line arguments, environment variables • Config files • Application health checks • (Optionally) memory/cpu requirements, scheduling hints ... and Kubernetes does everything else
  • 10. … with Kubernetes + Docker Your Code Framework Language Software Distribution OS/Kernel CPU Physical Enclosure Electricity/Cooling Boring infrastructure Interesting 3rd-party choices Your actual problem Somewhere here
  • 11. Application-Centric Computing Before: After Kubernetes+Docker: ✓ Where to run ✓ How to run ✓ How to upgrade ✓ Recovering from failures Interesting: Orchestration Boring: Hardware Interesting: Applications Boring: Everything else
  • 12. Kubernetes Now boring is “how”, and interesting is “what”
  • 13. What
  • 14. Declarative Configuration • Say what not how • Install/upgrade/downgrade is all derived from single config • Allows for strong tooling ecosystem • No mention of host details, VMs, network topology, etc apiVersion: extensions/v1beta1 kind: Deployment metadata: name: frontend spec: replicas: 3 template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: gcr.io/google-samples/gb-frontend:v4 resources: requests: cpu: 100m memory: 100Mi env: - name: GET_HOSTS_FROM value: dns ports: - containerPort: 80
  • 15. Building Blocks Most common: • Pod - group of containers that always run together • Deployment - describes a number of replicas of a pod • Service - exposes several pods as a single load-balanced entity • PersistentVolume - abstraction over network attached storage • ConfigMap - configuration made available to pods • Secret - like ConfigMap, but assumed to contain sensitive material
  • 17. … with Kubernetes + Docker Your Code Framework Language Software Distribution OS/Kernel CPU Physical Enclosure Electricity/Cooling Boring infrastructure Interesting 3rd-party choices Your actual problem Somewhere here
  • 18. Functions aim to be general purpose infrastructure, unlike PaaS. Functions raise the level of “boring”, into your application. #!Boring boring(boring) boring # Boring boring boring boring(boring): --> Your code goes here <-- Boring(boring) -> boring; boring {{boring.boring}} Next? Functions as a Service
  • 19. Highlight: Kubeless • Kubernetes native - designed specifically for Kubernetes • Simple - reuses existing Kubernetes pieces wherever possible • Node.js, Python, Ruby and more on the way • Open Source project, led by Bitnami • Get prometheus metrics, error handling, etc for free from runtime, you just provide the “do work” function
  • 20. Example: Automatic Thumbnail Creation #!python # (Some imports and global variable declarations elided) def thumbnail(context): bucket = os.path.dirname(context['Key']) _, file_extension = os.path.splitext(context['Key']) filename = os.path.basename(context['Key']) if file_extension.upper() != ".JPEG": return "Not a picture" if context['EventType'] == "s3:ObjectCreated:Put" and bucket == 'foobar': tf = tempfile.NamedTemporaryFile() tf_thumb = tempfile.NamedTemporaryFile() client.fget_object(bucket, filename, tf.name) img = Image.open(tf.name) img.thumbnail((120,120)) img.save(tf_thumb.name, "JPEG") # puts the thumbnail in a thumbnail bucket client.fput_object('thumb', thumb_name = filename + '.thumb', tf_thumb.name) return "Thumbnail creation triggered"
  • 21. Minio (an object store) configured to send notifications to kafka pubsub. Install function: % kubeless function deploy thumb1 --trigger-topic s3 --runtime python2.7 --handler resize.thumbnail --from-file resize.py --dependencies requirements.txt Done. Example: Automatic Thumbnail Creation
  • 23. Behind the scenes, Kubeless builds: Example: Automatic Thumbnail Creation Function ThirdParty Resource Service (for HTTP triggers) ConfigMap Deployment kubeless client or kubectl Code Code
  • 24. https://kubernetes.io Local Kubernetes experiments: minikube Kubernetes on Oracle Cloud Platform How-To: https://docs.bitnami.com/kubernetes/how-to/set-kubernetes-cluster-oracle/ http://kubeless.io/ Next Steps