apache provisionr (incubating) - bucharest jug 10
DESCRIPTION
My slides on Apache Provisionr (incubating) - a service that can be used to create and manage pools of virtual machines on multiple clouds. http://provisionr.incubator.apache.org/TRANSCRIPT
![Page 1: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/1.jpg)
Apache Provisionr (incubating)
Andrei SavuBucharest JUG #10
![Page 2: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/2.jpg)
About me
● Founder of Axemblr.com● Organizer of Bucharest JUG (bjug.ro)● Apache Whirr PMC, ZooKeeper contributor● Passion for DevOps & Data Analysis
● Connect with me on LinkedIn
![Page 3: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/3.jpg)
@ Axemblr
● Data Processing Infrastructure● Deployment Automation
● Product: Hadoop On-Demand Appliance● Open Source (part of our DNA)● Fair amount of consulting (bootstrapping)
![Page 4: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/4.jpg)
Agenda
● What is Provisionr? ● Challenges & Architecture● Demo (HDFS on EC2)● Future @ Apache Software Foundation
![Page 5: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/5.jpg)
What is Provisionr?
.. and how does it help me create pools of virtual machines?
![Page 6: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/6.jpg)
What?
● Simple Service for Managing Pools of 10s or 100s of Virtual Machines
● A way to create clusters of machines that share a common set of characteristics on multiple cloud providers
![Page 7: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/7.jpg)
Characteristics like?
● Operating system● Pre-installed
packages & binaries
● Sane DNS settings (forward & reverse dns resolution)
● NTP settings
● Network settings● Firewall● SSH config● Admin access● VPN access ● etc.
![Page 8: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/8.jpg)
Why? (initially)
● Setup on-demand Hadoop clusters (Axemblr)
● Handles basic setup for large clusters ● Service config by using 3rd party apps like
Ambari or Cloudera Manager
![Page 9: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/9.jpg)
Why? (long term)
Core functionality is generic
Provisionr
Configuration
Monitoring
Events
Next generation Apache Whirr?
Events
Events
ExternalSpecification
![Page 10: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/10.jpg)
FAQ: Looks like Puppet?
● No● Provisionr is actually using Puppet
● Focus: Interact with IaaS APIs to start machines in groups with minimal configs (as listed before). Simple & reliable.
![Page 11: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/11.jpg)
Challenges
How is the game different when we work with 50-100+ virtual machines?
![Page 12: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/12.jpg)
Challenges #1
● API Throttling (batch calls)
● Concurrency Control (across multiple instances)
● Error handling, partial failures and automatic retries (idempotency)
![Page 13: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/13.jpg)
Challenges #2
● Granular internal workflows (short transactions)
● State persistence across restarts and upgrades
● Audit & Logging
![Page 14: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/14.jpg)
Challenges #3
● Integrating multiple native provider SDKs
● Provide a plugin architecture (run just a sub-set of all the features)
● Semi-automated and fully automated modes
![Page 15: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/15.jpg)
Challenges #4
● Automatic creation of gold images
![Page 16: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/16.jpg)
Architecture
Building Blocks, Internals, Persistence, Packaging, Plugins
![Page 17: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/17.jpg)
Activiti (from Alfresco)
● Light-weight workflow engine (BPM)
● Has a nice Java API● Has a nice set of tools● Handles persistence as expected● Good error handling (retryable activities)
![Page 18: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/18.jpg)
Activiti – Process Execution
![Page 19: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/19.jpg)
Activiti – Interactive View
![Page 20: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/20.jpg)
Apache Karaf
● Using it as an application server
● Provides an interactive shell● Integrated with Activiti● Solves the packaging problem (custom
distribution)
![Page 21: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/21.jpg)
Apache Karaf - Shell
![Page 22: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/22.jpg)
IaaS SDKs
● AWS SDK for Java– http://aws.amazon.com/sdkforjava/
● jclouds (for CloudStack)– http://www.jclouds.org/
![Page 23: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/23.jpg)
Demo Time (video)
Provisionr & RundeckCDH4 HDFS cluster on EC2
![Page 24: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/24.jpg)
Summary
● Provisionr solves the problem of creating large pools of virtual machines (100s)
● Cloud portability by making the machines & the cluster indistinguishable from an application perspective on multiple clouds
![Page 25: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/25.jpg)
Working on● Short term: first release compliant with the
Apache Software Foundation policies
● Automatic AMI creation (fast provisioning of large clusters)
● Bundle Rundeck with the binary release and write support services
![Page 26: Apache Provisionr (incubating) - Bucharest JUG 10](https://reader035.vdocuments.mx/reader035/viewer/2022081400/554a16feb4c90507558b520d/html5/thumbnails/26.jpg)
You're invited to join!
http://provisionr.incubator.apache.org/
● Code:– git clone https://git-wip-us.apache.org/repos/asf/incubator-
provisionr.git
● Mailing list:– [email protected]