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 Cloud
People 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.html
6 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 LibCloud
If 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)
ComputeDriver
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
DNSDriver
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
Container
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 Drivers
Define 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
LBDriver
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 LibCloud
Orchestration Tools Management UIs
Development Tooling
Salt Stack Cloud
Leverage 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
anthonyshaw@apache.org
Based in Sydney, Australia
Head of Innovation for
Dimension Data

Apache LibCloud - Keeping up with the cloud market in 2016

  • 1.
    Keeping up withthe Cloud market in 2016 Anthony Shaw, Apache LibCloud PMC
  • 2.
    Overview of theLibCloud 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.
  • 3.
    Why should youuse 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
  • 4.
  • 5.
    Consolidation in PublicCloud People 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.
  • 6.
    Protection against marketshifts [1] http://smallbiztrends.com/2015/10/hp-helion-public-cloud-closing.html 6 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]
  • 7.
    Dispersion in PrivateCloud • 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.
  • 8.
    Using LibCloud If youwant to use LibCloud directly from Python.. $ pip install apache-libcloud Credentials Choice of Cloud get_driver() Node Driver
  • 9.
    Compute Drivers Node Driver Node SizeImage 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.
  • 10.
    Example Create Node Deploy Node(s) ComputeDriver Deploy your primary workloadin private cloud and a failover in public cloud Create Node Deploy Node(s) Parallel multi-cloud deployment Update DNS records
  • 11.
    DNS Drivers  ZoneManagement  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
  • 12.
    Example Locate Zone AddA record Create Node Deploy Node DNSDriver Compute Driver Integrate your public IP addresses with your A/AAAA records Public IP(s)
  • 13.
    Storage Drivers  Createcontainers.  List and manage existing containers.  Import, fetch and upload objects into containers.  Fetch CDN URLs where supported. Storage Driver Container Object Extended functions
  • 14.
    Example Create Container Add Objects Create Node Deploy Node Storage Driver Compute Driver New build event Don’tlose 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
  • 15.
    Load Balancer Drivers Definevirtual 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
  • 16.
    Example Create Listener Add Node Update DNS Create Node Deploy Node DNS Driver LBDriver Compute Driver Auto- Scale event Implementauto- scaling for a cloud that doesn’t currently offer it by crossing- over load balancer and compute drivers.
  • 17.
    Mix and match ComputeStorage 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
  • 18.
    Other ways ofconsuming LibCloud Orchestration Tools Management UIs Development Tooling
  • 19.
    Salt Stack Cloud Leveragethe flexibility and breadth of the LibCloud driver support from Salt Stack
  • 20.
    Contributing to LibCloud Fork+ code Raise Pull Request Merge!Test + flake github.com/apache/libcloud
  • 21.
    About me @anthonypjshaw @tonybaloney anthonyshaw@apache.org Based inSydney, Australia Head of Innovation for Dimension Data