On-demand availability of computer resources over the internet, especially computing power, storage, networking, and more...
So what does the word cloud mean in cloud computing? The term was chosen to signify the abstraction of complex infrastructure and technical details involved in delivering computing services.
So in "essence," cloud computing refers to the delivery of a computing service without the need for extensive local infrastructure or expertise.
The concept of cloud computing was introduced between 1950 and 1960, when mainframe computers were in vogue. Back then, terminals were used to access the central computers, which resembles the modern concept of cloud computing.
Before Google, Facebook, and Microsoft, even before the internet, there was a scientist at MIT John MacCharty who first gave the idea of cloud computing, which in his vision was computer utility.
“Computing may someday be organized as a public utility just as the telephone system is a public utility,” Professor John McCarthy said at MIT’s centennial celebration in 1961. “Each subscriber needs to pay only for the capacity he actually uses, but he has access to all programming languages characteristic of a very large system … Certain subscribers might offer service to other subscribers … The computer utility could become the basis of a new and important industry.”
John MacCharty precisely describes today's concept of cloud computing, as nowadays anyone has access to cloud computing as a public utility. He also gives the concept that the best thing a cloud provider should have is the pay-as-you-go model.
IBM released virtual machines in the 1970s with the VM/370 operating system. IBM VM/370 allows multiple VMs to be setup on a mainframe computer. This allows a single computer to run multiple environments at the same time on a single machine. IBM also provides source code for VM/370 to customers to make configurations according to their requirements.
Virtualization is the key technology that makes cloud computing work.
In 1999, Salesforce.com began offering users CRM (customer relationship management) as SaaS (software as a service), which is one type of cloud computing. This software allows users to access their software through a website instead of installing it on their computer.
Salesforce's Sass model, which hosts software and customer data on the internet as a subscription service, became quickly popular among people.
Jeff Bezos founded Amazon.com in 1994 as an online Book store which after becomes world biggest ecommerce platform.
AWS(Amazon Web Services) became a side project at Amazon in 2000 and it was launched in 2006.
The idea for AWS started in 2003 at an executive retreat at Jeff Bezos' house, when the team identified skills they hadn't considered, such as operating system for the internet, fulfilling orders, and offering a broad selection of products. In 2005, AWS senior technologist Allan Vermeulen sketched the initial design principles for a key cloud-computing service on a napkin.
AWS was initially designed to support Amazon's e-commerce business, but was soon made available to other businesses to build, deploy, and scale applications in the cloud. AWS is now the leading cloud computing platform, serving millions of customers worldwide and offering over 200 services across various categories.
There are mainly five types of cloud computing available todays.
1. SaaS (Software as a Service)
Saas, or Software as a Service is a way to provide user a software which will be hosted on their platform and user can access it using subscription model from anywhere in the world over the internet.
There are tons of examples of SaaS that people use frequently.
Pros | Cons |
---|---|
Accessibility | Lack of Customization |
Cheaper | Dependent on service infrastructure |
Scalable | Compromise Security |
Easy to implement | Data stored offsite |
PaaS, or platform as a service, is a cloud computing model that provides a scalable, flexible, and easy-to-manage platform to develop, run, and manage applications.
PaaS allows developers to build, maintain, and manage their applications without caring about infrastructure. PaaS provides and offers various programming tools, frameworks, and databases. The biggest advantage of PaaS is its low risk, simplified development, scalability, and easy migrations.
Examples for PaaS:
Pros | Cons |
---|---|
Cost-effective | Less Control |
Time Saver | Ongoing Cost |
Simplified App Development | Unexpexted Overages |
Reduced operational burden; added complexity with multi-cloud
PaaS is a type of cloud computing in which a CSP(cloud service provider) provides access to computer resources such as storage, computing power, networking and tons of service through internet.
Some examples for IaaS CSPs:
Pros | Cons |
---|---|
Scalability: Provides flexible scalability options, allowing businesses to scale resources up or down based on demand. | Management Complexity: Requires more management effort compared to higher-level cloud services, as users are responsible for managing the infrastructure. |
Customization: Offers extensive customization options, allowing users to tailor infrastructure components to their specific requirements. | Initial Setup Time: Setting up and configuring infrastructure can be time-consuming, especially for complex deployments. |
Control: Provides users with greater control over the underlying infrastructure, enabling fine-grained configuration and optimization. | Resource Management: Users are responsible for resource provisioning, monitoring, and optimization, which can be complex and time-intensive. |
Cost Transparency: Offers transparent pricing models, allowing users to have better visibility into their infrastructure costs. | Potential Over-provisioning: Without proper monitoring and optimization, there's a risk of over-provisioning resources, leading to increased costs. |
Security: Allows users to implement custom security measures tailored to their specific needs, providing greater control over security policies. | Security Responsibilities: Users bear the responsibility for implementing and managing security measures, including network security and access controls. |
Flexibility: Supports a wide range of operating systems, programming languages, and applications, enabling diverse workload deployments. | Vendor Lock-in: Users may face vendor lock-in if they heavily rely on proprietary IaaS features or APIs. |
Scalability: Offers rapid scalability, allowing users to quickly provision additional resources to accommodate growth or sudden spikes in demand. | Dependency on Internet Connectivity: Relies on internet connectivity for accessing and managing cloud resources, which may pose challenges in certain scenarios. |
Disaster Recovery: Provides built-in disaster recovery features, such as backup and replication, helping ensure data resilience and business continuity. | Performance Variability: Performance may vary depending on factors such as shared resources, network latency, and virtualization overhead. |
Function as a Service (FaaS) is a cloud computing model that allows developers to manage, create and run applications without having to maintain or build insfrastructure. In this model CPSs manage all the insfrastructure including all aspects of computing envirements, middlewares, Operating systems, hardware and applications.
FaaS is a serverless way to run modular pieces of code on the edge. Developers can write and update code that can be executed in response to events, such as a user clicking on a web application element. With FaaS, the CSP automatically manages the physical hardware, virtual machine operating system, and web server software management.
some example for FaaS:
Pros | Cons |
---|---|
Scalability: Scales automatically based on demand, handling varying workloads efficiently. | Cold Start: May experience latency during initial function invocation due to cold start times. |
Cost-effective: Pay only for the resources used during function execution, minimizing overhead. | Vendor Lock-in: Relies heavily on the FaaS provider's ecosystem, making migration challenging. |
Increased developer productivity: Allows developers to focus solely on writing code without worrying about infrastructure management. | Limited Execution Time: Functions are typically restricted in execution duration, which may not suit all use cases. |
Elasticity: Can quickly scale up or down in response to workload changes, ensuring optimal resource utilization. | Resource Constraints: Limited control over underlying infrastructure resources, which may affect performance in specific scenarios. |
Reduced operational complexity: Abstracts away infrastructure management tasks, reducing operational overhead for development teams. | State Management: Stateless nature of functions may introduce complexities in managing and persisting state across invocations. |
Event-driven architecture: Well-suited for event-driven and asynchronous workloads, enabling seamless integration with various event sources. | Debugging and Monitoring: Debugging and monitoring distributed systems can be more challenging compared to traditional architectures. |
Fault tolerance: FaaS platforms often provide built-in mechanisms for fault tolerance and resilience, enhancing application reliability. | Limited Language Support: Support for programming languages may be limited compared to traditional platforms. |
On-demand execution: Functions are invoked only when needed, reducing resource wastage during idle periods. | Security Concerns: Introducing more attack surfaces, potentially increasing security risks if not properly managed. |
CaaS, or Containers as a Service, is a cloud computing model where users can deploy, manage, and scale containers without the complexity of handling the underlying infrastructure. In CaaS, container orchestration platforms such as Kubernetes or Docker Swarm abstract away the complexities of container management, allowing developers to focus on building and deploying applications quickly and efficiently. CaaS provides a flexible and scalable environment for running containerized applications, making it easier to deploy microservices-based architectures and streamline DevOps workflows.
Pros | Cons |
---|---|
Simplifies deployment | Dependency on third-party infrastructure |
Scalable | Potential vendor lock-in |
Efficient resource utilization | Limited control over underlying infrastructure |
Enables microservices architecture | Security concerns due to shared environment |
some of the famouse Cloud Service Providers:
Amazon Web Services (AWS):
Microsoft Azure:
Google Cloud Platform (GCP):
IBM Cloud:
Oracle Cloud:
Scalability: Cloud services can scale up or down quickly to accommodate changing workloads and demand. This scalability ensures that businesses only pay for the resources they need, optimizing cost efficiency.
Cost Efficiency: Cloud computing eliminates the need for upfront infrastructure investments and ongoing maintenance costs associated with physical servers. It operates on a pay-as-you-go model, where businesses only pay for the resources they consume.
Flexibility and Accessibility: Cloud services can be accessed from anywhere with an internet connection, allowing employees to work remotely and collaborate more effectively. This flexibility also enables businesses to quickly adapt to changing market conditions and customer demands.
Reliability and Redundancy: Cloud providers typically offer robust infrastructure with built-in redundancy and failover mechanisms, ensuring high availability.
Loading comments...