The InstallShield of the 21st Century – Theo Schlossnagle


Published on

Today's systems are complex and the most successful products are SaaS. When you need to ship a SaaS architecture to someone (private SaaS) there are a lot of moving parts to install and maintain. I'll talk about what we do at Circonus to provide our complex software stack on large clusters on-premise using Chef as the orchestration framework.

Published in: Technology, Business
  • 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

The InstallShield of the 21st Century – Theo Schlossnagle

  1. 1. ChefThe InstallShield®of the 21st CenturyInstallShield is a registered trademark of Flexera Software LLCNeither Circonus nor Chef or their related companies have or make any claim thereto.Monday, May 6, 13
  2. 2. Hi, I’m @postwaitMy background is in computing systems engineeringhardware debuggingcut kernel codenetwork debuggingstorage debuggingcut user-space codeoperating system release managmentMonday, May 6, 13
  3. 3. Circonus is...An API-accessible, self-service, state-of-the-art,scalable monitoring and telemetry analysis platform.With Chef cookbooks available to make monitoringyour architecture elegant and simple.Run as a SaaS... sometimes.Monday, May 6, 13
  4. 4. This talk is...not really about the Circonus service.Monday, May 6, 13
  5. 5. This talk is...about the challenges involved withturn-key software installation.Monday, May 6, 13
  6. 6. Installing softwareInstalling (most closed and some open) softwareis easy.RPM, deb, IPS, etc.(they all suck, but they all work passably well)<pkgcommand> install <pkgname>e.g. on OmniOS:pkg install chefMonday, May 6, 13
  7. 7. Configuring SoftwareVaries widely from product to product.This sucks.This will never change.Period.Monday, May 6, 13
  8. 8. Operating SoftwareIs actually not that hard.Most software that survives consumers, runs.Except when it doesn’t.This is why we monitor and measure things.Monday, May 6, 13
  9. 9. What if...Your software was a complex distributed system?Your software was the monitoring system itself?Your software wasn’t your SaaS,but instead your customer’s SaaS on their IaaS.Monday, May 6, 13
  10. 10. We didn’t start here...Our software started as SaaS only.We ran the one, true copy.Turns out there is still a strong business model aroundselling enterprise software thatcompanies run on-premise.(in their own cloud.... whatever).Monday, May 6, 13
  11. 11. Right tool for the job...In SaaS, we take the “right tool for the job” seriously.In shipped software, we historically have not.integration costs are highsupport costs are highlicensing challengesMonday, May 6, 13
  12. 12. A brief look at CirconusPostgreSQL/pg_amqp, RabbitMQ, redis, memcached,Apache/mod_perl, Node.js, ElasticSearch, OpenSSL(ca)CEP system (Ernie), case management system (Bert),real-time OLAP system (Razalbath), websockets/etc.(Enzo), metric storage (Srollup & Snowth), API services,web portal, broker (noitd), metric transit (stratcond),long-tail storage servicesMonday, May 6, 13
  13. 13. More than 20asynchronous componentsEverything can go’s just like a Internet infrastructureDespair.Monday, May 6, 13
  14. 14. How Chef helpedFirst: Chef did not save the day.It did help us quite a bit.It provided a framework forconverging on an expected state.Monday, May 6, 13
  15. 15. Chef...Solo.Think about it.It just make sense.Monday, May 6, 13
  16. 16. 1 databag to rule them allOne databag ‘site.json’ that describesthe global topology of all that is Circonus.It exposes all tunables our clients can control.A special role called ‘self-configure’/opt/circonus/bin/run-chef self-configurebuilds a node file with appropriate rolesMonday, May 6, 13
  17. 17. Chef templating...Services need to know about other servicessite.json has what and whereChef uses that to template outall the configs forall the services runningon the current nodeMonday, May 6, 13
  18. 18. Chef’s upsidesChef knows how to start services andhow to restart them if they are disabled/in maintenance(this is crucially important in distributed systems)It means that all dependent services canself-recover simply through diligence.Monday, May 6, 13
  19. 19. Chef’s upsidesAs everything is “automated,” the system is far lesstolerant of procedures that sometimes don’t work.It has the effect ofautomating the QA aroundinstallation and maintenance tasksMonday, May 6, 13
  20. 20. Chef’s downsidesIt has been horribly impracticable toperform good upgrades (due to packaging)act as omnipotent state control (due to cost)Monday, May 6, 13
  21. 21. Chef’s downsidesWe support OmniOS and LinuxI want to do the same thing on both:Apps should live in their own filesystem, logs inanother, data in another, use a filesystem foreverything. And, of course, use ZFS.Instead of role: “ernie”we have roles: “ernie,” “ernie-omnios”, “ernie-rhel”Monday, May 6, 13
  22. 22. SummaryChef sucks. Long live Chef.The process of automating through Chef has:improved the quality of our deployment processmade it possible to ship a software platform to clientsthat runs all the same bits as our production SaaSand stays up-to-date with our latest bitsMonday, May 6, 13
  23. 23. ThanksEric Sproul ~ Circonus Release Engineer(who implemented all of these things)Monday, May 6, 13