Server Check.in case study - Drupal and Node.js

3,003 views

Published on

Server Check.in is a simple, inexpensive website and server monitor. See how Server Check.in was built, and how it uses Drupal and Node.js together to build an easy-to-use and powerful web application. See more at https://servercheck.in/

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,003
On SlideShare
0
From Embeds
0
Number of Embeds
1,950
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Server Check.in case study - Drupal and Node.js

  1. 1. Server Check.in Case Study by Jeff Geerling
  2. 2. Jeff Geerling • jeffgeerling.com / geerlingguy • Senior Application Developer, Mercy • Owner, Midwestern Mac, LLC
  3. 3. Agenda • About the service • How Drupal is used • How Node.js is used • Notes on Hosting and Marketing • Q&A
  4. 4. Why build another uptime monitor?
  5. 5. Server Check.in • Dogfood project • Simple, cheap, reliable service • Notify me when my servers are down • Launched December, 2012 https://servercheck.in @servercheckin
  6. 6. Demo
  7. 7. External Services • Twilio • Stripe • Disqus
  8. 8. External Services • Twilio • Stripe • Disqus (for sms notifications)
  9. 9. External Services • Twilio • Stripe • Disqus (for sms notifications) (for payment processing)
  10. 10. External Services • Twilio • Stripe • Disqus (for sms notifications) (for payment processing) (for comments)
  11. 11. External Code/Libraries • Flot (jQuery graphing library) ! ! • MailChimp email templates !
  12. 12. And, of course…
  13. 13. And, of course…
  14. 14. Drupal Notes • Custom theme (with parent “MM base” theme) • Four custom modules: • base • billing • notifications • check server management
  15. 15. Modules • Views • Elysia Cron • Disqus • Boost • Honeypot
  16. 16. Modules • Views • Elysia Cron • Disqus • Boost • Honeypot (for content listings)
  17. 17. Modules • Views • Elysia Cron • Disqus • Boost • Honeypot (for content listings) (for periodic tasks and scalability)
  18. 18. Modules • Views • Elysia Cron • Disqus • Boost • Honeypot (for content listings) (for periodic tasks and scalability) (for easy comment moderation)
  19. 19. Modules • Views • Elysia Cron • Disqus • Boost • Honeypot (for content listings) (for periodic tasks and scalability) (for easy comment moderation) (for scalability)
  20. 20. 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)
  21. 21. 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
  22. 22. Server Checking Source: https://servercheck.in/blog/moving-functionality-nodejs-increased-server
  23. 23. Server Checking • Now: External Node.js application • Allows: • Scalability, geographically-diverse checking • Servers are checked asynchronously • 1 minute check intervals for everyone (yay!)
  24. 24. 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)
  25. 25. Launch / Marketing • Some things I’ve tried: • Drupal.org case study • Hacker News post • Sponsoring blogs • Blogging (servercheck.in/blog) • Keep trying new things!
  26. 26. 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)
  27. 27. Questions (Use coupon code STL14 for 20% off!)

×