SlideShare uma empresa Scribd logo
1 de 21
Container as a Service
support for Apache libcloud
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.
About me
@anthonypjshaw
@tonybaloney
anthonyshaw@apache.org
Based in Sydney, Australia
Head of Innovation for
Dimension Data
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)
Current drivers
libcloud.computeCompute (v0.1.0)
• Support for nodes, node images, locations, states
• 52 providers including every major cloud provider in the market. Plus local services like Vmware, OpenStack, libvirt
libcloud.dnsDNS (v0.6.0)
• Support for zones, records, recordtypes
• 19 providers including CloudFlare, DigitalOcean, DNSimple, GoDaddy, Google DNS, Linode, Rackspace, Amazon R53, Zerigo
libcloud.storageObject Storage (v0.5.0)
• Support for containers and objects
• 11 providers including Amazon S3, Azure Blobs, Google storage, CloudFiles, OpenStack Swift
libcloud.loadbalancerLoad Balancer (v0.5.0)
• Support for nodes, balancers, listeners and algorithms
• 11 providers including CloudStack, Dimension Data, Amazon ELB, Google GCE LB, SoftLayer LB
libcloud.backupBackup (v0.20.0)
• Support for backup targets, recovery points and jobs
• 3 providers, Dimension Data, Amazon EBS snaps, Google snaps
Why would we need a container API?
 The API is for Container-as-a-Service providers, these new
types of cloud services offer container management and hosting
as a service.
 The new services are already providing proprietary APIs, giving
the need for a tool like Libcloud if you want to provision to any
cloud provider
Isn’t Docker a standard?
Well, yes and no.
Docker has been the main technology adopted by these
providers as the host system for the containers and also
as the specification of the containers themselves.
But, Docker is not a provisioning system, it is a
virtualization host. Also there are alternatives, like
CoreOS Rkt.
Container Drivers
List container images, or
load from external
systems
Create clusters for load-
balanced containers
(where supported)
List, destroy, start and
stop persistent containersContainer Driver
Basic functionality
Containers
Container
Images
Cluster
functionality
(optional)
Clusters
Extended
functions
Example Code
from libcloud.container.providers import get_driver
from libcloud.container.types import Provider
Cls = get_driver(Provider.DOCKER)
driver = Cls('user', 'api key')
image = driver.install_image('tomcat:8.0')
container = driver.deploy_container('tomcat', image)
container.restart()
Docker Registry
 The Docker Registry API is used by services like Amazon ECR, the
Docker Hub website and by anyone hosting their own Docker
registry.
 It doesn’t belong to a particular driver, so is a utility class
 Some providers, like Amazon ECR have a factory method to provide
a registry client
 Images from docker registry can be sent to the deploy_container
method for any driver.
from libcloud.container.utils.docker import HubClient
hub = HubClient()
image = hub.get_image('ubuntu', 'latest')
# Get a Registry API client for an existing repository
client = conn.ex_get_registry_client('my-image')
image = client.get_image('ubuntu', 'latest')
Driver : Docker
from libcloud.container.types import Provider
from libcloud.container.providers import get_driver
cls = get_driver(Provider.DOCKER)
conn = cls(host='https://198.61.239.128', port=4243,
key_file='key.pem', cert_file='cert.pem')
conn.list_containers()
Extra functionality:
• Get logs for container
• Delete an image
• List processes running inside a container
• Rename a container
• Search for images on docker.io
Base functionality
• Install an image from docker hub, or a private
repository
• Deploy a container from image
• Start, Stop, Restart, Delete a container
Driver : Joyent Triton
from libcloud.container.types import Provider
from libcloud.container.providers import get_driver
cls = get_driver(Provider.JOYENT)
conn = cls(host='us-east-1.docker.joyent.com', port=2376,
key_file='key.pem', cert_file='~/.sdc/docker/admin/ca.pem')
conn.list_containers()
Extra functionality:
• Get logs for container
• Delete an image
• List processes running inside a container
• Rename a container
• Search for images on docker.io
Base functionality
• Install an image from docker hub, or a private
repository
• Deploy a container from image
• Start, Stop, Restart, Delete a container
Joyent provide hosted and managed Docker hosts as a service
Driver : Amazon ECS
from libcloud.container.types import Provider
from libcloud.container.providers import get_driver
cls = get_driver(Provider.ECS)
conn = cls(access_id='SDHFISJDIFJSIDFJ',
secret='THIS_IS)+_MY_SECRET_KEY+I6TVkv68o4H',
region='ap-southeast-2')
conn.list_containers()
Extra functionality:
• Create a service (a collection of containers in a
cluster).
• Describe existing services
• Get ECR registry client
Base functionality
• Install an image from docker hub, or a private
repository, or from Amazon ECR (registry)
• Set CPU and memory reservations for
containers
• Deploy a container from image
• Start, Stop, Restart, Delete a container
Elastic Container Service is a container-as-a-service feature of AWS
Cluster functionality
• Create a cluster
• Deploy a container into a cluster
• Destroy an existing cluster
Driver : Google Kubernetes
from libcloud.container.types import Provider
from libcloud.container.providers import get_driver
cls = get_driver(Provider.KUBERNETES)
conn = cls(key='my_username',
secret='THIS_IS)+_MY_SECRET_KEY+I6TVkv68o4H',
host='126.32.21.4')
conn.list_containers()
Extra functionality:
• Create namespaces
• Deploy pods into namespaces
• Destroy pods
Base functionality
• Install an image from docker hub, or a private
repository
• Deploy a container from image
• Discover containers within all pods
Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto
nodes in a compute cluster and actively manages workloads to ensure that their state matches the users
declared intentions. It groups the containers which make up an application into logical units for easy
management and discovery.
Cluster functionality
• Create a cluster (a namespace)
• Deploy a container into a cluster
• Destroy an existing cluster
What now?
 Support for Google Cloud’s Container Engine (based on
Kubernetes so most of the way there)
https://cloud.google.com/container-engine/
 Extend Kubernetes support to allow multiple containers to be
provisioned to a single pod
 Create a CoreOS/Rkt driver
 Support other providers as they join the market
The Libcloud ecosystem
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

Mais conteúdo relacionado

Mais procurados

Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinder
openstackindia
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
Brian Grant
 
JClouds at San Francisco Java User Group
JClouds at San Francisco Java User GroupJClouds at San Francisco Java User Group
JClouds at San Francisco Java User Group
Marakana Inc.
 

Mais procurados (20)

Meetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on KubernetesMeetup 12-12-2017 - Application Isolation on Kubernetes
Meetup 12-12-2017 - Application Isolation on Kubernetes
 
Openstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolOpenstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2School
 
Openshift Container Platform on Azure
Openshift Container Platform on Azure Openshift Container Platform on Azure
Openshift Container Platform on Azure
 
Pairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryPairs OpenStack Summit Summary
Pairs OpenStack Summit Summary
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
 
On Docker and its use for LHC at CERN
On Docker and its use for LHC at CERNOn Docker and its use for LHC at CERN
On Docker and its use for LHC at CERN
 
OpenStack Storage Overview
OpenStack Storage OverviewOpenStack Storage Overview
OpenStack Storage Overview
 
Kubernetes on CloudStack with coreOS
Kubernetes on CloudStack with coreOSKubernetes on CloudStack with coreOS
Kubernetes on CloudStack with coreOS
 
Running OpenStack on Amazon AWS, Alex Fishman
Running OpenStack on Amazon AWS, Alex FishmanRunning OpenStack on Amazon AWS, Alex Fishman
Running OpenStack on Amazon AWS, Alex Fishman
 
AWS-compared-to-OpenStack
AWS-compared-to-OpenStackAWS-compared-to-OpenStack
AWS-compared-to-OpenStack
 
Storage as a service and OpenStack Cinder
Storage as a service and OpenStack CinderStorage as a service and OpenStack Cinder
Storage as a service and OpenStack Cinder
 
Jclouds Intro
Jclouds IntroJclouds Intro
Jclouds Intro
 
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
WSO2Con US 2015 Kubernetes: a platform for automating deployment, scaling, an...
 
JClouds at San Francisco Java User Group
JClouds at San Francisco Java User GroupJClouds at San Francisco Java User Group
JClouds at San Francisco Java User Group
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup Slides
 
Working in the multi-cloud with libcloud
Working in the multi-cloud with libcloudWorking in the multi-cloud with libcloud
Working in the multi-cloud with libcloud
 
Infinit's Next Generation Key-value Store - Julien Quintard and Quentin Hocqu...
Infinit's Next Generation Key-value Store - Julien Quintard and Quentin Hocqu...Infinit's Next Generation Key-value Store - Julien Quintard and Quentin Hocqu...
Infinit's Next Generation Key-value Store - Julien Quintard and Quentin Hocqu...
 
ContainerDayVietnam2016: Hybrid and Automation System Architecture
ContainerDayVietnam2016: Hybrid and Automation System ArchitectureContainerDayVietnam2016: Hybrid and Automation System Architecture
ContainerDayVietnam2016: Hybrid and Automation System Architecture
 
DockerCon EU 2015: Nesting Containers: Real Life Observations
DockerCon EU 2015: Nesting Containers: Real Life ObservationsDockerCon EU 2015: Nesting Containers: Real Life Observations
DockerCon EU 2015: Nesting Containers: Real Life Observations
 
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
Docker Practice in Alibaba Cloud by Li Yi (Mark) & Zuhe Li (Sogo)
 

Semelhante a Introducing container as-a-service support to apache libcloud

Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
Balaji Rajan
 

Semelhante a Introducing container as-a-service support to apache libcloud (20)

Docker slides
Docker slidesDocker slides
Docker slides
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux Container
 
Rebuild - Simplifying Embedded and IoT Development Using Linux Containers
Rebuild - Simplifying Embedded and IoT Development Using Linux ContainersRebuild - Simplifying Embedded and IoT Development Using Linux Containers
Rebuild - Simplifying Embedded and IoT Development Using Linux Containers
 
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
Building Distributed Systems without Docker, Using Docker Plumbing Projects -...
 
Rebuild presentation - IoT Israel MeetUp
Rebuild presentation - IoT Israel MeetUpRebuild presentation - IoT Israel MeetUp
Rebuild presentation - IoT Israel MeetUp
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
 
Docker intro
Docker introDocker intro
Docker intro
 
Docker basics
Docker basicsDocker basics
Docker basics
 
Let's dockerize
Let's dockerizeLet's dockerize
Let's dockerize
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
 
Openshift meetup Paris - 21/03/2018
Openshift meetup Paris - 21/03/2018Openshift meetup Paris - 21/03/2018
Openshift meetup Paris - 21/03/2018
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
 
Docker
DockerDocker
Docker
 
Quick Trip with Docker
Quick Trip with DockerQuick Trip with Docker
Quick Trip with Docker
 
Introduction to Containers & Diving a little deeper into the benefits of Con...
 Introduction to Containers & Diving a little deeper into the benefits of Con... Introduction to Containers & Diving a little deeper into the benefits of Con...
Introduction to Containers & Diving a little deeper into the benefits of Con...
 
Docker
DockerDocker
Docker
 
Docker
DockerDocker
Docker
 

Último

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Introducing container as-a-service support to apache libcloud

  • 1. Container as a Service support for Apache libcloud Anthony Shaw, Apache LibCloud PMC
  • 2. 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.
  • 3. About me @anthonypjshaw @tonybaloney anthonyshaw@apache.org Based in Sydney, Australia Head of Innovation for Dimension Data
  • 4. 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
  • 6. Current drivers libcloud.computeCompute (v0.1.0) • Support for nodes, node images, locations, states • 52 providers including every major cloud provider in the market. Plus local services like Vmware, OpenStack, libvirt libcloud.dnsDNS (v0.6.0) • Support for zones, records, recordtypes • 19 providers including CloudFlare, DigitalOcean, DNSimple, GoDaddy, Google DNS, Linode, Rackspace, Amazon R53, Zerigo libcloud.storageObject Storage (v0.5.0) • Support for containers and objects • 11 providers including Amazon S3, Azure Blobs, Google storage, CloudFiles, OpenStack Swift libcloud.loadbalancerLoad Balancer (v0.5.0) • Support for nodes, balancers, listeners and algorithms • 11 providers including CloudStack, Dimension Data, Amazon ELB, Google GCE LB, SoftLayer LB libcloud.backupBackup (v0.20.0) • Support for backup targets, recovery points and jobs • 3 providers, Dimension Data, Amazon EBS snaps, Google snaps
  • 7. Why would we need a container API?  The API is for Container-as-a-Service providers, these new types of cloud services offer container management and hosting as a service.  The new services are already providing proprietary APIs, giving the need for a tool like Libcloud if you want to provision to any cloud provider
  • 8. Isn’t Docker a standard? Well, yes and no. Docker has been the main technology adopted by these providers as the host system for the containers and also as the specification of the containers themselves. But, Docker is not a provisioning system, it is a virtualization host. Also there are alternatives, like CoreOS Rkt.
  • 9. Container Drivers List container images, or load from external systems Create clusters for load- balanced containers (where supported) List, destroy, start and stop persistent containersContainer Driver Basic functionality Containers Container Images Cluster functionality (optional) Clusters Extended functions
  • 10. Example Code from libcloud.container.providers import get_driver from libcloud.container.types import Provider Cls = get_driver(Provider.DOCKER) driver = Cls('user', 'api key') image = driver.install_image('tomcat:8.0') container = driver.deploy_container('tomcat', image) container.restart()
  • 11. Docker Registry  The Docker Registry API is used by services like Amazon ECR, the Docker Hub website and by anyone hosting their own Docker registry.  It doesn’t belong to a particular driver, so is a utility class  Some providers, like Amazon ECR have a factory method to provide a registry client  Images from docker registry can be sent to the deploy_container method for any driver. from libcloud.container.utils.docker import HubClient hub = HubClient() image = hub.get_image('ubuntu', 'latest') # Get a Registry API client for an existing repository client = conn.ex_get_registry_client('my-image') image = client.get_image('ubuntu', 'latest')
  • 12. Driver : Docker from libcloud.container.types import Provider from libcloud.container.providers import get_driver cls = get_driver(Provider.DOCKER) conn = cls(host='https://198.61.239.128', port=4243, key_file='key.pem', cert_file='cert.pem') conn.list_containers() Extra functionality: • Get logs for container • Delete an image • List processes running inside a container • Rename a container • Search for images on docker.io Base functionality • Install an image from docker hub, or a private repository • Deploy a container from image • Start, Stop, Restart, Delete a container
  • 13. Driver : Joyent Triton from libcloud.container.types import Provider from libcloud.container.providers import get_driver cls = get_driver(Provider.JOYENT) conn = cls(host='us-east-1.docker.joyent.com', port=2376, key_file='key.pem', cert_file='~/.sdc/docker/admin/ca.pem') conn.list_containers() Extra functionality: • Get logs for container • Delete an image • List processes running inside a container • Rename a container • Search for images on docker.io Base functionality • Install an image from docker hub, or a private repository • Deploy a container from image • Start, Stop, Restart, Delete a container Joyent provide hosted and managed Docker hosts as a service
  • 14. Driver : Amazon ECS from libcloud.container.types import Provider from libcloud.container.providers import get_driver cls = get_driver(Provider.ECS) conn = cls(access_id='SDHFISJDIFJSIDFJ', secret='THIS_IS)+_MY_SECRET_KEY+I6TVkv68o4H', region='ap-southeast-2') conn.list_containers() Extra functionality: • Create a service (a collection of containers in a cluster). • Describe existing services • Get ECR registry client Base functionality • Install an image from docker hub, or a private repository, or from Amazon ECR (registry) • Set CPU and memory reservations for containers • Deploy a container from image • Start, Stop, Restart, Delete a container Elastic Container Service is a container-as-a-service feature of AWS Cluster functionality • Create a cluster • Deploy a container into a cluster • Destroy an existing cluster
  • 15. Driver : Google Kubernetes from libcloud.container.types import Provider from libcloud.container.providers import get_driver cls = get_driver(Provider.KUBERNETES) conn = cls(key='my_username', secret='THIS_IS)+_MY_SECRET_KEY+I6TVkv68o4H', host='126.32.21.4') conn.list_containers() Extra functionality: • Create namespaces • Deploy pods into namespaces • Destroy pods Base functionality • Install an image from docker hub, or a private repository • Deploy a container from image • Discover containers within all pods Kubernetes is an open source orchestration system for Docker containers. It handles scheduling onto nodes in a compute cluster and actively manages workloads to ensure that their state matches the users declared intentions. It groups the containers which make up an application into logical units for easy management and discovery. Cluster functionality • Create a cluster (a namespace) • Deploy a container into a cluster • Destroy an existing cluster
  • 16. What now?  Support for Google Cloud’s Container Engine (based on Kubernetes so most of the way there) https://cloud.google.com/container-engine/  Extend Kubernetes support to allow multiple containers to be provisioned to a single pod  Create a CoreOS/Rkt driver  Support other providers as they join the market
  • 18. 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
  • 19. Other ways of consuming LibCloud Orchestration Tools Management UIs Development Tooling
  • 20. Salt Stack Cloud Leverage the flexibility and breadth of the LibCloud driver support from Salt Stack
  • 21. Contributing to LibCloud Fork + code Raise Pull Request Merge!Test + flake github.com/apache/libcloud