The Fuel of Interstate
Interstate has been in full-on development for just around 2 months now (and in private BETA for just over 1 month) and in that small amount of time we’ve had to make some pretty quick yet equally important choices when it comes to our site’s technical setup.
We’ve had to decide things from simply where to host our servers to questions like which HTTP server we should use. The great thing about the Interstate project is that because we’re just 2 guys building something we love to both make and use, we get to make some pretty interesting choices when it comes to the site’s architecture.
Because of this I’ve decided to do a post explaining what we use to power and build Interstate. So, without further ado, here we go!
Development
To develop Interstate, Greg and I both use Apple Macbooks and take advantage of some pretty sweet Mac software. The software we find ourselves using on a daily basis is:
- Adobe Photoshop CS5 (Greg uses this bad boy to create the fantastic design you lucky BETA testers get to use)
- Coda by Panic (We both use this amazing IDE to code both the frontend and the backend of Interstate)
- Transmit by Panic (Greg uses this to upload the bulk of the site’s static files such as images, etc)
- Terminal (Simon uses this to keep control of Interstate’s server)
- Spotify (What is website development without some kick ass music in the background?)
- Google Chrome (Possibly the best browser out there at the moment)
- MongoHub (Simon uses this to monitor MongoDB)
- Forrst (O.K., this isn’t exactly software but it’s an awesome community where we try and share as much stuff as we can whilst we build Interstate).
Hardware
Up until the latest release of Interstate (“Frank”) both the frontend and the backend was hosted on a single RapidSwitch server which also hosted about 7 other websites of ours as well. This really did not help when it came to making the site as fast as it could be. At this point we also hosted our databases on a separate server over at MediaTemple. This really did not help as it meant we had to make thousands of requests to a server that was on a completely different network to the backend.
With the latest release of Interstate we decided that we needed to fix this right away. As of writing this post we are currently hosted on a single (MediaTemple based) dedicated server with around 2GB of RAM (more spec details can be found on MediaTemple’s website). We are looking to separate our backend from our database in the very near future (both in to individual MediaTemple (ve) servers).
Software
Interstate uses PHP (PHP 5.3.3 to be exact) and it runs on its own custom framework. We have decided to skip the conventional route of using MySQL for our primary datastore and we have instead opted to use MongoDB and so far it is performing extremely well. We also use a combination of Redis and Memcached for our currently rather small caching layer that will most probably be used a lot more in the near future.
We have decided to use nginx to serve all HTTP requests (and PHP-FPM as the PHP process manger) over the other alternatives such as Apache. We chose to use nginx after benchmarking other sites of ours that run on the same PHP framework but use Apache as the HTTP server. The speed difference between powering these sites on nginx rather than Apache made it an easy decision for us to use nginx.
To make sure Interstate is always performing as well as it should be, we use a great piece of server monitoring software called munin.
When it comes to 3rd party web services we currently only use one: Postmark (aka Postmarkapp). We use Postmark to simply deliver all on-site emails (such as invite codes, notifications, etc) and we really can’t recommend it enough.
I hope this gives you a little better idea of how the site works. If you have any specific questions regarding Interstate’s development/architecture feel free to send me an email via simon@interstateapp.com.
26 Notes/ Hide
-
exphazox liked this
-
seosweetheart liked this
-
biaclinneotus reblogged this from wakecodesleep
-
anmaslatou reblogged this from wakecodesleep
-
lletroserha reblogged this from wakecodesleep
-
shaquita-zebracki liked this
-
deshawn-tillison liked this
-
thomasoffinga liked this
-
wakecodesleep reblogged this from interstateapp and added:
development stack.
-
zackisamazing reblogged this from interstateapp
-
zackisamazing liked this
-
dirky liked this
-
fortmyers liked this
-
kylewritescode liked this
-
awfy liked this
-
webvampires liked this
-
wakecodesleep liked this
-
interstateapp posted this
