☁️Cloud Computing Architecture Unit 1 – Cloud Computing: Concepts and Models
Cloud computing revolutionizes how businesses access and manage IT resources. It offers on-demand access to shared computing power, storage, and services over the internet, enabling companies to scale efficiently and innovate faster without heavy upfront infrastructure investments.
This unit explores key concepts like virtualization and elasticity, various service models (IaaS, PaaS, SaaS), and deployment options (public, private, hybrid). It also covers benefits, challenges, architectural basics, real-world applications, and future trends in cloud computing.
Cloud computing delivers computing services over the internet (the cloud) including servers, storage, databases, networking, software, analytics, and intelligence
Offers faster innovation, flexible resources, and economies of scale typically only paying for cloud services used helping lower operating costs, run infrastructure more efficiently, and scale as business needs change
Enables ubiquitous, on-demand access to a shared pool of configurable computing resources (networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction
Allows companies to avoid or minimize up-front IT infrastructure costs instead of owning their own computing infrastructure or data centers, companies can rent access to anything from applications to storage from a cloud service provider
Empowers organizations to deploy their applications in multiple physical locations at the click of a button which can provide redundancy and reduce latency
Key Concepts and Terminology
Virtualization: The process of creating a software-based, or virtual, representation of something, such as virtual applications, servers, storage, and networks. It is the single most effective way to reduce IT expenses while boosting efficiency and agility for all size businesses.
Hypervisor: A piece of software, firmware, or hardware that creates and runs virtual machines (VMs) acting as a platform for the VMs and managing the execution of the VMs
Scalability: The ability of a system to handle growing amounts of work by adding resources to the system
Horizontal scaling (scaling out): Adding more machines or instances to the system
Vertical scaling (scaling up): Adding more power (CPU, RAM) to an existing machine
Elasticity: The ability to scale computing resources up and down easily while avoiding the need to invest in infrastructure
Fault Tolerance: The ability of a system to continue operating without interruption when one or more of its components fail
High Availability: The ability of a system to operate continuously without failing for a designated period of time, ensuring minimal downtime
Workload: The amount of processing that the computer has been given to do at a given time
Cloud Service Models
Infrastructure as a Service (IaaS): Provides virtualized computing resources over the internet (Azure, AWS, Google Cloud Platform)
Offers access to fundamental resources such as physical machines, virtual machines, virtual storage, etc.
Highest level of flexibility and management control over IT resources
Platform as a Service (PaaS): Provides a platform allowing customers to develop, run, and manage applications without the complexity of building and maintaining the infrastructure (Heroku, Google App Engine, AWS Elastic Beanstalk)
Allows you to avoid the expense and complexity of buying and managing software licenses, the underlying application infrastructure and middleware, container orchestrators such as Kubernetes, or the development tools and other resources
Software as a Service (SaaS): Provides a completed product that is run and managed by the service provider (Salesforce, Google Apps, Dropbox)
Users don't have to worry about how the service is maintained or how the underlying infrastructure is managed
Generally, users can access the software through a web browser or API
Function as a Service (FaaS): Allows developers to build, compute, run, and manage application packages as functions without maintaining the infrastructure (AWS Lambda, Azure Functions, Google Cloud Functions)
Enables developers to deploy individual functions (pieces of business logic) in the cloud that are executed independently
Cloud Deployment Models
Public Cloud: Cloud computing resources owned and operated by a third-party cloud service provider delivered over the internet (AWS, Microsoft Azure, Google Cloud Platform)
All hardware, software, and other supporting infrastructure is owned and managed by the cloud provider
Scalable and elastic to meet the needs of application and workload demands
Private Cloud: Cloud computing resources used exclusively by a single business or organization, physically located on the company's on-site datacenter or hosted by a third-party service provider
Offers a higher level of security and privacy through company firewalls and internal hosting
Ensures the company is in complete control of their data, security, and system performance
Hybrid Cloud: Combination of public cloud and private cloud services with orchestration and automation between the two
Allows data and applications to move between private and public clouds for greater flexibility and more deployment options
Enables taking advantage of economies of scale and cost savings through the public cloud while maintaining security and control of mission-critical data on-premises
Benefits and Challenges
Benefits:
Cost Savings: Eliminates the capital expense of buying hardware and software, setting up, and running on-site datacenters
Scalability and Elasticity: Ability to scale resources up and down as needed to meet fluctuating demand
Reliability: Data backup, disaster recovery, and business continuity easier and less expensive because data can be mirrored at multiple redundant sites on the cloud provider's network
Agility: Quickly develops, tests, and launches applications and services without worrying about underlying infrastructure
Global Reach: Deploy applications in multiple regions around the world with just a few clicks allowing to provide lower latency and a better experience for customers at minimal cost
Challenges:
Security and Privacy: Ensuring data security, privacy, and regulatory compliance as data is stored on third-party servers
Vendor Lock-In: Difficulty moving data and applications between cloud providers due to lack of standardized protocols, APIs, data structures, and service models
Governance and Control: Ensuring proper governance and control over data and applications in the cloud
Performance and Latency: Ensuring consistent performance and minimizing latency, especially for applications that require real-time response
Cost Management: Controlling and optimizing costs as cloud usage grows and becomes more complex
Cloud Architecture Basics
Front-end: The part of the application that the user directly interacts with, usually consisting of user interfaces and client-side logic (web browsers, mobile apps)
Back-end: Consists of servers, databases, and APIs that power the front-end and are responsible for data storage, processing, and business logic
APIs (Application Programming Interfaces): Allow different components of the cloud architecture to communicate and exchange data with each other (REST, GraphQL)
Databases: Store and manage data in the cloud (relational databases like MySQL and PostgreSQL, NoSQL databases like MongoDB and Cassandra)
Serverless Computing: Allows running code without provisioning or managing servers with the cloud provider allocating machine resources on demand and taking care of the servers on behalf of the customer (AWS Lambda, Azure Functions)
Containers: Lightweight, standalone, and executable packages that include everything needed to run a piece of software (Docker, Kubernetes)
Microservices: Architectural style that structures an application as a collection of small, loosely coupled, and independently deployable services
Real-World Applications
Netflix: Utilizes AWS for its streaming service, database storage, analytics, and recommendation engines allowing to quickly deploy thousands of servers and terabytes of storage within minutes
Salesforce: Provides a SaaS CRM platform that enables businesses to connect with customers, partners, and potential customers entirely in the cloud
Dropbox: Relies on a hybrid cloud approach storing files in its own data centers while also taking advantage of AWS for increased reliability and performance
Airbnb: Uses AWS to host its website, mobile app, and big data projects allowing to grow from a small startup to a global company valued at over $30 billion
Spotify: Migrated its backend infrastructure to Google Cloud Platform to leverage its scalability, reliability, and access to advanced data analytics and machine learning capabilities
Future Trends
Multi-Cloud and Hybrid-Cloud Strategies: Organizations increasingly adopt multi-cloud (using multiple cloud providers) and hybrid-cloud strategies for better flexibility, cost-optimization, and avoiding vendor lock-in
Artificial Intelligence and Machine Learning: Cloud providers offer AI and ML services (AWS SageMaker, Google Cloud AI) making it easier for businesses to leverage these technologies without significant investment in infrastructure and expertise
Serverless Computing: The adoption of serverless computing is expected to grow as it allows developers to focus on writing code without worrying about infrastructure management
Edge Computing: Processing data closer to where it's being generated (IoT devices) to reduce latency and improve real-time decision making
Sustainability: Cloud providers are investing in renewable energy and implementing sustainable practices to reduce the carbon footprint of data centers and cloud operations