SlideShare una empresa de Scribd logo
1 de 59
Descargar para leer sin conexión
Automated Configuration and
  Deployment of Applications in
Heterogeneous Cloud Environments
             Chris Bunch

            Ph.D. Defense
          November 30, 2012
Public Cloud
          Computing
• Utility-oriented approach to computing
• Pay for only resources that you use
• Rent resources from large datacenters
  maintained by Amazon, Microsoft, Google
• Don’t maintain a rack in your office - just
  use somebody else’s rack
Using the Cloud for
         Apps
• Cloud services have seen uptake in:
 • Web services domain
 • High performance computing
 • General-purpose applications
Challenges in Cloud
       Adoption
• Primary barriers to entry:
 • Wide array of services
 • Varying cost models
 • Many technologies providing APIs
Plethora of Services
• Storage Services
• Queue Services
• Compute Services
• Fully Managed Software Stacks
 • Web services only
 • MapReduce only
Varying Cost Models
• Unlimited usage per-hour (EC2)
• Unlimited usage per-wall-clock-hour
  (Azure)
• First 15-minutes, then charge per-minute
  (App Engine)
• Meter per API call (SQS, App Engine)
Accessing Services via
        APIs
• Need an API to connect your application to
  the cloud service
• First-party native libraries, per-language
 • Typically only for “popular” languages
• Cross-language serialization services
 • Convert from your language to “popular”
    language
Thesis Question

• How can we enable applications to be
  executed on cloud systems, by
  automatically configuring and deploying
  applications across cloud offerings that vary
  based on the type of service offered, cost
  model employed, and APIs via which
  services are exposed?
Our Solution

• Provide research tools to execute
  computationally intensive applications
 • Automatically configure and deploy
    applications for use with cloud services
 • Programming language support, to
    facilitate expressive workflows
Design Space
                   Language / Platform
    Domain
                        Support
                      AppScale (IEEE
 Web Services
                       CLOUD10)
                          Neptune
High Performance
                     (ScienceCloud10,
   Computing
                       DataCloud12)
                   MEDEA (IPDPS13)*,
General Purpose
                   Exodus (CCGrid13)*
Design Space
                   Language / Platform
    Domain
                        Support
                      AppScale (IEEE
 Web Services
                       CLOUD10)
                          Neptune
High Performance
                     (ScienceCloud10,
   Computing
                       DataCloud12)
                   MEDEA (IPDPS13)*,
General Purpose
                   Exodus (CCGrid13)*
Cloud Computing

• Three tiers of abstraction:
 • Infrastructure: Scalable hardware
 • Platform: Scalable software stack
 • Software: Scalable applications
PaaS for Science

• Need a cloud that is extensible to:
 • Services from competing cloud vendors
 • Differing cost models from each cloud
 • Varying APIs offered by cloud vendors
• And it must be open source!
Introducing AppScale
• An open source implementation of the
  Google App Engine APIs
• Deploys over Amazon EC2 or Eucalyptus
• Configures and deploys
  automatically
 • User only needs to specify the number of
    nodes to run over
One-Button
Deployment
Limitations

• “Recipes” are statically defined
• Limited to three-tier web applications
• Runtime environment is restricted to
  enable autoscaling
• Not cost-aware
Design Space
                   Language / Platform
    Domain
                        Support
                      AppScale (IEEE
 Web Services
                       CLOUD10)
                          Neptune
High Performance
                     (ScienceCloud10,
   Computing
                       DataCloud12)
                   MEDEA (IPDPS13)*,
General Purpose
                   Exodus (CCGrid13)*
HPC in the Cloud
• Easy access to vast resources
• Hard to automatically configure and deploy
  libraries
• Requires in-depth knowledge of each
  technology required
• Hard to get performance on opaque cloud
• Wide range of APIs for similar services
Introducing Neptune
• A domain specific language for running
  HPC applications
• Supports MPI, UPC, X10 programs
• Configures and deploys
  automatically
• Scientists need only specify the number of
  nodes to execute over
One-Button
Deployment
Language-Based
      Deployment
neptune :type => :mpi,
   :code => “/home/user/cpi”,
   :nodes_to_use => 32,
   :output => “/output/cpi-32”
Automated Application
     Execution
• Calls to neptune() are translated into
  SOAP messages, dispatched to AppScale
• AppScale pulls in library support that
  details how to run each type of job
• Acquires nodes, runs job, saves output
• Cost awareness for VMs
Limitations

• “Recipes” for each framework are static
• Must be pre-defined by an expert user
• Software must be pre-installed on VMs
• Metadata not easily accessible
• Limited by underlying hardware
Design Space
                   Language / Platform
    Domain
                        Support
                      AppScale (IEEE
 Web Services
                       CLOUD10)
                          Neptune
High Performance
                     (ScienceCloud10,
   Computing
                       DataCloud12)
                   MEDEA (IPDPS13)*,
General Purpose
                   Exodus (CCGrid13)*
Problem Domain
• Easy access to vast resources
• Hard to automatically configure and deploy
• Hard to evaluate services b/c of:
 • The abstractions they expose
 • The cost model they charge with
 • Varying APIs for each language
Introducing MEDEA
• Extends Neptune to provide an execution
  model for applications
• Abstract away compute, storage, queue
  services via a common interface
• Automatically manage cost for the user
• Automatically connect competing APIs
High-Level Design
• Scripting language support
 • Maximizes flexibility and interoperability
    with other code
• Deployment engine (PaaS layer)
 • Automatically configure and deploy
    applications over cloud services
System Design
Scripting Language
         Support
• Extends the Neptune DSL
• Adds a function call, medea()
• Users specify code, inputs, services to use
• (M)essages the Deployment Service with
  this data, called a “task”
n-body in AWS
result = medea(
 :executable => “python”,
 :code => “/home/user/nbody.py”,
 :compute => “ec2”,
 :storage => “s3”,
 :queue => “sqs”)
puts results.stdout
n-body in Azure
result = medea(
 :executable => “python”,
 :code => “/home/user/nbody.py”,
 :compute => “azure-compute”,
 :storage => “azure-storage”,
 :queue => “azure-queue”)
puts results.stdout
Deployment Engine
• Extends the AppScale PaaS
• Consists of two new services:
 • Task Manager: Manages workers, tasks
 • Task Worker: Executes tasks
• Receives task (M)essages from Scripting
  Language Support, code, inputs to execute
(E, D) Queue services
• Task Manager (E)nqueues the task
• Task Workers (D)equeues tasks
• Both use a QueueInterface, requiring:
 • FIFO queue: Push / Pop / Queue Length
• Supports Amazon, Google, Microsoft,
  VMWare Queues
(E) Compute services
• Task Manager spawns Task Workers in the
  specified clouds
• Task Workers (E)xecute tasks
• Follows ComputeInterface, requiring:
 • dispatch_task / get_task_status /
    get_task_results
• Supports EC2, Eucalyptus, App Engine, Azure
(A) Storage services
• Task Workers store the following outputs:
  • Standard output of job
  • Standard error of job
  • Metadata
• User’s script (A)ccesses result of job
• Supports S3, App Engine, Azure, and AppScale
  datastores (HBase, Cassandra, etc.)
Use Cases
• Execute scientific apps and share the
  results
 • Execute quickly (but expensively)
 • Execute inexpensively (but slowly)
• Community cloud for benchmarking
  programming language performance
Scientific Use Cases

• Computational systems biology application
• Simulates conditions found in yeast
• Written in Python, Java
• Deploy to EC2, App Engine, Azure
• All values are the average of five runs
Scientific App Execution
Scientific App Execution
Polyglot Science

• Implementations of the n-body application
  in eleven programming languages
• Execute with Amazon EC2, SQS, and S3
• Measure time taken to execute, cost
• All values are the average of ten runs
n-body benchmark
n-body in Amazon EC2
    Language   Per-Second Cost
       C           $0.0069
      Java         $0.0075
     Python        $0.5876
      Ruby         $2.1944
      Scala        $0.0075
n-body across clouds
       Cloud          Cost To Execute

    Amazon EC2             $0.32

  App Engine (Java)       $0.0013
     App Engine           $0.0049
      (Python)
   Microsoft Azure         $0.02
Related Work
• Pegasus / Swift (WORKS ’11)
• YCSB (SOCC ‘10),YCSB++ (SOCC ‘11)
• Elastisizer (SOCC ’11)
• Condor / StratUm (BIOINFORMATICS ‘12)
• AME (WORKS ’11)
• Google App Engine Pipeline API
Review
• MEDEA automatically configures and
  deploys applications, over multiple clouds
 • Abstracts away cloud compute, storage,
    and queue services from the user
• Extensible to support other clouds
• Programming language support to
  enable Turing-complete workflows
Limitations
• Does not intelligently schedule
• Many different hardware profiles offered by
  compute services
• Hard to use them effectively b/c of:
 • Opaque pricing models
 • Lack of Cost APIs
Introducing Exodus
• An Application Programming Interface (API)
• Determines how to “optimally” execute
  tasks, when “optimal” means:
 • Minimizing cost
 • Minimizing total execution time
 • User-defined functions
System Design
API Support
• Adds a Neptune function call, exodus()
• Users specify :optimize_for:
  • Cost, performance, or a user’s Function
• Profiles code locally or remotely
• Estimates time and cost to use each instance
  type at each number of machines
• Constructs and executes tasks via MEDEA
example
results = exodus(
    :clouds_to_use => [:AmazonEC2],
    :code => “/home/user/map.py”,
    :num_tasks => 1000,
    :optimize_for => :cost
)
example
results = exodus
    :clouds_to_use => [:AmazonEC2],
    :code => “/home/user/map.py”,
    :num_tasks => 1000,
    :optimize_for => float func(t,c) {
      ...
}
Cost-Aware Science
• Same app as evaluated with MEDEA
• Computational systems biology application
• Written in C
• Try to optimize cost, performance, or a
  weighted average of the two
• All values are the average of five runs
Time v. Cost
Related Work
• RO-BURST (CCGrid 2012)
 • Cannot schedule a priori
• Bicer, Chiu, and Agrawal (CCGrid 2012)
 • Cost-aware middleware for MapReduce
 • Java apps only, can budget based on time
    or cost
Review
• Exodus automatically optimizes
  application deployment over multiple
  clouds
• Extensible to support evolving use cases
• Programming language support to
  enable Turing-complete problem
  descriptions
Contributions

• AppScale cloud platform
• Neptune programming language
• MEDEA extensions to Neptune
• Exodus extensions to MEDEA
• In combination
Impact

• Publications in peer-reviewed conferences
• Best Paper award for Neptune at HPDC’s
  ScienceCloud
• All work done released as open source
• >10,000 downloads of AppScale / Neptune
Future Work

• Autoscaling in conjunction with IaaS
• Adaptive profiling for app execution
• Cost-aware fault tolerance
• Budgeting and deadlines for entire Exodus
  programs, across invocations to exodus()
Thanks
• To my advisor, Chandra Krintz
• To my committee, Amr El Abbadi and John
  Gilbert
• To the AppScale team, especially co-lead
  Navraj Chohan
• To my family for their continued support
• To all of you for coming!

Más contenido relacionado

La actualidad más candente

Tech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache StratosTech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache StratosVishanth Bala
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeployAmazon Web Services
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructureVille Seppänen
 
StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)Simba Khadder
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalaspyker
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014Amazon Web Services
 
Serverless Architectures on AWS Lambda
Serverless Architectures on AWS LambdaServerless Architectures on AWS Lambda
Serverless Architectures on AWS LambdaSerhat Can
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWSAmazon Web Services
 
Five Years of EC2 Distilled
Five Years of EC2 DistilledFive Years of EC2 Distilled
Five Years of EC2 DistilledGrig Gheorghiu
 
Building a CICD Pipeline for Containers - DevDay Austin 2017
Building a CICD Pipeline for Containers - DevDay Austin 2017Building a CICD Pipeline for Containers - DevDay Austin 2017
Building a CICD Pipeline for Containers - DevDay Austin 2017Amazon Web Services
 
AWS Lambda from the Trenches
AWS Lambda from the TrenchesAWS Lambda from the Trenches
AWS Lambda from the TrenchesYan Cui
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentAxel Fontaine
 
AWS Lambda and the Serverless Cloud -Pop-up Loft
AWS Lambda and the Serverless Cloud -Pop-up LoftAWS Lambda and the Serverless Cloud -Pop-up Loft
AWS Lambda and the Serverless Cloud -Pop-up LoftAmazon Web Services
 
Running Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWSRunning Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWSAmazon Web Services
 
Heterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixHeterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixJen Aman
 

La actualidad más candente (20)

Tech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache StratosTech Talk on Autoscaling in Apache Stratos
Tech Talk on Autoscaling in Apache Stratos
 
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
(DEV302) Hosting ASP.Net 5 Apps in AWS with Docker & AWS CodeDeploy
 
DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop DevOpsCon Cloud Workshop
DevOpsCon Cloud Workshop
 
Sas 2015 event_driven
Sas 2015 event_drivenSas 2015 event_driven
Sas 2015 event_driven
 
Docker in the Cloud
Docker in the CloudDocker in the Cloud
Docker in the Cloud
 
Journey towards serverless infrastructure
Journey towards serverless infrastructureJourney towards serverless infrastructure
Journey towards serverless infrastructure
 
StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)StreamSQL Feature Store (Apache Pulsar Summit)
StreamSQL Feature Store (Apache Pulsar Summit)
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinal
 
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
(APP309) Running and Monitoring Docker Containers at Scale | AWS re:Invent 2014
 
eCAP Developer Walkthru
eCAP Developer WalkthrueCAP Developer Walkthru
eCAP Developer Walkthru
 
Serverless Architectures on AWS Lambda
Serverless Architectures on AWS LambdaServerless Architectures on AWS Lambda
Serverless Architectures on AWS Lambda
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
 
Five Years of EC2 Distilled
Five Years of EC2 DistilledFive Years of EC2 Distilled
Five Years of EC2 Distilled
 
Building a CICD Pipeline for Containers - DevDay Austin 2017
Building a CICD Pipeline for Containers - DevDay Austin 2017Building a CICD Pipeline for Containers - DevDay Austin 2017
Building a CICD Pipeline for Containers - DevDay Austin 2017
 
AWS Lambda from the Trenches
AWS Lambda from the TrenchesAWS Lambda from the Trenches
AWS Lambda from the Trenches
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App Deployment
 
AWS Lambda and the Serverless Cloud -Pop-up Loft
AWS Lambda and the Serverless Cloud -Pop-up LoftAWS Lambda and the Serverless Cloud -Pop-up Loft
AWS Lambda and the Serverless Cloud -Pop-up Loft
 
Running Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWSRunning Containerised Applications at Scale on AWS
Running Containerised Applications at Scale on AWS
 
Heterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At NetflixHeterogeneous Workflows With Spark At Netflix
Heterogeneous Workflows With Spark At Netflix
 

Similar a Ph.D. Defense

Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetupcornelia davis
 
Moving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesMoving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesHussein Salman
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los AngelesVMware Tanzu
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015WaveMaker, Inc.
 
Containers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatAmazon Web Services
 
Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Thomas Rausch
 
Lightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsLightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsEUBrasilCloudFORUM .
 
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...DevOps Enterprise Summit
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAmazon Web Services
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014Hojoong Kim
 
Enabling the Deployment of Edge Services with the Open Network Edge Services ...
Enabling the Deployment of Edge Services with the Open Network Edge Services ...Enabling the Deployment of Edge Services with the Open Network Edge Services ...
Enabling the Deployment of Edge Services with the Open Network Edge Services ...Liz Warner
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native BootcampVMware Tanzu
 
Cloud Deployment Toolkit
Cloud Deployment ToolkitCloud Deployment Toolkit
Cloud Deployment ToolkitBret Piatt
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassPaul Withers
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric meshMikkel Mørk Hegnhøj
 
A performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop ClustersA performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop ClustersKumari Surabhi
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureSergii Kryshtop
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureKatherine Golovinova
 

Similar a Ph.D. Defense (20)

Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry MeetupPivotal Container Service (PKS) at SF Cloud Foundry Meetup
Pivotal Container Service (PKS) at SF Cloud Foundry Meetup
 
Moving Applications into Azure Kubernetes
Moving Applications into Azure KubernetesMoving Applications into Azure Kubernetes
Moving Applications into Azure Kubernetes
 
.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles.NET Cloud-Native Bootcamp- Los Angeles
.NET Cloud-Native Bootcamp- Los Angeles
 
01-06 OCRE Test Suite - Fernandes.pdf
01-06 OCRE Test Suite - Fernandes.pdf01-06 OCRE Test Suite - Fernandes.pdf
01-06 OCRE Test Suite - Fernandes.pdf
 
Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015Docker & aPaaS: Enterprise Innovation and Trends for 2015
Docker & aPaaS: Enterprise Innovation and Trends for 2015
 
Containers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red HatContainers Anywhere with OpenShift by Red Hat
Containers Anywhere with OpenShift by Red Hat
 
Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...Test cloud application deployments locally and in CI without staging environm...
Test cloud application deployments locally and in CI without staging environm...
 
Lightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsLightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to Functions
 
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
Greg Maxey - Electric Cloud - Process as Code: An Introduction to the Electri...
 
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a TimeAWS Summit Auckland - Moving MS .NET Applications One Container at a Time
AWS Summit Auckland - Moving MS .NET Applications One Container at a Time
 
Open shift and docker - october,2014
Open shift and docker - october,2014Open shift and docker - october,2014
Open shift and docker - october,2014
 
Enabling the Deployment of Edge Services with the Open Network Edge Services ...
Enabling the Deployment of Edge Services with the Open Network Edge Services ...Enabling the Deployment of Edge Services with the Open Network Edge Services ...
Enabling the Deployment of Edge Services with the Open Network Edge Services ...
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Cloud Deployment Toolkit
Cloud Deployment ToolkitCloud Deployment Toolkit
Cloud Deployment Toolkit
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
Cloud computing: highlights
Cloud computing: highlightsCloud computing: highlights
Cloud computing: highlights
 
Service fabric and azure service fabric mesh
Service fabric and azure service fabric meshService fabric and azure service fabric mesh
Service fabric and azure service fabric mesh
 
A performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop ClustersA performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
A performance analysis of OpenStack Cloud vs Real System on Hadoop Clusters
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft Azure
 
Hosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft AzureHosting Microservices in Microsoft Azure
Hosting Microservices in Microsoft Azure
 

Último

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 

Último (20)

Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 

Ph.D. Defense

  • 1. Automated Configuration and Deployment of Applications in Heterogeneous Cloud Environments Chris Bunch Ph.D. Defense November 30, 2012
  • 2. Public Cloud Computing • Utility-oriented approach to computing • Pay for only resources that you use • Rent resources from large datacenters maintained by Amazon, Microsoft, Google • Don’t maintain a rack in your office - just use somebody else’s rack
  • 3. Using the Cloud for Apps • Cloud services have seen uptake in: • Web services domain • High performance computing • General-purpose applications
  • 4. Challenges in Cloud Adoption • Primary barriers to entry: • Wide array of services • Varying cost models • Many technologies providing APIs
  • 5. Plethora of Services • Storage Services • Queue Services • Compute Services • Fully Managed Software Stacks • Web services only • MapReduce only
  • 6. Varying Cost Models • Unlimited usage per-hour (EC2) • Unlimited usage per-wall-clock-hour (Azure) • First 15-minutes, then charge per-minute (App Engine) • Meter per API call (SQS, App Engine)
  • 7. Accessing Services via APIs • Need an API to connect your application to the cloud service • First-party native libraries, per-language • Typically only for “popular” languages • Cross-language serialization services • Convert from your language to “popular” language
  • 8. Thesis Question • How can we enable applications to be executed on cloud systems, by automatically configuring and deploying applications across cloud offerings that vary based on the type of service offered, cost model employed, and APIs via which services are exposed?
  • 9. Our Solution • Provide research tools to execute computationally intensive applications • Automatically configure and deploy applications for use with cloud services • Programming language support, to facilitate expressive workflows
  • 10. Design Space Language / Platform Domain Support AppScale (IEEE Web Services CLOUD10) Neptune High Performance (ScienceCloud10, Computing DataCloud12) MEDEA (IPDPS13)*, General Purpose Exodus (CCGrid13)*
  • 11. Design Space Language / Platform Domain Support AppScale (IEEE Web Services CLOUD10) Neptune High Performance (ScienceCloud10, Computing DataCloud12) MEDEA (IPDPS13)*, General Purpose Exodus (CCGrid13)*
  • 12. Cloud Computing • Three tiers of abstraction: • Infrastructure: Scalable hardware • Platform: Scalable software stack • Software: Scalable applications
  • 13. PaaS for Science • Need a cloud that is extensible to: • Services from competing cloud vendors • Differing cost models from each cloud • Varying APIs offered by cloud vendors • And it must be open source!
  • 14. Introducing AppScale • An open source implementation of the Google App Engine APIs • Deploys over Amazon EC2 or Eucalyptus • Configures and deploys automatically • User only needs to specify the number of nodes to run over
  • 16. Limitations • “Recipes” are statically defined • Limited to three-tier web applications • Runtime environment is restricted to enable autoscaling • Not cost-aware
  • 17. Design Space Language / Platform Domain Support AppScale (IEEE Web Services CLOUD10) Neptune High Performance (ScienceCloud10, Computing DataCloud12) MEDEA (IPDPS13)*, General Purpose Exodus (CCGrid13)*
  • 18. HPC in the Cloud • Easy access to vast resources • Hard to automatically configure and deploy libraries • Requires in-depth knowledge of each technology required • Hard to get performance on opaque cloud • Wide range of APIs for similar services
  • 19. Introducing Neptune • A domain specific language for running HPC applications • Supports MPI, UPC, X10 programs • Configures and deploys automatically • Scientists need only specify the number of nodes to execute over
  • 21. Language-Based Deployment neptune :type => :mpi, :code => “/home/user/cpi”, :nodes_to_use => 32, :output => “/output/cpi-32”
  • 22. Automated Application Execution • Calls to neptune() are translated into SOAP messages, dispatched to AppScale • AppScale pulls in library support that details how to run each type of job • Acquires nodes, runs job, saves output • Cost awareness for VMs
  • 23. Limitations • “Recipes” for each framework are static • Must be pre-defined by an expert user • Software must be pre-installed on VMs • Metadata not easily accessible • Limited by underlying hardware
  • 24. Design Space Language / Platform Domain Support AppScale (IEEE Web Services CLOUD10) Neptune High Performance (ScienceCloud10, Computing DataCloud12) MEDEA (IPDPS13)*, General Purpose Exodus (CCGrid13)*
  • 25. Problem Domain • Easy access to vast resources • Hard to automatically configure and deploy • Hard to evaluate services b/c of: • The abstractions they expose • The cost model they charge with • Varying APIs for each language
  • 26. Introducing MEDEA • Extends Neptune to provide an execution model for applications • Abstract away compute, storage, queue services via a common interface • Automatically manage cost for the user • Automatically connect competing APIs
  • 27. High-Level Design • Scripting language support • Maximizes flexibility and interoperability with other code • Deployment engine (PaaS layer) • Automatically configure and deploy applications over cloud services
  • 29. Scripting Language Support • Extends the Neptune DSL • Adds a function call, medea() • Users specify code, inputs, services to use • (M)essages the Deployment Service with this data, called a “task”
  • 30. n-body in AWS result = medea( :executable => “python”, :code => “/home/user/nbody.py”, :compute => “ec2”, :storage => “s3”, :queue => “sqs”) puts results.stdout
  • 31. n-body in Azure result = medea( :executable => “python”, :code => “/home/user/nbody.py”, :compute => “azure-compute”, :storage => “azure-storage”, :queue => “azure-queue”) puts results.stdout
  • 32. Deployment Engine • Extends the AppScale PaaS • Consists of two new services: • Task Manager: Manages workers, tasks • Task Worker: Executes tasks • Receives task (M)essages from Scripting Language Support, code, inputs to execute
  • 33. (E, D) Queue services • Task Manager (E)nqueues the task • Task Workers (D)equeues tasks • Both use a QueueInterface, requiring: • FIFO queue: Push / Pop / Queue Length • Supports Amazon, Google, Microsoft, VMWare Queues
  • 34. (E) Compute services • Task Manager spawns Task Workers in the specified clouds • Task Workers (E)xecute tasks • Follows ComputeInterface, requiring: • dispatch_task / get_task_status / get_task_results • Supports EC2, Eucalyptus, App Engine, Azure
  • 35. (A) Storage services • Task Workers store the following outputs: • Standard output of job • Standard error of job • Metadata • User’s script (A)ccesses result of job • Supports S3, App Engine, Azure, and AppScale datastores (HBase, Cassandra, etc.)
  • 36. Use Cases • Execute scientific apps and share the results • Execute quickly (but expensively) • Execute inexpensively (but slowly) • Community cloud for benchmarking programming language performance
  • 37. Scientific Use Cases • Computational systems biology application • Simulates conditions found in yeast • Written in Python, Java • Deploy to EC2, App Engine, Azure • All values are the average of five runs
  • 40. Polyglot Science • Implementations of the n-body application in eleven programming languages • Execute with Amazon EC2, SQS, and S3 • Measure time taken to execute, cost • All values are the average of ten runs
  • 42. n-body in Amazon EC2 Language Per-Second Cost C $0.0069 Java $0.0075 Python $0.5876 Ruby $2.1944 Scala $0.0075
  • 43. n-body across clouds Cloud Cost To Execute Amazon EC2 $0.32 App Engine (Java) $0.0013 App Engine $0.0049 (Python) Microsoft Azure $0.02
  • 44. Related Work • Pegasus / Swift (WORKS ’11) • YCSB (SOCC ‘10),YCSB++ (SOCC ‘11) • Elastisizer (SOCC ’11) • Condor / StratUm (BIOINFORMATICS ‘12) • AME (WORKS ’11) • Google App Engine Pipeline API
  • 45. Review • MEDEA automatically configures and deploys applications, over multiple clouds • Abstracts away cloud compute, storage, and queue services from the user • Extensible to support other clouds • Programming language support to enable Turing-complete workflows
  • 46. Limitations • Does not intelligently schedule • Many different hardware profiles offered by compute services • Hard to use them effectively b/c of: • Opaque pricing models • Lack of Cost APIs
  • 47. Introducing Exodus • An Application Programming Interface (API) • Determines how to “optimally” execute tasks, when “optimal” means: • Minimizing cost • Minimizing total execution time • User-defined functions
  • 49. API Support • Adds a Neptune function call, exodus() • Users specify :optimize_for: • Cost, performance, or a user’s Function • Profiles code locally or remotely • Estimates time and cost to use each instance type at each number of machines • Constructs and executes tasks via MEDEA
  • 50. example results = exodus( :clouds_to_use => [:AmazonEC2], :code => “/home/user/map.py”, :num_tasks => 1000, :optimize_for => :cost )
  • 51. example results = exodus :clouds_to_use => [:AmazonEC2], :code => “/home/user/map.py”, :num_tasks => 1000, :optimize_for => float func(t,c) { ... }
  • 52. Cost-Aware Science • Same app as evaluated with MEDEA • Computational systems biology application • Written in C • Try to optimize cost, performance, or a weighted average of the two • All values are the average of five runs
  • 54. Related Work • RO-BURST (CCGrid 2012) • Cannot schedule a priori • Bicer, Chiu, and Agrawal (CCGrid 2012) • Cost-aware middleware for MapReduce • Java apps only, can budget based on time or cost
  • 55. Review • Exodus automatically optimizes application deployment over multiple clouds • Extensible to support evolving use cases • Programming language support to enable Turing-complete problem descriptions
  • 56. Contributions • AppScale cloud platform • Neptune programming language • MEDEA extensions to Neptune • Exodus extensions to MEDEA • In combination
  • 57. Impact • Publications in peer-reviewed conferences • Best Paper award for Neptune at HPDC’s ScienceCloud • All work done released as open source • >10,000 downloads of AppScale / Neptune
  • 58. Future Work • Autoscaling in conjunction with IaaS • Adaptive profiling for app execution • Cost-aware fault tolerance • Budgeting and deadlines for entire Exodus programs, across invocations to exodus()
  • 59. Thanks • To my advisor, Chandra Krintz • To my committee, Amr El Abbadi and John Gilbert • To the AppScale team, especially co-lead Navraj Chohan • To my family for their continued support • To all of you for coming!