How to integrate your AWS event-based system with external/legacy systems using RESTful APIs
Cloud computing is not a new concept. Amazon Web Services (AWS) was the first to offer cloud services when it launched its Amazon Simple Storage Service (S3) storage service in 2006. Gartner estimates that the Cloud computing market could be worth over $300 billion globally in 2021. Cloud has spawned a new generation of born-in-the-cloud companies, like Netflix, that have been built primarily in the cloud. Large enterprises like Time is going all in and migrating five of its global datacenters to AWS.. But there are many other companies that are still hesitant about moving to the cloud, because they not sure of the value that they can gain from it.
In this post, I will attempt to use an analogy to highlight the power of AWS, that will hopefully allow customers to see how AWS can be leveraged to transform their business.
The Power of Analogies
Analogies are persuasive and powerful. They use our familiarity with objects and models we know and understand, to force us to make a mental leap towards something new. They are used in many places including physics, and business, where the power of analogy is used when defining strategy. There are existing cloud analogies that perhaps some of us are familiar with, and the most common one being about the power grid:
"Cloud computing is like plugging into a central power grid instead of generating your own power."
That’s easy to understand - as a company, you need electricity to run your business, so instead of generating your own power, you simply get power from the power grid. Generating your own power would entail a host of things, e.g. buying expensive power equipment, hiring and training power experts - all of which are mostly likely not related to your actual business. But getting power from the power grid would allow you to focus on your business, and lets the power utility company worry about those other things. So to close that analogy then - cloud computing allows you to simply focus on your business because you can rely on the IT resources and expertise provided by your cloud provider. These resources include compute, storage, database, AI/ML and many others - that the cloud provider focusses on to build and support, and you just use it as and when required. Sounds simple, but somehow it does not resonate with many businesses. For a few reasons I think. Firstly, many businesses don't recall a time when you had to generate your own power. Roughly from about the 1870s, we have relied on the power grid to supply us with electricity. Secondly, there aren't really any other choices of getting power, except from the power grid. In South Africa, Eskom is the only option, so business haven't had to think about where to get power from, they can only use Eskom. And thirdly, and perhaps almost ironically, Cloud providers are now in fact are generating their own power: Amazon is going to make its own electricity in SA, then run it across Eskom’s grid. So businesses in South Africa don't identify with that analogy. I therefore wanted to use an analogy that we in South Africa will hopefully identify with, and use it as a vehicle to talk about how AWS can transform your business.
Gas Geysers as an analogy for cloud computing consumption
In our domestic lives, most of rely on a some type of an appliance to supply us with hot water. In South Africa, most of us use geysers - which is a tank type of water heater, that is a cylindrical container that keeps water continuously hot and ready to use, which is usually it's powered by electricity. Traditional electric geysers have always been the default choice for most South Africans. Until recently, electricity was cheap, but considering South Africa's energy crisis, I recently embarked on a journey to switch away from electric storage geysers towards something more energy-efficient. In the end, I chose an instant gas water geyser to replace our electric geyser at home, for two main benefits:
- This is an instant geyser - which means water is heated only when the tap is opened, using less energy. Unlike storage geysers which use electric elements to constantly heat the water in the storage tank.
- It uses gas, specifically LPG gas (which has a calorific value 2.5 times higher than main gas, so more heat is produced), instead of electricity.
And that brings me to my main point of this post: I propose that cloud computing is like using an instant gas geyser, that saves you cost and makes you energy efficient - two things which are important for South Africans. I want to expound on a few specific points to make it more clear.
For the most part, this analogy will also apply to other water-heating appliances like solar geysers and heat pumps.
Companies really only have two choices when sizing and purchasing infrastructure: either under-size (sized for normal usage) or over-size (sized for peak usage). If you care about making sure you service is always available, you will over-size, causing your infrastructure to sit idle for most of the time. With our geyser analogy, this is exactly what we have been doing. Electric storage geysers have been heating water constantly, because we don’t know when we will need the hot water. This means that hot water was constantly been heated, and only used a few times a day, obviously resulting is wasting energy. Additionally, the size of the geyser is an important consideration for much water the electric storage geyser can store. Your decision will be based on the size of the family. Getting in wrong will mean a cold shower on certain days where everyone is showering at the same time.
With the instant gas geyser, you only heat the water when you need it, and save on wasteful and unnecessary heating. In addition, since it heats water on-demand, you won’t ‘run out’ of hot water - the amount of hot water you have access to is not limited to the size of the geyser.
With AWS, you don't ever need to oversize. Firstly, you don't need to purchase upfront, rather you can use a service only when you need it, with no long term commitments. This allows you to right size, and choose just the capacity you need. Secondly, AWS allows you to achieve elasticity and scale, so you only use capacity when you need it.
Electric storage geysers are wasteful, which means your electricity bill is higher than it needs to be, because it is constantly heating the water, even when you don’t need it. On the other hand, instant gas geysers only use gas when hot water is needed, resulting in you only paying for gas based on actual usage.
Similarly, by purchasing servers up front, and keeping them on all the time, to only use it when you service peaks, is wasteful. With AWS, you only pay for what you use, thereby reducing cost. You don't pay to keep servers idle.
Resistant to failure
Power outages, which are frequent in South Africa due to load-shedding, renders your electric geyser unable to heat water. Instant gas geysers just need a small battery to ignite the flame, and are thus resistant to power outages.
Similarly, on-premise infrastructure are susceptible to outages caused by power failures, even when they have batteries and generators. AWS however, can afford to dedicate huge amount of resources and controls to making AWS regions resistant to power failures. At re:Invent 2020, AWS described how they have designed custom power supplies to protect their infrastructure. It's very difficult, for even large corporations, to have the expertise and resources to build such highly resilient infrastructure that is impervious to power failures.
Typically, electrical storage geysers are set to heat the water at about 65 degrees Celsius, or even higher. However, people only need hot water at about 45 to 48 degrees - anything hotter will scald. This means that when you having a shower, you have to mix the water, by opening both the hot and cold water taps to get the temperature to somewhere between 45 to 48. So why waste so much energy to heat water to a temperature higher than is actually needed? This is done for a few reasons: as you open the hot tap and hot water flows out of the geyser, cold water starts flowing into the geyser, dropping its actual temperature. This wont have a real effect until you have a lot more cold water in the geyser in short space of time, e.g. a shower longer than about 10 minutes, before the geyser has time to heat it back up to 65. So the higher temperature off-sets the cold water flowing in. Clearly electric storage geysers are very un-efficient, as it needs to over-heat the water, because water can only be heated in its storage compartment.
Instant gas geysers are very different, because they don’t store water, so it can heat water only when its required, in a Just-in-time manner. Therefore, there is no need to over-heat the water above the actual required temperature of 45 to 48. So when you open the hot water tap, the water comes out at the desired temperature, and there is no need to mix in cold water.
So the way you use and operate an electric gas geyser is very different to an instant gas geysers. Users of electric geysers need to know that the water coming out of the hot tap is going to be a scalding 65 degrees, requiring them to mix in cold water to get it to a comfortable 45. On the other hand, users of instant gas geysers just open the hot tap, and don't need to mix in cold water. They also don't have to worry about running out of hot water, whereas users of electric storage geysers will run out of hot water after a long shower, and will need to wait a while for the electric geyser to heat up the water again.
So besides the obvious cost savings, they require different ways of usage. The same operational differences can be called out between on-premise infrastructure and Cloud. With on-premise to need to over-size your purchase (the same as heating up water higher than the actual temperature), while with cloud, it will scale and give you the capacity where and when required. So you don’t need to plan up-front for 3 to 5 years, rather just use the cloud for what you need. So in our analogy, the cloud gives you the water at the perfect temperature you need, while on-premise infrastructure requires you to mix in cold water, and worrying about running out of cold water. These different operational models require a significant change in mindset to take maximum benefit.
Understand your drivers for change
When I migrated from the electric storage geyser to the instant gas geyser, I knew exactly why I was doing it: to save costs, and be more energy efficient. In the same way, when you move to the cloud, you need to be sure what is driving you there. Gas geysers cost more than electric geysers, so I knew up front that even though the initial layout will cost more, I will save over time.
Most customers moving to AWS initially start talking about cost savings, but the number one reason customers choose to move to the cloud is for the agility they gain. So customers moving to AWS can manage budget expectations in discussions between the CIO and CFO.
Analogies aren't perfect, and can't cover every use-case. Our analogy can't cover the full ambit of cloud offerings from AWS: over 200 services, which include over 15 types of purpose-built databases, and the global footprint of 25 regions, one of which was the Africa (Cape Town) region, launched in April 2020.
However it’s still a usefull analogy, especially for someone trying to understand the benefit cloud computing could bring to their company. And, to complete our analogy, we can say that cloud computing is like switching from an electric storage geyser to an instant gas geyser – it will help be more energy-efficient, save costs, and be resistant to power failures!