At QCon SF last week I gave my talk on DevOps to NoOps: 10 cloud services you should be using. I talked about what I call the API explosion and how that impacts the way we build applications before introducing my list. I focused on infrastructure APIs because I believe these have the biggest impact on application development and thus the developers that build applications. For me, the interesting part of the talk was the questions, it highlighted the general reaction to the benefits of infrastructure APIs – if you are not using them you probably don’t get the value.
My top 10 Infrastructure APIs
In short here is my leader-board, note that this list was also covered on RedWriteWeb so I won’t describe each one again:
10. Xeround – MySQL service
9. Amazon S3 – File storage
8. Loggly – logging as a service
7. SendGrid – Email as a Service
5. Airbrake – Error handling
4. KataSoft – Application security services
3. PubNub – PubSub messaging service
2. DropBox – File sharing
But why use these?
Most of the questions I get about this list are around the more general topic of why use a cloud service. For example, Xeround is a cloud service for MySQL that provides a drop-in replacement for MySQL. However, MySQL is super easy to set up so why bother? Cloud services like these are optimised for delivering scalable and frictionless infrastructure. As such, you can provision a new fully redundant database in a few clicks or an API call, which:
- is good for applications that live on Heroku, PHPFog or any other PaaS platfrom since you need a DB that also lives in the cloud
- is great for testing, since you can spin up and tear down databases really easily
- is highly available and portable, you can share your app and trust that the database isn’t going to die on you
- allows you to manage all your MySQL instances in one place
The last point is an interesting one since I believe its the point lost on developers right now. The ability to manage application infrastructure in one place is pretty appealing to me. I can now keep track of the databases of all my applications and furthermore Xeround can give me value add services on to such as analytics (same is true for MongoHQ).
With services such as SendGrid, they provide a central view of ’email servers’ used by your applications but they also provide much more insight into email delivery than you’d get just using a Gmail account. I have a dashboard where I can track requests, delivered, bounces, repeat bounces, spam reports, repeat spam reports, invalid email requests, open tracking, click tracking, unsubscribe tracking and blocks. Furthermore, they have a Web Hooks API so that I can start attaching code to events that happen during email delivery. Cool stuff.
Likewise, Logg.ly aggregates log data from one or more locations and then provides analytics on that data. You can slice and dice, perform root cause analysis, track trends and get alerts. Similarly Airbrake, is a service that focuses on error reporting and management and the value of the service is not so much the tracking, but the analytics and the ways in which you can react to the data you get from your apps (alerts, escalate bugs, workflow).
Its all about the value-add
Many Infrastructure APIs and cloud services do what we’ve always done, just better. All of the services above make things easier and they do it at scale. Once we delegate parts of our application to these services, we get a much richer set of tools to work with. These services consumer-ize IT and often provide better integration with the other tools and protocols developer teams use. So the next cloud service you come across don’t compare it to what you do today, evaluate it in terms of what new opportunities it represents to create better, more manageable applications quicker.