SaaStr Workshop Wednesday w/ Lucas Price, Yardstick
Docker:- Application Delivery Platform Towards Edge Computing
1. OPENNEBULA TECHDAY KUALA LUMPUR
MALAYSIA
17 FEB 2016
Bukhary Ikhwan Ismail
Researcher
Advanced Computing Lab
Application Delivery Platform
Towards Edge Computing
3. Motivation
• Current Trends
1. Explosive amount of data at the Edge
• video, audio, smart devices, sensors or IoT
2. End users demands
• better performance
• user experience
• Real time analysis
• We need a way to process data at its source to produce
– fast results
– real time analytics
– for better decision making.
4. What is Edge Computing?
• Pushes – application and data away from centralized nodes closer to the “things” (devices, users, data).
• Characteristics of the Infra
– Geo-distributed
– Ideally – “One hop Away”
– Generic platform - virtualization
• Benefits
– Less data transfer - remove bottlenecks
– Improves user QoS
– Opportunity to improve OR create new app - Leverage resources that is closer to“things”.
5. Edge Computing Topology
This environment is characterized
by:
Proximity
low latency
High bandwidth
Location awareness
DCThing
Own by Telco
Base station
Own by entities
Malls, schools, clinics
Voluntary Computing
Laptops, desktops, smartphones
ETSI – European Telecommunication Standards Institute
6. Performance :
Is there a low latency requirement?
E.g. gaming, safety
Data preprocessing opportunities:
Does it make sense to compress or transmit
selected data before transferring?
e.g. Video Surveillance, traffic monitoring
Distributed application:
Does processing at the edge is more
attractive?
E.g. smart city, monitoring, IoT?
Process locally:
Is it better to process data at the edge
vs. sending huge data to DC?
e.g. Big Data, data cleansing
“Edge computing helps ensure that the right processing takes place at the
right time and location” – CISCO
Attaining IoT Value: How To Move from Connecting Things to Capturing Insights Gain an Edge by Taking Analytics to the Edge. Andy Noronha Robert Moriarty Kathy O’Connell Nicola Villa. Cisco 2015
Application suitable at the Edge
8. • Light Weight Container Technology for application
• Open platform for developers and sysadmins to build, ship and run distributed app.
• Common use case
– Continuous Integration
– Continuous Delivery – build, deploy, test, release
– Infrastructure Optimization – hypervisor to container infra.
Docker
10. Docker Benefits
• Build better software
– SoC – Developer vs. sysAdmin.
– Accelerate Development
• Eliminate env inconsistencies
• run anywhere
• Raspberry Pi supported
11. Why Docker for Edge Computing?
• Docker Engine meets our needs for application delivery
– Application Provisioning
• Simplifies distribution, installation & execution of app.
– Remote management
• Easy to update
• Pre-configured = easy to manage
– Can run on small devices
• Lightweight & Small footprint
13. Demo context
13
Data Center
Site 1
Site 2 Site 3
Site 4
Video surveillanceRemote app for users
Our Demo Context
1. Discovery - Discover new devices and join the
platform
2. Application Deployment
3. Offloading example
Smart cities IoT
14. Demo 1: Discovery
New host
Form mesh network
Configure host
Join resource
Platform
DC-master
EDGE-node01 EDGE-node02
EDGE-node03
15. Demo 2: Deployment Simulation at School
EDGE at Remote School
Scenario 1:- Normal Setup
Scenario 2:- Scaling
EDGE-node01 EDGE-node02
LB
• Deploy Load Balancer
• Deploy 2 LMS
• Reconfigure load balancer
• Deploy additional LMS
DC-Mgmt
16. • LMS in VM requires 3GB (minimum). +/- 7 Minutes to be ready.
• App in a container would be up in seconds
2 containers 4 containers 8 containers 16 containers
0.29
0.51
0.97
2.60
SECONDS
SCALING CONTAINERS
Deployment Discussion – Fast Start Time
17. • Two contributing factors that makes it fast
VM
LMS 84 MB
APACHE/PHP 211 MB
Centos VM
Image
2355 MB
LMS 84 MB
211MBAPACHE/PHP
181MB
Container
Centos minimal
library
1st Factor: Image size
13X smaller
Deployment Discussion – Why is it fast?
18. Image
App 1
Ver. 1 (1MB)
Ver. 2 (3.4MB)
Ver. 3 (1.4MB)
App 2 (24MB)
App 3 (20MB)
Tomcat (50MB)
JDK (240MB)
APACHE/PHP
Centos
Benefits
- Small changes to image.
- Transfer only deltas (making transferring app faster)
- lower storage usage.
Deployment Discussion – Why it is fast?
• Two contributing factors that makes it fast
1st Factor: Image size: Layering
19. Image Transfer (3GB) VM Boot LMS
4 ~ 6 min 70 sec 2 sec
7 MinutesVM
Image
Transfer
LMS
20 sec 0.294 sec
Container 20.294 sec
0.294 sec
Cached Container 0.294 secLMS
2nd Factor: start sequence
Benefits
1. EC – Generic platform - change app fast.
1. H. M. Patel, Y. Hu, P. Hédé, I. B. M. J. Joubert, C. Thornton, B. Naughton, I. Julian, R. Ramos, C. Chan, V. Young, S. J. Tan, and D. Lynch, “Mobile-Edge Computing-– Introductory Technical White Paper,” Sophia
Antipolis, 2014.
Deployment Discussion – Why it is fast?
• Two contributing factors makes it fast
20. 0
5000
Memory Storage
4750
2650
113 475
MB
VM Container
Benefits
1. Low footprint & lower resource consumption - edge consists of low end devices [2] .
1. European Telecommunications Standards Institute (ETSI), “Executive Briefing – Mobile Edge Computing ( MEC ) Initiative,” Sophia Antipolis, 2014
Reduce up
to 97.62%
in memory
Reduce up
to 82.08%
in storage
Deployment Discussion – Resource Foot Print
21. Sample Usecase: Mi-Morphe
• Mi-Morphe - data cleansing application
– ETL (Extract Transform & Load)
– Removes missing/undefined data
– Remove duplicate data
Process locally:
Is it better to run app OR process data at the edge instead of sending huge data to DC?
22. Method 1:- User upload data to Cloud
WAN
Cloud Datacenter
User Data
VM
Mi-morphe
Boot
VM
Upload 5GB Data
Process Data
Download 5GB Data
Clone
image
24. Solution – Offload Mi-Morphe to Data Source
WAN
Container
Image
Mi-Morphe
edge03
Offload container
Image to the edge
resource
Container
Mi-Morphe
Start Database,
Apache
Tomcat, Carte
Server
Process Data
Host
cloud01
Host
cloud-registry
User Data
Customer end-point
e.g..
Laptop/Desktop/Server
25. • Method 1: User Upload data to cloud
• Method 2: Download VM to user site
• Solution: Offload Mi-Morphe engine to data source.
Clone 10GB Image
5 min
Boot
5 min
Upload 5G of Data
73 min
Mi-Morphe Process
50 min
Download 5GB of Data
73 min 3H 26 min
Boot
5 min
Mi-Morphe Process
3000 secs
Download 10GB of VM
140 min
3H 15 min
Download 1.3 GB
image
19 min
:Launch Container Mi-Morphe Process
50 min 1H 9 min
• Reduce bandwidth usage on WAN.
• Offload the applications to the edge. 1 hop away from compute resources.
Benefits:
Sample Usecase: Mi-Morphe
*19 min - but if the layers are cached, the time to download is
much more smaller.
27. Conclusion
• Docker is suitable for Edge Computing Application Delivery
– Docker as in Docker Engine
• Some of tools in Docker ecosystem
– might help
• The orchestration platform is unique toward Edge.
– Need to address those requirements.
Editor's Notes
We will start our presentation with the motivation towards EC
Introduction about what is actually Edge computing
Suitable EC Use cases
Technology that may support EC
Demo
Conclusion
Currently
What is IoT - embedded with electronics, software, sensors, and network connectivity, which enables these objects to collect and exchange data.
Deemphasizing - Centralized to decentralized - OR DC oriented to DISTRIBUTED.
It provides Opportunity to Leverage resources for example compute, storage, network, sensors or actuators that is closer to user, devices, data.
Other terms
Mobile edge computing
Virtual cloudlet
Fog computing
They have overlapping objectives, with slight different architecture. But still we can learn from it.
ETSI – European Telecommunication Standards Institute
Here we discuss some of the application requirements that is suitable for Edge computing.
At the center is DC or Cloud
The outer ring is the edge resource and all the devices such as sensors, or infrastructure that can communicate with the Edge Computing.
From the application or user perspective – the latency will be lower from the extreme edge and higher when it reaches the DC.
Edge can provide real time analytics while DC can provide heavy business inteligence.
Lets take a look at some of the suitable application requirements
Performance requirement, is there a low latency requirement that will impact where the workload should be process? For example gaming, safety or even web application.
Process locally – is it better to run app or process data at the edge instead of sending huge amount of data back to DC?
Data processing opportunities – if how ever you need to send huge data, does it make sense to process, compress or transmit selected data before transferring? For example, video surveillance, traffic monitoring?
Distributed Application – You may one real-time analytics. Does processing at the edge is much more attractive? E.g. smart city, monitoring or even IoT
A quote from CISCO which I think its true, “edge computing help ensure the right processing takes place at the right time and place”
Accelerate development - trying to setup developer environments, spin up new instances and make copies of production code to run locally
Eliminate Environment Inconsistencies - packaging up the application with its configs and dependencies together and shipping as a container, the application will always work as designed locally, on another machine, in test or production.
https://www.docker.com/use-cases
Docker is a light Weight Container Technology for application
It is an Open platform for developers and sysadmins to build, ship and run distributed app.
Common use cases for Docker are
Continuous Integration
Continuous Delivery – build, deploy, test, release
Infrastructure Optimization – hypervisor to container.
.
IF you have, website, DB, web front end, queuing or analytic DB. Every one of those can be packaged into a container image.
When everything is package, you can deploy multiple environment from
Development VM
Or QA server
Even on Contributor’s laptop.
Build better software
SoC –
Dev focus on development.
Admin focus on deployment.
Accelerate Development – same package/image run multiple places
Eliminate env inconsistencies – Run anywhere. App work as designed locally, on another machine, in test or production.
Portability
Can run on any Linux system that supports LXC (today).
Raspberry Pi support
Self sufficient
Contains everything it needs to run – all the package, the configuration is embedded within the image itself.
Can use Minimal base OS e.g. RancherOS (31MB), CoreOS which OS size is less than 50MB
Use the same technology for different domain.
Docker Engine meets our needs
Application Provisioning
Simplifies distribution, installation & execution of app.
Highly portable.
Hardware isolated.
Remote management
App easy to update & remove.
Self-contained, pre-configured & Easy to manage
Can run on small devices
Lightweight & Small footprint
The edge will have DC to Edge interaction. With multiple sites distributed.
Whether it is
App for users or businesses
Smart cities
IoT
Video surveillance
All will have a resources pool to serve the need of the Edge.
After doing our evaluation on Docker, we think Docker is suitable for application delivery for Edge Computing.
In the next slide we will demo on
Discovery
Deployment
Offloading
On each of the demo, we will discuss our observation results.
NEW
Remote prep and joining.
Discovery of devices
Self-Organization
Ability to self-organize in Ad Hoc/Infrastructure setting to discover resources (services/content/users/devices) and Communicate.
Talk before demo
(Bottom left) Existing node started the discovery service
(Top) Mi-FOKUS to show the nodes
(Bottom right) New physical host start the discovery
Existing host will discover the new node
Existing host run a remote command to configure the new physical host to join the Mi-FOCUS
Mi-FOCUS will see the new node in seconds
Change to static web page.
Value to demo
Scenario 1 – Typical HA setup
SCRIPT
Deploy LB – show LB page
Deploy 2 web server
Show its up.
Scenario 2- Rapid scaling & teardown
SCRIPT
As more user access
We scale rapidly the web servers
When not needed – we down size the web servers
Value it shows
*This scaling concept is achieve able in cloud – where on-demand, auto-scaling comes into the picture.
But here, in Edge computing, we would like to have it even faster. As the devices at the edge might be smaller in size, and we wanted it to have space for a new application.
*this shows the power of Docker to scale fast and at the same time deprovision fast. Good for edge computing. Where we can swap the applications and make for a new one.
Add the step of demo
Take about 1 minute
Introduce the data center
Talk before demo
Sec 1
1 lb, 2 Mi-ESS
(Bottom) LB (HA-Proxy), with configured two Mi-ESS (red) will attached the Mi-ESS later
(top) container with two mi-ess (LB turn green)
(New windows) – login to the Mi-ESS using the Load balancer
Walk the demo with Bukh
Sec 2
(bottom) Addition 6 Mi-ESS will configure in the LB (new still be red)
(top) additional 6 Mi-ESS container deploy and start rapidly (LB turn green)
Expect to be finished in seconds
How we perform the test
Container BOOTTIME is captured by
Get the STARTIME to run the container
When the container ID returns, we know it is up.
READYTIME
A script will keep continuously monitor port 80. once up, get the ENDTIME
1.Caveats on size
1.Developer must adhered to the containerization technology to reap the benefit.
1.Store ONLY app on image.
2.Store DATA seperately from container.
3.Remove temporary files, caches, logs, etc before commit image into the repository.
2.Deployment
1.Create shared image layers i.e. generic OS layer, library layer, and app layer. Each layer can be shared by multiple images thus reduces the total of collective image size.
2.Caveats on start up time
1.Make the image size a small as possible to reduce image transfer time.
2.One application per container. Remove any unwanted application or service on the image during start time.
Benefits
Lower storage usage
Docker leverages a copy-on-write filesystem - AUFS.
We can build image based on existing image.
This allows Docker to instantiate – fast
No full copies of
Docker can basically use “pointers” back to existing files.
Transfer only deltas
change a Docker image—for example, update an application to a new version— a new layer gets built.
Not replacing the whole image, only that layer is added or updated.
Transfer only delta’s making distributing Docker images faster and simpler.
Remote site in Malaysia – got limited or slow connection
3. Caveats on Memory
1.*comparison of memory usage is based on application vs. per VM virtualization.
2.One application per container.
Benefits
Very low resource footprint
More with less or with current infra
Higher App density
Almost bare metal performance
Benefits
Rapid deployment = rapid response to demand
Higher availability due to lower Recovery Time Objective)RTO
Edge Computing Provisioning Requirements
Edge objectives are to improves user QoE or reduce total workload time [1]. Rapid deployment addresses the surge faster than VM based edge platform.
Each edge device host multiple application. It not only require rapid deployment, but fast and clean teardown of service.
Edge devices consists of low powered devices [2] low footprint & lower resource utilization is a must.
Edge should deliver 99.999% Availability [3] fast start sequence contributes to a lower RTO and Higher Availability
http://docs.jelastic.com/isolated-containers-migration
Unnecessary OS virtualization is not required
Ideally one single process per container
Inside a container there will be no additional process e.g. Sshd,rsyslogd/dhclient, sshd, qmgr, kcopyd, bash, and many more.
Mi-Morphe
Mi-Morphe performs cleansing and transformation on data ensuring accurate outcomes.
Performs transformation and cleansing of unclean data (mostly due to human error)
To clean data for storing or processed further in the next levels.
Removing missing/undefined or duplicate data from an input file
ETL (extract Transform and Load) Unclean data such as string, Boolean and more is first extracted,
Introduce the top is to monitor the image
Bottom is monitor the container
Talk along with demo
(top screen) offload the mi-morphe container image to the edge (about 1 minute)
(bottom screen) a new container will be launch (10sec)
(new window) Login to Mi-Morphe (30 sec)
** The platform give different level of data processing, the mi-morphe can deploy anyway at the edge…. Multiple mi-morphe can be deploy then form a cluster… thus improve the processing time.
Mi-Morphe
Mi-Morphe performs cleansing and transformation on data ensuring accurate outcomes.
Performs transformation and cleansing of unclean data (mostly due to human error)
To clean data for storing or processed further in the next levels.
Removing missing/undefined or duplicate data from an input file
ETL (extract Transform and Load) Unclean data such as string, Boolean and more is first extracted, transformed into the target format and the clean data loaded into a database
Intro mi-morph
Single pane comparison trad, vm, docker.
Demo script
1. customer prep machine with focus
2. focus do remote installation
3. once ready user can access mi-morph to perform data cleansing.
Towards building Edge Computing Orchestration for our consumption.
Can’t rely on existing software stacks. But some of the techniques and concepts can be adapt or reuse.
CaaS – subset of IaaS
Google Container Platform – Kurbenetes
Rancher – orchestration of volumes/storage, networking, user access and containers.
EC2 Container Service –
Mesos
CoreOS
Nova-docker for Openstack