SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
Who needs containers in a
serverless world?
Vasek Pavlin & Matthias Luebken
@vpavlin & @luebken
Talk history
● 2017:
○ July https://www.meetup.com/de-DE/Bonn-Agile/events/240782503/
○ September:
https://www.codetalks.de/de/2017/programm/who-needs-containers-in-a-
serverless-world
Work in
Progress
Who needs containers in a serverless world
● serverless = faas & backend services
● pro container:
○ you can achieve similar characteristics with containers
○ containers are more versatile
○ they enable different architectures: monolith, µservices, faas
○ BTW containers are the enabling infrastructure
● pro serverless:
○ opinionated architecture
○ focus on writing application logic
○ precise cost based pricing powers new architectures
● OpenWhisk to the rescue
tl;dr
Outline
● Intro
● Setting the context
● What is serverless?
● Developers’ Workflow
● Opinion time: Serverless Camp vs Container Camp
● OpenWhisk
● Open discussion & demos
@vpavlin & @luebken
Who needs containers in a serverless world
App
Mr. Developer
Two sides of the same coin
Development Infrastructure
Containers in Infrastructure
● Preferred solution even for serverless
● Like VMs without all the VMs shortcomings (cough..)
● Brings new shortcomings:)
● Generally awesome, great, terrific, everyone loves it
BUT...
Two sides of the same coin
Development Infrastructure
What is serverless?
Who needs containers in a serverless world
Defining serverless
● BaaS: Backend-As-A-Service
○ Off-the-shelf services
○ Popular in Mobile (MBaaS)
○ On different levels e.g.:
Authentication, Messaging, Databases,
Speech / Text Analysis ...
● FaaS: Function-As-A-Service
○ App logic in small functions
○ Event driven
Who needs containers in a serverless world
Who needs containers in a serverless world
5 common traits
1. Does not require managing a long-lived server
or application instance
2. Self auto-scales and auto-provisions, based on load
3. Offers costs based on precise usage
up from and down to zero usage
4. Has performance capabilities defined in terms other than
host size / count
5. Has implicit high availability
http://bit.ly/symph-defining-1 by @mikebroberts
A typical serverless architecture on AWS
user client
S3: static
artefacts
Cognito
User
Authentication
API
gateway
S3: cache
Lambda
function
Cloud Watch
Logs / Metrics
SNS
Event
Lambda
function
External
APIs
Route 53
DNS
Error response
Triggered by an
(HTTP) event
Try to get data from
cache
Publish event for
missing data
Return JSON payload
TODO: Sum up how great serverless is
Serverless & Containers
Developers’ workflow
Developers’ Workflow
Developers’ Workflow - Write Code
● Use IDE of choice
○ You can try VS Code with plugins (interesting links: this or this or this)
Developers’ Workflow - Build
● Ideally “one click” solution
Containers
● Dockerfile
● Source To Image
● Ansible Container
● Draft
● ...
Serverless
● Zip:)
Developers’ Workflow - Run
● Locally or Remotely?
Containers
● docker run …
● docker-compose up
● oc cluster up && oc new-app ...
Serverless
● serverless invoke local
● serverless offline
Developers’ Workflow - Test
● Unit? Integration? Acceptance? Local? Remote? Automated?
Containers
● There are projects
● Generally it is just another
container
Serverless
● Unit testing is important
● Integration & Acceptance testing
over unit testing
Developers’ Workflow - Deploy
● Automate the hell out of it!
Containers
● Build is the same as in dev or test
● You’ll need orchestration
○ Kubernetes
○ OpenShift
○ Mesos
○ Swarm
○ …
● There are CI integrations
Serverless
● Serverless Framework
● Now
Opinion Time
Serverless
Camp
Containers
Camp
The “serverless architectural style”
● Serverless is opinionated:
○ Ephemeral application logic
○ State in backing services
○ Everything is distributed
You can rebuild it with container technologies.
● Limitations for this style:
○ Less options for managing state
○ Latency between components
○ Local development / testing
● Sometimes less is more. Limited options may drive productivity and change.
Managed vs Control
● You can host your own serverless platform
but note serverless leverages economy of scale
● Most orgs will choose some cloud vendor and give up control
So, how important is control to you?
● Ops is different with serverless
Old vs new
● Serverless is immature
Implementation, tooling, bugs, vendor
lockin
● Container ecosystem is huge
● Containers are just Linux
So ?
Matthias: “Serverless is the greatest enabler”
● No costs for not running code is just mind blowing
● Serverless made me think differently:
○ APIs
■ What other APIs are others providing?
■ What can I expose as an API?
○ Modular
■ Does my function do too much?
○ Event driven
■ What are good domain events?
And it’s fun.
Vašek: “Containers give you freedom”
● Containers give freedom
○ Have you ever given freedom to developers? ;)
● You need to think on scale
● Orchestration is king
● It does not take traditional “ops” tasks away
● It was fun last 3 years, now it’s just work...
What if you could have both?
Apache OpenWhisk
● http://openwhisk.org/
● GA : Feb 2016 from IBM
● Red Hat joined Jun 2017
● License : ASL v2
● Polyglot : NodeJS, Swift, Python, Java, PHP +
Docker
● Event Sources : BlueMix services, Watson,
Cloudant, other SaaS
● BlueMix Cloud Functions Pricing : $0.000017
GB-s
● Event Sequencing, Parameter Binding
OpenWhisk Architecture
OpenWhisk
You can:
● use any interpreted language natively
● use any other language by wrapping code in container
● run on Kubernetes/OpenShift (i.e. scale)
Let me show you...
● serverless = faas & backend services
● pro container:
○ you can achieve similar characteristics with containers
○ containers are more versatile
○ they enable different architectures: monolith, µservices, faas
○ BTW containers are the enabling infrastructure
● pro serverless:
○ opinionated architecture
○ focus on writing application logic
○ precise cost based pricing powers new architectures
● OpenWhisk to the rescue
tl;dr
Thanks for listening
@vpavlin @luebken
visit:
● developers.redhat.com
● openshift.io
Appendix
Lambda
11 / 2014
Cloud
Functions
02 / 2016
Azure
Functions
03 / 2016
OpenWhisk
02 / 2016
Amazon Google MicrosoftIBM
The Big 4 FaaS providers
JavaScript,
Python,Java,C#
JavaScript JavaScript, Swift,
Docker
JavaScript, C#,
F#, Python, PHP
Apache
Funktion
More OpenSource
More proprietary platforms
webtask
The Rails for serverless architectures
.com
Lessons learned on getting with serverless on AWS
● Get familiar with console.aws.amazon.com
● Create / update functions with a simple wrapper e.g. https://apex.run/
● Don’t start with higher level abstractions
● Check https://acloud.guru/ for tutorials
OpenWhisk
Vocabulary
● Trigger: An Event such as an incoming HTTP request
● Rule: Map a trigger to an action
● Action: A function, optionally with parameters
● Package: A collection of actions and parameters
● Sequence: Several actions in a row
Create an & invoke an action
function main() {
console.log('Hello World');
return { hello: 'world' };
}
$ wsk action create myAction action.js
$ wsk action invoke myAction --result
$ wsk action invoke myAction --blocking
Attic
What is container and why? (low-level)
● It’s not virtualisation, but it is a (lightweight) virtualisation
○ Starts in milliseconds
● A process encapsulation tech
● We love them because of portability
○ Works here, works there (not really, but..)
● Containers are like functions
○ they don’t matter in prod, orchestration does
How do you encapsulate code? (low-level)
● Dockerfile (or Buildah)
○ Boring shell script
● S2I - https://github.com/openshift/source-to-image
○ Smart way of automatically getting your code in container
Containers rock because… (getting higher)
● Local development and testing is easy
○ docker run -v $PWD:/code …
○ docker run … make test
○ docker compose up …, oc cluster up ...
● There are many existing and supported containers out there
○ https://access.redhat.com/containers
● There are many (mature) tools to orchestrate them
○ OpenShift, Kubernetes, Mesos, Swarm
● Containers are universal
○ Web app, embedded, hardware specific...
Container orchestration (high-level)
● One container is useless, many containers is hard
● OpenShift/Kubernetes
○ Scale, HA, Hybrid Cloud, Security, Service Discovery, CI/CD, Stateless
○ You can manage your backend service or use external ones
○ On premise matches hosted
● You can try your orchestration locally
○ Docker Swarm
○ Kubernetes
○ OpenShift

Contenu connexe

Tendances

Building and Running Workloads the Knative Way
Building and Running Workloads the Knative WayBuilding and Running Workloads the Knative Way
Building and Running Workloads the Knative WayQAware GmbH
 
Disruption from within
Disruption from withinDisruption from within
Disruption from withinDocker, Inc.
 
Cicd pixelfederation
Cicd pixelfederationCicd pixelfederation
Cicd pixelfederationJuraj Hantak
 
Real World CI/CD with Kubernetes
Real World CI/CD with KubernetesReal World CI/CD with Kubernetes
Real World CI/CD with KubernetesOpsta
 
Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKEOpsta
 
Enabling Cloud Native Buildpacks for Windows Containers
Enabling Cloud Native Buildpacks for Windows ContainersEnabling Cloud Native Buildpacks for Windows Containers
Enabling Cloud Native Buildpacks for Windows ContainersVMware Tanzu
 
Cloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guideCloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guidesparkfabrik
 
Containers vs serverless - Navigating application deployment options
Containers vs serverless - Navigating application deployment optionsContainers vs serverless - Navigating application deployment options
Containers vs serverless - Navigating application deployment optionsDaniel Krook
 
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...
Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L...Bitnami
 
Distributed Storage in the Cloud
Distributed Storage in the CloudDistributed Storage in the Cloud
Distributed Storage in the CloudAll Things Open
 
Clean Infrastructure as Code
Clean Infrastructure as CodeClean Infrastructure as Code
Clean Infrastructure as CodeQAware GmbH
 
India Serverless Summit 2017 - Sponsorship Deck
India Serverless Summit 2017 - Sponsorship DeckIndia Serverless Summit 2017 - Sponsorship Deck
India Serverless Summit 2017 - Sponsorship DeckCodeOps Technologies LLP
 
CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?Weaveworks
 
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...Daniel Krook
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.All Things Open
 
Api more than payload (2021 Update)
Api more than payload (2021 Update)Api more than payload (2021 Update)
Api more than payload (2021 Update)Phil Wilkins
 
Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentAll Things Open
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Yan Cui
 

Tendances (20)

Building and Running Workloads the Knative Way
Building and Running Workloads the Knative WayBuilding and Running Workloads the Knative Way
Building and Running Workloads the Knative Way
 
Disruption from within
Disruption from withinDisruption from within
Disruption from within
 
Cicd pixelfederation
Cicd pixelfederationCicd pixelfederation
Cicd pixelfederation
 
Real World CI/CD with Kubernetes
Real World CI/CD with KubernetesReal World CI/CD with Kubernetes
Real World CI/CD with Kubernetes
 
Introduction to Kubernetes and GKE
Introduction to Kubernetes and GKEIntroduction to Kubernetes and GKE
Introduction to Kubernetes and GKE
 
Enabling Cloud Native Buildpacks for Windows Containers
Enabling Cloud Native Buildpacks for Windows ContainersEnabling Cloud Native Buildpacks for Windows Containers
Enabling Cloud Native Buildpacks for Windows Containers
 
Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
Zero-downtime deployment with Kubernetes [Meetup #21 - 01]Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
Zero-downtime deployment with Kubernetes [Meetup #21 - 01]
 
Cloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guideCloud-Native Drupal: a survival guide
Cloud-Native Drupal: a survival guide
 
Containers vs serverless - Navigating application deployment options
Containers vs serverless - Navigating application deployment optionsContainers vs serverless - Navigating application deployment options
Containers vs serverless - Navigating application deployment options
 
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...
Take the Fastest Path to Node.Js Application Development with Bitnami & AWS L...
 
Distributed Storage in the Cloud
Distributed Storage in the CloudDistributed Storage in the Cloud
Distributed Storage in the Cloud
 
Intro - Cloud Native
Intro - Cloud NativeIntro - Cloud Native
Intro - Cloud Native
 
Clean Infrastructure as Code
Clean Infrastructure as CodeClean Infrastructure as Code
Clean Infrastructure as Code
 
India Serverless Summit 2017 - Sponsorship Deck
India Serverless Summit 2017 - Sponsorship DeckIndia Serverless Summit 2017 - Sponsorship Deck
India Serverless Summit 2017 - Sponsorship Deck
 
CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?CNCF Keynote - What is cloud native?
CNCF Keynote - What is cloud native?
 
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
Open Container Technologies and OpenStack - Sorting Through Kubernetes, the O...
 
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
It’s 2021. Why are we -still- rebooting for patches? A look at Live Patching.
 
Api more than payload (2021 Update)
Api more than payload (2021 Update)Api more than payload (2021 Update)
Api more than payload (2021 Update)
 
Cleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven DevelopmentCleaner Code Through Test-Driven Development
Cleaner Code Through Test-Driven Development
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
 

Similaire à Who needs containers in a serverless world

Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless worldMatthias Luebken
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHLaszlo Fogas
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless worldRed Hat Developers
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanDrew Malone
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development KitLalatendu Mohanty
 
State of serverless
State of serverlessState of serverless
State of serverlessAnurag Saran
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in ProductionPatrick Mizer
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013dotCloud
 
LXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software DeliveryLXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software DeliveryDocker, Inc.
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesYshay Yaacobi
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015aspyker
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless worldScott van Kalken
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3sHaggai Philip Zagury
 
Introduction to Docker at Glidewell Laboratories in Orange County
Introduction to Docker at Glidewell Laboratories in Orange CountyIntroduction to Docker at Glidewell Laboratories in Orange County
Introduction to Docker at Glidewell Laboratories in Orange CountyJérôme Petazzoni
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachNicola Ferraro
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaGregor Heine
 
Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015Giovanni Toraldo
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!J On The Beach
 

Similaire à Who needs containers in a serverless world (20)

Who needs containers in a serverless world
Who needs containers in a serverless worldWho needs containers in a serverless world
Who needs containers in a serverless world
 
The Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPHThe Self-Service Developer - GOTOCon CPH
The Self-Service Developer - GOTOCon CPH
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless world
 
Super lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik MukelyanSuper lazy side projects - Hamik Mukelyan
Super lazy side projects - Hamik Mukelyan
 
Docker for dev
Docker for devDocker for dev
Docker for dev
 
Red Hat Container Development Kit
Red Hat Container Development KitRed Hat Container Development Kit
Red Hat Container Development Kit
 
State of serverless
State of serverlessState of serverless
State of serverless
 
Docker + Microservices in Production
Docker + Microservices in ProductionDocker + Microservices in Production
Docker + Microservices in Production
 
LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013LXC, Docker, and the future of software delivery | LinuxCon 2013
LXC, Docker, and the future of software delivery | LinuxCon 2013
 
LXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software DeliveryLXC Docker and the Future of Software Delivery
LXC Docker and the Future of Software Delivery
 
Instant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositoriesInstant developer onboarding with self contained repositories
Instant developer onboarding with self contained repositories
 
Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015Triangle Devops Meetup 10/2015
Triangle Devops Meetup 10/2015
 
Short journey into the serverless world
Short journey into the serverless worldShort journey into the serverless world
Short journey into the serverless world
 
DevEx | there’s no place like k3s
DevEx | there’s no place like k3sDevEx | there’s no place like k3s
DevEx | there’s no place like k3s
 
Introduction to Docker at Glidewell Laboratories in Orange County
Introduction to Docker at Glidewell Laboratories in Orange CountyIntroduction to Docker at Glidewell Laboratories in Orange County
Introduction to Docker at Glidewell Laboratories in Orange County
 
Cloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps ApproachCloud Native Applications on Kubernetes: a DevOps Approach
Cloud Native Applications on Kubernetes: a DevOps Approach
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with Nova
 
Docker in production service discovery with consul - road to opscon 2015
Docker in production  service discovery with consul - road to opscon 2015Docker in production  service discovery with consul - road to opscon 2015
Docker in production service discovery with consul - road to opscon 2015
 
ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
Free the Functions with Fn project!
Free the Functions with Fn project!Free the Functions with Fn project!
Free the Functions with Fn project!
 

Plus de Matthias Luebken

Eine Einführung in Docker
Eine Einführung in DockerEine Einführung in Docker
Eine Einführung in DockerMatthias Luebken
 
How to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one roomHow to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one roomMatthias Luebken
 
How to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one roomHow to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one roomMatthias Luebken
 
Docker Introduction – @ Agile Bonn
Docker Introduction – @ Agile BonnDocker Introduction – @ Agile Bonn
Docker Introduction – @ Agile BonnMatthias Luebken
 
“Und wie war ich so?”
Feedback in Unternehmen
“Und wie war ich so?”
Feedback in Unternehmen“Und wie war ich so?”
Feedback in Unternehmen
“Und wie war ich so?”
Feedback in UnternehmenMatthias Luebken
 
Talk: Staying Startup at Interactive-Cologne
Talk: Staying Startup at Interactive-CologneTalk: Staying Startup at Interactive-Cologne
Talk: Staying Startup at Interactive-CologneMatthias Luebken
 
Verbessertes Feedback durch Peerreview
Verbessertes Feedback durch PeerreviewVerbessertes Feedback durch Peerreview
Verbessertes Feedback durch PeerreviewMatthias Luebken
 
Mobile Webapps Entwicklung
Mobile Webapps EntwicklungMobile Webapps Entwicklung
Mobile Webapps EntwicklungMatthias Luebken
 

Plus de Matthias Luebken (13)

Container Patterns
Container PatternsContainer Patterns
Container Patterns
 
Eine Einführung in Docker
Eine Einführung in DockerEine Einführung in Docker
Eine Einführung in Docker
 
How to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one roomHow to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one room
 
How to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one roomHow to scale product development when you no longer fit in one room
How to scale product development when you no longer fit in one room
 
Docker Introduction – @ Agile Bonn
Docker Introduction – @ Agile BonnDocker Introduction – @ Agile Bonn
Docker Introduction – @ Agile Bonn
 
“Und wie war ich so?”
Feedback in Unternehmen
“Und wie war ich so?”
Feedback in Unternehmen“Und wie war ich so?”
Feedback in Unternehmen
“Und wie war ich so?”
Feedback in Unternehmen
 
Home- (office) ?
Home- (office) ?Home- (office) ?
Home- (office) ?
 
Staying Startup
Staying StartupStaying Startup
Staying Startup
 
Talk: Staying Startup at Interactive-Cologne
Talk: Staying Startup at Interactive-CologneTalk: Staying Startup at Interactive-Cologne
Talk: Staying Startup at Interactive-Cologne
 
Verbessertes Feedback durch Peerreview
Verbessertes Feedback durch PeerreviewVerbessertes Feedback durch Peerreview
Verbessertes Feedback durch Peerreview
 
Mobile WebApps
Mobile WebAppsMobile WebApps
Mobile WebApps
 
Mobile Webapps Entwicklung
Mobile Webapps EntwicklungMobile Webapps Entwicklung
Mobile Webapps Entwicklung
 
Mobile Webapps Motivation
Mobile Webapps MotivationMobile Webapps Motivation
Mobile Webapps Motivation
 

Dernier

Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsSafe Software
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarPrecisely
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IES VE
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Brian Pichman
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDELiveplex
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding TeamAdam Moalla
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?IES VE
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesDavid Newbury
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 

Dernier (20)

20150722 - AGV
20150722 - AGV20150722 - AGV
20150722 - AGV
 
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration WorkflowsIgniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
20230104 - machine vision
20230104 - machine vision20230104 - machine vision
20230104 - machine vision
 
AI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity WebinarAI You Can Trust - Ensuring Success with Data Integrity Webinar
AI You Can Trust - Ensuring Success with Data Integrity Webinar
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
IESVE Software for Florida Code Compliance Using ASHRAE 90.1-2019
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )Building Your Own AI Instance (TBLC AI )
Building Your Own AI Instance (TBLC AI )
 
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDEADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
ADOPTING WEB 3 FOR YOUR BUSINESS: A STEP-BY-STEP GUIDE
 
9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team9 Steps For Building Winning Founding Team
9 Steps For Building Winning Founding Team
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?How Accurate are Carbon Emissions Projections?
How Accurate are Carbon Emissions Projections?
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Linked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond OntologiesLinked Data in Production: Moving Beyond Ontologies
Linked Data in Production: Moving Beyond Ontologies
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 

Who needs containers in a serverless world

  • 1. Who needs containers in a serverless world? Vasek Pavlin & Matthias Luebken @vpavlin & @luebken
  • 2. Talk history ● 2017: ○ July https://www.meetup.com/de-DE/Bonn-Agile/events/240782503/ ○ September: https://www.codetalks.de/de/2017/programm/who-needs-containers-in-a- serverless-world Work in Progress
  • 4. ● serverless = faas & backend services ● pro container: ○ you can achieve similar characteristics with containers ○ containers are more versatile ○ they enable different architectures: monolith, µservices, faas ○ BTW containers are the enabling infrastructure ● pro serverless: ○ opinionated architecture ○ focus on writing application logic ○ precise cost based pricing powers new architectures ● OpenWhisk to the rescue tl;dr
  • 5. Outline ● Intro ● Setting the context ● What is serverless? ● Developers’ Workflow ● Opinion time: Serverless Camp vs Container Camp ● OpenWhisk ● Open discussion & demos
  • 8. App
  • 10. Two sides of the same coin Development Infrastructure
  • 11. Containers in Infrastructure ● Preferred solution even for serverless ● Like VMs without all the VMs shortcomings (cough..) ● Brings new shortcomings:) ● Generally awesome, great, terrific, everyone loves it BUT...
  • 12. Two sides of the same coin Development Infrastructure
  • 15. Defining serverless ● BaaS: Backend-As-A-Service ○ Off-the-shelf services ○ Popular in Mobile (MBaaS) ○ On different levels e.g.: Authentication, Messaging, Databases, Speech / Text Analysis ... ● FaaS: Function-As-A-Service ○ App logic in small functions ○ Event driven
  • 18. 5 common traits 1. Does not require managing a long-lived server or application instance 2. Self auto-scales and auto-provisions, based on load 3. Offers costs based on precise usage up from and down to zero usage 4. Has performance capabilities defined in terms other than host size / count 5. Has implicit high availability http://bit.ly/symph-defining-1 by @mikebroberts
  • 19. A typical serverless architecture on AWS user client S3: static artefacts Cognito User Authentication API gateway S3: cache Lambda function Cloud Watch Logs / Metrics SNS Event Lambda function External APIs Route 53 DNS
  • 20. Error response Triggered by an (HTTP) event Try to get data from cache Publish event for missing data Return JSON payload
  • 21. TODO: Sum up how great serverless is
  • 24. Developers’ Workflow - Write Code ● Use IDE of choice ○ You can try VS Code with plugins (interesting links: this or this or this)
  • 25. Developers’ Workflow - Build ● Ideally “one click” solution Containers ● Dockerfile ● Source To Image ● Ansible Container ● Draft ● ... Serverless ● Zip:)
  • 26. Developers’ Workflow - Run ● Locally or Remotely? Containers ● docker run … ● docker-compose up ● oc cluster up && oc new-app ... Serverless ● serverless invoke local ● serverless offline
  • 27. Developers’ Workflow - Test ● Unit? Integration? Acceptance? Local? Remote? Automated? Containers ● There are projects ● Generally it is just another container Serverless ● Unit testing is important ● Integration & Acceptance testing over unit testing
  • 28. Developers’ Workflow - Deploy ● Automate the hell out of it! Containers ● Build is the same as in dev or test ● You’ll need orchestration ○ Kubernetes ○ OpenShift ○ Mesos ○ Swarm ○ … ● There are CI integrations Serverless ● Serverless Framework ● Now
  • 30. The “serverless architectural style” ● Serverless is opinionated: ○ Ephemeral application logic ○ State in backing services ○ Everything is distributed You can rebuild it with container technologies. ● Limitations for this style: ○ Less options for managing state ○ Latency between components ○ Local development / testing ● Sometimes less is more. Limited options may drive productivity and change.
  • 31. Managed vs Control ● You can host your own serverless platform but note serverless leverages economy of scale ● Most orgs will choose some cloud vendor and give up control So, how important is control to you? ● Ops is different with serverless
  • 32. Old vs new ● Serverless is immature Implementation, tooling, bugs, vendor lockin ● Container ecosystem is huge ● Containers are just Linux
  • 33. So ?
  • 34. Matthias: “Serverless is the greatest enabler” ● No costs for not running code is just mind blowing ● Serverless made me think differently: ○ APIs ■ What other APIs are others providing? ■ What can I expose as an API? ○ Modular ■ Does my function do too much? ○ Event driven ■ What are good domain events? And it’s fun.
  • 35. Vašek: “Containers give you freedom” ● Containers give freedom ○ Have you ever given freedom to developers? ;) ● You need to think on scale ● Orchestration is king ● It does not take traditional “ops” tasks away ● It was fun last 3 years, now it’s just work...
  • 36. What if you could have both?
  • 37. Apache OpenWhisk ● http://openwhisk.org/ ● GA : Feb 2016 from IBM ● Red Hat joined Jun 2017 ● License : ASL v2 ● Polyglot : NodeJS, Swift, Python, Java, PHP + Docker ● Event Sources : BlueMix services, Watson, Cloudant, other SaaS ● BlueMix Cloud Functions Pricing : $0.000017 GB-s ● Event Sequencing, Parameter Binding
  • 39. OpenWhisk You can: ● use any interpreted language natively ● use any other language by wrapping code in container ● run on Kubernetes/OpenShift (i.e. scale) Let me show you...
  • 40. ● serverless = faas & backend services ● pro container: ○ you can achieve similar characteristics with containers ○ containers are more versatile ○ they enable different architectures: monolith, µservices, faas ○ BTW containers are the enabling infrastructure ● pro serverless: ○ opinionated architecture ○ focus on writing application logic ○ precise cost based pricing powers new architectures ● OpenWhisk to the rescue tl;dr
  • 41. Thanks for listening @vpavlin @luebken visit: ● developers.redhat.com ● openshift.io
  • 43. Lambda 11 / 2014 Cloud Functions 02 / 2016 Azure Functions 03 / 2016 OpenWhisk 02 / 2016 Amazon Google MicrosoftIBM The Big 4 FaaS providers JavaScript, Python,Java,C# JavaScript JavaScript, Swift, Docker JavaScript, C#, F#, Python, PHP Apache
  • 46. The Rails for serverless architectures .com
  • 47. Lessons learned on getting with serverless on AWS ● Get familiar with console.aws.amazon.com ● Create / update functions with a simple wrapper e.g. https://apex.run/ ● Don’t start with higher level abstractions ● Check https://acloud.guru/ for tutorials
  • 49. Vocabulary ● Trigger: An Event such as an incoming HTTP request ● Rule: Map a trigger to an action ● Action: A function, optionally with parameters ● Package: A collection of actions and parameters ● Sequence: Several actions in a row
  • 50. Create an & invoke an action function main() { console.log('Hello World'); return { hello: 'world' }; } $ wsk action create myAction action.js $ wsk action invoke myAction --result $ wsk action invoke myAction --blocking
  • 51. Attic
  • 52. What is container and why? (low-level) ● It’s not virtualisation, but it is a (lightweight) virtualisation ○ Starts in milliseconds ● A process encapsulation tech ● We love them because of portability ○ Works here, works there (not really, but..) ● Containers are like functions ○ they don’t matter in prod, orchestration does
  • 53. How do you encapsulate code? (low-level) ● Dockerfile (or Buildah) ○ Boring shell script ● S2I - https://github.com/openshift/source-to-image ○ Smart way of automatically getting your code in container
  • 54. Containers rock because… (getting higher) ● Local development and testing is easy ○ docker run -v $PWD:/code … ○ docker run … make test ○ docker compose up …, oc cluster up ... ● There are many existing and supported containers out there ○ https://access.redhat.com/containers ● There are many (mature) tools to orchestrate them ○ OpenShift, Kubernetes, Mesos, Swarm ● Containers are universal ○ Web app, embedded, hardware specific...
  • 55. Container orchestration (high-level) ● One container is useless, many containers is hard ● OpenShift/Kubernetes ○ Scale, HA, Hybrid Cloud, Security, Service Discovery, CI/CD, Stateless ○ You can manage your backend service or use external ones ○ On premise matches hosted ● You can try your orchestration locally ○ Docker Swarm ○ Kubernetes ○ OpenShift