Cloud concepts
In today’s digital age, cloud computing has become the backbone of modern business operations and innovation. Organizations of all sizes are increasingly adopting cloud solutions to stay competitive, agile, and efficient.
The rise of cloud computing has not only transformed the way businesses operate but has also created a surge in demand for skilled cloud professionals.
Grand View Research shows that cloud computing market size was estimated at USD 602.31 billion in 2023 and is expected to grow at a CAGR of 21.2% from 2024 to 2030.
Will all that in mind, specializing into a Cloud Expert seems like a good idea.
Before we embark on a journey we need to align on commonly used terminology.
Let’s focus on that in this blog post.
Terminology
Server
Server refers to a piece of hardware, machine with a storage capacity (HDD, SSD), CPU, GPU, memory, features like ones that your personal computers has. On top of that we host our applications, as we do on our personal computers. Therefore we strive to pick hardware configuration that meets our needs - whether we do gaming, video editing, programming etc.
On-premise (on-prem)
A server or a bunch of servers under our control and ownership. We’re hosting our applications on our own hardware, rather than renting space in someone else’s data center.
Data Center
It’s a physical facility (building) hosting many servers, interconnected with network. Apart from servers, it contains reach networking infrastructure, cooling system, security and personal operating the facility.
Cloud
If we ask Wikipedia, we would get:
Cloud computing[1] is the on-demand availability of computer system resources, especially data storage (cloud storage) and computing power, without direct active management by the user.[2]
In simple terms, cloud refers to a set of interconnected servers available on demand via internet. We’re still talking about data centers but in a much larger scale, meant to be exposed and used in a shared model. Shared model, meaning we’re hosting our applications along with applications from other people, in isolation.
On-demand refers to the ability to provision resources only when we need them. Compared to the on-prem where we would invest in infrastructure, personal operating the facility and pay for maintenance regardless of the capacity that we’re using.
Private Cloud
Similar to traditional model, it can hosted and managed by us or by third party vendor, typically on-premise but exclusively for a single user/customer.
Public Cloud
Owned and run by third-party cloud service providers like Microsoft, Amazon, Google. They manage and provide resources via the internet.
Hybrid Cloud
Computing environment that combines an private with a public cloud, allowing data and applications to be shared between them.
Cloud providers
There are so called cloud providers which expose these kind of services. Three most popular, with the biggest market share would be Amazon, Microsoft and Google.
In the first quarter of 2024, the most popular vendor in the cloud infrastructure services market, Amazon Web Services (AWS), controlled 31 percent of the entire market. Microsoft Azure takes second place with 25 percent market share, followed by Google Cloud with 10 percent market share. Together, these three cloud vendors account for 66 percent of total spend in the first quarter of 2024. statista.com
While Amazon’s market share declined from 32% to 31%, Microsoft’s Azure has all time high of 25% rising in popularity.
Multi-cloud
Referring to a use case where we’re not vendor-locked to a single cloud provider but instead using services from multiple cloud providers.
Pros & Cons
Some of the benefits that cloud solutions provide are:
- Scalability - able to scale in (vertically) and out (horizontally) and meet the increasing demand, ensuring optimal performance and cost efficiency.
In simple terms:
- Scale in (vertically) - upgrading our existing server with more powerful configuration (more processing power, storage, memory..)
- Scale out (horizontally) - buying more servers and sharing load among them. Instead of putting all the load on one server.
- Economy at scale - being able to scale provides us with the benefit of paying only the services we use and only when we use them
In simple terms:
- Compared to the traditional data center or on-prem we would invest in infrastructure, maintenance no matter the load or capacity that’s used. When load that we expect is higher we would need to upgrade our configuration, buy new servers even though we won’t need them in most of the cases. Here we use only what we need, when we need it.
- Availability - increasing coverage, being there for your customers no matter where they happen to be located
In simple terms:
- having data centers around the globe. If customers are in Europe, servers from there will handle their requests, for Asia users, servers in Asia etc. This also lowers the time needed for the request to be handled to minimum, as we’re served by the closest server.
- Reliability - having services available without interruptions that meet the agreed SLAs
In simple terms:
- Having as least as possible downtime, or time when our services are unavailable to our users. With cloud providers we sign the SLA (service level agreement) where they guarantee the availability time.
- Security - having in mind today’s security challenges, putting security concerns in an experts hands so that we can focus on our main business. Also with data encryption, encryption at rest, private network options it’s ensured that our data is safely stored and transmitted
In simple terms:
- Instead of hiring, upskilling and paying experts to maintain and patch our infrastructure for vulnerabilities, someone else does that for us. We focus on what matters to our business, our application.
- Regulatory - being able to comply with regulatory standards and mitigate potential risk. Also able to keep the data within the regulatory boundaries.
In simple terms:
- If our data needs to stay within EU we would host our data in EU data centers that follow EU regulations.
- Backup and Disaster recovery, Observability and many more
In simple terms:
- We want to be able to recover if power/network outage happens so that our services are available. So if one server dies, other server will take over. If there is some natural disaster and whole data center or even many in one region stop working, other data centers take over requests.
- We want to have holistic overview on applications and resources and their state over time.
It is all about tradeoffs - as with anything else, with cloud computing as well.
So what are the things we need to be aware of?
- Attachment to a single provider - difficult to migrate to another provider due to the different factors as complexity, cost, size of data…
- Lack of control - putting control and responsibility into vendor’s hands is a benefit that comes with a price. In that price is also a lack of flexibility to access, adjust certain things and tweak per our needs.
- Data privacy - We should always be mindful of our data, the way we store it, how we expose it, who has access to it. Also does it comply with regulations.
We often hear about leaking data cases. Therefore putting confidential data out there in the cloud doesn’t seem like an easy decision for businesses. - Cost tracking and cost-efficiency (according to reports, one of the biggest pain points for the companies nowadays)
- Cost tracking - able to understand the cost of the services being used. Also the way this reflects to our business (i.e. how cloud benefits our business scenarios, cost per customer, per feature, per BU…)
- Cost-inefficient solutions - we need to understand the services and how to utilize the best out of them for the problem that we’re solving.
Cloud is awesome! But, with great power - comes great responsibility!
As someone who spent most of the career around Microsoft stack I naturally developed an interest towards Azure. Anyway, no matter which way you go, concepts will be the same. It can happen that some services are not available or have different names with other providers.
Once you understand the concepts it won’t be hard for you to map services from one provider to another.
Next steps
This was tip of an iceberg. There’re many more concepts worth covering, but more on that in the upcoming posts in the context of Azure. From time to time, I will update this post so that it contains at least conceptually fundamental building blocks for cloud, regardless of the cloud provider.
As a sidenote, Microsoft, as well as other cloud providers offer various certifications, certification paths and tons of resources to enable you to effectively and efficiently use their services. Most of the things that we will be covering in the upcoming posts will be covering aspects of AZ-900 and AZ-204 certifications. If that doesn’t mean anything to you - no worries! I got you covered, already in the next post.
Follow me on a journey where we get to learn what Azure has to offer and how we, and our business can benefit from it.
Stay tuned :)