• Share
  • Email
  • Embed
  • Like
  • Private Content
 

How Cloudify uses Chef as a Foundation for PaaS

on

  • 3,649 views

As PaaS is becoming more prevalent than ever, most PaaS environments and frameworks are still strongly opinionated and allow for very limited control and extensibility. ...

As PaaS is becoming more prevalent than ever, most PaaS environments and frameworks are still strongly opinionated and allow for very limited control and extensibility.

Extending a PaaS framework requires deep understating of its internals at best, and in many cases in not even possible.

Cloudify, a new open source PaaS framework, has taken a different approach, by using recipes (As opposed to heavyweight coding and platform extension) as means to introduce new application stacks to the PaaS layer. You can think of it as extending the recipe model of Chef to support application level concerns, such as orchestration, dependency management, multi-tier and multi-host deployments, monitoring and autoscaling.

This presentation covers the foundations of Cloudify, and how it leverages Chef as a key enabler for an open PaaS framework.

Statistics

Views

Total Views
3,649
Views on SlideShare
2,730
Embed Views
919

Actions

Likes
4
Downloads
97
Comments
3

6 Embeds 919

http://www.scoop.it 772
http://cloudifysource.tumblr.com 87
http://www.iwebcircles.com 53
https://twitter.com 3
http://webcache.googleusercontent.com 3
http://www.kred.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

13 of 3 previous next Post a comment

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    How Cloudify uses Chef as a Foundation for PaaS How Cloudify uses Chef as a Foundation for PaaS Presentation Transcript

    • How Cloudify uses Chef as a foundation for PaaS @natishalom natishalom.typepad.com GigaSpaces 2012 © All Rights Reserved 11-1
    • The Blurring line between IaaS & PaaS PaaS PaaS IaaS IaaS GigaSpaces 2012 © All Rights Reserved 11-2
    • IaaS, PaaS & Apps• IaaS & PaaS run on Software just like any App – Messaging: RabitMQ – DataBase: Postgress – Web Container• Common needs – Automation – HA – Scaling .. GigaSpaces 2012 © All Rights Reserved 11-3
    • IaaS delivers software services• IaaS Services – RDS, – SimpleDB – LoadBalancer – Memcache GigaSpaces 2012 © All Rights Reserved 11-4
    • PaaS delivers Software Services GigaSpaces 2012 © All Rights Reserved 11-5
    • But..• Services are delivered as a black-box• We have little control over the type, version or the way those services are delivered• Inconsistent behavior & management – IaaS & PaaS run on separate deployment, scaling, HA and Scaling models GigaSpaces 2012 © All Rights Reserved 11-6
    • Apps are a composite of servicesApps is a living organism – Things can fail, move, be added over time GigaSpaces 2012 © All Rights Reserved 11-7
    • Welcome to the Open Cloud– New opportunities on how to deliver IaaS & PaaS: • Share infrastructure between the two layers • Gain better control on the way services and apps are being delivered GigaSpaces 2012 © All Rights Reserved 11-8
    • Enter Chef• Why Chef? – Setup and Configure software services – As a foundation for IaaS – 100’s of cookbooks – Open Source• It only makes sense to use Chef as a foundation for PaaS GigaSpaces 2012 © All Rights Reserved 11-9
    • Enter Cloudify• Cloudify is an Open PaaS Stack• Cloudify brings DevOps & PaaS together• Integrates tightly with Chef GigaSpaces 2012 © All Rights Reserved 11-10
    • Chef & CloudifyCloudify Chef• App life cycle & • Infrastructure management orchestration (deployment (OS setup, network, security dependencies, fail- configuration) over, auto-scaling) • Setup & installation• Application management & (package, configure, install, Monitoring start) App-Centric Infrastructure-Centric GigaSpaces 2012 © All Rights Reserved 11-11
    • Cloudify & Chef Deep Dive• Integration anatomy (how things happen)• Working With Chef Client – Configuring the Chef Server information in Cloudify – Preparing a Recipe that wraps a cookbook – Running the recipe• Working With Chef Solo – Preparing the recipe – Installing chef server using chef solo• Updating the Chef Server• Interacting with Chef after deployment GigaSpaces 2012 © All Rights Reserved 11-12
    • How It WorksINTEGRATION ANATOMY Cloudify creates the virtual machines and installs Cloudify agents on them GigaSpaces 2012 © All Rights Reserved 11-13
    • How It WorksINTEGRATION ANATOMY Cloudify agents install Chef clients and run them with the the proper recipes / roles GigaSpaces 2012 © All Rights Reserved 11-14
    • How It WorksINTEGRATION ANATOMY Chef clients install the required application services GigaSpaces 2012 © All Rights Reserved 11-15
    • How It WorksINTEGRATION ANATOMY Cloudify monitors and scales the application as needed GigaSpaces 2012 © All Rights Reserved 11-16
    • Create The Recipe• Extend the base Chef Recipe to Install the run list you need service { extend "../../../services/chef" name "your service name" Extending the Chef Recipe type "DATABASE" numInstances 1 compute { Custom Service Name template "SMALL_UBUNTU" } lifecycle { startDetectionTimeoutSecs 240 Add Custom Start Detector startDetection { ServiceUtils.isPortOccupied(System.getenv()["CLOUDIFY_AGENT_ENV_PRIVATE _IP"], 3306) } } } GigaSpaces 2012 © All Rights Reserved 11-17
    • Configure The Recipe• Have the following in your recipe properties file: runParams = [ “param1": “value1”, Runtime parameters “param2": [“key1”:”subvalue1”,…] … "run_list": ["recipe[cookbook_name::recipe_name]"] ] Run list (Recipes or Roles)18 GigaSpaces 2012 © All Rights Reserved 11-18
    • Chef Server Management• The Chef server recipe has a few custom commands for management from the Cloudify CLI GigaSpaces 2012 © All Rights Reserved 11-19
    • Chef Server Custom Commands• updateCookbooks: load cookbooks to the Chef server (repo types: tar, git, svn) invoke chef-server updateCookbooks tar <url>• cleanupCookbooks: remove all cookbooks from the Chef server invoke chef-server cleanupCookbooks• listCookbooks: list all cookbooks invoke chef-server listCookbooks• knife: Run knife invoke chef-server knife cookbook list GigaSpaces 2012 © All Rights Reserved 11-20
    • Running Chef Iteratively - Examples• Invoke a chef client with role “web” invoke <service-name> run_chef role[web] client Run list Mode• Invoke Chef solo, speciying the recipe and cookbooks URL: invoke <service-name> run_chef recipe[mysql::server] solo http://somehost/cookbooks.tar.gz Run list Mode Cookbooks URL GigaSpaces 2012 © All Rights Reserved 11-21
    • Demo Time.. GigaSpaces 2012 © All Rights Reserved 11-22
    • Thank You!GET IT TODAY, IT’S OPEN SOURCE & FREE: WWW.CLOUDIFYSOURCE.ORG GITHUB.COM/CLOUDIFY/CLOUDIFY-RECIPES GigaSpaces 2012 © All Rights Reserved 11-23