Your SlideShare is downloading. ×
Enterprise Cloud with IBM & Chef (ChefConf 2013)
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Enterprise Cloud with IBM & Chef (ChefConf 2013)


Published on

  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. © 2013 IBM CorporationEnterprise Cloud with IBM & Chef#ChefConf 2013Ann Marie Fred, SmartCloud Designer and Developer, IBMMichael Elder, Senior Technical Staff Member, IBM
  • 2. © 2013 IBM Corporation1IBM’s statements regarding its plans, directions, and intent are subject to change orwithdrawal without notice at IBM’s sole discretion.Information regarding potential future products is intended to outline our general productdirection and it should not be relied on in making a purchasing decision.The information mentioned regarding potential future products is not a commitment, promise,or legal obligation to deliver any material, code or functionality. Information about potentialfuture products may not be incorporated into any contract. The development, release, andtiming of any future features or functionality described for our products remains at our solediscretion.Please notePerformance is based on measurements and projections using standard IBM benchmarks ina controlled environment. The actual throughput or performance that any user will experiencewill vary depending upon many factors, including considerations such as the amount ofmultiprogramming in the user’s job stream, the I/O configuration, the storage configuration,and the workload processed. Therefore, no assurance can be given that an individual userwill achieve results similar to those stated here.
  • 3. © 2013 IBM Corporation2In this session:Our Pain Points: Sound familiar?SmartCloud Provisioning and Chef – Keep it simple.SmartCloud Orchestrator and Chef –Add management and orchestration.Continuous delivery of a cloud provider.Starting to drink our own champagne – The rubber hits the road.SmartCloud Continuous Delivery and Chef – A fully integrated tool chain fordev/test.Introducing WeaverLooking Forward (we have a secret!)Watch this space!
  • 4. © 2013 IBM Corporation3Why Transform…Our Pain Points. Sound familiar?q  Huge footprint of physical servers andunknown virtualised stateq  Underutilized hardware: average of5-9% utilization per serverq  Duplication in the capital request andprocurement processq  Long lead time to access additionalservers to service spikes in dev/testq  Development and IT labs had a varietyof tooling from home-grown to maturedimplementationsq  Teams heavily leveraging hypervisormgmt tools, images were everywhere!!q  Badly integrated reporting of defects,build quality, and production issuesq  Backlog of agile release contentcoming from dev to testq  Manual (tribal) processes for releaselack repeatability/speedq  Testing run on simple environmentsmissing production issuesReduce capital expenseand maximize existinginvestmentStandardize &Automate to drive AgileDevelopment andInnovationOptimize the Agiledevelopment benefit byusing DevOpsprinciples
  • 5. © 2013 IBM Corporation4Make it easy to consume Chef on IBM SmartCloudSmartCloud Provisioning & Chef
  • 6. © 2013 IBM Corporation5SmartCloud Provisioning and Chef – Keep it simple.•  Make it easy•  Use Chef•  Use IBM’sVirtual SystemPatterns•  Provide DNDinterface forcreating newpatterns•  Support the IBMCloud Providers
  • 7. © 2013 IBM Corporation6Search & Download from the Community
  • 8. © 2013 IBM Corporation7Generate Script Package for the Chef Role
  • 9. © 2013 IBM Corporation8Create a Virtual System Pattern and Add Script Packages
  • 10. © 2013 IBM Corporation9Deploy a Multi-node Pattern
  • 11. © 2013 IBM Corporation10Add management and orchestrationSmartCloud Orchestrator & Chef
  • 12. © 2013 IBM Corporation11SmartCloud Orchestrator Chef Toolkit
  • 13. © 2013 IBM Corporation12Enable Better Collaboration for the Enterprise
  • 14. © 2013 IBM Corporation13Example Approval Process in SCO
  • 15. © 2013 IBM Corporation14Use Chef to make us betterUsing Chef for Our Projects
  • 16. © 2013 IBM Corporation15Provision TestEnvironment in CloudDeploy App from dev totest environmentConfigure MiddlewareOrchestrate FunctionalPerformance, Securityand Integration TestsProvision developmentenvironment in CloudBuild AutomationUnit Test OrchestrationPackage & ReleaseDeliverablesSmoke Test OrchestrationDeploy ReleaseDeliverables toproduction environmentOrchestrate smoke testfor production readinessProvision stagingEnvironment in CloudOrchestrate UserAcceptance TestsDevelopment Testing Staging ProductionCon$nuous  Delivery  Important to drink our own champagneGoals for SmartCloud Orchestrator dev/test
  • 17. © 2013 IBM Corporation16The GoalEnable component teams to develop their code in amodular manner while continuously integrating andvalidating the end-to-end functional and non-functionalquality of the product.We needed:• Running, testable software.• Build results we can trust.
  • 18. © 2013 IBM Corporation17Our Delivery Pipeline – Multi-Platform Product Delivery
  • 19. © 2013 IBM Corporation18Component Delivery Process – Multi-Geo & Timezone"VIL Dev"Write code"SCUI Dev"VIL Code"SCUI Code"Write code"VIL Component"SCUI Component"VIL component build"SCUI component build"(Component) BVT" CVT"Pass! Pass!Fail! Fail!Pass! Pass!Fail! Fail!(Component) BVT" CVT"Product Driver"SCO Product Build"On to Integration!"
  • 20. © 2013 IBM Corporation19Integration Delivery Process"Product Driver"(Product) FVT"SVT"PVT"Gemini"Product Release"Pass + Feature Complete!(Product) BVT"
  • 21. © 2013 IBM Corporation20Gemini Deployment•  Jenkins jobs to publish the approved component builds to the ChefServer•  Trigger chef client runs to drive deployment•  Kick off test automation and report resultsContinuousDeploymentOur Delivery Pipeline: Continuous Deployment
  • 22. © 2013 IBM Corporation21Help Enterprise Customers with Continuous DeliverySmartCloud Continuous Delivery& Chef
  • 23. © 2013 IBM Corporation22Implement delivery pipeline with IBM SmartCloud Continuous DeliveryInput changes, track, deploy, test and reportVersion andtrack deliveryassetsProvisionenvironmentDeploy andconfigureapplicationRunautomatedtestsReportContinuous Delivery PipelineDevelopmentCodeChange,Unit testsFeedbackon ChangeTestAppChange,Auto TestTestResultsOperationsEnvironmentPatternsReleasedashboards
  • 24. © 2013 IBM Corporation23Streamline Delivery23  TestAutomationProductionConfiguration(Code/Scripts)Deliver ChangesVirtual PatternsBest PracticeWorkflow AutomationRepository Private CloudManageDeliverablesProvisionEnvironmentVerifyChangesMonitor &MaintainDeliver Changes, Manage Deliverables, Provision, Test, Dashboard, Monitor
  • 25. © 2013 IBM Corporation24Example:  Pa#ern  for  HelloWorldEnvironment  # topology with an identifier!topology(:hello_world_env) {!name Hello World Environment!description Hello World JSP app on a single node !!# Provider responsible for provisioning nodes within the topology!provider :systemz, :url => https://urltoservices[ZOSMF?]’!!# A web server hosting the hello world application component!node (:app_server) {!# The node is provisioned using the image identifier by the provider – what does this mean for Z?!provider :image => ’websphere_liberty-1.0’!!# The Hello World component to be provisioned with key properties!component(:hello_world_app) {!name “Hello World Application”!description “Provides an embedded Jetty with a hello world web application”!property :asset_id => hello_world_app!property :asset_version => 2.0.3!}!!# Automation defined to provision the Hello World app using property values from within
# the topology!chef_automation (:hello_world_app_role) {!role webapp_role!property :port => 8080 !property :context_root => /!property :war_archive => "{hello_world_app.asset_id}_#!{hello_world_app.asset_version}.war”!} !}! 24Describe each node in thepatternDescribe components & theirproperties within the nodeBind to Chef RolesconceptIBM Confidential
  • 26. © 2013 IBM Corporation25Example: Pattern for JKE 2 Node Environmentimport “web_platform.weaver” # Pattern for Platform!import ”jke_app.weaver” # Pattern for Application!!topology (:qa_environment) {!name ”Integration Testing Environment"!description "JKE App on two node IWD pattern”!!use :jke!use :qa_platform!!# Realize application nodes onto pattern nodes!realizes jke.app_server => qa_platform.tomcat_server!realizes jke.db_server => qa_platform.mysql_server!!# Environment specific properties !property :build_tag => ”TODO", :description => "Build id from build system”!!# Set properties for the infrastructure node (excerpt)! = “JKEBanking_#{build_tag}”!!app_server.hello_world_app_role.port = 9080!!!# Override other values in any of the application or pattern topology (if needed)!jke.app_server.web_app.context_root = “/”!}!jke app(Logical App)QA  Environment  web_platform(CloudInfrstracture)At  this  layer,  we’re  se8ng  proper;es  and  binding  some  dependencies,  but  not  a  lot  of  detail  on  how  to  realize  the  running  environment  25IBM ConfidentialComposable  language  –  factor  our  app  &  plaEorm  
  • 27. © 2013 IBM Corporation26Ruby  API  &  Command  Line  Interface  !!# Ruby code for deployment (!e =“hello_world_env.weaver”)!e.deploy # can be done via Command Line Interface or Ant tasks as well)!!!!!!!# Get hostname, port, and context from running Environment!hostname = e.app_server.hostname!port = e.app_server.hello_world_app_role.port!context = e.app_server.hello_world_app_role.context_root !puts http://#{hostname}#{context}:#{port} # prints the web app url!26Translates  the  paKern  into  a  series  of  API  calls  to  the  underlying  provider  (like  OpenStack)  IBM Confidential
  • 28. © 2013 IBM Corporation27Looking Forward
  • 29. © 2013 IBM Corporation28UrbanCode improves software delivery enabling continuous releaseand deployment via Application Release Automation (ARA)Drive down cost. Reduce the amountof manual labor, resource wait-time,and rework•  Push-button deployments improve productivityof developer and operations staffSpeed time to market. Increase frequencyof software delivery•  Automated software release and deploymentreduces errors•  Built-in best practicesReduce risk. Deliver higher quality applicationreleases with increased compliance•  End-to-end transparency, auditabilityand reduced time to feedbackEnabling clients to more rapidly deliver mobile, cloud, big data and traditionalapplications28Application BlueprintIBM Confidential until April 22, 2013
  • 30. © 2013 IBM Corporation29Watch this space!We are investing a great deal of effort into using Chef and continuousdelivery ourselves, and making it easier for our enterprise customers touse them as well.Read the Enterprise DevOps Blog on developerWorks: about SmartCloud Continuous Delivery: on making automated tests faster: Enterprise DevOps Blog,Making Your Automated Tests FasterVisit us at our Ped!
  • 31. © 2013 IBM Corporation30Acknowledgements and Disclaimers:© Copyright IBM Corporation 2013. All rights reserved.§  U.S. Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP ScheduleContract with IBM Corp.§  Please update paragraph below for the particular product or family brand trademarks you mention such as WebSphere,DB2, Maximo, Clearcase, Lotus, etcIBM, the IBM logo,, [IBM Brand, if trademarked], and [IBM Product, if trademarked] are trademarks or registered trademarksof International Business Machines Corporation in the United States, other countries, or both. If these and other IBM trademarkedterms are marked on their first occurrence in this information with a trademark symbol (® or ™), these symbols indicate U.S.registered or common law trademarks owned by IBM at the time this information was published. Such trademarks may also beregistered or common law trademarks in other countries. A current list of IBM trademarks is available on the Web at “Copyright andtrademark information” at you have mentioned trademarks that are not from IBM, please update and add the following lines:[Insert any special 3rd party trademark names/attributions here]Other company, product, or service names may be trademarks or service marks of others.Availability. References in this presentation to IBM products, programs, or services do not imply that they will be available in allcountries in which IBM operates.The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They areprovided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance oradvice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in thispresentation, it is provided AS-IS without warranty of any kind, express or implied. IBM shall not be responsible for any damagesarising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation isintended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or alteringthe terms and conditions of the applicable license agreement governing the use of IBM software.All customer examples described are presented as illustrations of how those customers have used IBM products and the results theymay have achieved. Actual environmental costs and performance characteristics may vary by customer. Nothing contained in thesematerials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specificsales, revenue growth or other results.
  • 32. © 2013 IBM Corporation31SCD Artifact Library(RAM)Virtual SystemIBM SmartCloud Provisioning(cloud console)Jazz BuildEngine(s)31Deliver  changes Request  delivery Post  results Publish  packages Request  pa:ern deployment Provision  pa:ern Retrieve  packages 31Rational Team ConcertclientSCD Client ExtRational Team ConcertserverSCD Server ExtConfigure  application Rational Quality ManagerVerify  configured  application Request  automated  verification 1.  Developer  delivers  application  or  configuration  changes 2.  RTC  triggers  delivery  request 3.  Worker  services  request  –  build/package  of  application  &  automation 4.  Worker  publishes  application  &  automation  packages 5.  Worker  requests  pa:ern  deployment  in  cloud 6.  PaDern  provisioning  triggers  (a)  package  retrieval  and  (b)  package  execution  using  Chef  Solo. 7.  Worker  requests  automated  verification  through  RQM,  which  triggers  automated  tests 8.  Worker  reports  results  back  to  RTC