Making Cloud SLAs readily usable in the EU private sector
Purplebricks.com on its first twelve months in the cloud
Cloud computing is increasingly becoming a staple for start-ups, removing the entry barrier to almost any sector. The life-giving properties of the cloud means that many new firms are mostly or entirely built on the cloud. Learning how they got there can help others plan their own adoption roadmap and take note of things that need special attention.
Purplebricks.com launched as a startup online estate agency in April 2014 and was built on the cloud. It is one example of start-ups benefitting from the scalability of cloud computing, growing their business and customer offerings as a result.
12-months on, it offers some useful tips for other small firms, concluding that while cloud poses certain challenges at first, it is well worth the investment in the long run.
It offers five lessons for start-ups in the early stages or considering cloud technology for the first time.
#1 - Message queuing is essential but tricky
A message typically represents a task created by someone – the “producer” – that has to be processed by someone else – the “consumer”. Each message has a body and some attributes - the main architectural benefit is loose coupling.
A message queueing service aims to remove the traditional overhead associated with operating in-house messaging infrastructures. As well as reducing cost, queues in the cloud simplify access to messaging resources and facilitate integration efforts in organisations and between them.
Queues leverage cloud computing resources such as storage, network, memory and processing capacity. By using virtually unlimited cloud resources, message queueing services provide an internet-scale messaging platform.
When setting out on a new project, it's hard to predict future needs. By introducing a layer in between processes, message queues create an implicit, data-based interface both processes implement. This allows you to extend and modify these processes independently, by simply ensuring they adhere to the same interface requirements.
#2 Optimising to reduce fees
Optimising is key if you want quality performance. Most cloud service providers are built to penalise users for poor resource usage. The challenge is to fix this before the invoice for an uninformed design decision arrives.
Saving money and application performance go hand in hand. When Purplebricks.com launched in April 2014 and the first TV adverts hit the screens later that year, it made a conscious effort to scale up our servers. This translated into the highest monthly bill coming in the first month despite having the lowest traffic. Setting alerts and auto-scaling correctly ensures the cloud powers up extra resources only when needed.
#3 Architecting the cloud is a learning curve
In the cloud, information is stored in different places and different rules apply. Mistakes are often necessary learning curves. When unexpected things happen, it's important to spend time understanding what went wrong and define a course of action to help mitigate the issue in the future.
If a significant outage occurs, cloud service providers should issue a root cause analysis. It's important to read this, become familiar with it and share it with your customers, explaining how you intend to prevent it from happening again.
In such a fast-changing market, it's also important to keep up to date with new features released, creating a learning and sharing culture in the development team.
#4 Logging to facilitate the learning process
Users should log everything that can help them work out what went wrong. Failure can happen in the cloud, so you need to build an application thinking about how you will recover from a fault and how long it will take.
At the start of a project, you usually only have time to plan for straightforward cases. But you can learn much more from a new application with real users. Logging can facilitate this learning process and support it properly.
Sometimes, when you start on a project, you only have time to plan for the straightforward cases. This means we can learn a lot from a new application with real users. To facilitate this learning process and support it properly, you need logging in place.
#5 Prepare for failure
Providers typically market the cloud as a service that never fails. The cloud is not an indestructible silver bullet and we all know that even well-managed clouds will fail. Being prepared for such failures is therefore key, making sure you plan and implement your own failover system.
Purplebricks.com mitigates by running most of its services through an out-of-band message bus. Messages sent to the bus are sent in a “fire and forget” fashion. Messages sent to the bus take an average of 2ms, regardless of the state of the third party. This mechanism allows the firm to handle requests in a fashion that does not affect the user’s experience.
All of its emails are handled by a specialist email provider, which provides an application programming interface (API) that Purplebricks.com uses to send emails. This service has proved to be highly reliable, but if it has performance issues or the service becomes unavailable, the user experience is not affected because failed messages are stored and placed in the queue to be re-sent later.
This mechanism allows the firm to handle a complete outage from a range of providers using the same principle, without having to worry about users are being affected. Once a provider resumes service, it simply picks up the previously failed messages.
Source: Computer Weekly, http://www.computerweekly.com/opinion/Five-lessons-learned-from-a-year-in-the-cloud