1 Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com © OCTO 2013 50, avenue des Champs-Elysées 75008 Paris - FRANCE PaaS Interoperability Thomas Lacroix & Ludovic Piot
1
Tél : +33 (0)1 58 56 10 00 Fax : +33 (0)1 58 56 10 01 www.octo.com © OCTO 2013
50, avenue des Champs-Elysées 75008 Paris - FRANCE
PaaS Interoperability
Thomas Lacroix & Ludovic Piot
2
Agenda
CONTEXT AND PROJECT 1
CLOUD COMPUTING AND PAAS 2
STANDARDIZATION 4
INTEROPERABILITY, PORTABILITY 3
TECHNOLOGIES 5
CAMP2DOCKER 6
4
Architecture and implementation of an interoperable PaaS solution
Project
‘‘ ’’
Considering the: technical dimension: standard and technology study, architecture, implementation economical dimension: pricing, business model, economic impact of interoperability and standardization
1
6
Definition 1 2
Cloud computing is a model for enabling • ubiquitous • convenient • on-demand network access to a shared pool of configurable computing resources • networks • servers • storage • applications • services that can be rapidly • provisioned • released with minimal • management effort • service provider interaction
7
Models
CHARACTERISTICS
Public
Private
Hybrid
DEPLOYMENT
1 2
On-demand self-service Broad network access
Resource pooling
Rapid elasticity
Measured service
8
PaaS
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using
programming languages and tools supported by the provider.
The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage,
but has control over the deployed applications and possibly application hosting environment configurations
‘‘
’’
1 2
9
Agility and time-to-market Operational simplicity
Expertise Trade-offs between CapEx et OpEx
PaaS Benefits 1 2
11
Market study
Magic Quadrant for Enterprise Application Platform as a Service
Magic Quadrant for On-Premises Application Platforms
1 2
14
$ curl -sSL http://deis.io/deisctl/install.sh | sudo sh $ git clone https://github.com/deis/deis.git $ export DEIS_NUM_INSTANCES=3
$ cd deis $ make discovery-url $ vagrant up $ ssh-add ~/.vagrant.d/insecure_private_key $ export DEISCTL_TUNNEL=172.17.8.100 $ deisctl install platform
$ deisctl start platform $ pip install ./client/ $ deis register http://deis.local3.deisapp.com $ deis keys:add
Provisionning 1 2
15
$ deis clusters:create dev local3.deisapp.com \ # create a cluster --hosts=172.17.8.100,172.17.8.101,172.17.8.102 \
--auth=~/.vagrant.d/insecure_private_key
$ git clone https://github.com/deis/example-ruby-sinatra.git $ cd example-ruby-sinatra $ deis create Creating application... done, created lambda-hawthorn
Git remote deis added
Deploying onto 1 2
16
$ git push deis master Counting objects: 92, done. Delta compression using up to 4 threads. Compressing objects: 100% (87/87), done.
Writing objects: 100% (92/92), 19.29 KiB | 0 bytes/s, done. Total 92 (delta 40), reused 0 (delta 0)
-----> Ruby app detected -----> Compiling Ruby/Rack -----> Using Ruby version: ruby-1.9.3
-----> Installing dependencies using 1.5.2 Running: bundle install --without development:test ...
-----> Discovering process types Procfile declares types -> web Default process types for Ruby -> rake, console, web -----> Compiled slug size is 12M -----> Building Docker image
Uploading context 11.81 MB …
Deploying onto 1 2
Step 3 : ENTRYPOINT ["/runner/init"] ---> Running in 94eb867135db ---> f49031ecd6c1 Successfully built f49031ecd6c1
-----> Pushing image to private registry Launching... done, v2
-----> lambda-hawthorn deployed to Deis http://lambda-hawthorn.local3.deisapp.com
To learn more, use `deis help` or visit http://deis.io
To ssh://[email protected]:2222/lambda-hawthorn.git
* [new branch] master -> master
24
Use Case Cloud Computing Discussion Group: « the ability to write code that works with more than one Cloud provider simultaneously, regardless of the differences between the providers »
Cohen: « Cloud computing interoperability is the ability for multiple Cloud providers to work together* or interoperate, whereas Cloud portability is the ability of data and application components to be easily moved and reused regardless of the provider, operating system, storage, format or API »
Goyal: * including « process execution, security, migration/cloning control, standards, transparency, and manageability and regulatory compliance »
Definitions of Cloud computing interoperability 1 2 3
25
Distributed Computing Reference Model
http://www.opengroup.org/cloud/cloud/cloud_iop/dcrm.htm
Categories of portability and interoperability
Data Portability
Application Portability
Platform Portability
Application Interoperability
Platform Interoperability
Management Interoperability
Publication and Acquisition
Interoperability
1 2 3
31
The standardization initiatives seem to rotate around three key enablers for tackling Cloud computing interoperability. a standardized API/interface and a common management model a common data model/semantic the utilization of a marketplace/broker
Approaches 1 2 3 4
33
Official description: The OASIS TOSCA TC works to enhance the portability of cloud applications and services. TOSCA will enable the interoperable description of application and infrastructure cloud services, the relationships between parts of the service, and the operational behavior of these services (e.g., deploy, patch, shutdown)--independent of the supplier creating the service, and any particular cloud provider or hosting technology.
Formed in January 2012
OASIS Topology and Orchestration Specification for Cloud Applications (TOSCA)
1 2 3 4
35
Standardizes the language to describe The infrastructure of an IT Service (the topology) How to orchestrate operational behaviour (plans such as build, deploy, patch, shutdown, etc.)
Declarative model that spans applications, virtual and physical infrastructure
TOSCA: What is it ? 1 2 3 4
41
Declarative -> What ? « I want this, realize it ! » Runtime interprets topology and does deployment
Imperative -> How ? « First do this, then do that » Management plan explicitly describes each step
Orchestration 1 2 3 4
44
Official description: The OASIS CAMP TC advances an interoperable protocol that cloud implementers can use to package and deploy their applications. CAMP defines interfaces for self-service provisioning, monitoring, and control. Based on REST, CAMP is expected to foster an ecosystem of common tools, plugins, libraries and frameworks, which will allow vendors to offer greater value-add
Formed in August 2012 17 members:
OASIS Cloud Application Management for Platforms (CAMP)
1 2 3 4
45
Resource Model and Interface RESTfull API JSON serialization Models applications, components, services and their relationships Extensible
Application description and packaging ZIP, TAR or TGZ YAML metadata Extensible
Language, framework and platform agnostic
CAMP: What is it ? 1 2 3 4
46
Interoperably manage applications and their use of the platform Deploy Manage lifecycle (configure/customize, start, stop, snapshot, suspend, restart, delete) Monitoring
Portably migrate applications between platforms Construct a package and deploy it Export a package from one platform and deploy it to another
nCAMP: existing demo CAMP implementation http://ec2-107-20-16-71.compute-1.amazonaws.com/campSrv/
CAMP: What can it do ? 1 2 3 4
48
name: VitaMinder description: Vitamin and Supplement Tracking camp_version: CAMP 1.1 origin: http://www.oracle.com/nCAMP/Hand artifacts: - name: VitaMinder WAR artifact_type: com.oracle.nCAMP:WAR content: { href: VitaMinder.war } requirements: - requirement_type: com.oracle.nCAMP:ConnectTo com.oracle.nCAMP.dbName: VitaMinder fulfillment: id: db characteristics: - characteristic_type: com.oracle.nCAMP:SQL - requirement_type: com.oracle.nCAMP:HostOn fulfillment: characteristics: - characteristic_type: com.oracle.nCamp:ServletContainer - name: Supplement SQL artifact_type: com.oracle.nCAMP:SQL_script content: { href: vitaminder.sql } requirements: - requirement_type: com.oracle.nCAMP:LoadInto fulfillment: id:db
CAMP: Planfile example 1 2 3 4
51
I. Codebase: One codebase tracked in revision control, many deploys II. Dependencies: Explicitly declare and isolate dependencies III. Config: Store config in the environment IV. Backing Services: Treat backing services as attached resources V. Build, release, run: Strictly separate build and run stages VI. Processes: Execute the app as one or more stateless processes VII. Port binding: Export services via port binding VIII. Concurrency: Scale out via the process model IX. Disposability: Maximize robustness with fast startup and graceful
shutdown X. Dev/prod parity: Keep development, staging, and production as similar as
possible XI. Logs: Treat logs as event streams XII. Admin processes: Run admin/management tasks as one-off processes
1 2 3 4 5
55
Docker containers orchestration
Using a configuration file
Used with Orchard (CaaS solution)
Bought by Docker in July 2014.
1 2 3 4 5
56
libswarm is a toolkit for composing network services.
It defines a standard interface for services in a distributed system to communicate with each other. This lets you: Compose complex architectures from reusable building blocks Avoid vendor lock-in by swapping any service out with another
1 2 3 4 5
60
Total Cost of Ownership (TCO) Coûts liés à l’achat, propriété, utilisation et maintenance d’un produit
Availability Temps de disponibilité d’un service sur une période donnée
Time to Market Temps pour implémenter une nouvelle application, ou pour pousser un nouveau service sur le marché
Opportunity Costs Manque à gagner potentiel entre deux investissements
Churn Rate Nombre de clients perdus dans une période donnée
Productivity Mesure de l’efficacité d’un département ou d’une entreprise Peut être calculer grossièrement comme le revenue par tête
Service Level Agreement (SLA) Contrat dans lequel on formalise la qualité du service en question
Métriques indirectes
61
Non-Recurring Costs Acquisition Implementation
Ongoing Costs Application Deployment and Testing Vendor Support Administration & Management Monitoring, Diagnostics & Tuning
Cost model
62
Payback method Temps requis pour recouvrer l’investissement dans un produit ou service
Net Present Value (NPV) Flux de trésorerie actualisé représentant l'enrichissement supplémentaire d'un investissement par rapport au minimum exigé par les apporteurs de capitaux
Return on investment (ROI) Ratio financier qui mesure le montant d'argent gagné ou perdu par rapport à la somme initialement investie dans un investissement
Métriques directes