SlideShare a Scribd company logo
OpenWhisk
New Runtimes
for Go/Swift/Binary
Michele Sciabarrà
michele@sciabarra.com
What is it?
• At the core, a new runtime
– born to support GO Actions
– designed to be efficient than the docker skeleton
– action loop
• It was extended to support
– generic binaries (and scripts!)
– compilation of go actions in source code
– improved swift actions
– images-as-compilers for offline compilation
A quick reminder
why the "action loop"
Test: 100 threads executing 100 actions
executed on OSX using Docker for Mac
(executables compiled for linux-amd64)
Go performances against DockerSkeleton
The ActionLoop "Protocol"
X fd3
stdout
+
ActionLoop: a simple concept
• Works for any binary
executable
– very similar to an unix
pipe
– it is actually
implemented with pipes
• Provides high
performances
– because the binary is
started once
– and it is kept running
• The simple idea:
– A binary must:
– Loop on
• read one line of text in
stdin
• decode it as a json
• execute the action
• log in stdout and stderr
• output in fd3
– Why fd3? long story
short: compatibility
ActionLoop in BASH!
ActionLoop Images
actionloop
actionloop-
golang-1.9
actionloop-
swift-v4.1
Supports
Generic Binaries
AND Generic Scripts
(BASH, Haskell...)
Supports
Generic Binaries
AND GoLang Sources
Supports
Generic Binaries
AND Swift Sources
replace or
complementing
dockerskeleton?
GoLang/ Swift samples
The images can compile those actions
New Feature: offline compilation
• Images actionloop-golang-v1.9 and
actionloop-swift-v4.1 compiles on the fly
• They can be also used as offline compilers:
– place your source in src
– docker run 
-v $PWD/src:/src –v $PWD/out:/out
actionloop-golang-v1.9 compile
– the binary is left in out/main

More Related Content

PPTX
OpenWhisk Go Runtime
Michele Sciabarrà
 
PPTX
DevOps for Scala 2.0
Michele Sciabarrà
 
PDF
Ditch Sandboxes for Docker
Travis Thieman
 
PPTX
CLI utility in ClojureScript running on Node.js
Karolis Labrencis
 
KEY
Celery
Yipit
 
PDF
DockerCon SF 2015: Orchestration for Sysadmins
Docker, Inc.
 
PDF
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Docker, Inc.
 
PDF
Queick: A Simple Job Queue System for Python
Ryota Suenaga
 
OpenWhisk Go Runtime
Michele Sciabarrà
 
DevOps for Scala 2.0
Michele Sciabarrà
 
Ditch Sandboxes for Docker
Travis Thieman
 
CLI utility in ClojureScript running on Node.js
Karolis Labrencis
 
Celery
Yipit
 
DockerCon SF 2015: Orchestration for Sysadmins
Docker, Inc.
 
Journey to Docker Production: Evolving Your Infrastructure and Processes - Br...
Docker, Inc.
 
Queick: A Simple Job Queue System for Python
Ryota Suenaga
 

What's hot (20)

PPTX
Cloud Native Okteto Cloud
sangam biradar
 
PDF
Immutable infrastructure with Boxfuse
Lars Östling
 
PDF
Microservices: 5 things I wish I'd known - Vincent Kok - Codemotion Amsterdam...
Codemotion
 
PPT
308 the dark side of containers new
Alexandru Hapliuc
 
PPTX
Designing a Docker Stack for Symfony apps: lessons learned
Gaetano Giunta
 
PDF
Symfony vs. Message Brokers
Gaetano Giunta
 
PDF
Building A SaaS with CoreOS, Docker, and Etcd
Ross Kukulinski
 
PDF
The Three Musketeers
Frederic Lemay
 
PDF
DockerCon EU 2015: Finding a Theory of the Universe with Docker and Volunteer...
Docker, Inc.
 
PDF
Steamlining your puppet development workflow
Tomas Doran
 
PDF
KubeCon Europe 2017: Running Workloads in Kubernetes
Janet Kuo
 
PDF
Shipping NodeJS with Docker and CoreOS (No Notes)
Ross Kukulinski
 
PDF
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
tdc-globalcode
 
PPTX
Deploy High Availability Kubernetes with Kubespray
Che-Chia Chang
 
PPTX
DockerCon EU 2015: Zoe: Swarming Spark applications
Docker, Inc.
 
PDF
Building a Docker Swarm cluster on ARM by Dieter Reuter and Stefan Scherer
Docker, Inc.
 
PPTX
Deploying Kubernetes on GCP with Kubespray
Altoros
 
PPTX
So Easy, A Ten Year Old Can Do It by Zeph Gardler
Docker, Inc.
 
PPTX
Celery workshop
Eswar Vandanapu
 
Cloud Native Okteto Cloud
sangam biradar
 
Immutable infrastructure with Boxfuse
Lars Östling
 
Microservices: 5 things I wish I'd known - Vincent Kok - Codemotion Amsterdam...
Codemotion
 
308 the dark side of containers new
Alexandru Hapliuc
 
Designing a Docker Stack for Symfony apps: lessons learned
Gaetano Giunta
 
Symfony vs. Message Brokers
Gaetano Giunta
 
Building A SaaS with CoreOS, Docker, and Etcd
Ross Kukulinski
 
The Three Musketeers
Frederic Lemay
 
DockerCon EU 2015: Finding a Theory of the Universe with Docker and Volunteer...
Docker, Inc.
 
Steamlining your puppet development workflow
Tomas Doran
 
KubeCon Europe 2017: Running Workloads in Kubernetes
Janet Kuo
 
Shipping NodeJS with Docker and CoreOS (No Notes)
Ross Kukulinski
 
TDC2017 | São Paulo - Trilha Containers How we figured out we had a SRE team ...
tdc-globalcode
 
Deploy High Availability Kubernetes with Kubespray
Che-Chia Chang
 
DockerCon EU 2015: Zoe: Swarming Spark applications
Docker, Inc.
 
Building a Docker Swarm cluster on ARM by Dieter Reuter and Stefan Scherer
Docker, Inc.
 
Deploying Kubernetes on GCP with Kubespray
Altoros
 
So Easy, A Ten Year Old Can Do It by Zeph Gardler
Docker, Inc.
 
Celery workshop
Eswar Vandanapu
 
Ad

Similar to OpenWhisk Go/Swift/Binaries Runtime (20)

PDF
Going All-In With Go For CLI Apps
Tom Elliott
 
PDF
The Go features I can't live without, 2nd round
Rodolfo Carvalho
 
PDF
Docker and Go: why did we decide to write Docker in Go?
Jérôme Petazzoni
 
PDF
Import golang; struct microservice
Giulio De Donato
 
PDF
Why and what is go
Mayflower GmbH
 
PDF
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io
 
PPTX
Golang - Overview of Go (golang) Language
Aniruddha Chakrabarti
 
PPTX
Ready, set, go! An introduction to the Go programming language
RTigger
 
PDF
GitHubActionGitHubActionGitHubAction.pdf
namakamu231199
 
PDF
Introduction to Go
Simon Hewitt
 
PDF
LCA2014 - Introduction to Go
dreamwidth
 
PDF
Build Golang projects properly with Makefiles
Raül Pérez
 
PDF
Go in Production
John-Alan Simmons
 
PDF
Golang workshop
Victor S. Recio
 
PDF
Happy Go Programming Part 1
Lin Yo-An
 
PPTX
Ndc2017
Ken Faulkner
 
PDF
Introduction to Github Actions
Knoldus Inc.
 
PDF
Introduction to Github Actions
Knoldus Inc.
 
PPTX
The GO Language : From Beginners to Gophers
I.I.S. G. Vallauri - Fossano
 
PDF
A Look at Command Line Swift
JoshuaKaplan22
 
Going All-In With Go For CLI Apps
Tom Elliott
 
The Go features I can't live without, 2nd round
Rodolfo Carvalho
 
Docker and Go: why did we decide to write Docker in Go?
Jérôme Petazzoni
 
Import golang; struct microservice
Giulio De Donato
 
Why and what is go
Mayflower GmbH
 
Mender.io | Develop embedded applications faster | Comparing C and Golang
Mender.io
 
Golang - Overview of Go (golang) Language
Aniruddha Chakrabarti
 
Ready, set, go! An introduction to the Go programming language
RTigger
 
GitHubActionGitHubActionGitHubAction.pdf
namakamu231199
 
Introduction to Go
Simon Hewitt
 
LCA2014 - Introduction to Go
dreamwidth
 
Build Golang projects properly with Makefiles
Raül Pérez
 
Go in Production
John-Alan Simmons
 
Golang workshop
Victor S. Recio
 
Happy Go Programming Part 1
Lin Yo-An
 
Ndc2017
Ken Faulkner
 
Introduction to Github Actions
Knoldus Inc.
 
Introduction to Github Actions
Knoldus Inc.
 
The GO Language : From Beginners to Gophers
I.I.S. G. Vallauri - Fossano
 
A Look at Command Line Swift
JoshuaKaplan22
 
Ad

Recently uploaded (20)

PPTX
Audio Editing and it's techniques in computer graphics.pptx
fosterbayirinia3
 
PPTX
Hire Expert Blazor Developers | Scalable Solutions by OnestopDA
OnestopDA
 
PDF
Become an Agentblazer Champion Challenge
Dele Amefo
 
PDF
Comprehensive Salesforce Implementation Services.pdf
VALiNTRY360
 
PPTX
AIRLINE PRICE API | FLIGHT API COST |
philipnathen82
 
PDF
Solar Panel Installation Guide – Step By Step Process 2025.pdf
CRMLeaf
 
PPT
Overview of Oracle Receivables Process.ppt
nbvreddy229
 
DOCX
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
PDF
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
PDF
IEEE-CS Tech Predictions, SWEBOK and Quantum Software: Towards Q-SWEBOK
Hironori Washizaki
 
PDF
Become an Agentblazer Champion Challenge Kickoff
Dele Amefo
 
PPTX
Materi_Pemrograman_Komputer-Looping.pptx
RanuFajar1
 
PDF
Bandai Playdia The Book - David Glotz
BluePanther6
 
PPTX
Why Use Open Source Reporting Tools for Business Intelligence.pptx
Varsha Nayak
 
PDF
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
PPTX
AZ900_SLA_Pricing_2025_LondonIT (1).pptx
chumairabdullahph
 
DOCX
The Five Best AI Cover Tools in 2025.docx
aivoicelabofficial
 
PDF
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
QAware GmbH
 
PDF
Why Should Businesses Extract Cuisine Types Data from Multiple U.S. Food Apps...
devilbrown689
 
PPTX
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
Tier1 app
 
Audio Editing and it's techniques in computer graphics.pptx
fosterbayirinia3
 
Hire Expert Blazor Developers | Scalable Solutions by OnestopDA
OnestopDA
 
Become an Agentblazer Champion Challenge
Dele Amefo
 
Comprehensive Salesforce Implementation Services.pdf
VALiNTRY360
 
AIRLINE PRICE API | FLIGHT API COST |
philipnathen82
 
Solar Panel Installation Guide – Step By Step Process 2025.pdf
CRMLeaf
 
Overview of Oracle Receivables Process.ppt
nbvreddy229
 
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
The Future of Smart Factories Why Embedded Analytics Leads the Way
Varsha Nayak
 
IEEE-CS Tech Predictions, SWEBOK and Quantum Software: Towards Q-SWEBOK
Hironori Washizaki
 
Become an Agentblazer Champion Challenge Kickoff
Dele Amefo
 
Materi_Pemrograman_Komputer-Looping.pptx
RanuFajar1
 
Bandai Playdia The Book - David Glotz
BluePanther6
 
Why Use Open Source Reporting Tools for Business Intelligence.pptx
Varsha Nayak
 
Micromaid: A simple Mermaid-like chart generator for Pharo
ESUG
 
AZ900_SLA_Pricing_2025_LondonIT (1).pptx
chumairabdullahph
 
The Five Best AI Cover Tools in 2025.docx
aivoicelabofficial
 
QAware_Mario-Leander_Reimer_Architecting and Building a K8s-based AI Platform...
QAware GmbH
 
Why Should Businesses Extract Cuisine Types Data from Multiple U.S. Food Apps...
devilbrown689
 
What to Capture When It Breaks: 16 Artifacts That Reveal Root Causes
Tier1 app
 

OpenWhisk Go/Swift/Binaries Runtime

  • 2. What is it? • At the core, a new runtime – born to support GO Actions – designed to be efficient than the docker skeleton – action loop • It was extended to support – generic binaries (and scripts!) – compilation of go actions in source code – improved swift actions – images-as-compilers for offline compilation
  • 3. A quick reminder why the "action loop" Test: 100 threads executing 100 actions executed on OSX using Docker for Mac (executables compiled for linux-amd64) Go performances against DockerSkeleton
  • 5. ActionLoop: a simple concept • Works for any binary executable – very similar to an unix pipe – it is actually implemented with pipes • Provides high performances – because the binary is started once – and it is kept running • The simple idea: – A binary must: – Loop on • read one line of text in stdin • decode it as a json • execute the action • log in stdout and stderr • output in fd3 – Why fd3? long story short: compatibility
  • 7. ActionLoop Images actionloop actionloop- golang-1.9 actionloop- swift-v4.1 Supports Generic Binaries AND Generic Scripts (BASH, Haskell...) Supports Generic Binaries AND GoLang Sources Supports Generic Binaries AND Swift Sources replace or complementing dockerskeleton?
  • 8. GoLang/ Swift samples The images can compile those actions
  • 9. New Feature: offline compilation • Images actionloop-golang-v1.9 and actionloop-swift-v4.1 compiles on the fly • They can be also used as offline compilers: – place your source in src – docker run -v $PWD/src:/src –v $PWD/out:/out actionloop-golang-v1.9 compile – the binary is left in out/main