In an earlier post, I wrote,
The whole point of a blog like this is to share everything on the site with literally anyone who wants to see it. In fact, I’ve gone through rather a lot of trouble to make sure that happens.
That got me thinking about all the bits of technology that it takes to put a blog like this on the web. I decided to make a list, and it turns out there are a lot of pieces. To start with, there’s the main WordPress installation:
- WordPress — the blogging engine that powers it all.
The look and feel comes from the WordPress theme I use, which is made up of about four big pieces:
- Hybrid Core Framework — A PHP library for building WordPress themes.
- Hybrid Theme — An example theme for the Hybrid Core framework.
- Skeleton — A customizable child theme of the Hybrid theme.
- scssphp — A PHP implementation of SCSS/SASS.
I’ve customized Skeleton to produce the theme I use for Windypundit. I use the SCSS preprocessor to do some of the math to make the look and feel more tunable.
Naturally, Windypundit uses a number of WordPress plugins:
- Cookies for Comments — A simple anti-spam plugin that rejects some less intelligent spambots.
- Google XML Sitemaps — Adds a sitemap for Google.
- Growmap Anti Spambot Plugin — Another simple anti-spam plugin. This generates the “Confirm you are NOT a spammer” checkbox.
- NextGEN — An image gallery management tool. I don’t use all the gallery features.
- Search Regex — A potentially dangerous tool that allows me to search-and-replace regular expressions across all blog posts.
- W3 Total Cache — Caching software, so pages can be served quickly without as many hits to the database.
- WordPress HTTPS — Improves HTTPS support.
- WordPress SEO — Makes pages a little more search-engine friendly. I only use a fraction of the features.
- wp-jquery-lightbox — Displays photos bigger when you click on them. I use this instead of NextGEN’s viewer.
- WP Widget Cache — Caches the widgets on pages so they can be served without re-querying the database.
I also wrote two small custom plugins:
- Custom Dynamic Photo Resizer — A WordPress shortcode to generate resized photos for blog posts. If I want to change the size of all the photos in my layout, I just change the resizer implementation and all the images will be generated and served at the new size.
- Custom Shortcodes — A variety of custom WordPress shortcodes to replace features I had in custom tags on Movable Type. Hardly ever used anymore.
I also make use of a bunch of web-based services which are integrated via WordPress plugins:
- Akismet — A collective anti-spam service that detects and deletes common spam patterns.
- Google Analyticator — Adds Google Analytics on the site.
- Jetpack — WordPress’s all-in-one access point to various WordPress-served features.
- Social Login – A plugin that allows me to accept logins from Facebook and Twitter for people leaving comments. Makes use of the OneAll protocol translation service.
- Woopra — Integrates Woopra realtime analytics into the site.
- VaultPress — Backs up the blog VaultPress‘s servers.
All advertising content on the site comes from
Windypundit is hosted on a smallish Virtual Private Server from the folks at A Small Orange. I use a VPS instead of shared hosting because I host a number of other websites and because I wanted to learn about running a website on a VPS.
The server is running a standard LAMP stack:
- Linux — The operating system. It’s the CentOS distro.
- Apache — The web server.
- MySQL — The relational database that holds the WordPress content.
- PHP — The scripting language that ties it all together. WordPress is written in PHP, along with all of its plugins.
A few other bits run on the server as well:
- nginx — Running as a reverse proxy for improved caching.
- cPanel/WHM — The web-based hosting management software.
As I said, it’s actually a virtual server, meaning that A Small Orange has carved out a couple of processor cores and some memory from a larger server. There’s also a SAN array for disk storage. All hosted sites are backed up nightly to Amazon S3 and then rolled over to Glacier.
The servers and disk arrays are located in (I think) TierPoint’s a 68,000 square foot data center in Dallas, Texas. The data center is SSAE 16 SOC 1 certified, with fully redundant HVAC and fully 2N redundant power, with six backup diesel generators fed from a 50,000 gallon fuel reserve. The facility is multi-homed and carrier neutral with connections to Level3, Abovenet, TimeWarner, Suddenlink, Cogent, Global Crossing, and IP Transit. I’m sure there are Fortune 500 companies hosted in the same data center.
Only the main HTML page of Windypundit comes from that server. All of the embedded static components — images, style sheets, Javascript — are served from cached copies in 31 data centers all over the world in the Cloudflare content distribution network so that pages load more quickly.
This is, beyond a doubt, an insane amount of technology for a humble little blog full of libertarian ranting and occasional cat pictures.
The thing is, none of this is particularly special. All of you who have WordPress blogs are using mostly the same technology. You might not have Cloudflare or some of the other layers of caching, and you’re using a different theme and a different selection of plugins, but the rest is basically the same. You might not be as interested in the technology as I am, but we’re all using WordPress, we’re all running on some variation of the LAMP stack, and we’re all hosted out of a ridiculously over-spec’d data center.
Leave a Reply