Server Check.in case study - Drupal and Node.js
-
Upload
geerlingguy -
Category
Technology
-
view
1.241 -
download
3
description
Transcript of Server Check.in case study - Drupal and Node.js
Server Check.inCase Study by Jeff Geerling
Jeff Geerling
• jeffgeerling.com / geerlingguy • Senior Application Developer, Mercy • Owner, Midwestern Mac, LLC
Agenda
• About the service
• How Drupal is used
• How Node.js is used
• Notes on Hosting and Marketing
• Q&A
Why build another uptime monitor?
Server Check.in
• Dogfood project
• Simple, cheap, reliable service
• Notify me when my servers are down
• Launched December, 2012
https://servercheck.in @servercheckin
Demo
External Services
• Twilio
• Stripe
• Disqus
External Services
• Twilio
• Stripe
• Disqus
(for sms notifications)
External Services
• Twilio
• Stripe
• Disqus
(for sms notifications)
(for payment processing)
External Services
• Twilio
• Stripe
• Disqus
(for sms notifications)
(for payment processing)
(for comments)
External Code/Libraries• Flot (jQuery graphing library)
!
!
• MailChimp email templates
!
And, of course…
And, of course…
Drupal Notes• Custom theme (with parent “MM base” theme)
• Four custom modules:
• base
• billing
• notifications
• check server management
Modules
• Views
• Elysia Cron
• Disqus
• Boost
• Honeypot
Modules
• Views
• Elysia Cron
• Disqus
• Boost
• Honeypot
(for content listings)
Modules
• Views
• Elysia Cron
• Disqus
• Boost
• Honeypot
(for content listings)
(for periodic tasks and scalability)
Modules
• Views
• Elysia Cron
• Disqus
• Boost
• Honeypot
(for content listings)
(for periodic tasks and scalability)
(for easy comment moderation)
Modules
• Views
• Elysia Cron
• Disqus
• Boost
• Honeypot
(for content listings)
(for periodic tasks and scalability)
(for easy comment moderation)
(for scalability)
Modules
• Views
• Elysia Cron
• Disqus
• Boost
• Honeypot
(for content listings)
(for periodic tasks and scalability)
(for easy comment moderation)
(for scalability)
(because I hate spam)
Server Checking
• Originally: Drupal’s Queue API + cron batch
• Problems:
• Wasn’t scaling with growth
• Servers were being checked one by one
• 10 min interval maximum
Server Checking
Source: https://servercheck.in/blog/moving-functionality-nodejs-increased-server
Server Checking
• Now: External Node.js application
• Allows:
• Scalability, geographically-diverse checking
• Servers are checked asynchronously
• 1 minute check intervals for everyone (yay!)
Hosting on the Cheap• Cheap “Low End Box” servers (~$15/year VPS)
• Infrastructure managed with Ansible
• (aside: check out Ansible for DevOps)
• Cheap service + cheap servers + frequent changes == 99.9% uptime?
• (testing + automation == reliability)
Launch / Marketing• Some things I’ve tried:
• Drupal.org case study
• Hacker News post
• Sponsoring blogs
• Blogging (servercheck.in/blog)
• Keep trying new things!
Summary
• Drupal is great for user-centric apps (and integrates with almost anything)
• Sometimes, Drupal/PHP gets in the way (use the right tool for the job)
• You can do a lot with a little (hosting and marketing)
Questions
(Use coupon code STL14 for 20% off!)