Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

OpenWhisk Go/Swift/Binaries Runtime


Published on

The new high performing runtime for GO/Swift and generic Binaries

Published in: Software
  • Be the first to comment

  • Be the first to like this

OpenWhisk Go/Swift/Binaries Runtime

  1. 1. OpenWhisk New Runtimes for Go/Swift/Binary Michele Sciabarrà
  2. 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. 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
  4. 4. The ActionLoop "Protocol" X fd3 stdout +
  5. 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
  6. 6. ActionLoop in BASH!
  7. 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. 8. GoLang/ Swift samples The images can compile those actions
  9. 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