Let’s have the head in the clouds

Every day we hear terms related to cloud computing, terms like PaaS, SaaS and others. But what do they mean? What are they good for? And more importantly, what can they mean for us and our business? I will try to clarify these concepts, but to increase the interest I will make a small spoiler, we will be able to move from CAPEX to OPEX, move from spending and investments for purchase to spending for operation and service. Interesting, isn’t it? Well, let’s go to the explanations, but in the meantime, would you like some pizzas?

Let me introduce you Daniel, a sports fan whose favorite team is playing the final next weekend and decides to invite his friends to watch the game at his house, while they dine on pizzas that Daniel himself is going to make. Good plan isn’t it, but his friends will bring the drinks.

On the other hand, I introduce you Sara, who oversees the systems of a company and who will guide us through the services of cloud providers and how they can affect her day to day (and the economy of her company).

Daniel writes in the chat group of his phone the invitation to dinner and the answers begin to arrive, some answer that they will come, others that maybe, others that probably will bring a friend, and there are those who do not respond. But this is not the worst thing, the worst thing is when he asks about what kind of pizzas they want for dinner. There is a lack of information regarding the number of pizzas and flavors, but Daniel must make the pizzas, starting with the dough, which needs fermentation and resting time. But how many does he make? If he doesn’t know how many are coming, what if he makes just enough and then someone else comes along? So, what should he do? He will do what we all do, prepare more dough than necessary so as not to fall short and have people not eat, which means paying for all the ingredients and starting to cook without even knowing how much of each thing he needs and with the risk of making more dough than necessary.

Something similar happens to Sara, she has to size her datacenter and has asked her colleagues what systems they need to cover their processes and how much workload these systems will have in order to buy new machines, but there is a lot of uncertainty and before that, Sara does not want to buy less hardware than necessary and before the possibility of falling short and not being able to provide service, she will order more capacity in the resources than she expects to use, so they can grow without problem and being aware that she will pay in advance for computing and storage capacity that possibly will never be used. The option of ordering new additional systems when there is too much load does not enter into their plans, since it is a problem in management, investment and time (like pizza dough, it needs time and patience).

To avoid depending on the time of the doughs, Daniel decides not to make the pizza doughs himself, but to buy them already prepared and if he needs to buy more, he can do it at the last moment, when there is more definition about the people who come and without having to wait for the fermentation.

Sara, for her part, in order not to have to wait a long time to provision new machines and to be more agile, is going to opt for the use of an IaaS (Infrastructure as a Service). IaaS is a type of cloud computing service that provides essential storage, processing, and networking resources on demand. Thanks to IaaS, Sara can order the servers she needs in the cloud, making it much faster and easier to provision systems. With IaaS, we can provision and decommission servers quickly, while scaling up and down both vertically and horizontally in a few seconds (even automatically), thus avoiding cost overruns in operations.

Daniel sets out to make the pizzas, but he has to buy a lot of ingredients in advance because his friends are very picky and each one wants a different flavor pizza (I’m not going to get into the debate, but none of them ordered the pineapple pizza). To avoid them ordering things that are too weird or too much of a scattering, Daniel opts to send out a closed ingredient list and let his friends decide what they want to put on their pizzas from those ingredients. Still, buying ingredients in advance means an outlay, and that what you don’t use will go to waste, or even ingredients that you have to buy a whole package to use just a little bit of it.

Daniel decides that better than buying the ingredients and making the pizzas at home, he is going to order them from a Pizzeria, since this way it will be more comfortable and everyone will be able to choose the ingredients that best suit them, being able to wait almost until the last moment to decide which pizzas and the ingredients of each one.

At Sara’s company, they are very interested in modernizing their online sales portal as well as other web applications they have. Sara is reviewing the licenses and systems to be purchased for the solutions to be developed, realizing the complexity she will face with databases, programming environments, middleware, data analysis solutions and other necessary tools without forgetting the subsequent day-to-day management, such as updates, security maintenance and others. Therefore, Sara is starting to think about using a PaaS (Platform as a Service). PaaS is a complete development and deployment environment in the cloud, with resources to deliver everything from simple cloud-based applications to sophisticated cloud-enabled enterprise applications. PaaS goes a step beyond IaaS and includes infrastructure (storage, servers, and networking), but also includes middleware, database management systems, development tools, business intelligence services, etc. PaaS is designed to provide services for the complete lifecycle of web applications: build, test, deploy, manage, and update. Thanks to PaaS, Sara will be able to quickly access services and tools for the development of their solutions, paying only for those used.

Daniel thinks that since the pizzeria is going to cook the pizzas for him, why not also save the trip to the pizzeria, they offer a service that brings them to your home. So, he will finally order the pizzas with home delivery service; from the oven to the table.

Sara believes that some of the solutions to be developed, such as CRM, already exist in the market and can be used quickly and without high cost, so she proposes the use of SaaS (Software as a Service). SaaS allows users to connect to and use full-featured, cloud-based applications over the Internet. Examples are e-mail, shared storage or other management applications such as campaign managers, learning management etc. (the list of solutions currently available as SaaS is actually very extensive, including vertical solutions). By using SaaS, we can use complete solutions paying only for what we consume and being able to scale or reduce resources according to our needs.

Well, it all seems ideal, doesn’t it? We pay for what we consume, or almost. Let’s go a little bit into the payment models of these services.

Daniel has called the pizzeria a few hours before the game so that they can prepare the pizzas and be ready when the game starts. Just a few minutes before kick-off, Luis, one of Daniel’s friends, called to say that he would not be going, and another person wrote that he would be going to watch the game with a friend. Now we have a pizza ordered by Luis that he will not eat, and a new person who has no pizza. The quickest solution would be to tell this new person to eat Luis’ pizza, but sometimes tastes do not match, for example Luis’ pizza could be meat and the new person could be a vegetarian, so it is not the ideal choice. Surely a new pizza would be ordered, and Luis’ pizza would be left uneaten.

In the cloud world, Sara will be able to manage this type of situation in a very agile way. Although depending on the cloud service provider, we can find different forms of service contract, the most common are subscription and pay-per-use.

– Subscription: We contract a service for a determined period, paying for this period. If you do not use the service, you must still pay for it. This type of contract has better prices but lacks the flexibility to stop paying if it is not used.

– Pay-per-use: We are charged for each service used for the time used. We can find several types, two of them are:

Credits: Payment in advance or commitment to spend an amount of money in different services within a certain period of time. They are like buying tokens that we spend on whatever we want. We have the flexibility to change services, but the commitment to spend a certain amount of money (and sometimes with payment in advance). They are priced somewhat higher than subscription payments, but lower than the next category.

Pay as you go: You can use all services, with no restriction on how much you spend in a period and what is billed at the end, is what you use. When we start using a service, it counts how much it consumes and at the end of the period we are billed for what we use. There are no usage restrictions or spending commitments although the price is higher than the previous ones.

In Daniel’s case, subscriptions would be like ordering pizzas and paying for them before eating, in case you don’t eat one, you will have already paid for it. The credits would be like saying to the pizza man “I’ll pay you 200€” and that friends will consume that credit, ordering whatever they want, and knowing that if they don’t consume the 200€, I will pay the 200€ anyway, but in return, the pizza man will give me a 10% discount on everything we order. Finally, the pay as you go, would be to go consuming in the pizzeria and at the end, charge us for what we consumed. Same, we have mentioned that in the pay-as-you-go cloud, we can stop a service when we do not use it and use another one instead. In Daniel’s world, it would be like being able to order slices of pizza. Why would I have to pay for a year of a service if I only need it for 4 months? Why would I pay for a whole pizza if I only want one slice?

Daniel has seen a pizza of a new spicy flavor, but he doesn’t know if he will be able to finish a slice, can you imagine if there was an option in pizzerias that you only pay for what you actually eat? If it’s a bite, that they charge you only for a bite. (I know, it is not very hygienic and even less in these times). Well, in the cloud world there is.

Serverless functions (also known as lambda functions by Amazon) allow developers to create applications faster, since they don’t need to manage the infrastructure. With serverless applications, the cloud service provider automatically provisions, scales, and manages the infrastructure needed to run the code, simply paying for the time that function is running. In this way, we can have the technical team focused on developing functionality without having to think about the infrastructure and the economic team at ease because we only pay for the time the function is running, if there are no executions, there is no cost. Interesting, isn’t it?

I hope this little article has served to clarify how the use of cloud services can help us in the agility of building solutions while helping us to save costs, and of course, I also hope that Daniel’s team won the final and that everyone ate the pizzas they wanted at the lowest possible cost.