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.
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Dockerizing for the Deployment Platform of the...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
David Bosschaert
 Adobe R&D Ireland
 OSGi EE...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Carsten Ziegeler
 RnD Adobe Research Switzerl...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Create...
4
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Containers to the Rescue
 Rapid / Simplified ...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Application Canning
6
 OSGi app == Java App
...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Common Setup
7
OSGi Framework Launcher
Initial...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
OSGi Goodies
 Modularity
 Requirements and C...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Run...
9
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Yay dockerize your app!
10
docker container 1
...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
You need a load balancer
11
docker container 1...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 12
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Example deployment: Sling Containers!
13
docke...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Manage...
14
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Solutions
15
Docker Swarm
Amazon ECS
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Here’s how…
 Docker Swarm/Compose
 docker-co...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Everybody takes Docker containers
 ... but ap...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Or how about a common API
ContainerFactory cf ...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Demo!
19
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
OSGi RFP 179 – Compute Management Service
 Ac...
© 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential.
Discussion
21
Dockerizing apps for the Deployment Platform of the Month with OSGi - David Bosschaert & Carsten Ziegeler
Upcoming SlideShare
Loading in …5
×

Dockerizing apps for the Deployment Platform of the Month with OSGi - David Bosschaert & Carsten Ziegeler

333 views

Published on

OSGi Community Event 2016 Presentation by David Bosschaert (Adobe) & Carsten Ziegeler (Adobe)

Docker is enjoying immense popularity today for deployment of nearly any type of app and new platforms that support Docker appear on a regular basis. While supporting Docker natively, many platforms have specific APIs to get them to work. As a dev you don’t want to lock yourself in to any of these. You want to keep the option open to switch to target platforms if the need arises. This talk outlines the OSGi Compute Management Service RFP 179 that abstracts over mechanisms to create and launch container nodes. It shows a system that allows you to swap Docker deployment platforms without the need to change your deployment management code. We’ll also talk about how OSGi Cloud Ecosystems RFC 183 can be used in this context for discovery of services, containers and frameworks.

Published in: Technology
  • Be the first to comment

Dockerizing apps for the Deployment Platform of the Month with OSGi - David Bosschaert & Carsten Ziegeler

  1. 1. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Dockerizing for the Deployment Platform of the Month - with OSGiCarsten Ziegeler & David Bosschaert | Adobe
  2. 2. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. David Bosschaert  Adobe R&D Ireland  OSGi EEG co-chair  Apache member and committer  ISO JTC1 SC38 (Cloud Computing) Ireland committee member 2
  3. 3. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Carsten Ziegeler  RnD Adobe Research Switzerland  Member of the Apache Software Foundation  VP of Apache Felix and Sling  OSGi Expert Groups and Board member 3
  4. 4. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Create... 4
  5. 5. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Containers to the Rescue  Rapid / Simplified application deployment  Lightweight, reduced overhead  Portability across machines  Sharing 5
  6. 6. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Application Canning 6  OSGi app == Java App  Various solutions  Apache Karaf  Distribution  Apache Sling  Launchpad  Provisioning Model
  7. 7. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Common Setup 7 OSGi Framework Launcher Initial Bundles / Configuration Runtime Provisioning <feature name="my-project" version="1.0.0"> <bundle>mvn:com.mycompany.myproject/myproject- dao</bundle> <bundle>mvn:com.mycompany.myproject/myproject- service</bundle> <config name="com.foo.bar"/> </feature> [feature name=“my-project“] com.mycompany.myproject/myproject-dao/1.0.0 mvn:com.mycompany.myproject/myproject-service/1.0.0 [configurations] com.foo.bar
  8. 8. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. OSGi Goodies  Modularity  Requirements and Capabilities  Explicitly declare and isolate dependencies 8
  9. 9. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Run... 9
  10. 10. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Yay dockerize your app! 10 docker container 1 App client docker container 2 App docker container 3 App ?
  11. 11. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. You need a load balancer 11 docker container 1 App docker container 2 App docker container 3 App client LB
  12. 12. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. 12
  13. 13. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Example deployment: Sling Containers! 13 docker container 1 Sling docker container 2 Sling docker container 3 Sling client LB
  14. 14. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Manage... 14
  15. 15. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Solutions 15 Docker Swarm Amazon ECS
  16. 16. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Here’s how…  Docker Swarm/Compose  docker-compose up –d  docker-compose scale mysling 3  DC/OS Marathon  curl -i -H 'Content-Type: application/json' -d @<mysling.json> http://mymarathon:8080/v2/apps  Kubernetes  kubectl run mysling-node --image=cziegeler/apacheslingdemo --port:8080 kubectl expose deployment mysling.node --type="LoadBalancer"  Amazon ECS  aws ecs register-task-definition --family myslingfam --container-definitions ‘[{"name":"mysling”,"image":"cziegeler/apacheslingdemo","cpu":1,"memory":512,"essential":tru e}]’  aws ecs create-service --service-name myslingsvc --task-definition myslingfam --desired-count 3 16 yaml json
  17. 17. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Everybody takes Docker containers  ... but applications are defined using various proprietary APIs  makes it very labour intensive to switch  can we have a common API please? 17
  18. 18. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Or how about a common API ContainerFactory cf = … from service registry … LoadBalancerConfig lbCfg = LoadBalancerConfig.builder(). port(80). pingLocation("/slingshot.html").build(); ContainerGroupConfig config = ContainerGroupConfig.builder("mysling", "cziegeler/apacheslingdemo"). cpu(1). memory(512). instances(3). loadBalancer(lbCfg). port(8080, true).build(); Service svc = cf.getService(config); 18
  19. 19. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Demo! 19
  20. 20. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. OSGi RFP 179 – Compute Management Service  Accepted OSGi RFP  Independent API to manage compute nodes  Can work with RFC 183  Cluster Information Specification  (previously Cloud Ecosystems)  Node discovery, metadata and provisioning 20
  21. 21. © 2015 Adobe Systems Incorporated. All Rights Reserved. Adobe Confidential. Discussion 21

×