What is cloud computing?
In this digital transformation era, cloud computing has enabled organizations of all sizes, from small to large, to improve their operations and increase operational efficiency. So, what is the definition of Cloud Computing? It is a term used to describe a collection of remote servers located in different places around the world. Each cloud provider designed its service to store, manage data, run applications, and deliver content/services over the Internet, providing on-demand access to data and resources from any Internet-enabled device.
Difference between On-premise and Cloud computing
About 16 years ago, when I started my I.T. career, most organizations used to maintain hardware such as compute, storage, and network equipment in their data centers. However, as the Internet became more widespread, the demand for compute, storage, and networking equipment increased. Managing these data centers always resulted in costly operations due to rapid growth in the business, and they could not scale the environment based on the traffic needs, and some of the experimentation was impossible. In response to these challenges, Cloud computing emerged.
Cloud computing is an on-demand delivery model of I.T. resources over the Internet, primarily pay-as-you-go pricing. This approach helped companies avoid needing expensive hardware and data centers, as cloud providers such as AWS, Azure, and GCP offered virtual data center technologies and services over the Internet. Think of it as an electricity plant that provides unlimited access to electricity at any time without any limit, and you only pay for what you consume.
The history of cloud computing and how it has evolved over time
- 1960: Researchers at M.I.T. started experimenting with time-sharing, applying the foundation for modern cloud computing.
- 1970: Time-sharing became the most dominant mode in computing before personal computers became popular.
- 1972: I.B.M. launched the first virtual machine operating system V.M./370, designed to run on the I.B.M. System/370 computer.
- 1983: Internet officially recognized.
- 1999: Salesforce.com launches as one of the first cloud-based software companies, offering customer relationship management (CRM) software as a service.
- 2002: Amazon.com officially started offering internet computing resources to businesses through web services. It’s now commonly referred to as cloud computing.
- 2006: AWS introduces its public beta test of Elastic Compute Cloud (EC2) service, which allows businesses to rent computing resources over the Internet.
- 2008: Google launches its cloud computing platform, Google App Engine, which allows developers to run web applications on Google’s Infrastructure.
- 2009: Microsoft launches its cloud computing platform, Windows Azure, which allows developers to build and host applications on Microsoft’s Infrastructure.
- 2011: I.B.M. launches its cloud computing platform, I.B.M. SmartCloud, which offers businesses a range of cloud-based services.
- 2013: Docker launches container technology as an open-source Docker Engine
- 2016: Many organizations have adopted the cloud computing model for developing their new applications.
- 2019: The global cloud computing market was estimated to be worth $233.4 billion, with market leaders such as AWS, Microsoft, and Google.
- 2021: Facing the new normal with the COVID-19 pandemic forced organizations to rely on cloud-based services for remote work and collaboration.
What are some of the advantages of using Cloud computing?
Utilizing cloud-based technologies provides numerous advantages over traditional computing methods, including reliability, scalability, flexibility, cost savings, agility, and geo-distribution. Below, we will see the key benefits of cloud computing.
- Reliability is the ability of a cloud service to function consistently without any uninterrupted failures or errors. It includes factors such as uptime, mean time to repair (MTTR) and mean time between failures (MTBF). For your Infrastructure to be considered reliable, it must be available and resilient.
- Availability is the ability of a system, Infrastructure, or service to remain operational for the users when needed. A metric called S.L.A. (Service Level Agreement) always associates with it and measures it as a percentage of uptime over a period of time. For Example, AWS S3 meets 99.99% (uptime) S.L.A.
- Resilience is the ability of a cloud service to recover quickly from failures such as application failures, network outages, hardware failures, etc. It includes disaster recovery, backup and restore mechanisms, and so on.
- Scalability: refers to the system’s ability in the cloud to handle an increased load by manually adding resources for expected scenarios. Achieving scalability is possible through two methods – Vertical and Horizontal Scaling.
- Vertical Scaling is the ability to increase the computing capacity by adding the resources such as CPU, Memory, or Storage of a single server or V.M. to handle the increased workload. For Example, if you run an application with 4 vCpu and 16 GB RAM and find that the server needs more resources to drive the traffic, you can upgrade the server to 8 Vcpu and 32 G.B. of RAM.
- Horizontal Scaling involves increasing additional servers or VMs to distribute the workload across multiple systems. For Example, suppose you are running an application on a single server or a VM needs and need to handle more Transactions Per Second (TPS) or concurrent connections. In that case, you can add additional servers ( horizontal Scaling) to distribute the load across them.
- Elasticity: is the ability to automatically scale up or down its resources concerning your application’s traffic. You can enable Elasticity on your cloud infrastructure using load balancing, auto-scaling groups, custom auto scaler, etc. It makes your system more cost-effective by only using the resources to handle the current demand.
- Agility allows organizations to quickly develop, test, deploy, and release and easily scale the Infrastructure up or down based on the traffic needs in a constantly changing business world. For Example, compared to the traditional approach, which usually takes weeks or even months to provision new Infrastructure before starting your development. In cloud computing, you can quickly start your development with a 10-node cluster and then easily scale up to 100 clusters based on your business needs.
- Geo-distribution: refers to the practice of deploying cloud-based applications across multiple regional data centers around the world. It will help customers address their region’s performance, resilience, and latency and comply with data privacy regulations. For Example, Refer AWS cloud infrastructure has the most significant global infrastructure footprint, which supports geographical distribution extensively.
- Disaster Recovery focuses on quickly getting applications up and running after an outage. Outages can occur for various reasons, such as application failures, network issues, security incidents, natural disasters, human errors, etc. For Example, a high-traffic application with a global user base should replicate its data and systems across multiple regions. So, In the event of an outage, failover to the backup region can be quickly pointed to ensure uninterrupted business continuity.
What are the different types of cloud computing services (IaaS, PaaS, SaaS)?
Cloud computing services broadly divide into three categories: Iaas(Infrastructure as a service), PaaS (Platform as a service), and SaaS (software as a service). Each of these services defines different levels of control and responsibility to the user, and businesses choose one or a combination of these services depending on their requirements. Now, let’s explore some key benefits and differences between SaaS, PaaS, and IaaS.
Infrastructure as a Service (IaaS)
The first layer of the cloud computing model offers virtualized services through a web-based console or API. Users and Organizations can rent the resources such as virtual machines, servers, storage, and networking from the IaaS providers. Customers can manage and run their own operating systems and applications and pay only for what they use.
When to Use IaaS
- IaaS is the best-suited option for startups and small businesses, as it eliminates the need for creating and maintaining hardware and software. It provides good flexibility to scale up and down on the resources based on the traffic and business needs. Let’s explore some common IaaS scenarios where it can be considered.
- Startups and Small Organizations: IaaS can be a great fit for startups and small organizations because they don’t need to invest in physical hardware and software. It allows businesses to scale up and down as needed quickly.
- Control and Flexibility: Organizations that need to meet security and compliance requirements can use IaaS to gain complete control over their Infrastructure. Organizations with offices and data centers worldwide with complex I.T. infrastructure (a mix of legacy and modern applications) can adopt the IaaS model to have a centralized cloud infrastructure that integrates and manages all the technologies and systems.
- Development and testing: Organizations that need to build and test new applications can adopt IaaS to create development and testing environments quickly and cost-effectively.
Example of IaaS : Leasing a Commercial property
- Let us jump into the real-life scenario of leasing a commercial property to understand the concept of IaaS further. In cloud computing, IaaS is equivalent to leasing a commercial property. Here the property owner constructs and owns the building. As a user/organization, you can rent for the duration of your lease, allowing you to utilize the space for your business activities and return it whenever they don’t require it.
- Similarly, in the context of IaaS, the cloud provider provides the virtualized Infrastructure to rent and use as needed. The IaaS provider builds and maintains the underlying physical Infrastructure, just as the property owner constructs and maintains the commercial building. Users have control over how to utilize the virtual Infrastructure. Still, they should also consider system architecture and disaster recovery strategies, ensure high availability, and scale the capacity based on the traffic requirements.
Which resource is an example of IaaS
- EC2 (A.W.S.)
- Virtual Machines (Azure)
- Compute Engine (GCP)
- Droplets (DigitalOcean
Platform as a service (PaaS)
The second layer of the cloud computing model offers a platform on which customers can develop, deploy, test, and manage their own applications without worrying about the underlying Infrastructure. This layer provides customers with pre-configured software, development languages, tools (such as Java, Python, .NET, etc.), and an operating system.
When to use PaaS
When working on a development project with multiple developers, PaaS can be beneficial and significantly enhance the speed and flexibility of the entire process. Let’s explore some common PaaS scenarios where it can be considered.
- Application Development: can be used to build and deploy applications quickly and cost-effectively. It benefits developers who must focus on building the software rather than dealing with the hardware and software configurations.
- Scalability: With PaaS, you can quickly scale up and down based on unpredictable traffic patterns aligned with your applications and business needs. This capability ultimately saves costs by efficiently utilizing the required resources.
- Collaboration: PaaS can be helpful for geographically distributed teams that can collaborate in a centralized platform for sharing code, data, and other resources. It facilitates development teams to contribute to the deliverable by avoiding conflicts while working with multiple machines.
- Cost Savings: PaaS can be a cost-effective option for users and businesses that want to avoid the upfront cost of buying and maintaining their software and hardware. It also eliminates software licensing costs and covers security patches, updates, and administrative overhead.
Examples of PaaS: Rental Housing
- Let us jump into the real-life scenario of renting a house to understand the concept of PaaS further. In cloud computing, PaaS is equivalent to renting a house. Here the landlord takes care of the decoration and preparation of the home, ensuring that it is in a livable condition.
- Similarly, in PaaS, the cloud provider sets up the operating environment, providing a pre-configured platform with all the necessary tools and services ready for use. Additionally, the cloud provider oversees expansion and disaster recovery mechanisms and allows developers to focus on writing code and creating innovative applications without worrying about the underlying Infrastructure.
Which resource is an example of PaaS
- Elastic Beanstalk (AWS)
- Azure App Service (Azure)
- Google Cloud Functions (Google App Engine)
- Heroku Runtime (Heroku)
Software as a Service (SaaS)
The third layer of the cloud computing model offers customers with services to fully functional software applications that can be accessed directly through an Internet-enabled device without any downloads on the client side. In this layer, the cloud provider manages the underlying Infrastructure, operating system, or application stack.
When to use SaaS
SaaS is most beneficial and can be a good choice for users, and businesses in many scenarios, including:
- Limited IT Resources: If your organization has limited IT resources, SaaS can be a good option as it does not require any installation, Infrastructure, or management of software applications.
- Cost-effective: Most SaaS applications are subscription based, which can be more cost-effective than purchasing the managing the licenses along with Infrastructure.
- Scalability: We can scale and efficiently meet business demands without adding additional hardware or software requirements.
- Startup’s: Ideal for a startup / small business to quickly kickstart a product that doesn’t have to deal with Infrastructure, operating system, or application stack.
- Remote Work: It can be accessed from anywhere with an internet connection, which is particularly useful for remote work and distributed teams. Moreover, it is Ideal for short-term projects that require collaboration.
Examples of SaaS: Staying in a hotel
- Let us jump into the real-life scenario of staying in a hotel to understand the concept of SaaS further. In cloud computing, SaaS is equivalent to staying at a hotel. Like renting a hotel room, with SaaS, you can access software applications and services on-demand, use them when you need them, and discontinue their use when you no longer require them.
- Moreover, SaaS operates on a multitenant model, meaning multiple users can access and utilize the software simultaneously. It is similar to how a hotel hosts multiple guests in different rooms. The multitenant approach allows for efficient resource utilization and helps you to achieve optimized performance and cost savings.
Which resource is an example of SaaS
- Customer relationship management (CRM) software such as Salesforce, and email.
- Collaboration tools such as Google Workspace
- Project management tools such as Asana or Trello, Cisco WebEx, etc.
What are public, private, and hybrid clouds?
There are three deployment models for cloud computing. Public, Private, and Hybrid cloud. The choice of deployment model depends on various factors, including data security, compliance requirements, control, scalability needs, cost considerations, and more. Organizations should assess their specific requirements and select the suitable cloud deployment strategy that aligns with their business goals.
Public cloud services are offered over the public Internet and available to anyone who wants to use it. Cloud resources like servers and storage are owned and operated by cloud providers such as Amazon Web Services, Microsoft Azure, and Google Cloud Platform and are delivered through the Internet. This model offers cost-efficiency and scalability.
Private cloud services are dedicated to one business or organization and are usually hosted at your organization’s data center, or A third-party service provider can also host it. This model offers more control and security but requires a higher upfront investment for Infrastructure and servers.
Hybrid cloud clusters combine public and private clouds, allowing organizations to keep specific workloads on-premises while utilizing public cloud resources for others. This model offers greater flexibility on the workloads deployed between public and private clouds.
Security and privacy concerns in cloud computing
Security and privacy will be a significant focus when designing an application or migrating an application, or lifting and shifting an application to the cloud. Because cloud providers are managing the data in the cloud from multiple clients, and majorly that would include Personally Identifiable Information (PII), financial data, and confidential business information, this becomes risky when this data is accessed from various locations, which would increase the risk of a data breach or unauthorized access. Therefore it is essential to protect data and maintain privacy. Below are some crucial areas to consider regarding security and privacy in cloud computing.
Security of data at rest
Data at rest security involves protecting data stored in the cloud, including databases, block storage, archives, and IoT devices. Implementing measures such as encryption, tokenization, access controls, and authentication and authorization is crucial to ensure the security of the data. For Example: you can Refer to guidelines on securing data at rest to understand the necessary steps.
Security of data in transit
Data in transit security focuses on protecting data as it moves between systems or over a network. Implementing measures such as encryption and utilizing secure protocols like SSL/TLS helps ensure the security of the data during transit. Example: you can Refer o guidelines that provide details on best practices and recommended approaches.
Compliance refers to following legal and regulatory requirements related to cloud computing that apply to a particular industry or activity. Let us see by taking an example. In terms of Data privacy regulations (GDPR, HIPAA, PCI DSS, and CCPA), companies are responsible for securing personal information (A.K.A. personally identifiable information (PII)). If companies fail to meet the regulations, it can result in legal and financial consequences. Refer: Recent article can help you understand the importance.
Authentication and Authorization of users/applications/processes:
This refers to the process of verifying the identity of users, applications, and processes that access cloud-based resources. Basically, authentication consists of three tasks.
- Identification: refers to the process of providing user information to identify who they are (Eg: username)
- Authentication: refers to the identity information that is the person they claim to be. (Example: password or some form of verification)
- Authorization: if the person is authenticated, The person’s permission and access levels need to be checked to ensure they are allowed to perform the action (ed: Access desired features in the system)
Other measures include Time based authentication, Geofencing, SFA., MFA. can help prevent unauthorised access.
Secure Data Isolation for Multiple Customers
- This refers to the need to isolate one customer’s data from another. For Example, Say if you are developing a SaaS product and dealing with multiple company customers’ data. Ensure the data is completely isolated and secured to address accidental data leakage or sharing between parties.
- Note: In my experience, in the early days, we managed the data in a single VPC (Virtual Private Cloud) and single location, which allowed the hacker to steal, and the organization paid a heavy ransom for not leaking the data to the public.
Security incident management
This refers to the need for a plan to respond to security incidents or breaches. A well-defined security incident management plan can help minimize the impact of an incident and ensure that the necessary actions are taken to restore security and prevent future incidents. Always refer to security services offered by your cloud provider. In our case, refer AWS Security offerings for your workloads.
Why does your business should move from on-premise to cloud computing
Moving to the cloud helps organizations deliver their products faster and innovative ways that were once nearly impossible for most organizations. Before the cloud era, software releases were scheduled quarterly or sometimes yearly. However, today, organizations have shifted towards releasing features in small batches, often planned in days or weeks.
This shift in approach has given rise to two distinct trends between organizations and their customers.
- Organization delivers the features at the speed of light. This rapid release cycle allows the organization to iterate and respond to market trends quickly.
- Simultaneously, customers expect a rich experience concerning the product they use.
This expectation has revolutionized software development and product delivery, making it faster than ever while meeting customer expectations for a dynamic and enriching user experience. It has also powered many technologies in the cloud, such as:
- Edge computing: Data processing and computing are brought close to where it is generated or needed.
- Containers: have emerged as a flexible and reliable solution for running the application in the cloud.
- Augmented reality: has opened up possibilities for how we interact with the world around us. It covers everything from gaming and entertainment to industrial training and remote collaboration.
- Machine learning: has become an integral part of the cloud. It can help analyze vast amounts of data and extract meaningful insights, enabling intelligent decision-making, predictive analysis, perspective analytics, and automation.
- Serverless computing: majorly focus on writing and deploying code without managing the underlying Infrastructure.
These technologies (not limited to the above) are driving innovation and helping organizations to meet their use cases and market demands.
Here are some key reasons why moving to the cloud is beneficial:
- Go global in minutes: Applications can be deployed in multiple regions with high availability with minimal effort and provide a better experience and lower latency to customers worldwide.
- Cost Savings: Cloud computing majorly focuses on operating expenses rather than capital expenses. Also, it helps to overlook investments in hardware, software, and Infrastructure.
- Pay as you go: Instead of investing in data centers and hardware, you pay only when you use cloud resources and pay only for how much you use.
- Automatic Software updates: The Cloud provider takes full responsibility for managing and updating the software stack, including all security and software updates, ensuring that automatic software updates are seamlessly handled.
- Security: Cloud providers take care of all security measures to protect the Infrastructure and customer data according to compliance requirements.
Overall, cloud computing plays a vital role in modern technology, empowering organizations to transform, innovate, and deliver improved products to customers. Whether you’re looking for cloud storage options, or a platform to create custom applications, or want to completely control your infrastructure without the need for physical maintenance, cloud services are the solution. Each cloud provider offers their own unique capabilities, features, and pricing models. It is crucial for organizations to understand these differences to decide rationally on which provider best aligns with their specific requirements and needs.