SlideShare ist ein Scribd-Unternehmen logo
1 von 69
Downloaden Sie, um offline zu lesen
When to use Serverless?
When to use Kubernetes?
Niklas Heidloff
Developer Advocate, IBM
@nheidloff
heidloff.net
H1 / 2018
Agenda, Disclaimers and Credits
Open Source solutions only
Focus is on development related topics
Focus is on compute, not on storage
Thanks a lot to Ansgar Schmidt for the preparation of this
session which we gave together at OOP 2018, Munich !
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Serverless
“Serverless computing is a cloud computing execution model in
which the cloud provider dynamically manages the allocation of
machine resources. Pricing is based on the actual amount of
resources consumed by an application.” (via Wikipedia)
Sample scenario: Serverless Web Application
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Apache OpenWhisk
“Apache OpenWhisk is a serverless, open source cloud platform
that executes functions in response to events without developer
concern for managing the lifecycle or operations of the
containers that execute the code.” (via Apache)
Supported runtimes: Node.js, Python, PHP, Swift and Docker
Deployment: On-premises or in the cloud
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Kubernetes
“Kubernetes is an open-source system for automating
deployment, scaling, and management of containerized
applications.” (via kubernetes.io)
Open source projected initiated by Google and governed by
the Cloud Native Computing Foundation
Main functionality: Self-healing, automatic binpacking, service
discovery and load balancing, horizontal scaling, automated
rollouts
Offered as computing option by all major cloud providers
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Istio
Code
Intro
Test
Deploy
Run
Summary
“An open platform to connect, manage, and
secure microservices.” (via istio)
Open source projected initiated by IBM and Google and
governed by the Cloud Native Computing Foundation
Main functionality: Traffic
management, observability,
policy enforcement, service
identity
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Kubernetes
Local development via standard tooling and IDEs
Minikube to run Kubernetes locally
Docker support for Kubernetes (beta)
@nheidloff
Serverless
Supported runtimes: Node.js, Python, PHP, Swift and Docker
Development
Local development via standard tooling and IDEs
Web tooling provided by cloud providers
Orchestration via Composer
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Serverless APIs
Building simple CRUD APIs via Node.js
GET https://..../person?id=x
Types of functions
Single file (synchronous and asynchronous)
Multi-file functions
Docker functions
Debugging single file Nodes.js functions
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Function Code
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Asynchronous Function (successful)
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Multiple File Function
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Multiple File Function
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Debugging simple Node.js Function
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Debugging simple Node.js Function
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Debugging simple Node.js Function
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Debugging simple Node.js Function
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Docker
Developing serverless functions via Docker
Debugging containers locally
For both Serverless and Kubernetes
With Visual Studio Code
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 2 – Debugging Nodes.js Function in Docker
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Composer
Composer is a new programming model for composing
functions, built on Apache OpenWhisk
Declarative and programmatic
approach to define sophisticated
flows between functions in
cloud-native apps
State management between
‘stateless’ functions
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Kubernetes
Testing can be done via standard testing tools and services
Istio provides capabilities to easily do A/B testing to test new
features in production environments
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Demo 3- A/B Testing
Book reviews sample application
https://istio.io/docs/guides/bookinfo.html
Deployments of new service versions to subsets of users
@nheidloff
Demo 3 – Book Info App
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 3 – Book Info App: Different Review Versions
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Demo 3 - A/B Testing: 3 Versions of Review Service
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Demo 3 - A/B Testing: Version 2 only for Jason
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Demo 3 - A/B Testing: Version 3 for 50% of Users
@nheidloff
Serverless
No good way to do A/B Testing
Tests cause costs when running functions in the cloud
Testing doesn’t become easier automatically
“Functions” doesn’t mean necessarily “Pure Functions”
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Serverless
Deployments can be automated via CD/CI pipelines
No notion of staging environments for functions in the cloud
Serverless Framework: Toolkit for deploying and operating
serverless architectures
@nheidloff
Code
Intro
Test
Deploy
Run
Summary
Kubernetes
Deployments can be done via kubectl CLI
Deployments can be automated via CD/CI pipelines
Helm is a tool for managing Kubernetes
charts which are packages of pre-configured
Kubernetes resources
@nheidloff
Demo 4 – Deployments
Code
Intro
Test
Deploy
Run
Summary
Deployment of a Function via wsk CLI
Deployment of Kubernetes applications
Via kubectl CLI
Via Helm
@nheidloff
Demo 1 – Deployment of Function
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 1 – Function Invocation via CLI
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 4 – Function Invocation via HTTP
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 4 – Deployment of nginx on Kubernetes
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 4 – Deployment of nginx on Kubernetes
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 4 – Deployment of nginx on Kubernetes
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 4 – Kubernetes Scalability
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 4 – Jenkins Installation via Helm
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Demo 4 – Jenkins Installation via Helm
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Serverless
Limited out of the box monitoring right now, especially for
Composer flows
Monitoring via Grafana
Serverless doesn’t always mean administrator-less
On-premises deployments require operations
Management of Docker containers, e.g. vulnerabilities
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Kubernetes
Lots of monitoring tools available
Part of Kubernetes: kubectl proxy
Community and third parties: Grafana, Zipkin and many more
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Kubernetes Dashboard (kubectl proxy)
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Kubernetes: Grafana
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Kubernetes: Zipkin
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Kubernetes: ServiceGraph
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Summary
Use Serverless for ...
Variable and irregular loads (can lead to lower costs)
Developer productivity for first time experience
Inherent auto-scalability
Use Kubernetes for ...
Mature deployment options, e.g. A/B testing, monitoring
Minimal response latency
High performance computing without resource restrictions
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Resources
OpenWhisk
https://openwhisk.apache.org
https://github.com/ibm-functions/composer
https://github.com/nheidloff/openwhisk-debug-nodejs
Kubernetes
https://kubernetes.io
https://istio.io
IBM Cloud
http://ibm.biz/oop2018
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Appendix
@nheidloff
Abstract
There is a lot of debate whether to use Serverless or Kubernetes
to build cloud-native apps. Both have their advantages and
unique capabilities which developers should take into
consideration when planning new projects. We will throw some
light on the topics ease of use, maturity, types of scenarios,
developer productivity and debugging, supported languages,
DevOps and monitoring, performance, community and pricing.
Cloud-native architectures shift the complexity from within an
application to orchestrations of Microservices. Both Kubernetes
and Serverless have their strengths which we will discuss.
Besides the core development topics, developers should also
understand operational aspects how complicated it is to
maintain your own systems versus using managed platforms.
@nheidloff
API Management with IBM Cloud
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Serverless – Demo 1
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Serverless – Demo 1
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Serverless – Demo 1
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Serverless – Demo 1
Code
Intro
Test
Deploy
Run
Summary
@nheidloff
Serverless – Demo 1
Code
Intro
Test
Deploy
Run
Summary
@nheidloff

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

PayPal's History of Microservices Architecture
PayPal's History of Microservices ArchitecturePayPal's History of Microservices Architecture
PayPal's History of Microservices Architecture
 
10 Steps to Cloud Happiness
10 Steps to Cloud Happiness10 Steps to Cloud Happiness
10 Steps to Cloud Happiness
 
Okteto For Kubernetes Developer :- Container Camp 2020
Okteto For Kubernetes Developer :- Container Camp 2020 Okteto For Kubernetes Developer :- Container Camp 2020
Okteto For Kubernetes Developer :- Container Camp 2020
 
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
 SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
SPRING BOOT DANS UN CONTAINER OUTILS ET PRATIQUES
 
Importance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCPImportance of GCP: 30 Days of GCP
Importance of GCP: 30 Days of GCP
 
Continuous Integration & Development with Gitlab
Continuous Integration & Development with GitlabContinuous Integration & Development with Gitlab
Continuous Integration & Development with Gitlab
 
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
AWS Community Day Bangkok 2019 - DevOps Cost Reduction using Jenkins & AWS Sp...
 
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a ProSkip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
Skip Staging! Test Docker, Helm, and Kubernetes Apps like a Pro
 
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...
Learning the Alphabet: A/B, CD and [E-Z] in the Docker Datacenter by Brett Ti...
 
Is your kubernetes negative or positive
Is your kubernetes negative or positive Is your kubernetes negative or positive
Is your kubernetes negative or positive
 
Continuous delivery in AWS
Continuous delivery in AWSContinuous delivery in AWS
Continuous delivery in AWS
 
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
Selenium Testing your Kubernetes Apps with Machine Learning and TestimSelenium Testing your Kubernetes Apps with Machine Learning and Testim
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
 
.NET Serverless Development on AWS - AWS Online Tech Talks
.NET Serverless Development on AWS - AWS Online Tech Talks.NET Serverless Development on AWS - AWS Online Tech Talks
.NET Serverless Development on AWS - AWS Online Tech Talks
 
Running Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to HelmRunning Spring Boot in Kubernetes and Intro to Helm
Running Spring Boot in Kubernetes and Intro to Helm
 
Spring Webflux
Spring WebfluxSpring Webflux
Spring Webflux
 
Alfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of ThingsAlfresco Process Services (APS) and the Internet of Things
Alfresco Process Services (APS) and the Internet of Things
 
Kubernetes Operators - the next frontier in application automation - Ádám Sándor
Kubernetes Operators - the next frontier in application automation - Ádám SándorKubernetes Operators - the next frontier in application automation - Ádám Sándor
Kubernetes Operators - the next frontier in application automation - Ádám Sándor
 
Harnessing the power of aws using dot net
Harnessing the power of aws using dot netHarnessing the power of aws using dot net
Harnessing the power of aws using dot net
 
Infrastructure as code
Infrastructure as codeInfrastructure as code
Infrastructure as code
 
Software Delivery at Warp Speed: Five Essential Techniques
Software Delivery at Warp Speed: Five Essential TechniquesSoftware Delivery at Warp Speed: Five Essential Techniques
Software Delivery at Warp Speed: Five Essential Techniques
 

Ähnlich wie When to use Serverless? When to use Kubernetes?

Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
Anuj Sharma
 

Ähnlich wie When to use Serverless? When to use Kubernetes? (20)

Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015Red Hat Forum Benelux 2015
Red Hat Forum Benelux 2015
 
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
 
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe DevelopmentEclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
Eclipse Che - A Revolutionary IDE for Distributed & Mainframe Development
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
AWS Code Services
AWS Code ServicesAWS Code Services
AWS Code Services
 
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
Accelerate Your Automation Testing Effort using TestProject & Docker | Docker...
 
DevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver FasterDevOps on AWS - Building Systems to Deliver Faster
DevOps on AWS - Building Systems to Deliver Faster
 
Continous Integration.pptx
Continous Integration.pptxContinous Integration.pptx
Continous Integration.pptx
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Jenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipelineJenkins vs. AWS CodePipeline
Jenkins vs. AWS CodePipeline
 
Continuous Delivery with a PaaS Application
Continuous Delivery with a PaaS ApplicationContinuous Delivery with a PaaS Application
Continuous Delivery with a PaaS Application
 
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
Jenkins vs. AWS CodePipeline (AWS User Group Berlin)
 
Exercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the EnterpriseExercising and Scaling Up Mobile DevOps in the Enterprise
Exercising and Scaling Up Mobile DevOps in the Enterprise
 
A tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWSA tale of two pizzas: Developer tools at AWS
A tale of two pizzas: Developer tools at AWS
 
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer ToolsA Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
A Tale of Two Pizzas: Accelerating Software Delivery with AWS Developer Tools
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 

Mehr von Niklas Heidloff

Mehr von Niklas Heidloff (20)

How to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with JavaHow to develop your first cloud-native Applications with Java
How to develop your first cloud-native Applications with Java
 
Blue Cloud Mirror
Blue Cloud MirrorBlue Cloud Mirror
Blue Cloud Mirror
 
IBM at JavaLand
IBM at JavaLandIBM at JavaLand
IBM at JavaLand
 
Serverless Web Applications on the IBM Cloud
Serverless Web Applications on the IBM CloudServerless Web Applications on the IBM Cloud
Serverless Web Applications on the IBM Cloud
 
Development of AI Applications without Machine Learning Skills
Development of AI Applications without Machine Learning SkillsDevelopment of AI Applications without Machine Learning Skills
Development of AI Applications without Machine Learning Skills
 
Building Serverless Web Applications with OpenWhisk
Building Serverless Web Applications with OpenWhiskBuilding Serverless Web Applications with OpenWhisk
Building Serverless Web Applications with OpenWhisk
 
IBM Bluemix Continuous Delivery
IBM Bluemix Continuous DeliveryIBM Bluemix Continuous Delivery
IBM Bluemix Continuous Delivery
 
Cognitive IBM Watson Services for Bluemix Developers
Cognitive IBM Watson Services for Bluemix DevelopersCognitive IBM Watson Services for Bluemix Developers
Cognitive IBM Watson Services for Bluemix Developers
 
IBM Bluemix Demo with Anki Overdrive Cars
IBM Bluemix Demo with Anki Overdrive CarsIBM Bluemix Demo with Anki Overdrive Cars
IBM Bluemix Demo with Anki Overdrive Cars
 
Rapid Application Development with Docker
Rapid Application Development with DockerRapid Application Development with Docker
Rapid Application Development with Docker
 
Collaborative Line of Business Applications on IBM Bluemix
Collaborative Line of Business Applications on IBM BluemixCollaborative Line of Business Applications on IBM Bluemix
Collaborative Line of Business Applications on IBM Bluemix
 
Rapid Application Development in the Cloud and On-Premises with Docker
Rapid Application Development in the Cloud and On-Premises with DockerRapid Application Development in the Cloud and On-Premises with Docker
Rapid Application Development in the Cloud and On-Premises with Docker
 
IBM Bluemix for Administrators with Focus on XPages
IBM Bluemix for Administrators with Focus on XPagesIBM Bluemix for Administrators with Focus on XPages
IBM Bluemix for Administrators with Focus on XPages
 
Ten Minutes Bluemix Pitch from Dev to Dev
Ten Minutes Bluemix Pitch from Dev to DevTen Minutes Bluemix Pitch from Dev to Dev
Ten Minutes Bluemix Pitch from Dev to Dev
 
IBM Bluemix Demos: Driving Smartphone and Personality Ball
IBM Bluemix Demos: Driving Smartphone and Personality BallIBM Bluemix Demos: Driving Smartphone and Personality Ball
IBM Bluemix Demos: Driving Smartphone and Personality Ball
 
IBM Bluemix - The Cloud Platform Java Developers have been looking for
IBM Bluemix - The Cloud Platform Java Developers have been looking forIBM Bluemix - The Cloud Platform Java Developers have been looking for
IBM Bluemix - The Cloud Platform Java Developers have been looking for
 
Build cognitive Apps that help enhance, scale and accelerate Human Expertise
Build cognitive Apps that help enhance, scale and accelerate Human ExpertiseBuild cognitive Apps that help enhance, scale and accelerate Human Expertise
Build cognitive Apps that help enhance, scale and accelerate Human Expertise
 
IBM Enterprise Social Solutions on Bluemix (XPages and Connections)
IBM Enterprise Social Solutions  on Bluemix (XPages and Connections)IBM Enterprise Social Solutions  on Bluemix (XPages and Connections)
IBM Enterprise Social Solutions on Bluemix (XPages and Connections)
 
Introduction to IBM Bluemix for Java Developers
Introduction to IBM Bluemix for Java DevelopersIntroduction to IBM Bluemix for Java Developers
Introduction to IBM Bluemix for Java Developers
 
Application Development for IBM Connections with IBM Bluemix
Application Development  for IBM Connections with IBM BluemixApplication Development  for IBM Connections with IBM Bluemix
Application Development for IBM Connections with IBM Bluemix
 

Kürzlich hochgeladen

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 

Kürzlich hochgeladen (20)

Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
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
 
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
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
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
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 

When to use Serverless? When to use Kubernetes?

  • 1. When to use Serverless? When to use Kubernetes? Niklas Heidloff Developer Advocate, IBM @nheidloff heidloff.net H1 / 2018
  • 2. Agenda, Disclaimers and Credits Open Source solutions only Focus is on development related topics Focus is on compute, not on storage Thanks a lot to Ansgar Schmidt for the preparation of this session which we gave together at OOP 2018, Munich ! @nheidloff Code Intro Test Deploy Run Summary
  • 3. Serverless “Serverless computing is a cloud computing execution model in which the cloud provider dynamically manages the allocation of machine resources. Pricing is based on the actual amount of resources consumed by an application.” (via Wikipedia) Sample scenario: Serverless Web Application Code Intro Test Deploy Run Summary @nheidloff
  • 4. Apache OpenWhisk “Apache OpenWhisk is a serverless, open source cloud platform that executes functions in response to events without developer concern for managing the lifecycle or operations of the containers that execute the code.” (via Apache) Supported runtimes: Node.js, Python, PHP, Swift and Docker Deployment: On-premises or in the cloud Code Intro Test Deploy Run Summary @nheidloff
  • 5. Kubernetes “Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.” (via kubernetes.io) Open source projected initiated by Google and governed by the Cloud Native Computing Foundation Main functionality: Self-healing, automatic binpacking, service discovery and load balancing, horizontal scaling, automated rollouts Offered as computing option by all major cloud providers Code Intro Test Deploy Run Summary @nheidloff
  • 6. Istio Code Intro Test Deploy Run Summary “An open platform to connect, manage, and secure microservices.” (via istio) Open source projected initiated by IBM and Google and governed by the Cloud Native Computing Foundation Main functionality: Traffic management, observability, policy enforcement, service identity @nheidloff
  • 7. Code Intro Test Deploy Run Summary Kubernetes Local development via standard tooling and IDEs Minikube to run Kubernetes locally Docker support for Kubernetes (beta) @nheidloff
  • 8. Serverless Supported runtimes: Node.js, Python, PHP, Swift and Docker Development Local development via standard tooling and IDEs Web tooling provided by cloud providers Orchestration via Composer Code Intro Test Deploy Run Summary @nheidloff
  • 9. Demo 1 – Serverless APIs Building simple CRUD APIs via Node.js GET https://..../person?id=x Types of functions Single file (synchronous and asynchronous) Multi-file functions Docker functions Debugging single file Nodes.js functions Code Intro Test Deploy Run Summary @nheidloff
  • 10. Demo 1 – Function Code Code Intro Test Deploy Run Summary @nheidloff
  • 11. Demo 1 – Asynchronous Function (successful) Code Intro Test Deploy Run Summary @nheidloff
  • 12. Demo 1 – Multiple File Function Code Intro Test Deploy Run Summary @nheidloff
  • 13. Demo 1 – Multiple File Function Code Intro Test Deploy Run Summary @nheidloff
  • 14. Demo 1 – Debugging simple Node.js Function Code Intro Test Deploy Run Summary @nheidloff
  • 15. Demo 1 – Debugging simple Node.js Function Code Intro Test Deploy Run Summary @nheidloff
  • 16. Demo 1 – Debugging simple Node.js Function Code Intro Test Deploy Run Summary @nheidloff
  • 17. Demo 1 – Debugging simple Node.js Function Code Intro Test Deploy Run Summary @nheidloff
  • 18. Demo 2 – Debugging Docker Developing serverless functions via Docker Debugging containers locally For both Serverless and Kubernetes With Visual Studio Code Code Intro Test Deploy Run Summary @nheidloff
  • 19. Demo 2 – Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 20. Demo 2 – Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 21. Demo 2 – Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 22. Demo 2 – Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 23. Demo 2 – Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 24. Demo 2 – Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 25. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 26. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 27. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 28. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 29. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 30. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 31. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 32. Demo 2 – Debugging Nodes.js Function in Docker Code Intro Test Deploy Run Summary @nheidloff
  • 33. Composer Composer is a new programming model for composing functions, built on Apache OpenWhisk Declarative and programmatic approach to define sophisticated flows between functions in cloud-native apps State management between ‘stateless’ functions Code Intro Test Deploy Run Summary @nheidloff
  • 34. Code Intro Test Deploy Run Summary Kubernetes Testing can be done via standard testing tools and services Istio provides capabilities to easily do A/B testing to test new features in production environments @nheidloff
  • 35. Code Intro Test Deploy Run Summary Demo 3- A/B Testing Book reviews sample application https://istio.io/docs/guides/bookinfo.html Deployments of new service versions to subsets of users @nheidloff
  • 36. Demo 3 – Book Info App Code Intro Test Deploy Run Summary @nheidloff
  • 37. Demo 3 – Book Info App: Different Review Versions Code Intro Test Deploy Run Summary @nheidloff
  • 38. Code Intro Test Deploy Run Summary Demo 3 - A/B Testing: 3 Versions of Review Service @nheidloff
  • 39. Code Intro Test Deploy Run Summary Demo 3 - A/B Testing: Version 2 only for Jason @nheidloff
  • 40. Code Intro Test Deploy Run Summary Demo 3 - A/B Testing: Version 3 for 50% of Users @nheidloff
  • 41. Serverless No good way to do A/B Testing Tests cause costs when running functions in the cloud Testing doesn’t become easier automatically “Functions” doesn’t mean necessarily “Pure Functions” Code Intro Test Deploy Run Summary @nheidloff
  • 42. Code Intro Test Deploy Run Summary Serverless Deployments can be automated via CD/CI pipelines No notion of staging environments for functions in the cloud Serverless Framework: Toolkit for deploying and operating serverless architectures @nheidloff
  • 43. Code Intro Test Deploy Run Summary Kubernetes Deployments can be done via kubectl CLI Deployments can be automated via CD/CI pipelines Helm is a tool for managing Kubernetes charts which are packages of pre-configured Kubernetes resources @nheidloff
  • 44. Demo 4 – Deployments Code Intro Test Deploy Run Summary Deployment of a Function via wsk CLI Deployment of Kubernetes applications Via kubectl CLI Via Helm @nheidloff
  • 45. Demo 1 – Deployment of Function Code Intro Test Deploy Run Summary @nheidloff
  • 46. Demo 1 – Function Invocation via CLI Code Intro Test Deploy Run Summary @nheidloff
  • 47. Demo 4 – Function Invocation via HTTP Code Intro Test Deploy Run Summary @nheidloff
  • 48. Demo 4 – Deployment of nginx on Kubernetes Code Intro Test Deploy Run Summary @nheidloff
  • 49. Demo 4 – Deployment of nginx on Kubernetes Code Intro Test Deploy Run Summary @nheidloff
  • 50. Demo 4 – Deployment of nginx on Kubernetes Code Intro Test Deploy Run Summary @nheidloff
  • 51. Demo 4 – Kubernetes Scalability Code Intro Test Deploy Run Summary @nheidloff
  • 52. Demo 4 – Jenkins Installation via Helm Code Intro Test Deploy Run Summary @nheidloff
  • 53. Demo 4 – Jenkins Installation via Helm Code Intro Test Deploy Run Summary @nheidloff
  • 54. Serverless Limited out of the box monitoring right now, especially for Composer flows Monitoring via Grafana Serverless doesn’t always mean administrator-less On-premises deployments require operations Management of Docker containers, e.g. vulnerabilities Code Intro Test Deploy Run Summary @nheidloff
  • 55. Kubernetes Lots of monitoring tools available Part of Kubernetes: kubectl proxy Community and third parties: Grafana, Zipkin and many more Code Intro Test Deploy Run Summary @nheidloff
  • 56. Kubernetes Dashboard (kubectl proxy) Code Intro Test Deploy Run Summary @nheidloff
  • 60. Summary Use Serverless for ... Variable and irregular loads (can lead to lower costs) Developer productivity for first time experience Inherent auto-scalability Use Kubernetes for ... Mature deployment options, e.g. A/B testing, monitoring Minimal response latency High performance computing without resource restrictions Code Intro Test Deploy Run Summary @nheidloff
  • 63. Abstract There is a lot of debate whether to use Serverless or Kubernetes to build cloud-native apps. Both have their advantages and unique capabilities which developers should take into consideration when planning new projects. We will throw some light on the topics ease of use, maturity, types of scenarios, developer productivity and debugging, supported languages, DevOps and monitoring, performance, community and pricing. Cloud-native architectures shift the complexity from within an application to orchestrations of Microservices. Both Kubernetes and Serverless have their strengths which we will discuss. Besides the core development topics, developers should also understand operational aspects how complicated it is to maintain your own systems versus using managed platforms. @nheidloff
  • 64. API Management with IBM Cloud Code Intro Test Deploy Run Summary @nheidloff
  • 65. Serverless – Demo 1 Code Intro Test Deploy Run Summary @nheidloff
  • 66. Serverless – Demo 1 Code Intro Test Deploy Run Summary @nheidloff
  • 67. Serverless – Demo 1 Code Intro Test Deploy Run Summary @nheidloff
  • 68. Serverless – Demo 1 Code Intro Test Deploy Run Summary @nheidloff
  • 69. Serverless – Demo 1 Code Intro Test Deploy Run Summary @nheidloff