Upgrade to Pro — share decks privately, control downloads, hide ads and more …

LNCD and The Cloud

LNCD and The Cloud

Nick Jackson

July 05, 2012
Tweet

More Decks by Nick Jackson

Other Decks in Technology

Transcript

  1. ABOUT LNCD • Cross-Department Team • Research & Development •

    Supporting Staff, Students and Academics • Few Members, Other Responsibilities
  2. A FEW PROBLEMS • Cross Department = Distributed • R&D

    = Unsupported • Wide Remit = Need Scalability • Small Team = Large Workload
  3. AWESOME FORCE Six developers (not all full-time) are actively working

    on 10 major projects, a similar number of side-projects, side-interests around the University, maintaining servers and infrastructure for those projects and supporting and teaching others. With time to spare.
  4. A FEW OF OUR FAVOURITES • Twitter • Campfire •

    Dropbox • Pivotal Tracker • Jenkins • Puppet • Google Analytics • New Relic • Pingdom
  5. USERS ARE OUT THERE • A phone number isn’t enough

    • An email address isn’t enough • Get on Facebook • Get on Twitter • Google yourself
  6. COMPANIES ARE OUT THERE • Competitors (and potential partners) are

    online too • Mention something cool on Twitter, see who responds • Listen for something cool on Twitter and respond
  7. ‣ run lint ‣ run lines of code analysis ‣

    run dependency analysis ‣ run mess detector ‣ run code style analysis ‣ run copy/paste detection ‣ generate code api documentation ‣ perform token replacement ‣ run unit testing ‣ generate browsable code ‣ generate violation reports ‣ generate code statistics report ‣ bundle for distribution
  8. ‣ build servers ‣ install dependencies ‣ configure environment ‣

    configure services ‣ configure firewall ‣ configure infrastructure ‣ move code to servers ‣ run acceptance tests ‣ update routing
  9. IN THE OLD DAYS... 1. Download server X, version Y.

    2. Install packages Foo, Bar, Bar-Dev and Bazbox-1.2. 3. Edit FooConfig.conf and change line 27 to a haiku on the futility of life. 4. Reboot.
  10. IN THE OLD DAYS... 374. Realise you installed Qux-Utils-1.05 not

    Qux-Utils-1.05b. 375. Reboot. Again. 376. If you used the hotfix in step 182, jump to step 407. If not, recompile --with-dribbly-candle. Virgin sacrifice may be necessary if you don’t have DribbleLib already installed. 377. Give up.
  11. w c d d d c w w w server

    manifest (cache server) server manifest (web server) server manifest (database server)
  12. CLOUD HOSTING • Creating new servers is easy (we’ve partially

    automated it) • Configuring servers is now easy (hooray for Puppet) • Deployment is easy (hooray for Jenkins) • We can scale to match real-time demand
  13. WE USE... • Rackspace Cloud UK • Replicate ‘classic’ servers

    in the cloud • Servers, file storage, DNS, load balancing
  14. EVEN CLOUDIER... • Pagoda Box or Heroku • Totally abstracted

    hosting • Focus on development, ignore infrastructure • Scale on demand with zero downtime
  15. MOVING ON... • Building in-house cloud platform using OpenStack •

    Runs on commodity hardware, not ‘enterprise-grade’ • Provides ‘application’ bundles that can be easily reused
  16. CLOUD: THE BENEFITS • Potential cost saving through reduced overspend

    • Ability to adapt quickly • Can make disaster recovery very easy • Potential for improved resiliency (platform dependent) • Possible integration with existing infrastructure
  17. CLOUD: THE DOWNSIDE • Can be ultimately more expensive (especially

    external) • A certain element of mystery (depending on platform) • Tendency to build processes around provider • Horrible (but not insurmountable) data protection aspects
  18. IT’S AN OPEN WORLD, DEAL WITH IT • If your

    software can’t integrate, it’s a second class citizen • Design with this in mind • Find and engage with people (remember Communicate?) • Doesn’t stop you having value, just moves where it is
  19. BUILD APIS • APIs let your application talk to things

    • APIs mean you can re-use functionality easily • APIs mean 3rd parties use your product as a platform
  20. BUILD CLEVER APIS • Use tools at your disposal (remember

    Analyse?) to see inside • Use sensible exchange formats • Be RESTful — make your API behave as expected • Document it all (remember Automate?)
  21. INTEGRATE INTERNALLY • Forces you to build better APIs •

    Lets you spot bottlenecks before the public • Encourages scaleable and portable stuff by default
  22. INTEGRATE EXTERNALLY • Why waste effort building something yourself? •

    Hook in to external services so they do the hard work • Find people (remember Connect?) and get in touch