server check.in case study - drupal and node.js

29
Server Check.in Case Study by Jeff Geerling

Upload: geerlingguy

Post on 10-May-2015

1.241 views

Category:

Technology


3 download

DESCRIPTION

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/

TRANSCRIPT

Page 1: Server Check.in case study - Drupal and Node.js

Server Check.inCase Study by Jeff Geerling

Page 2: Server Check.in case study - Drupal and Node.js

Jeff Geerling

• jeffgeerling.com / geerlingguy • Senior Application Developer, Mercy • Owner, Midwestern Mac, LLC

Page 3: Server Check.in case study - Drupal and Node.js

Agenda

• About the service

• How Drupal is used

• How Node.js is used

• Notes on Hosting and Marketing

• Q&A

Page 4: Server Check.in case study - Drupal and Node.js

Why build another uptime monitor?

Page 5: Server Check.in case study - Drupal and Node.js

Server Check.in

• Dogfood project

• Simple, cheap, reliable service

• Notify me when my servers are down

• Launched December, 2012

https://servercheck.in @servercheckin

Page 6: Server Check.in case study - Drupal and Node.js

Demo

Page 7: Server Check.in case study - Drupal and Node.js

External Services

• Twilio

• Stripe

• Disqus

Page 8: Server Check.in case study - Drupal and Node.js

External Services

• Twilio

• Stripe

• Disqus

(for sms notifications)

Page 9: Server Check.in case study - Drupal and Node.js

External Services

• Twilio

• Stripe

• Disqus

(for sms notifications)

(for payment processing)

Page 10: Server Check.in case study - Drupal and Node.js

External Services

• Twilio

• Stripe

• Disqus

(for sms notifications)

(for payment processing)

(for comments)

Page 11: Server Check.in case study - Drupal and Node.js

External Code/Libraries• Flot (jQuery graphing library)

!

!

• MailChimp email templates

!

Page 12: Server Check.in case study - Drupal and Node.js

And, of course…

Page 13: Server Check.in case study - Drupal and Node.js

And, of course…

Page 14: Server Check.in case study - Drupal and Node.js

Drupal Notes• Custom theme (with parent “MM base” theme)

• Four custom modules:

• base

• billing

• notifications

• check server management

Page 15: Server Check.in case study - Drupal and Node.js

Modules

• Views

• Elysia Cron

• Disqus

• Boost

• Honeypot

Page 16: Server Check.in case study - Drupal and Node.js

Modules

• Views

• Elysia Cron

• Disqus

• Boost

• Honeypot

(for content listings)

Page 17: Server Check.in case study - Drupal and Node.js

Modules

• Views

• Elysia Cron

• Disqus

• Boost

• Honeypot

(for content listings)

(for periodic tasks and scalability)

Page 18: Server Check.in case study - Drupal and Node.js

Modules

• Views

• Elysia Cron

• Disqus

• Boost

• Honeypot

(for content listings)

(for periodic tasks and scalability)

(for easy comment moderation)

Page 19: Server Check.in case study - Drupal and Node.js

Modules

• Views

• Elysia Cron

• Disqus

• Boost

• Honeypot

(for content listings)

(for periodic tasks and scalability)

(for easy comment moderation)

(for scalability)

Page 20: Server Check.in case study - Drupal and Node.js

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)

Page 21: Server Check.in case study - Drupal and Node.js

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

Page 22: Server Check.in case study - Drupal and Node.js

Server Checking

Source: https://servercheck.in/blog/moving-functionality-nodejs-increased-server

Page 23: Server Check.in case study - Drupal and Node.js

Server Checking

• Now: External Node.js application

• Allows:

• Scalability, geographically-diverse checking

• Servers are checked asynchronously

• 1 minute check intervals for everyone (yay!)

Page 24: Server Check.in case study - Drupal and Node.js
Page 25: Server Check.in case study - Drupal and Node.js

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)

Page 26: Server Check.in case study - Drupal and Node.js

Launch / Marketing• Some things I’ve tried:

• Drupal.org case study

• Hacker News post

• Sponsoring blogs

• Blogging (servercheck.in/blog)

• Keep trying new things!

Page 27: Server Check.in case study - Drupal and Node.js

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)

Page 28: Server Check.in case study - Drupal and Node.js

Questions

(Use coupon code STL14 for 20% off!)

Page 29: Server Check.in case study - Drupal and Node.js