The idea for this post come to me after listening to presentation by Ross Mason (mulesoft.com) about different services available online to help programmer with infrastructure, operational concerns. Cloud computing, especially Software as Service, made it possible to delegate some functionality or system infrastructure components to third party vendor using public API. All you need is credit card. This services greatly simplify things for developers and operations.
Some cloud providers, like CloudBees and Heroku, have a whole ecosystems of additional services that developers could use. Those 10 services indeed very useful and make developers more productive and concentrate on business at hand instead of building infrastructure.
1. Relational Databases: In place of MySQL
The service is fully managed and provides auto scaling, high availability, and built-in management tools. Xeround also offers an API that supports both REST and SOAP for provisioning and controlling DB instances and makes the service scriptable.Alternatives: Amazon RDS
2. NoSQL Databases – for MongoDB: MongoLab
MongoLab provides access to your data over HTTP with REST API. Great for mobile and AJAX developers. Admin tools are very good. Another great service for mongoDB is MongoHQ.
3. Cloud File systems.
Amazon S3, which stands for Amazon Simple Storage Service, is a file system service offered by Amazon Web Services. Amazon S3 features a simple API for storing large and small files and supports REST, SOAP and BitTorrent. The service is especially useful since many apps need file storage and Amazon S3 lets you store unlimited data. Alternative services include Rackspace Cloud Files and CloudLayer Storage, but the advantage of using Amazon S3 is that you can leverage the Amazon global network and CDN support.
4. Functional, Performance and Load testing.
This services allow you to load and stress test your application with minimal effort from your part. Some of them also can be used for functional acceptance testing and regression testing. Not many developers have experience setting up and run load testing software, plus it requires a lot of hardware or virtual servers to make any realistic tests. This services make it a snap.
SOASTA is one of the services I use and recommend.
5. Performance Monitoring:
There is a lot of services allowing you to monitor your applications 24/7 and issue alerts if something goes wrong. NewRelic is one of the leader in this area. They can you application, end user performance and your servers utilization. great alternative to do it yourself with nagios approach.
6. Log services:
Loggly offers logging as a service. It supports log management and allows users to easily search and navigate log data. With a RESTful API and Syslog for data collection, Loggly is easy to set up and provides a centralized view of application logs–this means no more SSH-ing to different boxes and tailing logs. Loggly also provides analytics as standard feature for measuring app performance. Splunk provides a similar logging service. Alternatives: papertrail
7. Email services:
SendGrid provides email as a service, allowing users to replace existing email infrastructure. It works like normal email, but is much better, supporting bulk email, delivery management and analytics. Set up takes minutes and you don’t need to run an email server. SendGrid’s API supports both REST and SMTP. The service also offers a a web hooks Event API. Similar email infrastructure services are provided by Postmark.
8. Error management:
Airbrake provides error management as a service, collecting errors generated by other applications and aggregating the results for review. With Airbrake, you can see and track errors in real-time, allowing you to fix them quickly. This is an interesting approach to error management since there is no need to hit the logs. Airbrake’s API supports REST. To date, Airbrake is the only error management service of its kind.
PubNub offers publish/subscribe messaging as a service and supports real-time, global messaging for cloud and mobile apps. Pusher and Amazon SNS (Simple Notification Service) provide similar services, but PubNub is amazingly quick, getting as close to real-time as the web gets, and is very inexpensive, even for millions of messages. Developers can leverage the PubNub REST API, which is an asynchronous, streaming API.
Twilio provides telecommunications as a service, enabling users to build text/SMS and voice applications easily. These kinds of apps are typically difficult to build, but Twilio changes that. For instance, you can easily integrate text/SMS to alert, update and conform users or create voice access to data residing in an app, such as an account balance. Besides Twilio, Tropo also provides telecommunications as a service.
One challenge is to integrate all those services together. Some PaaS like Heroku, CloudBees and Amazon have some of the services integrated into single management console. From application integration perspective, service like mulesoft.com provides integration layers to make job easier.