SlideShare a Scribd company logo
1 of 28
Download to read offline
unikernels
...do you realy need that email server to
run “Hello World” ?
quick bio
Modelled HP-UX compartments in Prolog for MSc Thesis
(@HP Labs Bristol) in 2006
… then a big IT walkabout …
2013 multi-VM integration tests, LXC led to Docker
active-active HDFS replication: tests and dev using Docker
small in-house Big Data project Docker and Docker-Compose
still frustrated when running 8+ containers on a dev box
overview
challenges brought by Docker
remedies
unikernels
demo
beer
challenges by Docker: bloat
“Official” Java 8 (openjdk jre) 124 – 243 MB
Official Node.js 5.11 image 82 – 254 MB
Official Ruby 2.3.1 100 – 277 MB
Official MySQL 5.7.12 129 MB
Official Fedora 23 74 MB
Official Debian 37 – 51 MB
Official Ubuntu 44 – 66 MB
Ubuntu + JRE 8 + Apache Storm 1.2 GB
challenges by Docker: bloat
Debian official Dockerfile fights bloat:
FROM scratch
ADD rootfs.tar.xz /
CMD [“/bin/bash”]
...sacrifycing transparency
same trick for Ubuntu, Fedora/CentOS and openSUSE
challenges: quality
size of software to effort ...
size of software to number of bugs ...
size of software to runtime overheads …
… are dependent NOT linearly
Industry (very rough) average: 15 - 50 bugs per 1k SLOC
by Steve McConnel of Code Complete
Static code analysis of OSS: ~1 bug per 1k SLOC
YMMV!
challenges: size
challenges: security
bigger attack surface
greater complexity
misconfiguration plays big part
N connected Linux boxes << N unconected Linux boxes
^---much less secure
very popular open source code dependencies
(i.e. glibc, openssh, skia, ...)
inter image dependencies
challenges: security
see www.banyanops.com/blog/analyzing-docker-hub/
Third of all Official images on docker hub are vulnerable
challenges: complexity
usfulness of universal tools argument
challenges: complexity
Linux Scheduler: a Decade of Wasted Cores
www.ece.ubc.ca/~sasha/papers/eurosys16-final29.pdf
Eurosys 2016 paper showing that some applications run 2x
to 27x slower due to sheduling mistakes by Linux.
Bug:
Core interconnects are expensive, hence it's not N x N
Some cores appear in more than one scheduling group
Scheduler uses core groups' avg load to steal work
challenges: litigation
This man is after every developer
www.infoq.com/news/2016/03/docker-java
challenges: litigation
Oracle JDK Dockerfile:
[...]
RUN mkdir /opt && curl -jksSLH "Cookie: oraclelicense=accept-securebackup-
cookie"
http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux-
x64.tar.gz 
| tar -xzf - -C /opt &&
ln -s /opt/jdk1.7.0_79 /opt/jdk &&
rm -rf /opt/jdk/*src.zip 
/opt/jdk/lib/missioncontrol 
/opt/jdk/lib/visualvm 
[...]
challenges: litigation
“Oracle grants you a non-exclusive, non-transferable, limited
license without fees to reproduce and distribute the
Software, provided that (i) you distribute the Software
complete and unmodified and only bundled as part of, and for
the sole purpose of running, your Programs…”
remedies?
use Go for 0 bytes scratch base image
remove package groups / metapackages and packages
remove directories
buildpack-deps
bring -> act -> remove packages (and their dependencies)
import whole slim file system in one ADD
flatten containers
remedy
use Alpine Linux as your base image
container size ~5MB (!!!)
general purpose Linux distribution with 100s of packages
focused on security and reliability
based on musl libc and busybox
creator (Natanael Copa) hired by Docker (Feb 2016)
official Docker images moving to Alpine (from Debian)
remedies: Alpine
… ehm, I have lied to you earlier about docker image sizes
Official Java 8 (openjdk jre) 42 MB
Official Node.js 5.11 n/a
Official Ruby 2.3.1 38 MB
Official MySQL 5.7.12 n/a
remedies: general
standard C lib alternatives
http://www.etalabs.net/compare_libcs.html
java 9 modularity: Project Jigsaw + OSGI
http://openjdk.java.net/projects/jigsaw/
software that sucks less movement
http://suckless.org
unikernels
single-address-space machine images
built using library operating systems
improved security
small
highly optimised for applications running
fast boot (miliseconds)
unikernels
Clive - Go runtime
LING – Erlang runtime (Erlang on Xen)
MirageOS – Ocaml based, 100s of libraries
Osv – C, JVM, Node, Ruby runtimes
Rumprun – unmodified Posix software runtime
runtime.js – JS runtime for the cloud based on V8
ZeroVm (based on Google's NaCl)
unikernels
good intro to unikernels philosophy:
The Rise and Fall of Operating System
http://www.fixup.fi/misc/usenix-login-2015/login_oct15_02_kantee.pdf
unikernels
demo time
sudo docker kill dan:talk
cyberstalk me: @digi_noise or www.linkedin.com/in/agiledan
extras: complexity
From StackOverflow (fantastic read – just Bing(TM) it)
Why processing sorted array is faster than unsorted ?
Why is one loop slower than two loops ?
Why GCC can't see a*a*a*a*a*a == (a*(a*a))*(a*a*a) ?
Why does HTML think “chucknorris” is a color ?
Why is printing “B” dramatically slower than printing “#” ?
extras: complexity
From The Information Superhighway
High CPU use by taskhost.exe when Windows 8.1 username ~ “user”
https://support.microsoft.com/en-us/kb/3053711
The case of 500-mile email
www.ibiblio.org/harris/500milemail.html
Open Office does not print on Tuesdays
https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619

More Related Content

What's hot

CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumSreenivas Makam
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsBen Hall
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackBoden Russell
 
Shifter: Containers in HPC Environments
Shifter: Containers in HPC EnvironmentsShifter: Containers in HPC Environments
Shifter: Containers in HPC Environmentsinside-BigData.com
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to DockerLuong Vo
 
Docker Warsaw Meetup 12/2017 - DockerCon 2017 Recap
Docker Warsaw Meetup 12/2017 - DockerCon 2017 RecapDocker Warsaw Meetup 12/2017 - DockerCon 2017 Recap
Docker Warsaw Meetup 12/2017 - DockerCon 2017 RecapKrzysztof Sobczak
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12dotCloud
 
Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Docker, Inc.
 
Docker : Container Virtualization
Docker : Container VirtualizationDocker : Container Virtualization
Docker : Container VirtualizationRanjan Baisak
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App EngineDocker, Inc.
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with DockerRevelation Technologies
 
Containers: The What, Why, and How
Containers: The What, Why, and HowContainers: The What, Why, and How
Containers: The What, Why, and HowSneha Inguva
 
Docker 101 - Intro to Docker
Docker 101 - Intro to DockerDocker 101 - Intro to Docker
Docker 101 - Intro to DockerAdrian Otto
 
Docker introduction
Docker introductionDocker introduction
Docker introductionPhuc Nguyen
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationImesh Gunaratne
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudMassimiliano Dessì
 
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...Docker, Inc.
 

What's hot (20)

CI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and TutumCI, CD with Docker, Jenkins and Tutum
CI, CD with Docker, Jenkins and Tutum
 
Architecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based DeploymentsArchitecting .NET Applications for Docker and Container Based Deployments
Architecting .NET Applications for Docker and Container Based Deployments
 
KVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStackKVM and docker LXC Benchmarking with OpenStack
KVM and docker LXC Benchmarking with OpenStack
 
Shifter: Containers in HPC Environments
Shifter: Containers in HPC EnvironmentsShifter: Containers in HPC Environments
Shifter: Containers in HPC Environments
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker Warsaw Meetup 12/2017 - DockerCon 2017 Recap
Docker Warsaw Meetup 12/2017 - DockerCon 2017 RecapDocker Warsaw Meetup 12/2017 - DockerCon 2017 Recap
Docker Warsaw Meetup 12/2017 - DockerCon 2017 Recap
 
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
Docker Presentation at the OpenStack Austin Meetup | 2013-09-12
 
Docker on Windows
Docker on WindowsDocker on Windows
Docker on Windows
 
Dockerfile
Dockerfile Dockerfile
Dockerfile
 
Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...Configuration Management and Transforming Legacy Applications in the Enterpri...
Configuration Management and Transforming Legacy Applications in the Enterpri...
 
Docker : Container Virtualization
Docker : Container VirtualizationDocker : Container Virtualization
Docker : Container Virtualization
 
Docker on Google App Engine
Docker on Google App EngineDocker on Google App Engine
Docker on Google App Engine
 
Building Reusable Development Environments with Docker
Building Reusable Development Environments with DockerBuilding Reusable Development Environments with Docker
Building Reusable Development Environments with Docker
 
Containers: The What, Why, and How
Containers: The What, Why, and HowContainers: The What, Why, and How
Containers: The What, Why, and How
 
Docker 101 - Intro to Docker
Docker 101 - Intro to DockerDocker 101 - Intro to Docker
Docker 101 - Intro to Docker
 
Docker introduction
Docker introductionDocker introduction
Docker introduction
 
Evoluation of Linux Container Virtualization
Evoluation of Linux Container VirtualizationEvoluation of Linux Container Virtualization
Evoluation of Linux Container Virtualization
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...
Escape From Your VMs with Image2Docker Jeff Nickoloff, All in Geek Consulting...
 

Similar to Unikernels - Bristech June 2016

Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 applicationRoman Rodomansky
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with DockerAndrey Hristov
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with DockerAndrey Hristov
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeLee Calcote
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
Docker: do's and don'ts
Docker: do's and don'tsDocker: do's and don'ts
Docker: do's and don'tsPaolo Tonin
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker, Inc.
 
Docker Multi-arch All The Things
Docker Multi-arch All The ThingsDocker Multi-arch All The Things
Docker Multi-arch All The ThingsDocker, Inc.
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deploymentjavaonfly
 
Rooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerRooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerPhil Estes
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesNicola Ferraro
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFJeffrey Sica
 

Similar to Unikernels - Bristech June 2016 (20)

Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Dockerizing a Symfony2 application
Dockerizing a Symfony2 applicationDockerizing a Symfony2 application
Dockerizing a Symfony2 application
 
Accelerate your development with Docker
Accelerate your development with DockerAccelerate your development with Docker
Accelerate your development with Docker
 
Accelerate your software development with Docker
Accelerate your software development with DockerAccelerate your software development with Docker
Accelerate your software development with Docker
 
UniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtimeUniK - a unikernel compiler and runtime
UniK - a unikernel compiler and runtime
 
Docker+java
Docker+javaDocker+java
Docker+java
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Docker: do's and don'ts
Docker: do's and don'tsDocker: do's and don'ts
Docker: do's and don'ts
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Docker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in ProductionDocker Online Meetup #3: Docker in Production
Docker Online Meetup #3: Docker in Production
 
Boycott Docker
Boycott DockerBoycott Docker
Boycott Docker
 
Docker Multi-arch All The Things
Docker Multi-arch All The ThingsDocker Multi-arch All The Things
Docker Multi-arch All The Things
 
Docker - Portable Deployment
Docker - Portable DeploymentDocker - Portable Deployment
Docker - Portable Deployment
 
Rooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerRooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in Docker
 
Extending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with KubernetesExtending DevOps to Big Data Applications with Kubernetes
Extending DevOps to Big Data Applications with Kubernetes
 
Michigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOFMichigan IT Symposium 2017 - Container BOF
Michigan IT Symposium 2017 - Container BOF
 

Recently uploaded

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
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.pdfkalichargn70th171
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
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...ICS
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
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 ApplicationsAlberto González Trastoy
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 

Recently uploaded (20)

Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
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
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
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...
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
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
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 

Unikernels - Bristech June 2016

  • 1.
  • 2. unikernels ...do you realy need that email server to run “Hello World” ?
  • 3. quick bio Modelled HP-UX compartments in Prolog for MSc Thesis (@HP Labs Bristol) in 2006 … then a big IT walkabout … 2013 multi-VM integration tests, LXC led to Docker active-active HDFS replication: tests and dev using Docker small in-house Big Data project Docker and Docker-Compose still frustrated when running 8+ containers on a dev box
  • 4. overview challenges brought by Docker remedies unikernels demo beer
  • 5. challenges by Docker: bloat “Official” Java 8 (openjdk jre) 124 – 243 MB Official Node.js 5.11 image 82 – 254 MB Official Ruby 2.3.1 100 – 277 MB Official MySQL 5.7.12 129 MB Official Fedora 23 74 MB Official Debian 37 – 51 MB Official Ubuntu 44 – 66 MB Ubuntu + JRE 8 + Apache Storm 1.2 GB
  • 6. challenges by Docker: bloat Debian official Dockerfile fights bloat: FROM scratch ADD rootfs.tar.xz / CMD [“/bin/bash”] ...sacrifycing transparency same trick for Ubuntu, Fedora/CentOS and openSUSE
  • 7. challenges: quality size of software to effort ... size of software to number of bugs ... size of software to runtime overheads … … are dependent NOT linearly Industry (very rough) average: 15 - 50 bugs per 1k SLOC by Steve McConnel of Code Complete Static code analysis of OSS: ~1 bug per 1k SLOC YMMV!
  • 9.
  • 10.
  • 11. challenges: security bigger attack surface greater complexity misconfiguration plays big part N connected Linux boxes << N unconected Linux boxes ^---much less secure very popular open source code dependencies (i.e. glibc, openssh, skia, ...) inter image dependencies
  • 12. challenges: security see www.banyanops.com/blog/analyzing-docker-hub/ Third of all Official images on docker hub are vulnerable
  • 13. challenges: complexity usfulness of universal tools argument
  • 14. challenges: complexity Linux Scheduler: a Decade of Wasted Cores www.ece.ubc.ca/~sasha/papers/eurosys16-final29.pdf Eurosys 2016 paper showing that some applications run 2x to 27x slower due to sheduling mistakes by Linux. Bug: Core interconnects are expensive, hence it's not N x N Some cores appear in more than one scheduling group Scheduler uses core groups' avg load to steal work
  • 15. challenges: litigation This man is after every developer www.infoq.com/news/2016/03/docker-java
  • 16. challenges: litigation Oracle JDK Dockerfile: [...] RUN mkdir /opt && curl -jksSLH "Cookie: oraclelicense=accept-securebackup- cookie" http://download.oracle.com/otn-pub/java/jdk/7u79-b15/jdk-7u79-linux- x64.tar.gz | tar -xzf - -C /opt && ln -s /opt/jdk1.7.0_79 /opt/jdk && rm -rf /opt/jdk/*src.zip /opt/jdk/lib/missioncontrol /opt/jdk/lib/visualvm [...]
  • 17. challenges: litigation “Oracle grants you a non-exclusive, non-transferable, limited license without fees to reproduce and distribute the Software, provided that (i) you distribute the Software complete and unmodified and only bundled as part of, and for the sole purpose of running, your Programs…”
  • 18. remedies? use Go for 0 bytes scratch base image remove package groups / metapackages and packages remove directories buildpack-deps bring -> act -> remove packages (and their dependencies) import whole slim file system in one ADD flatten containers
  • 19. remedy use Alpine Linux as your base image container size ~5MB (!!!) general purpose Linux distribution with 100s of packages focused on security and reliability based on musl libc and busybox creator (Natanael Copa) hired by Docker (Feb 2016) official Docker images moving to Alpine (from Debian)
  • 20. remedies: Alpine … ehm, I have lied to you earlier about docker image sizes Official Java 8 (openjdk jre) 42 MB Official Node.js 5.11 n/a Official Ruby 2.3.1 38 MB Official MySQL 5.7.12 n/a
  • 21. remedies: general standard C lib alternatives http://www.etalabs.net/compare_libcs.html java 9 modularity: Project Jigsaw + OSGI http://openjdk.java.net/projects/jigsaw/ software that sucks less movement http://suckless.org
  • 22. unikernels single-address-space machine images built using library operating systems improved security small highly optimised for applications running fast boot (miliseconds)
  • 23. unikernels Clive - Go runtime LING – Erlang runtime (Erlang on Xen) MirageOS – Ocaml based, 100s of libraries Osv – C, JVM, Node, Ruby runtimes Rumprun – unmodified Posix software runtime runtime.js – JS runtime for the cloud based on V8 ZeroVm (based on Google's NaCl)
  • 24. unikernels good intro to unikernels philosophy: The Rise and Fall of Operating System http://www.fixup.fi/misc/usenix-login-2015/login_oct15_02_kantee.pdf
  • 26. sudo docker kill dan:talk cyberstalk me: @digi_noise or www.linkedin.com/in/agiledan
  • 27. extras: complexity From StackOverflow (fantastic read – just Bing(TM) it) Why processing sorted array is faster than unsorted ? Why is one loop slower than two loops ? Why GCC can't see a*a*a*a*a*a == (a*(a*a))*(a*a*a) ? Why does HTML think “chucknorris” is a color ? Why is printing “B” dramatically slower than printing “#” ?
  • 28. extras: complexity From The Information Superhighway High CPU use by taskhost.exe when Windows 8.1 username ~ “user” https://support.microsoft.com/en-us/kb/3053711 The case of 500-mile email www.ibiblio.org/harris/500milemail.html Open Office does not print on Tuesdays https://bugs.launchpad.net/ubuntu/+source/file/+bug/248619