Is Cloud the Panacea For Everything?
You would be forgiven in thinking that anything is possible in this mystical thing called The Cloud.
The Cloud comes in so many flavours and varieties that it is beyond the scope of this humble article to list, define and compare all of them. In summary The Cloud is a collection of computer services, networking and applications that can be used and paid for when needed. They tend to provide easy ways to start small, but rapidly scale to reach massive computation power and geographic resilience.
The Cloud has tremendous benefits and has been one of the transformational forces in today's modern life. I've written several articles about Cloud applications on this site already, but what I wanted to cover here is something different.
Nearly all Businesses Use The Cloud, but Not All
A huge proportion of Enterprises are already heavily dependent on Cloud technologies, with 93% of them in this study saying they already have adopted multiple Cloud solutions in their strategies. Of that cohort, more than half of them expect to use more Cloud services in the post-COVID world - which makes a lot of sense, because as more people work from outside of the office, they will need to have easier access to systems and applications.
Admittedly, 93% is a lot, but not all. Some companies are not moving to the Cloud, some use the Cloud for some services, some migrate to and from the Cloud.
Cloud vs On Premise
Whilst Cloud is great for many things, there are still many applications and businesses that just don't fit in a Cloud model. Many of the 93% of businesses mentioned above are likely to have on-premise solutions too, in fact on-premise solutions are still used by 98% of companies.
So what are some of the reasons companies prefer the on premise vs Cloud? The headline reasons come down to:
- Control, and,
- "If it's not broken, don't fix it".
Let's look at some of these in a little more detail:
Cost of Cloud vs On Premise
Whilst Cloud can offer very low set up costs to get you up and running, at a certain scale, the ongoing monthly or annual subscriptions to these services can easily rack up beyond the cost of owning and managing your own systems.
Another aspect of this, is that Cloud can be so easy to access that anyone with a company card could set up a small project which just gets forgotten about, but still incurs charges. You don't need too many employees set up pet projects at £100/month for things to start snowballing
Control, Access and Speed
A simplistic way to think about Cloud is that it's just some one else's computer. If you want to use that computer, you need to be able to connect to it and have the permissions to do with it what you want. Cloud solutions can give you much of this, but in some instances companies need more.
For example, whilst Cloud can make sense for applications you want your customers or employees to use anywhere in the world, if there are applications that should only be used within the building (for security, regulatory or administrative purposes), then why risk the exposure of a system in the Cloud?
Also, applications that require very rapid or very large exchanges of data could be at risk if dependent on external networking factors involved when connecting to Cloud services.
Developer vs VP
Even in the same organisation, the Engineering team can have very different views on the necessity of moving things to the Cloud. From a developer point of view, its very tempting to want to adopt the latest technologies and "frameworks", nearly all of which are Cloud based in nature.
The VP of Engineering would have a more commercially orientated point of view, wanting things to be up and running, as reliably, quickly and profitably as possible. If that means keeping some of the old frameworks and technologies in place, then that's a sacrifice worth making.
However, this can lead to problems down the road, when the tried-and-tested technologies become "end of life" and move to the Cloud. As shown in the example of Redis on Windows.
What Kind of Things Work Best On Premises vs Cloud?
Applications that are dealing with sensitive, personal or financial data that don't need to be accessed from the field, or those that require very fast transfer speeds (low latency) and/or vast amounts of data to be processed.
The other types of applications that don't necessarily fit well in the Cloud, are those that are very niche and highly customised for a specific need, or rely on legacy architectures.
Organisations that are likely to have systems that fall into one or more of these categories are military, government, financial institutions (banking, investing, insurance), healthcare, airlines, and many others
Reliant on Redis?
How to avoid the move to Azure, when you depend on Redis.Read more
Hotels, Banks and More
Whilst online banking and mobile apps have revolutionised banking for consumers and businesses, the infrastructure of traditional banking institutions has been custom built over decades, with "bits" being added to the core stack to accommodate new market needs, mergers, acquisitions and regulatory requirements. These systems are mission critical, often incredibly bespoke, and sometimes quite fragile (just search "bank systems crash" to see for yourself).
Behind the online banking facade most of us see on a daily basis, banks have huge systems that have been optimised down to the nano-second. These legacy, performance-critical, high-data-volume types of systems can't simply be migrated to the Cloud, because they depend on older technologies like COBOL or FORTRAN which not only aren't Cloud-ready, but also suffer from a lack of current expertise as most of the programmers have already retired. So with this complication, many tend to stay within the walls of the banks, government offices, or barracks.
The hospitality sector is similar. A few years ago, I spoke with a handful of execs from very large hospitality investment fund and hotel chains. I learnt that the hospitality industry lives and dies through the real-time analysis of huge amounts of sensitive, in-house data.
Not only that, but the systems that run hotels (Property Management Systems, aka "PMS") tend to be built like Jenga - with blocks being added and removed over time, leaving the whole stack somewhat wobbly and precarious. Like banks, this industry struggles to justify migrating these systems to a Cloud.
Built on Dependencies
As you might have seen in previous articles, I like to build all sorts of hardware and software solutions. One of the things that bugs me the most is when something I built was working fine, then after upgrading something seemingly unrelated or unimportant, everything stops working.
In my case it results in frustration and normally quite a few hours of finding a work-around. However, imagine this in a banking or industrial setting. When one of the components your systems are built on changes, disappears or stops working, the whole lot can come crashing down with significantly greater impact.
Too look for a specific example, I spoke with a friend of mine from a company that is solving one of these very specific, but high-impact problems.
Even though the following topic might seem a deep techie issue, do read on because I'll show you how the impacts to our every day lives can be quite significant.
Redis (Remote Dictionary Store) is a very popular database technology that runs purely in memory and delivers blazing speeds. Because of its speed and easy of use, it is incredibly popular in sectors including financial, gaming, healthcare and many others.
Solving the need for high speed caching and databases for on-premise Windows servers using the popular Redis datastore.
Many of the companies you know use Redis, including GitHub, Airbnb, StackOverflow, Uber, Alibaba and many more. A more detailed list can be found here.
I spoke with Janea Systems, who created and spun out a technology called Memurai to solve an urgent and critical need that their customers in these sectors were facing.
Many of Janea Systems' clients from the financial, legal and government sectors have on-premise Windows server based solutions for the reasons mentioned above. In these systems, Redis is a popular choice to deliver the high performance applications their businesses depended on.
Then one day, Microsoft declared (via GitHub) that support for Redis on their Windows servers was coming to an end and anyone still needing to use it should simply migrate to their Cloud solution, Azure.
Now, Please Pick Up Your Jenga Tower and Move It Over Here.
Whilst Redis might have been just one of hundreds of dependencies within these companies software stacks, the move from Microsoft now meant they either had to deftly remove and replace the Redis shaped Jenga block from the bottom of the tower, or pick up the whole thing and move it into the Cloud.
Both options were going to cause significant risk, cost, and likely, both. This is when Memurai was born.
Memurai is effectively a drop-in replacement for any application that is underpinned by Redis on Windows servers. It is 100% compatible with any Redis application, and delivers the same, and even sometimes better performance. This means companies can simply slide another Redis shaped block into their Jenga tower software, confident that the whole lot won't topple over in the process.
More Significant Than It Seems
It might seem like just a small detail, but innovations like this can help companies reduce risk, avoid costly migration and re-engineering efforts, avoid unplanned downtime and save millions.
Whilst this seems like a niche piece of technology, the ramifications could be potentially very large. However, like many of the great things in life, sometimes the true value is only appreciated in hindsight when something stops working.
So for my sake, and every other consumer out there, if you're a company depending on high speed transactions using Redis on Windows servers, please do check out what Memurai can do for you.
Memurai is already being used by some of the largest companies in the US, UK, Europe and South Africa, across Telecom, Insurance, Government, Academic, Gaming, Banking and many other sectors.
The core of Memurai is based on Redis source code, ported to run natively on Windows. Memurai reliably supports all the features that make Redis the most popular NoSQL data store.
Whether it's used for development or production, Engineering teams with an existing investment in Windows infrastructure will be up to speed with Memurai in no time.