SlideShare a Scribd company logo
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

More Related Content

What's hot

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
dtoledo67
 
Openstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2SchoolOpenstack Fundamentals by CloudZone @Back2School
Openstack Fundamentals by CloudZone @Back2School
Asaf Abres
 
Openshift Container Platform on Azure
Openshift Container Platform on Azure Openshift Container Platform on Azure
Openshift Container Platform on Azure
Glenn West
 
Pairs OpenStack Summit Summary
Pairs OpenStack Summit SummaryPairs OpenStack Summit Summary
Pairs OpenStack Summit Summary
Guangya Liu
 
Evolution of containers to kubernetes
Evolution of containers to kubernetesEvolution of containers to kubernetes
Evolution of containers to kubernetes
Krishna-Kumar
 
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
Sebastien Goasguen
 
OpenStack Storage Overview
OpenStack Storage OverviewOpenStack Storage Overview
OpenStack Storage Overview
Bharat Kumar Kobagana
 
Kubernetes on CloudStack with coreOS
Kubernetes on CloudStack with coreOSKubernetes on CloudStack with coreOS
Kubernetes on CloudStack with coreOS
Sebastien Goasguen
 
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
Cloud Native Day Tel Aviv
 
AWS-compared-to-OpenStack
AWS-compared-to-OpenStackAWS-compared-to-OpenStack
AWS-compared-to-OpenStack
Jonathan Gershater
 
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 Cinderopenstackindia
 
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 GroupMarakana Inc.
 
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
Docker, Inc.
 
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
Grig Gheorghiu
 
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...
Docker, Inc.
 
ContainerDayVietnam2016: Hybrid and Automation System Architecture
ContainerDayVietnam2016: Hybrid and Automation System ArchitectureContainerDayVietnam2016: Hybrid and Automation System Architecture
ContainerDayVietnam2016: Hybrid and Automation System Architecture
Docker-Hanoi
 
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, Inc.
 
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)
Docker, Inc.
 

What's hot (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)
 

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

Docker slides
Docker slidesDocker slides
Docker slides
Jyotsna Raghuraman
 
Docker - The Linux Container
Docker - The Linux ContainerDocker - The Linux Container
Docker - The Linux ContainerBalaji Rajan
 
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
LinuxCon ContainerCon CloudOpen China
 
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 -...
Patrick Chanezon
 
Rebuild presentation - IoT Israel MeetUp
Rebuild presentation - IoT Israel MeetUpRebuild presentation - IoT Israel MeetUp
Rebuild presentation - IoT Israel MeetUp
Yan Vugenfirer
 
Containerization using docker and its applications
Containerization using docker and its applicationsContainerization using docker and its applications
Containerization using docker and its applications
Puneet Kumar Bhatia (MBA, ITIL V3 Certified)
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
Araf Karsh Hamid
 
Ippevent : openshift Introduction
Ippevent : openshift IntroductionIppevent : openshift Introduction
Ippevent : openshift Introduction
kanedafromparis
 
Docker intro
Docker introDocker intro
Docker intro
Frei Zhang
 
Docker basics
Docker basicsDocker basics
Docker basics
Claudio Montoya
 
Let's dockerize
Let's dockerizeLet's dockerize
Let's dockerize
Ahmed Sorour
 
Docker 1.9 Workshop
Docker 1.9 WorkshopDocker 1.9 Workshop
Docker 1.9 Workshop
{code}
 
Openshift meetup Paris - 21/03/2018
Openshift meetup Paris - 21/03/2018Openshift meetup Paris - 21/03/2018
Openshift meetup Paris - 21/03/2018
kanedafromparis
 
Docker 101 - Nov 2016
Docker 101 - Nov 2016Docker 101 - Nov 2016
Docker 101 - Nov 2016
Docker, Inc.
 
Docker
DockerDocker
Docker
Vu Duc Du
 
Quick Trip with Docker
Quick Trip with DockerQuick Trip with Docker
Quick Trip with Docker
Venkata Naga Ravi
 
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...
Synergetics Learning and Cloud Consulting
 
Docker
DockerDocker

Similar to 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
 

Recently uploaded

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
Uni Systems S.M.S.A.
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
SOFTTECHHUB
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
ThomasParaiso2
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
Prayukth K V
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 

Recently uploaded (20)

Microsoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdfMicrosoft - Power Platform_G.Aspiotis.pdf
Microsoft - Power Platform_G.Aspiotis.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024GraphSummit Singapore | The Art of the  Possible with Graph - Q2 2024
GraphSummit Singapore | The Art of the Possible with Graph - Q2 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
Why You Should Replace Windows 11 with Nitrux Linux 3.5.0 for enhanced perfor...
 
GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...GridMate - End to end testing is a critical piece to ensure quality and avoid...
GridMate - End to end testing is a critical piece to ensure quality and avoid...
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 previewState of ICS and IoT Cyber Threat Landscape Report 2024 preview
State of ICS and IoT Cyber Threat Landscape Report 2024 preview
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 

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