Portrait of the Developer as the Artist - OpenTour Sofia


Published on

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

Portrait of the Developer as the Artist - OpenTour Sofia

  1. 1. Portrait of the developeur as
  2. 2. @chanezon French Polyglot Server Side San FranciscoDeveloper Relations
  3. 3. Patrick Chanezon Senior Director Developer Relationschanezonp@vmware.com @chanezon
  4. 4. Very freely inspired from ... and a few years as anEnterprise consultant in France before moving to California
  5. 5. 2010- George became CIO
  6. 6. What happened whileGeorge was playing Golf
  7. 7. Dreams Of my childhood30
  8. 8. Accelerando / Singularity, in a Galaxy far far away§ Even if we automate ourselves out of a job every 10 years§ ...I don’t think the singularity is near!31
  9. 9. Moores Law is for Hardware Only§ Does not apply to software§ Productivity gains not keeping up with hardware and bandwidth§ Writing software is hard, painful, and still very much a craft32
  10. 10. Predictions “The future is already here — its just not very evenly distributed” William Gibson33
  11. 11. Architecture Changes: 60’s Mainframe
  12. 12. Architecture Changes: 80’s Client-Server
  13. 13. Architecture Changes: 90’s Web
  14. 14. Architecture Changes: 2010’s Cloud, HTML5, Mobile
  15. 15. Back to Client Server: Groovy Baby!38
  16. 16. What is Cloud Computing? Cloud According to my daughter Eliette39
  17. 17. Cloud Stack - Classic Pyramid Software As A Service Platform As A Service Infrastructure As A Service40
  18. 18. Cloud Stack - By Value Software As A Service Platform As A Service Infrastructure As A Service41
  19. 19. Cloud Stack - History§ What does cloud mean, 4 main angles • Software 1994 Netscape • Infrastructure 2002 Amazon AWS • Platform 2008 Google • Development now! § Industrialization of hardware and software infrastructure like electricity beginning of 20th century§ But software development itself is moving towards craftmanship42
  20. 20. Cloud started at Consumer websites solving their needs• Google, Amazon, Yahoo, Facebook, Twitter• Large Data Sets• Storage Capacity growing faster than Moore’s Law• Fast Networks• Vertical -> Horizontal scalability• Open Source Software• Virtualization• Cloud is a productization of these infrastructures • Public Clouds Services: Google, Amazon • Open Source Software: Hadoop, Eucalyptus, Ubuntu, Cloud Foundry
  21. 21. Infrastructure44
  22. 22. IaaS/Virtualization getting mainstream§ AWS, Joyent, Rackspace,...§ Open Source projects: OpenStack, DeltaCloud, Eucalyptus§ Automation: Chef, Juju, Cloud Foundry BOSH§ Standardization? DMTF§ Inside the Firewall, Virtualization: VMware, Microsoft, Xen, KVM§ 60% of workloads are virtualized in 2012§ Easy to provision, manage instance...BUT§ Still need to manage backups, software stacks, monitor, upgrades45
  23. 23. With Infrastructure, you still need to build your own platform§ Need to build a distributed platform on top of you infrastructure§ Story of the AWS meltdown from last summer • http://blog.reddit.com/2011/03/why-reddit-was-down-for-6-of-last-24.html • http://www.readwriteweb.com/cloud/2010/12/chaos-monkey-how-netflix-uses.php • http://news.ycombinator.com/item?id=2477296 • http://stu.mp/2011/04/the-cloud-is-not-a-silver-bullet.html§ Twilio, Smugmug, SimpleGeo survived it because they built their own distributed platform on top of IaaS§ Enterprise customers want to consider Infrastructure like CDNs • Multi Cloud usage • Based on Open Source de facto standards, or full standards whenever that happens46
  24. 24. Platforms47
  25. 25. Platforms§ Raise the Unit of currency to be application & services instead of infrastructure§ Google App Engine, Cloud Foundry, Heroku, CloudBees, Amazon Elastic Beanstalk, Microsoft Azure, AppFog§ Single or a few languages, services§ Start of Multi language Polyglot platforms§ Enabler for Agile Developers -> Create Business value faster§ Lack of standards: risk, vendor lock-in§ Enterprise needs: •Control, customizability •Private/Hybrid Cloud •Avoid lock-in48
  26. 26. Agile Development Processes
  27. 27. Agility as a survival skill§ Consumer software is becoming like fashion •Phone apps, social apps, short lifetime, fast lifecycles •A/B testing§ Enterprise •Clay shirky situational apps§ Kent Beck, Usenix 2011 Talk, “Software G-Forces: the effects of acceleration” change in software process when frequency grows§ Cloud Platforms enables an Agile culture, driver for innovation •Scalability is built in the platforms •Can iterate faster •Focus on design§ Cloud Platforms lets developers focus on driving business value50
  28. 28. Main Risk: Lock-In Welcome to the hotel california Such a lovely place Such a lovely face Plenty of room at the hotel california Any time of year, you can find it here Last thing I remember, I was Running for the door I had to find the passage back To the place I was before ’relax,’ said the night man, We are programmed to receive. You can checkout any time you like, But you can never leave!51
  29. 29. Cloud Foundry: The Open PaaS • Open Source: Apache 2 Licensed • multi language/frameworks • multi services • multi cloud Ap ce pli vFabric Private rfa Postgres ca e tio Clouds Int Data Services n er Se vFabric Public vid RabbitMQTM rvi Clouds ro Msg Services ce dP Micro ou Other Clouds Cl Services52
  30. 30. CloudFoundry.COM – Multi-Tenant PaaS Operated by VMware CloudFoundry.COM (beta) Frameworks Services vCenter / vSphere Infrastructure53
  31. 31. Micro Cloud FoundryTM – Industry First Downloadable PaaS Micro Cloud Foundry Frameworks Services Your Laptop/PC Single VM instance of Cloud Foundry that runs on a developer’s MAC or PC New release v116 last week Tracks CloudFoundry.com54
  32. 32. Open Source55
  33. 33. CloudFoundry.ORG – Community Open Source Project github.com/cloudfoundry .NET x 2 § Memcached PHP § SQL Server JRuby § Neo4j Python § CouchDB Rails 2.x § VirtualBox Clojure § Mono Erlang § Rack Haskell56
  34. 34. CloudFoundry.ORG – Community Open Source Project CloudFoundry.ORG Community Frameworks Contributions Community Services Contributions Your Infrastructure Download Setup Tool Chain & Deploy Behind Code Environment Scripts Firewall Cloud Foundry BOSH Apache2 license57
  35. 35. Cloud Foundry Open Source Workflow cloudfoundry.com production updated ~2x/week github github.com/cloudfoundry on +2 and ✓ change pushed to github Reviewers +1/-1 Gerrit Code Review +2/-2 Committers reviews.cloudfoundry.org test verification score ✓ ✗ git push triggers test execution Jenkins CI ci.cloudfoundry.org58
  36. 36. Open Source Advantage: speed§ http://code.google.com/p/googleappengine/issues/detail?id=13• https://github.com/cloudfoundry/vcap/pull/2559
  37. 37. Open Source Advantage: breadth60
  38. 38. Ecosystem61
  39. 39. Broad Industry Investment62
  40. 40. Cloud Foundry - Making Multi-Cloud a Reality Private Cloud Public Cloud Management and Distributions Operators .COM Bare metal63
  41. 41. Cloud Foundry Architecture
  42. 42. Architectural Goals65
  43. 43. Architectural GoalsNo single point of failure65
  44. 44. Architectural GoalsNo single point of failureDistributed state65
  45. 45. Architectural GoalsNo single point of failureDistributed stateSelf healing65
  46. 46. Architectural GoalsNo single point of failureDistributed stateSelf healingHorizontally scalable65
  47. 47. Architectural Principles66
  48. 48. Architectural PrinciplesLoose coupling66
  49. 49. Architectural PrinciplesLoose couplingEvent-driven66
  50. 50. Architectural PrinciplesLoose couplingEvent-drivenAsynchronous66
  51. 51. Architectural PrinciplesLoose couplingEvent-drivenAsynchronousNon-blocking66
  52. 52. Architectural PrinciplesLoose couplingEvent-drivenAsynchronousNon-blockingIdempotent66
  53. 53. Architectural PrinciplesLoose couplingEvent-drivenAsynchronousNon-blockingIdempotentEventually consistent66
  54. 54. Architectural PrinciplesLoose couplingEvent-drivenAsynchronousNon-blockingIdempotentEventually consistentLanguage-independent communication66
  55. 55. Cloud Foundry Layers67
  56. 56. Cloud Foundry Layers Clients67
  57. 57. Cloud Foundry Layers Clients Inner Shell67
  58. 58. Cloud Foundry Layers Clients Inner Shell Outer Shell67
  59. 59. Cloud Foundry Layers Clients Inner Shell Outer Shell Infrastructure as a Service67
  60. 60. Cloud Foundry Layers Clients Inner Shell Outer Shell Infrastructure as a Service Hardware (CPU, Memory, Storage, Network)67
  61. 61. Cloud Foundry Core Components
  62. 62. Design PrinciplesDynamically discoverable componentsNo inter-component dependencies • Launch in any order • Scale up and down independentlyMonitor using HTTP end points69
  63. 63. Cloud Foundry Logical View Developers Users vmc Routers CloudControllers App App HealthManager Execution Agents (DEA) Services Pool Messaging
  64. 64. Cloud Foundry BOSH71
  65. 65. Production Grade Cloud Foundry Clusters 500 – 5,000 VMs cloudfoundry.com 40+ unique node types 75+ unique software packages 75+ unique environments 2x/week cf.com updates 24x7x365 non-stop operation No-downtime deployments Reliable, robust, repeatable deployments, updates, capacity adjustments Small teams manage many instances production, staging, stress, qa, devGoogle style problem è Google style solution 72
  66. 66. Cloud Foundry BOSHCloud Foundry BOSH is an open source tool-chain for releaseengineering, deployment, and lifecycle management of large scaledistributed services• Prescriptive way of creating releases and managing systems and services• It is not a collection of shell scripts, not a pile of PerlBuilt to deploy and manage production-class, large scale clusters• Production grade Cloud Foundry clusters: 500+ VMs, 40+ jobs, 75+ packages• Multi-node, multi-tier, complex clusters: e.g., our Gerrit/Jenkins ClusterBuilt for devops usage and scale by a crack team of veterans• A project, not a product: command line interface, YAML, etc.• Continuous improvement, iterative development, rough edges github.com/cloudfoundry/bosh73
  67. 67. BOSH: under the hood BOSH User “BOSH is deployed by BOSH” bosh cli director healthmon cloudfoundry.com db redis nats workers blobs active jobs agent IaaS CPI stemcell disk74
  68. 68. IaaS neutral by designvSphere: battle tested implementation, thousands ofdeployments CPI: code completevCloud Director: “work in progress”, 2H 2012 functional status: “work in progress” Cloud Foundry BOSH Cloud Provider Interface (CPI) github.com/piston/openstack-bosh-cpi contribute: github.com/cloudfoundry/bosh75
  69. 69. Lessons for Developers76
  70. 70. Predictions • Software is becoming like fashion, design rules • Welcome to Babel, use the best tool for the job, embrace multiple language & heterogeneity • Our jobs will change, build yourself out of your current job • Sysadmin jobs will morph, there will be less of them • Many opportunities open when you embrace change77
  71. 71. Things to forget • First normal form • Waterfall model • Single server deployment • Single language skill • Build everything from scratch • Build custom infrastructure78
  72. 72. Things to learn • Agile • Take risks, fail often, fail fast and learn • API Design: create the API first • UI Design, Javacript, HTML5, CSS3 • A/B Testing • Open Source, Open Standards • Architecture, Distributed Computing (CAP theorem, 8 fallacies) • Cloud Platforms and APIs • Multiple types of languages (imperative, object, functional, logic) • Ability to encapsulate domain knowledge in a DSL • Build on the shoulders of giants: reuse, REST APIs • Pick your battles, choose what you need to build yourself to add value • Learn to live in a box (embrace platform limitations) to think outside the box • Use an App Store for distribution79
  73. 73. Redemption
  74. 74. The (Happy) End
  75. 75. Register today http://cloudfoundry.com/signup Use Promo Code cfopentoursofia To avoid approval queue waiting time Download Micro Cloud Foundry locally Events we do on Lanyrd http://lanyrd.com/2012/cloud-foundry-open-tour-sofia/93