We take the challenge out of Cloud
Everyone seem to be talking about Cloud these days, and it's not surprising. Cloud offers many benefits to businesses.
Business leaders like the ability to be flexible to new opportunities.
Operations like the ability to implement reliable systems at a fraction of the cost it would have taken previously.
Developers like the access to a broad swathe of technologies that enables them to produce great solutions to business problems (without breaking the bank).
Finance likes its Pay-As-You-Go pricing model and the ability to pay out of operational expenditure rather than investing capital up-front.
Despite all the benefits, there is still a challenging to using Cloud effectively.
The quickest way to fail to take the benefits of Cloud is to take an existing application and run it in the cloud.
A lot of this comes down to one thing: Thinking.
It's no harder to write applications to use Cloud effectively than it is to write them against a traditional on-premises infrastructure, but it is different. We find that there are 3 main challenges that developers face in learning to use Cloud effectively: ephemerality, latency and using services.
Everything about Cloud is dynamic: servers can be run up and shut down near-instantaneously. But servers also fail and their storage can be lost (this is what is meant by the ephemerality of the Cloud).
Even for in-house infrastructure this was always the case, but it happened sufficiently infrequently that it was frequently ignored. A panic would ensue when it did, though.
With Cloud, it is a fact of life. Servers go away.
With Cloud, reliable systems are possible.
Cloud platforms give you the tools you need to make systems reliable.
Servers can be automatically started in the same or other data centres to ensure your application stays running. Data can be written multiple times -even in different countries - to ensure that your data is always accessible.
When you think about systems in the right way, Cloud can make your systems more reliable than they were before.
Most business applications have a server which talks to a database. When you run your own infrastructure the database will typically be physical close to the server - it will take less than a millisecond for a message to get from one to another.
When running in the Cloud your database will probably be some distance from your server, perhaps even on the other side of the world. The latency - the basic time to do the communication without getting any work done - could easily be 90 milliseconds - perhaps 300 times what it is on a local network.
If your application makes lots of access to the database, then this latency will bog down your system and make it unresponsive. In this case it is important to consider the communications to a database and ensure that the data is being accessed using as few individual accesses as possible.
Looking at all the facilities offered by each Cloud platform such as Amazon Web Services (AWS), Microsoft Azure or Google Cloud Platform can quickly result in confusion. They each offer a wide-range of pre-built services: Compute, Storage, Identity and Access Management, Caching, Application Services such as Message Queues, Deployment, etc., which can be integrated into your application.
Using these services rather than integrating your own is normally a good idea - they are often competitively priced, well-tested and you don't have the headaches of managing your own. It can be hard to work which ones make sense for your individual application.
We Can Help You
Catalyst have been helping clients run applications effectively using Amazon's AWS and Microsoft's Azure Cloud platforms since 2011.
We have successfully worked alongside teams porting existing applications to the Cloud and writing Cloud-native systems.
We have helped our client's developers respond to the challenges of ephemerality and latency and helped them choose services which mean that they spend more time writing business code and less time building infrastructure.
We can work alongside your own developers to help them deal with the challenges they face in successfully moving both new and legacy applications to run effectively on Cloud infrastructure.
Talk to us about how we can work with your developers to make the Cloud work for you.