Following the recent case study of Deputy infrastructure by Amazon Web Services, I thought I would take the opportunity to reflect on Deputy’s Infrastructure.
Nearly 30,000 people around the world use Deputy every day to start their shifts, assign/complete tasks in realtime, schedule future shifts, pay people, communicate etc. If Deputy was to stop working for just a moment, it would cause severe disruption to our customers, users and their customers. It is a great responsibility we have on our shoulders and one that we take very seriously!
The genesis of Deputy is nearly 10 years old. We had a lot of experience in writing scalable, mission critical web applications for the aviation industry. So by the time we launched Deputy in mid 2010, the advancement of cloud computing made it only easier for us.
Deputy is a 100% Amazon Web Services customer. Even this very article you are reading is being served by AWS CloudFront. Deputy’s use of Amazon technologies was impressive enough for it to be selected as the only finalist from the Asia Pacific region in Amazon Startup Challenge in 2011.
At the time of writing this article, we are using:
- EC2 : does all our computation. We use Amazon Linux which is rock solid
- RDS & DynamoDB: holds all employee data, rosters, timesheets etc. It’s hot replicated every second and daily snapshots are taken for quick restore.
- SimpleDB : Application logging
- S3 : all photos, file uploads etc
- SQS : Queue non important jobs
- SNS : for notification of changes across region
- SES : email delivery
- Cloud Search : searching and indexing of Data
- Route53: for DNS services which routes all requests to your nearest AWS region
- AutoScale: automatically launch or kill servers based on demand
- ELB : Load balance request between servers. This ensures that if for any reason an EC2 instance wasn’t reachable, it will route to another one.
- Glacier : backup
Our architecture has no single point of failure with use of multi availability zones. Given that deputy is used across the world, we always serve our customer from the nearest Amazon Region. Eg our Australian customers are served out of Sydney, Australia, whereas USA/Canadian customers are served from California, USA. Since each of these amazon regions are independent of each other, if there is any problem at the rarest of occasions, it will only affect that region.
Each of our customers have a sharded partition of the database, ensuring one customers data is never overlapped with another. It is comparable to a physical barrier. Deputy only operates with bank grade SSL to ensure your data remains secure in transit. And even at rest, we encrypt our customer data. Amazon powers some of the biggest names in the world. You can be assured that your data is safe with Deputy and Amazon Web Services. If you are still doubting, here is Amazon’s head of security explaining how they maintain security at Amazon:
What happens when the **** hits the fan?
Werner Vogel, CTO Amazon once said, “Everything fails all the time”
With this in mind, we have developed our infrastructure where we can lose one or many components at once and still keep operating!
Deputy is built with layers and layers of redundancy to ensure we do not have a single point of failure. Even if there was a catastrophic disaster, our backup around the globe can restore customer data.
How about the US patriotic act?
Quite often I am asked this question! Sadly president Obama isn’t my friend, neither are the Bushes – so I can’t answer what they would ever want to do. During our startup challenge when I met AWS Vice President Andy Jassy, I asked this very question to him and he said, “Son, if your customer is a matter of interest for the US authorities, I think they have bigger problem than the data on amazon”.
Why Amazon? Why not RackSpace? Why not your own servers?
Believe it or not we wanted to buy our own servers at the start. We even got quotes from data centers, such as Dell etc. We wanted to build redundant services like multiple network connectivity, servers, switches, power etc. The cost of doing all these would have been in the millions!! Just one rack of servers was going to cost well into the hundreds of thousands of dollars! Compared to that, to this date we haven’t spent 1/100th of money with amazon, yet have more than 1000 times the redundancy we could ever build ourselves. And we chose amazon over other providers simply because they not only provide computing and database but myriads of other app services.
What else do you use? How about your business support system?
We have a saying, “If it ain’t cloud, it ain’t allowed”.
To keep true to our ethos:
- Atlassian Jira for development management
- Basecamp for discussions
- Trello for project management
- Xero for accounting and payroll
- Chargify for billing
- SalesForce for customer relationship
- Desk for support ticketing
- Bidsketch for enterprise proposals
- GoToWebinar and GoToMeeeting for training and demos
- Campaign Monitor for customer mailouts
- Google Apps for our office email, documents etc
- Dropbox for file sharing
- Zapier to make sure all these services talk to each other
- Deputy for employee management. Yes! We drink our own champagne! Preach our own prayers! Scratch our own itch! However you want to say it. Even though most of us are salary employees, we roster our team members, clock on and off, journal good performances, record leave etc. This allows us to improve our own application for the betterment of every other user!