Apache LibCloud - Keeping up with the cloud market in 2016
-
Upload
anthony-shaw -
Category
Technology
-
view
1.982 -
download
1
Transcript of Apache LibCloud - Keeping up with the cloud market in 2016
Keeping up with the Cloud market in 2016
Anthony Shaw, Apache LibCloud PMC
Overview of the LibCloud project
Python library, supports 2.5+, 3.0+ Formed in 2009 Graduated to Apache TLP in May 2011 200k+ downloads a month on PyPi 154 contributors
LibCloud is an open-source library providing a single interface to communicate with multiple clouds, public or private. Supports IaaS, LBaaS, DNS and Storage.
Why should you use LibCloud?My workloads run in private and public clouds, I’ve got scripts for
both
LibCloud supports all major public clouds and private
hypervisor APIs. Consolidate your scripts into 1 tool
Supported Clouds (IaaS)
Consolidation in Public CloudPeople are using multiple clouds for a reason.
Choosing a cloud provider can be both a commercial and technical decision.
Don’t let your choice of cloud provider dictate your automation strategy.
Give yourself the freedom of vendor agnostic deployment.
The number of public cloud providers in 2015 has decreased, and usage has consolidated to a handful of “hyper-scale” providers.
Protection against market shifts
[1] http://smallbiztrends.com/2015/10/hp-helion-public-cloud-closing.html6 months later..
This HP Helion REST API is amazing! I’m going to automate all the things…
“HP Will Shut Down Its Helion Public Cloud on Jan. 31”[1]
Dispersion in Private Cloud• Adoption of private cloud has
only increased slightly between 2014 and 2015
• LibCloud supports VMware APIs, OpenStack, CloudStack but not Azure Pack or System Center.
• Libvirt and KVM support also available.
Using LibCloudIf you want to use LibCloud directly from Python..
$ pip install apache-libcloud
Credentials
Choice of Cloud get_driver()
Node Driver
Compute Drivers
Node Driver
Node
Size Image
Location
Network
Extended
functions
List images, sizes, nodes (VMs) and locations.
Deploy, destroy, start and stop nodes
Create networks Extended functions for most
native functionality e.g. snapshots, cloning where supported.
Example
Create Node
Deploy Node(s)
Com
pute
Driv
er
Deploy your primary workload in private cloud and a failover in public cloud
Create Node
Deploy Node(s)
Parallel multi-cloud deployment Update DNS records
DNS Drivers Zone Management Add, find, update and delete
records Configure TTL for rapid failover Some drivers support
automated purchasing and pricing of domains (e.g. GoDaddy).DNS Driver
Zone
Records
Extended functions
Example
Locate Zone Add A record
Create Node
Deploy Node
DN
S D
river
Compute Driver
Integrate your public IP addresses with your A/AAAA records
Public IP(s)
Storage Drivers Create containers. List and manage existing
containers. Import, fetch and upload
objects into containers. Fetch CDN URLs where
supported.Storage Driver
Container
Object
Extended functions
Example
Create Containe
r
Add Objects
Create Node
Deploy Node
Storage Driver
Compute Driver
New build event
Don’t lose out when using private clouds and not having access to object storage. Cross-over your cloud providers to get the best of both.
Deployment bits
Load Balancer DriversDefine virtual listeners.Control load-balancing method.
Set protocol, IP and port(s).
Add and remove nodes from a virtual listener.LB Driver
Listener
Nodes VIPs
Extended functions
Example
Create Listener
Add Node
Update DNS
Create Node
Deploy Node
DNS Driver
LB D
river
Compute Driver
Auto-Scale event
Implement auto-scaling for a cloud that doesn’t currently offer it by crossing-over load balancer and compute drivers.
Mix and match
Compute Storage DNS
Application workload
To take full advantage of the LibCloud ecosystem, deploy your application across multiple providers, choose the best platform(s) for the job.
Compute DNS Storage Load Balancer
Other ways of consuming LibCloudOrchestration Tools Management UIs
Development Tooling
Salt Stack CloudLeverage the flexibility and breadth of the LibCloud driver support from Salt Stack
Contributing to LibCloud
Fork + code
Raise Pull Request
Merge!Test + flake
github.com/apache/libcloud
About me
@anthonypjshaw
@tonybaloney
Based in Sydney, Australia
Head of Innovation for Dimension Data