When building applications to be deployed to ‘the cloud’, it is easy to think of traditional application architectures that developers are familiar with and build applications this way. This usually means an n-tiered approach. Whilst this may be suitable and appropriate, it also may not be the best possible solution when deploying to the cloud. Hopefully all our applications will be reliable, simple, scalable, secure as well as cost effective, but could we do more for robustness and scalability ?
A feature of Amazons AWS that helps in building applications with the above characteristics is the Simple Queue Service (SQS). This service enables messages to be transferred reliably between computers and helps build a scalable performant and robust system. Via a simple Web Service API, any application can place messages in a queue and any other application can read these messages. The applications communicating via SQS can be written in different programming languages enabling interoperability. An unlimited number of queues can be created each with an unlimited number of messages. Each message body can be up to 64KB of text in any format. Messages are retained in the queue for 14 days.
This week the SQS has been further enhanced with the addition of delay queues, message timers and the ability to send and receive multiple messages in one request. Delay queues apply a delay to all messages that are to be sent whereas message timers add a delay to individual messages. A little known fact is that the initial usage of SQS is free and this is not only for new accounts but also existing accounts. 100,000 queuing requests per month are available for free, payments only begin once this quota has been used. The free quota could be enough for some applications but if not the price after is $0.01 for 10,000 SQS requests. Also SQS is available from the Amazon Web management console now too for easier analysis and monitoring.
Amazon have via their AWS provided a comprehensive set of infrastructure services for application development. Some of these services can have a large impact on the architecture of our applications – for the better. To gain an awareness of these and how to use them effectively for the benefit of your organisation Learning Tree have developed a four day course on AWS. If you are interested in AWS, I think you will gain a lot from attending.