Like with many things in life, failing to plan is a plan to fail. Unsurprisingly, planning comes down to knowing your needs and then selecting the best option for you to proceed with. If I say it fast enough it sounds easy, right?
Think about your energy bill. Recently, my energy company came out with two billing models: Time-of-Use and Tiered. The choice is between different rates for different times of the day (On-peak, Off-peak) versus being charged one rate until you hit a threshold and then everything else for that day is charged at another rate. To make this decision, you need a historical look at your usage both in total daily power consumption and also an hourly breakdown of your average day's consumption. Once you have that, all that is left is choosing the option that is cheaper for you.
Azure, like most cloud providers, offers a very similar choice in the form of pay-as-you-go versus reserving an instance, such as a virtual server. Once again, this is a choice based on your usage rates. In this case, your IT team merely needs to look at the server loads over the course of the year and choose accordingly. For instance, if your servers are running fairly high loads consistently throughout the year then a reserved server would likely be the better choice. If not, then perhaps a pay as you go option would be more beneficial.
If your company has proprietary software then the cloud can become even more cost efficient over time. Traditionally, software is placed onto a server and can be run either by fielding incoming requests or by running as a background process called a service.
As I mentioned above, using Azure you can still reserve a virtual server and run your software as is. In cloud speak, this is called Infrastructure as a Service (IaaS). There are other ways that software can be developed and run using serverless methods. Two of the most common forms are Platform as a Service (PaaS) and Function as a Service (FaaS).
Serverless processing is kind of misleading to the uninitiated because obviously the software runs on servers. What is meant by this is that PaaS and FaaS allow a development team to deploy and run their applications without even needing to manage a virtual server. They are more efficient in terms of resource and management costs.
The reason these are called "____ as a Service" is that they are all virtual constructs rather than a physical server. Much like a person renting a station in a commercial kitchen, they are services that the customer pays to use. For an easy to understand introduction to this how this fits together, please check out my article.
For PaaS, the application is placed into a construct called a container which is configured to inform the cloud platform the exact type of environment (operating system and performance requirements) that the application needs to run. The container is uploaded into the PaaS environment and from there it executes with a promise of performance by the underlying cloud infrastructure.
The promise of performance to the container that we speak of is very much like our person who rents the station in the commercial kitchen. They assume that the kitchen is certified, it's cleaned between users and that all of the equipment is well maintained.
FaaS takes it a step further by allowing snippets of code to be executed with a promise of performance. This is where you can pay per execution which can be very cost efficient.
So, how do you get your monolithic legacy application to be able to take full advantage of these methods of processing?
By modernizing your software to run on the cloud. This is the process by which you review the architecture of the application and identify individual business functionality and split them up into something called microservices. Microservices are then containerized (configuring a container and putting the microservice inside) and deployed. The containers execute when they need to and you are charged by the time of execution.
To put this into perspective, let's use an example. There are two scenarios that we have discussed: one where your servers are churning away at a high load all year long and one where they are not. There is an average of 730 hours in a month. Let us assume that the hourly execution cost of the serverless methods is $0.15 and the monthly rate to reserve a virtual server is $100. Let us also assume that we have the same execution resource requirements for both scenarios and we see the following:
At 730h of execution the Pay as You Go costs $109.50 versus the reserved server cost of $100.
Now consider the modernized application where you have carefully split it up into containerized microservices. The hours of execution per month might be 200 because the microservices only execute when needed. Now we see the following:
At 200h of execution the Pay as You Go costs $30 versus the reserved server which still costs $100.
Done with the right hands, this often complicated process allows your application to become more productive, cost-effective and reinvigorated for the future. The secret sauce is the cost efficiency over time which recuperates the initial investment and thus drives ROI.
TMH Solutions is a cloud solutions company that specializes in Application Modernization, Managed Applications, Data Management, Business Intelligence Reporting, Managed Services and Cloud Enablement. We would love to discuss your company's vision and help make it future ready! Please reach out to us at firstname.lastname@example.org.