Greasing The Wheels


Published on

Using Cloud Techniques to Remove Friction from Software Development. This presentation highlights how one can apply cloud architecture techniques, or use the cloud directly, along with agile development to reduce development friction.

This presentation was given at Engineers Ireland on January 18th 2012 as part of a session on using cloud computing.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Thanks for attending. About this presentation:\n- tough topic \n- dev and cloud \n\nAbout me: I am mobile architect with Citi, I was a cloud architect at HP \n\nThis is not about the business case for cloud, nor a sales pitch. It is about the technical aspects.\n\nSome people think of the cloud as an operating system with it’s specific APIs and deployment, runtime behaviours.\n \n The advantages of Cloud computing are usually thought of as runtime/deployment advantages and programming API level advantages.\n \n\n
  • First UP \n\nSome points of friction - \nDuring Development\n\ndeploying\nconfiguring\ndealing with runtime issues (unavailable services, overloaded services)\nmonitoring\n\nWHAT Are some of your pain points?\n
  • laundry list of friction points - not exhaustive! \n\n\n
  • \n
  • \n
  • \n
  • Clearly cant talking about addressing all these issues, but will show how, in general, alot of these can be resolved\n\n\nSo far -dev problems\nNOW - Cloud overview\n\n\n \n\n
  • + more: reliability, performance, cost (opex vs capex) \n
  • \n
  • API - convention\nrest based\n \n\n
  • \n
  • \n
  • Ultimately \nCloud is the drive towards simplicity\n\n\n
  • Predictability - the advantage of agile development and cloud\nWe can use cloud (+Agile) to remove hope from software releases:\n- I hope the release works\n- I hope the deployment works\n\n
  • What’s involved in Software dev?\n
  • What’s involved in Software dev?\n
  • \n
  • \n
  • talk about push advantages - allows automation and not waiting for \ncloudfoundry and heroku approaches.\n\nmulti deploy versions and multi-tenancy : how does this help? \n- multi deploy allows you to limit releases and bed them in\n- gradually spread usage of release as it becomes more stable\n\n
  • \n
  • \n
  • \n
  • Talk about heroku and cloudfoundry\nmulti language\n\n
  • Talk about heroku and cloudfoundry\nmulti language\n\n
  • \n
  • types of resources and files \nallow tools to configure runtime values\n\n
  • multi-tenancy - multiple users share the same runtime\n multi-version - multiple software versions deployed and used simultaneously\n monitoring and alerts when QoS expectations breached\n allows releases to stabilise and bed in\n migrate more users to stable release\n
  • \n\n
  • apis are the advantage of cloud\nreduce integration cost + time\n\n
  • \n
  • \n
  • Greasing The Wheels

    1. 1. GREASING THE WHEELS Engineers Ireland January 18th 2012 Aman Kohli
    2. 2. Friction inSoftware
    3. 3. SOME PROBLEMS DURING DEVELOPMENTSetting ExpectationEstimationQualityCommunicationMaintainability
    4. 4. PROBLEMS DEPLOYINGMaking packages available to deployment groupsInstalling the packagesConfiguring packages with runtime environment parametersSmoke Testing to Ensure Installation works
    5. 5. PROBLEMS AT RUNTIMEMonitoring usage at runtimeResource monitoringAdjusting to new usage patternsDeploying patchesStabilising releasesAllowing multiple users to use same infrastructure
    6. 6. CAPACITY & AVAILABILITY PROBLEMSComponents may failComponents may become overloaded and slow to respondNetwork connections to components may not be reliable
    7. 7. Using Cloud Techniques To RemoveFriction From Software Development
    8. 8. Cloud CharacteristicsDeployment and Provisioning Quality of Service Runtime Usage Monitoring Software DevelopmentDevelopment Process Production Management
    9. 9. Deploying and ProvisioningAutomated - API and tool drivenAgileDevice and Location Neutral
    10. 10. RuntimeMulti-tenancyVersion independenceSecureAPI
    11. 11. Flexible QoSQualities of Service - Scalability - Availability - ReliabilityAPIs to set and configure levelsTailored and Flexible
    12. 12. Usage Monitoring diagnostic, billing
    13. 13. Cloud drives towardsSimplicityvia simple APIs and automation
    14. 14. Cloud gives runtime and deploymentPredictability
    16. 16. SOFTWARE DEVELOPMENTDEVELOPMENT PRODUCTIONPROCESS (ALM) MANAGEMENTrelease planning installing + configuringdevelopment + unit testing supporting released softwareacceptance testing maintaining live systemspackaging/bundling for release
    17. 17. DEVELOPMENT PROCESSAgile address the points of friction in the process
    18. 18. AGILE DEVELOPMENTFacilitateAutomateBe Consistent Collaborate
    19. 19. PRODUCTION MANAGEMENT Cloud offers solutions to these production issues
    21. 21. PUSH BASED DEPLOYMENTPackages are pushed when ready to deployDeployment engine is automatedWill unpack, install and configureWill bring online
    22. 22. PUSH BASED DEPLOYMENT Automated Configuration files standardised User error reduced Configuration errors reduced
    23. 23. DEPLOYMENT$ git push -f herokuheroku uses git - a cloud based SCM - for deployment
    24. 24. DEPLOYMENT $ vmc pushcloudfoundry can be used for on-premises or off-premises cloudsagent notified for deployment
    25. 25. WHY IS THIS BETTER?• Limit Installation User Error• Automated means repeatable• Deployed artefacts fully traceable to underlying source
    26. 26. STANDARDISED CONFIGURATIONDeployment tools substitute runtime environment details fordata sources, messaging end-points
    27. 27. RUNTIME SUPPORT AND MAINTENANCE multi-tenancy multi-version monitoring and alerting QoS
    28. 28. PRODUCTION MANAGEMENTpush model for deploymentstandardised configuration filesmultiple deployed versions and multi-tenancy allow easiersupport and maintenance
    29. 29. CLOUD APIS Custom Code Familiar Middleware and Data Sources SimpleProvisioning Environment Powerful Comprehensive Runtime EnvironmentAPIs for Everything Restful APIs
    30. 30. FOLLOW THE PATTERNA set of Restful APIs for your software components, to controltheir lifecycle, gather usage.
    31. 31. THANKS!