There are a great variety of startups who are benefiting from the scalability of cloud computing and growing their business and customer offerings as a result.
Below, I offer five tips for startups either in the early stages or considering cloud technology for the first time, based on our experiences at Purplebricks.com since launching in April 2014.
My verdict? While it poses certain challenges at first, it is well worth the investment in the long run.
1) Message queuing – essential but fiddly
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 therefore facilitate integration efforts within 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.
At the start of a project it’s difficult to predict what the future needs of the project will be. By introducing a layer in between processes, message queues create an implicit, data-based interface that both processes implement. This allows you to extend and modify these processes independently, by simply ensuring they adhere to the same interface requirements.
2) Optimise in order to reduce fees
This is key if you want quality performance. Microsoft Azure, or any cloud service, is built to penalise you if you use their resources poorly. The challenge is to fix this before the invoice for an unenlightened design decision arrives.
Saving money and application performance go hand in hand. When we launched in April 2014 and our first TV adverts hit the screens later that year, we made a conscious effort to scale up our servers. This meant our highest monthly bill to date was our first month, despite the lowest usage traffic. Through experience we have found the key is to set alerts and auto-scale correctly to ensure the cloud actually powers up extra resources when needed.
3) Architecting the cloud is a learning curve
The cloud stores information in different places and the rules are different for each. Expect a learning curve and learn from your mistakes.
When unexpected things happen in the cloud, it is worth taking the time to dig deep into what went wrong and then determine a course of action to help mitigate the issue in the future. After significant outages in both Windows Azure and Amazon EC2/S3, vendors publish a root cause analysis. It is important to read these and become familiar with them.
We constantly ask ourselves whether this is something that can happen to our code. In the same way, if your systems experience any downtime as a result of cloud outages, share your root cause analysis with your customers, especially on how you plan to prevent it from happening again in the future.
It is important to acknowledge the cloud is a constantly moving platform and new features are released weekly. Keep up to date with these and create a learning and sharing culture within the development team.
Continue reading more lessons and tips on page two…
Share this story