This article is the first in a series of blog posts that aim to help readers further their understanding of the cloud and cloud-based services.
What is cloud computing?
AWS defines cloud computing as "the on-demand delivery of IT resources over the internet with pay-as-you-go pricing."
An easier way to understand cloud computing is to think about electricity. When a person flicks a switch at home, the lights come on. It just happens. There is an extremely complex infrastructure for electricity generation behind the scenes; however, consumers don’t worry about that. Electricity powers everything like magic, and we pay just for what we use. Similarly, cloud computing companies such as AWS offer a variety of services over the internet, or the "cloud". The availability of these services online has helped companies evolve from investing in physical infrastructure to satisfying these needs virtually.
Many of the core concepts that would later be adopted by cloud computing can be observed as early as the 1960's, the first notions of the modern cloud began in 2006, when the very first infrastructure as a service platform such as Amazon Web Services (AWS) and platform as a service such as Google Docs were made publicly available (we'll dive deeper into what infrastructure and platform as a service are in a bit).
These initial services are but a fraction of the extensive resources available through the cloud today, as modern cloud computing is evolving toward a utility model where “IT resources” are available to you whenever, wherever, with a simple pay-as-you-go model.
Due to the varying needs of different consumers, cloud-utilization spans multiple deployment and service types so each user can find a use case that meets their specific requirements.
What are the methods of cloud deployment?
Cloud deployment refers to the infrastructure upon which the cloud services are based. This is in terms of ownership of the cloud services, location of the servers, storage size, etc. There are three major types of cloud deployment models:
- Public Cloud models are where all cloud services are publicly available and hosted on third-party servers. The infrastructure supporting the services is owned and maintained by service providers and they deliver these services to consumers virtually, via the Internet. Public cloud deployment models are beneficial because they are highly scalable, provide the most savings, and require the least time and effort to manage. Examples of public cloud providers include Microsoft Azure, Amazon Web Services (AWS), and Google Cloud Platform (GCP). These models are the go-to choice for companies that operate on a limited budget, have fluctuating workloads, or have highly technical computing needs.
- Private Cloud models are where cloud services are delivered to a single organization. The corresponding backend infrastructure to support these services can be owned by the same organization or hosted by third-party providers. Due to all services and infrastructure being restricted to one private network, private cloud models provide more security than their public counterparts. However, since the physical infrastructure is handled in-house, private models are less scalable and more costly. Examples of private cloud providers include VMware, HPE, Dell, Oracle and IBM. These models are most suitable for companies that deal with highly sensitive data, have the flexibility of a higher budget, or are using the cloud to perform a majority of mission-critical tasks.
- Hybrid Cloud models are where companies adopt a mix of public and private deployment models, allowing them to benefit from the advantages of both types. Through utilizing technology that allows data to be shared between public and private clouds, companies adopting hybrid deployment models have the additional flexibility of determining the deployment type of each service they use without compromising heavily on cost, scalability or security. The same service providers are used for the public cloud portion of the hybrid model. These models can be adopted by companies who simultaneously require security and reliability for sensitive data or mission-critical tasks, and scalability and flexibility for less sensitive workloads.
What are the types of cloud services?
While cloud deployment models cover the infrastructure supporting cloud utilization, cloud service types refer to the types of services available to companies adopting a cloud-based interface. These services are built upon on another and is often referred to as the cloud stack. These services are available in four broad types:
- Infrastructure as a Service, or IaaS, allows users to access raw computing, storage, and networking resources with a pay-as-you-go model. Due to the high flexibility and scalability of IaaS and the savings it provides over on-premises infrastructure, it can prove advantageous for companies of varying sizes and with differing needs.
- Platform as a Service, or PaaS, builds upon IaaS by additionally offering development tools, operating systems, and other business tools to help streamline the process of creating consumer-facing applications. PaaS platforms are primarily used by companies developing software or applications, like Google App Engine and Red Hat OpenShift.
- Serverless Computing provides the same services as PaaS, additionally helping developers save time and resources by letting the service provider manage the cloud infrastructure for you, behind the scenes. Serverless Computing can be beneficial for software and application developers that don't have the time or resources to manage scaling, provisioning and managing the cloud infrastructure.
- Software as a Service, or SaaS, allows developers to provide web-based applications over the Internet. All users of the software/application can access it online without needing to download any local files, provided their device is connected to the Internet. SaaS platforms are mainly paid for on a monthly subscription plan, with the plan including additional services such as maintenance, security and software updates so users can see exactly what they pay for. The cloud service provider is responsible for hosting and managing both the servers that support the service and the software or application itself, thus requiring the least effort from the developers side. SaaS platforms are ideal for companies looking to deliver applications with the greatest ease for both their developers and consumers, and can be seen utilized by companies like Netflix and Google Apps.
Let's take a look at the types of cloud services available by examining the intricate process of making butterbeer. IaaS services provide the most basic services you would need to create a butterbeer making factory - the actual kitchen and the electricity needed to power all tools. The people who make the blenders are the ones who would benefit from using IaaS. With PaaS and Severless you would also get a blender, so the people perfecting the recipe are the ones who would use these services. With SaaS you get everything you would need to make the butterbeer, including the recipe and ingredients. You would just need someone to run the operation.
What is a use case for IaaS cloud services?
Let’s look at an example. A small startup is creating an e-commerce application. Assume their projection says that in 6 months, their customer base will be 100,000 users per month. However, since the company also plans to run a quarterly sale, it is expected that during those sale days, the number of users will increase to 400,000 users. In such a situation, the startup would normally have to plan for the backend infrastructure (servers, storage etc.) to ensure everyone has a great experience during normal periods as well as sale periods. So, effectively, they would have to ensure they have enough power to manage their peak sale times every day of the year. That means that the startup would need to invest in the backend hardware upfront (which is called Capital Expenditure or CapEx) for all 400,000 users, although the utilization of this infrastructure will be very low during non-sale periods. As a result, the startup’s cash reserves are constantly tied up in underutilized hardware and not available for other strategic opportunities.
Further, no matter how well we think we know the market, demand can be extremely unpredictable. What if they get 800,000 users during the sale? Since the infrastructure is provisioned to serve only 400,000 users, customers may have a bad experience and drop out completely. That means lost revenue.
The other key consideration is how the startup will even manage this infrastructure. They are app developers. Their USP is knowing their consumers and building great apps. They may not have the funds to hire experienced infrastructure architects or agencies to manage this for them. Security issues. Privacy issues. Performance issues. The list goes on and on. Nothing can hurt a business like pulling its key talent away from their strategic focus areas.
This is where cloud computing comes in. At its core, cloud computing aims to offer an elegant solution to all these problems. It allows businesses to set up backend infrastructure without investing upfront in CapEx. It offers companies the flexibility to scale up and scale down the infrastructure as and when it’s needed. It gives businesses the agility to expand quickly and test new markets and services without pulling their focus and funds away from things that are core to their business success.
Cloud computing adoption is growing exponentially worldwide. Gartner has forecasted public cloud spend will rise to $397.5B in 2022, with usage growing at least 20% each year. Recognizing the benefits, small startups, SMEs, unicorns (which in this case refers to a start up valued at $1B or more, not the majestic creatures with silvery blood in Harry Potter), large Fortune 500 companies, and even government agencies, are adopting the cloud globally. It is projected to be the dominant computing model for the long run. So it's worth understanding how this whole thing works. Stay tuned for the next post in our series which will take a deeper dive into specific services provided by AWS.
As you begin understanding more about how complex offerings on the cloud are, you will also learn about how complex it is to manage IaaS, PaaS, and Severless services. That's where we come in. Reserved.ai is a Cloud Resource Automation Solution that continuously predicts, manages and de-risks your cloud resources by helping you attribute costs, build optimal usage forecasts, and automatically execute commitment plans with guaranteed buybacks to meet those forecasts.