Introduction to Cloud Computing
Part 1 of cloud fundamentals with AWS
Image by author
This is Part 1 of the Cloud fundamentals with AWS series.
So you’ve heard enough about the benefits of the cloud, like unlimited computing power, security and unlimited storage. You are eager to jump in and try it out.
Maybe you are working on a big enterprise application with thousands of users, or you have a humble personal blog. In either case, the cloud is the perfect place to host
But before we get into all the products, services and tools that the cloud offers. Let's look at the basics of cloud computing, including cloud deployment models, benefits and popular options
1. What is cloud computing
Before we address what is cloud computing, a better question to ask is - What is the cloud? Is it the one that brings rain and snow or is it something else?
Have look at this picture and guess what it is. Is it a galaxy? Fireworks?
Pic: Internet Visualized
Nope… It's a visual representation of the internet. A highly zoomed-out version at that. Each tiny blip of light represents thousands of interconnected computers on the network.
Now imagine having to represent the internet on a network or an architectural diagram. How would you represent the internet?
One of the best possible analogies to the internet is this: The cloud.
So cloud is nothing but the internet!.
You have cloud storage, servers in the cloud, cloud services etc.
Every time you hear the word cloud just replace it with “accessible over the internet”.
Your cloud streaming service is nothing but media accessible over the internet. Your cloud storage is nothing but storage accessible over the internet.
Now that we know what cloud is the official definition of cloud computing makes better sense
Cloud Computing is the on-demand delivery of IT resources over the Internet with pay-as-you-go pricing.
Cloud Computing is the delivery of IT resources over the Internet. The cloud is like a virtual data center accessible via the Internet that allows you to manage:
- Storage services like databases
- Servers, compute power, networking
- Analytics, artificial intelligence, augmented reality
- Security services for data and applications
Characteristics of Cloud Computing
- Pay as you go— You pay for only what you use and only when your code runs. You pay by the hour or minutes, sometimes even seconds. Just like an uber ride. you just pay for the ride based on the distance!
- Autoscaling— Resources like servers, processors and storage can grow and shrink as per demand. So have a tax filing application you can run a beefed-up application during tax season with multiple servers, or scale it down to minimal resources during the off-season.
- Serverless — I'm sure you have heard this term everywhere.This just means that You worry only about your code and application. You don't have to worry about the physical servers and infrastructure. It’s like booking a hotel room. You pay as long as you wish but don't worry about maintenance and housekeeping.
2. Types of Cloud Computing
Cloud computing can be broadly classified into 3 types
Infrastructure-as-a-Service (IaaS)
With IaaS the cloud provider supplies you with virtual server instances, storage and mechanisms to manage them over the internet. You are free to use the server as you need for your application. You are responsible for the deployment and installation of necessary software and tools to run your application.
This is just like your own physical servers, but in this case, they are physically residing at the provider's datacenter like Amazon’s or Microsoft’s and they take care of the electricity, security air conditioning etc. Of course, you pay for what you use only.
Some of the examples are Amazon’s AWS, Rack space, DigitalOcean, Iron Mountain etc
Platform-as-a-Service (PaaS)
In PaaS, Development tools are provided to you that are hosted on the provider’s infrastructure. So the provider manages the server hardware and the operating system. You just worry about maintaining and deploying your application or website on their platform.
Examples of this are GoDaddy, salesforce, Shopify, Wix etc.
Software-as-a-Service (SaaS)
This delivers software as a service over the internet that is run and managed by the cloud provider. You neither worry about hardware nor deploying your own application. You just use the software as you need. You just pay for what you use for the software.
Examples include Office 365, Spotify, Gmail etc.
3. Cloud Deployment Models
There are 3 Cloud Computing deployment models. In other words how and where your data and application are hosted.
Public cloud
Here the resources are made available over the internet. The resources could include servers, storage, computing power etc of course with adequate authentication. Also, public clouds serve more than one user or company. For instance, you and I can both have our own Virtual machines or applications deployed on AWS independent of each other.
Amazon AWS is one of the largest public cloud providers. closely followed by Microsoft Azure
Private Cloud (On-Premises)
This a proprietary network or internal data center that serves a limited number of people and is internal to a specific company. For example, Think of a large auto manufacturer using its own cloud that's accessible only from anywhere in the world, but limited to its employees.
Hybrid Cloud
It's a combination of public and private clouds. This model is a growing trend in highly regulated industries.
In this model, some of the applications and data may reside in a private cloud-like sensitive personal information. But maybe accessible over the public cloud through a web service or application.
The hybrid model is a growing trend in the industry for those organizations that have been slow to adopt the cloud due to being in a heavily regulated industry. The hybrid model gives organizations the flexibility to slowly migrate to the cloud.
4. Common benefits of Cloud
One of the biggest benefits that you’ll see with the cloud is the ability to innovate quickly and the ability to scale on a global scale with just a few clicks. It gives the ability to fail fast; To try an idea, put it out and check if it works.
There are several additional benefits to Cloud Computing like
Stop guessing the capacity —You don’t have to fuss about getting the right server with the right processing and storage right at the beginning. You can adjust as you go.
Avoid huge capital investments upfront —You don't need to invest in getting any physical servers, networking, electricity to put your app in production. Again you pay as you use and scale your cloud server as you need.
Pay for only what you use —Just like using a cab service or buying gas. You only pay for what you use on the cloud. This results in huge cost savings.
Scale globally in minutes —Your application is a super hit in America, now you want to explore Asian markets, you can deploy your app in the Asian region with just a few clicks. You don't need to procure servers and data centers in Asia on your own.
Deliver Faster —Cloud removes the overhead of managing your own infrastructure of data centers, this lets you focus on your application. And global cloud infrastructure means you can deploy the application on regions closest to your users and serve them with the lowest latency and high performance.
5. Cloud Provider Options
Currently Amazon web services — AWS is the largest cloud provider, closely followed by Microsoft Azure and Google’s Cloud platform. There are also several smaller private and hybrid cloud providers like Oracle, HPE, etc.
In this course we will focus on AWS. It is one of the most widely used Cloud
Service providers. Also the beauty of cloud is once you understand the concepts from one, its very easy to transition to another.
6. AWS Cloud Services and Products
AWS offers a broad set of global cloud-based products. From storage to Satallelite ground stations you got it all.
Screenshot from AWS Products page
But don't be intimidated by this long list of cloud products and services. you don't need to learn them all. Think of this as your supermarket catalogue where you get everything from grocery to gardening supplies. You just pick what you need.
Likewise, on day to day basis you’ll be using just a subset of these services or the foundational services. Which we will explore in detail throughout this series.
7. AWS Global infrastructure
This map shows AWS Global infrastructure. All the blue dots represent regions already available and the orange dots represent the regions that are coming soon.
Screenshot from AWS Products page
Regions
Regions are geographic locations that have availability zones or AZs. Typically each region has a minimum of 2 availability zones. You typically select your region to reduce latency and cost.
If all your users are in India it makes more sense to select the Mumbai region vs the West Coast region.
Regions are isolated and independent and resources aren’t automatically replicated across them. If you need your resources to be replicated across different regions you have to do it explicitly.
Availability Zones
This is an isolated location within a geographic region. Think of these as the actual physical data centers. There are multiple availability zones in a given region so a failure in one availability zone does not impact another availability zone.
Edge Location
These are like mini data centers that are used to cache large data files closer to the user’s location. It is used to serve static content as quickly as possible to reduce latency.
We will explore more about edge locations when we look at content delivery networks in upcoming articles in this series.
Things to note
- There are more Availability Zones (AZs) than there are Regions.
- There should be at least two AZs per Region.
- Each region is located in a separate geographic area.
- AZs are distinct locations that are engineered to be isolated from failures.
8. Shared Responsibility Model with AWS
When developing applications and providing services to our users we are in a shared responsibility model with AWS. This diagram illustrates this model
Screenshot from AWS Shared responsibility Model
AWS is responsible for security OF the cloud, we are responsible for security IN the cloud.
What this means is that AWS provides us with the security tools to protect our data, but we retain control of what security tools we implement to protect our systems.
Here are some examples of what AWS is responsible for and what we are responsible for in the cloud
AWS is responsible for:-
- Securing edge locations
- Monitoring physical device security
- Providing physical access control to hardware/software
- Database patching
- Discarding physical storage devices
We are responsible for:-
- Managing AWS Identity and Access Management (IAM)
- Encrypting data
- Preventing or detecting when an AWS account has been compromised
- Restricting access to AWS services to only those users who need it
Conclusion
In this article, we understood what is cloud. We explored the basics of cloud computing with characteristics like pay-as-you-go, auto-scaling. We understood that Serverless simply means that a cloud provider manages our servers and we just write our code.
We discussed AWS and its global infrastructure along with regions, AZs and edge locations. We also looked at the shared responsibility model to understand what we are responsible for and what AWS is responsible for in the cloud.
In the next article part 2. We will explore servers and compute power in the cloud with AWS. Thank you for reading, I appreciate you taking the time.