Your SlideShare is downloading. ×
Dev ops   ljc 2010
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

Dev ops ljc 2010

1,626
views

Published on

Talk from London Java Community 2010

Talk from London Java Community 2010

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,626
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. DevOps Paul Nasrat · http://nasrat.livejournal.com · @nasrat Friday, 9 July 2010
  • 2. about:me Friday, 9 July 2010
  • 3. DevOps == Culture + Tools Friday, 9 July 2010
  • 4. Culture Friday, 9 July 2010
  • 5. Velocity Friday, 9 July 2010
  • 6. DevOpsDays Friday, 9 July 2010
  • 7. 10 Deploys A Day • John Allspaw • Paul Hammand Friday, 9 July 2010
  • 8. Development versus Operations Friday, 9 July 2010
  • 9. Spock Scotty Little bit weird Pulls levers & turns knobs Sits closer to the boss Easily excited Thinks too hard Yells a lot in emergencies John Allspaw - Velocity 2009 Friday, 9 July 2010
  • 10. http://www.flickr.com/photos/albinoflea/195857838/ Friday, 9 July 2010
  • 11. Hero Culture http://www.flickr.com/photos/ohrphan/999704273 Friday, 9 July 2010
  • 12. Silos http://www.flickr.com/photos/zoomzoom/304135268/ Friday, 9 July 2010
  • 13. Trust and Respect Friday, 9 July 2010
  • 14. What’s my job again? Friday, 9 July 2010
  • 15. Keep sh*t running? Friday, 9 July 2010
  • 16. Keep sh*t running? Friday, 9 July 2010
  • 17. change Friday, 9 July 2010
  • 18. 68% Friday, 9 July 2010
  • 19. 32% Friday, 9 July 2010
  • 20. £ Friday, 9 July 2010
  • 21. All of this has happened before, and it will happen again... http://en.wikipedia.org/wiki/File:Cylon_Centurion.jpg Friday, 9 July 2010
  • 22. • Theory of Constraints • Lean • Toyota Production System • Agile Friday, 9 July 2010
  • 23. Tools Friday, 9 July 2010
  • 24. Automated Infrastructure Friday, 9 July 2010
  • 25. Cloud as Inspiration • EC2/S3 • Heroku • Appengine • Eucalyptus • VMware Friday, 9 July 2010
  • 26. Storage • mogilefs • S3 • NFS • HDFS Friday, 9 July 2010
  • 27. REST CRUD + curl == :) Friday, 9 July 2010
  • 28. Infrastructure = Code Friday, 9 July 2010
  • 29. • Provisioning & Imaging OS • Roles & Configuration Friday, 9 July 2010
  • 30. #fail Friday, 9 July 2010
  • 31. http://www.flickr.com/photos/lifeinelgin/2533204950/ Friday, 9 July 2010
  • 32. http://www.flickr.com/photos/rustie/472315037/ Friday, 9 July 2010
  • 33. Share Friday, 9 July 2010
  • 34. Shared Version Control Friday, 9 July 2010
  • 35. Shared Domain Friday, 9 July 2010
  • 36. Shared Measurements Friday, 9 July 2010
  • 37. Twitter - sysadmin 2.0 “Data analysis, visualization, and other techniques for seeing patterns in data are going to be an increasingly valuable skill set. Employers take notice!” “Web Squared: Web 2.0 Five Years On”, Tim O’Reilly, Web 2.0 Summit, 2009 Friday, 9 July 2010
  • 38. Uptime 90.0% 36 days, 12 hours 95.0% 18 days, 6 hours 99.0% 87 hours, 36 minutes 99.50% 43 hours, 48 minutes 99.90% 8 hours, 48 minutes 99.99% 52 minutes, 33 seconds 99.999% 5 minutes, 15 seconds 99.9999% 32 seconds Friday, 9 July 2010
  • 39. Numbers you should know - Jeff Dean L1 cache reference 0.5 ns Branch mispredict 5 ns L2 cache reference 7 ns Mutex lock/unlock 25 ns Main memory reference 100 ns Compress 1K bytes with Zippy 3,000 ns Send 2K bytes over 1Gbps network 20, 000 ns Read 1 MB sequentially from memory 250, 000 ns Round trip within same datacenter 500, 000 ns Disk seek 10,000,000 ns Read 1 MB sequentially from disk 20,000,000 ns Send packet CA->.NL->CA 150,000,000 ns http://bit.ly/ladis09 Friday, 9 July 2010
  • 40. http://www.flickr.com/photos/altemark/273968506 Friday, 9 July 2010
  • 41. http://code.google.com/p/jsendnsca/ public class QuickStart { public static void main(String[] args) { NagiosSettings settings = new NagiosSettingsBuilder() .withNagiosHost("nagiosHostNameOrIPAddress") .withPort(5667) .withEncryption(Encryption.XOR) .create(); MessagePayload payload = new MessagePayloadBuilder() .withHostname("hostname of machine sending check") .withLevel(Level.OK) .withServiceName("Service Name") .withMessage("should work if everything set up OK") .create(); NagiosPassiveCheckSender sender = new NagiosPassiveCheckSender(settings); try { sender.send(payload); } catch (NagiosException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } Friday, 9 July 2010
  • 42. Performance Test Friday, 9 July 2010
  • 43. Capacity Plan Friday, 9 July 2010
  • 44. Friday, 9 July 2010
  • 45. Log everything • Scribe • Hadoop • Solr Friday, 9 July 2010
  • 46. Log Setting servlet private List<Logger> sortLoggers(Enumeration<Logger> currentLoggers) { List<Logger> loggers = new ArrayList<Logger>(); while(currentLoggers.hasMoreElements()) { loggers.add(currentLoggers.nextElement()); } Collections.sort(loggers, new Comparator<Logger>(){ @Override public int compare(Logger logger1, Logger logger2) { return logger1.getName().compareTo(logger2.getName()); } }); return loggers; } Friday, 9 July 2010
  • 47. Continual deployment Friday, 9 July 2010
  • 48. IMVU 50 Friday, 9 July 2010
  • 49. Continuous Deploy • CI is the backbone • Simple Deploy • Simple Revert, Roll forward • Alerting • Monitoring Friday, 9 July 2010
  • 50. wordpress.com http://toni.org/2010/05/19/in-praise-of-continuous-deployment-the-wordpress-com-story/ Friday, 9 July 2010
  • 51. kaching • SOA • ZooKeeper • Deployment Manager • Inflight releae limit - 2 Friday, 9 July 2010
  • 52. Deploy at scale • Bittorrent • Incremental deploys • Simple deployment tool Friday, 9 July 2010
  • 53. Application Data Configuration Friday, 9 July 2010
  • 54. Read Only Mode Friday, 9 July 2010
  • 55. dbdeploy Friday, 9 July 2010
  • 56. Configuration Lifecycle Friday, 9 July 2010
  • 57. http://www.flickr.com/photos/ahnmyrrh/3620801348/ Friday, 9 July 2010
  • 58. http://github.com/tackley/guardian-management package com.gu.management.switching; public interface Switchable extends SwitchState { void switchOff(); void switchOn(); ... } Friday, 9 July 2010
  • 59. @Singleton public class GuiceSwitchboardServlet extends SwitchboardServlet { @Inject public GuiceSwitchboardServlet(Collection<Switchable> switchables) { super(switchables); } } Friday, 9 July 2010
  • 60. Dark Launches http://www.flickr.com/photos/25035545@N04/2477315249/ Friday, 9 July 2010
  • 61. Bucket Testing Friday, 9 July 2010
  • 62. Communications Friday, 9 July 2010
  • 63. http://github.com/RJ/irccat Friday, 9 July 2010
  • 64. Further Info • agile-system-administration Google Group • http://londondevops.org/ • devops-toolchain Google Group Friday, 9 July 2010
  • 65. Projects • http://github.com/tackley/guardian-management • http://github.com/lg/murder • http://code.google.com/p/jsendnsca/ • http://puppetlabs.com/ • http://github.com/RJ/irccat • http://hadoop.apache.org/ • http://github.com/facebook/scribe Friday, 9 July 2010