Summary

These notes cover concepts of cloud computing, including definitions, characteristics, deployment, service models, and factors influencing adoption by organizations.

Full Transcript

Lecture 2 – Introduction to the Cloud -​ Definition of Cloud Computing: -​ Cloud computing involves delivering computing resources (like servers, storage, applications) over the Internet on a pay-per-use basis. -​ The NIST definition includes on-demand network ac...

Lecture 2 – Introduction to the Cloud -​ Definition of Cloud Computing: -​ Cloud computing involves delivering computing resources (like servers, storage, applications) over the Internet on a pay-per-use basis. -​ The NIST definition includes on-demand network access to shared, configurable resources. -​ Five Essential Cloud Characteristics: -​ On-demand Self-service: Resources can be accessed automatically. -​ Broad Network Access: Services are accessible via various devices. -​ Resource Pooling: Resources are pooled to serve multiple users. -​ Rapid Elasticity: Resources can scale up or down as needed. -​ Measured Service: Usage is tracked for billing purposes. -​ Cloud Deployment Models: -​ Public Cloud: Open to general use, managed by an external provider. -​ Private Cloud: Exclusive to one organization. -​ Community Cloud: Shared by organizations with common concerns. -​ Hybrid Cloud: Combination of multiple deployment models. -​ Service Models: -​ SaaS: Software applications are provided over the Internet. -​ PaaS: Platform for development without managing infrastructure. -​ IaaS: Basic infrastructure components are provided on demand. -​ Drivers for Cloud Computing: -​ System Drivers: Agility, scalability, and reliability. -​ Business Drivers: Cost savings and flexibility. -​ Technology Drivers: Virtualization and increased bandwidth. -​ Factors Inhibiting Cloud Adoption: -​ Ambiguity around cloud capabilities. -​ Security, integration, and compliance concerns. Notes from lecture -​ Any clouds- no downtime -​ Cloud Computing- accessing software via internet -​ Deployment model -​ Private & public- common -​ Private + public= hybrid -​ Community cloud & hybrid- rare -​ An example of a public cloud application is Google Drive. It allows users to store, manage, and share files online using Google's cloud infrastructure. The service is hosted on Google's public cloud, meaning the underlying infrastructure and services are managed by Google, and users access the application over the internet without needing to manage the servers or other backend resources. -​ Other examples of public cloud application include: -​ Microsoft 365 (formerly Office 365) for cloud-based productivity tools. -​ Dropbox for cloud storage and file sharing. -​ Salesforce for customer relationship management (CRM) software. -​ On demand self-service -​ Whichever deployment model u used, when u request, service must be delivered to you immediately -​ Resource pooling -​ One storage- multiple users -​ Rapid elasticity -​ Automated responses -​ Measured services -​ Eg. AWS< want to use certain application from their system, can only use it for a certain period of time; want > hrs, need to pay > -​ Public: Cloud Deployment models -​ 3rd party -​ As long as u trust them, can use it -​ Private -​ Expensive -​ Need to buy server, build server room, need administrator to maintain server room (pay, train) -​ Start-ups- usually public cloud -​ Community: -​ Semi-public -​ Gov (own private cloud) + Taylor’s University (own priv cloud)= community project/ development -​ Gov + uni will allocate some storage to link each other’s cloud -​ Hybrid: -​ Large num of data- non sensitive [public cloud] -​ Small num of data- sensitive [private cloud] -​ Service model overview [applicable to all deployment models] -​ SaaS [pre-existing software] -​ Eg. gmail, outlook, yahoo -​ Eg. Order food, give food, pay -​ PaaS [provide development tools, u build software] -​ Eg. steamboat, cook own food, eat & pay -​ IaaS [give you storage & network, let you do whatever you want to do w/o giving anything] -​ Eg. design own kitchen, buy tools and cook Reliability- users able to access to services in multiple locations Security and Compliance: public cloud- set by the cloud itself, must fllw Skip: Drivers for Cloud Providers Lecture 3: Data Center Topologies -​ Components of a Data Center: ○​ Includes servers, storage, network devices, power distribution systems, and cooling systems. -​ Data Center Network Topologies: ○​ Access Layer: Connects servers to network through Top of Rack (ToR) switches. ○​ Aggregation Layer: Consolidates connections from the access layer. ○​ Core Layer: Connects the data center to external networks. -​ Cabling: ○​ Structured Cabling: Organized cabling with tags improves airflow and management. ○​ Unstructured Cabling: Disorganized cabling, making maintenance harder. -​ Cooling and Modular Data Centers: ○​ Modular Data Centers: In-built cooling for easy deployment. ○​ Containerized Data Centers: Portable, connectable to power and water, ideal for disaster recovery. -​ Data Center Network Requirements (5 S's): ○​ Scalability, Security, Sharing, Standardization, Simplification. ○​ Workload Mobility: Supports VM flexibility across the network. ○​ East-West Traffic: Heavy server-to-server traffic within data centers. Lecture 4 & 5: Cloud Deployment Models -​ Public Cloud: ○​ Benefits: High scalability, availability, cost-effectiveness. ○​ Drawbacks: Limited integration, flexibility, and security control. -​ Private Cloud: ○​ Benefits: Full control over infrastructure, security, and customization. ○​ Drawbacks: High upfront and maintenance costs, needs skilled staff, hardware & software compatibility -​ Community Cloud: ○​ Benefits: Cost-sharing among organizations with shared needs. ○​ Drawbacks: Potential conflicts in management, security, and compliance. -​ Hybrid Cloud: ○​ Benefits: Combines advantages of other models, with flexibility and fault tolerance. ○​ Drawbacks: Complex to implement, integrate, and secure. Lecture 6: Laying the Groundwork for Cloud Computing -​ Authentication & Authorization: ○​ Authentication: Verifying user identity (username, password). ○​ Authorization: Specifies user access rights within the system. -​ Identity Providers (IdP): ○​ Manages user credentials for authentication. ○​ Types include OpenID, Google, Facebook (OAuth). -​ Computing Concepts: ○​ Utility Computing: Pay-as-you-go model for computing resources. ○​ Commodity Servers: General servers used to support scalability. ○​ Autonomic Computing: Self-managing systems, minimal human intervention. -​ Hardware Virtualization: ○​ Allows multiple virtual systems on a single machine. ○​ Hypervisors: Software enabling virtualization, categorized as Type-1 (bare-metal) and Type-2 (hosted). -​ Web Development Technologies: ○​ HTML5, Java, JavaScript: Widely used for web applications in cloud environments. ○​ SOAP and JSON: Protocols for exchanging and structuring data. L7- Cloud Service Models -​ Introduction to Cloud Service Models: -​ Cloud computing provides resources like computing, network, storage, databases, and applications on-demand without requiring ownership or maintenance by end users. -​ These services are managed by the provider, ↓ management efforts for users. -​ Basic Cloud Service Models -​ Software as a Service (SaaS) [for end users] -​ Platform as a Service (PaaS) [for developers] -​ Infrastructure as a Service (IaaS) [for IT architects] -​ Software as a Service (SaaS) -​ Definition -​ SaaS delivers software over the Internet as an on-demand service, eliminating the need for installation on user devices. -​ Accessible via lightweight web browsers or thin clients on various devices like laptops, tablets, and smartphones. -​ Services Provided by SaaS: -​ Business Services: ERP, CRM, billing, sales, and HR tools, popular with startups. -​ Social Networks: Leveraging cloud for handling variable user loads. -​ Document Management: For creating, managing, and tracking digital documents. -​ Mail Services: Scalable for unpredictable future growth. -​ Characteristics of SaaS: -​ One-to-Many: A single instance shared by multiple tenants. -​ Web Access: Accessible from any location with Internet. -​ Centralized Management: Providers handle updates and management, ensuring users access the latest version. -​ Scalability and High Availability: Leveraging cloud resources for efficiency and uptime (99.99% availability). -​ Suitability of SaaS: -​ Ideal for on-demand software, startups, applications with varying loads, and multi-device compatibility. -​ Limitations of SaaS: -​ Not ideal for Real-time Applications: Dependent on Internet speed. -​ Data Security Risks: Data stored with third-party providers may lack full control and confidentiality. -​ Pros and Cons of SaaS: -​ Pros: Cost savings, no client-side installation, low maintenance, disaster recovery, multitenancy. -​ Cons: Security concerns, connectivity requirements, and limited control over data. -​ Platform as a Service (PaaS) -​ PaaS provides an environment for developers to build, test, and deploy applications online, with tools available from the provider’s data center. -​ Services Provided by PaaS: -​ Programming Languages: Java, Python, Ruby, PHP, and more. -​ Application Frameworks: Node.js, Rails, WordPress. -​ Databases: ClearDB, PostgreSQL, MongoDB. -​ Other Tools: Development, testing, and deployment support. -​ Characteristics of PaaS: -​ All-in-One: Development, testing, deployment, and hosting all in one platform. -​ Offline Access: Synchronization capabilities for offline work. -​ Built-in Scalability: Applications can handle varying loads efficiently. -​ Collaborative Development: Supports teamwork across locations. -​ Suitability of PaaS: -​ Ideal for collaborative projects, automated testing, agile development, and applications requiring fast time-to-market. -​ Limitations of PaaS: -​ Vendor Lock-in: Difficulty migrating applications between providers. -​ Limited Customization: Limited control over the infrastructure and platform configuration. -​ Pros and Cons of PaaS: -​ Pros: Simplifies infrastructure management, speeds up development, supports agile development, provides scalability. -​ Cons: Vendor lock-in, less flexibility in defining the application stack, Internet dependency. -​ Infrastructure as a Service (IaaS) -​ Definition: -​ IaaS provides virtualized computing, storage, and networking resources, using virtualization to offer these as virtual machines (VMs) for users. -​ Services Provided by IaaS: -​ Compute: Virtual CPUs and memory. -​ Storage: Backend storage for VMs and files. -​ Networking: Virtual routers, switches, and load balancers. -​ Characteristics of IaaS: -​ Web Access: Accessible via web browsers. -​ Centralized Management: Resources managed from a single console. -​ Elasticity and Dynamic Scaling: Scalable resources based on demand. -​ Shared Infrastructure: Resources shared among users, with preconfigured VMs for quick setup. -​ Suitability of IaaS: -​ Best for unpredictable usage spikes, startups with limited capital, and temporary infrastructure needs. -​ Limitations of IaaS: -​ Not ideal for Regulatory Compliance: Sensitive data might require on-premise storage. -​ Performance and Control: Limited control over physical infrastructure and possible latency issues. -​ Pros and Cons of IaaS: -​ Pros: Pay-as-you-go model, elastic resources, better resource utilization, supports Green IT. -​ Cons: Security concerns, interoperability issues, potential performance limitations due to network latency. -​ Summary -​ Service Models -​ SaaS: Software accessible online without installation. -​ PaaS: Development environment with tools for application building and deployment. -​ IaaS: Provides infrastructure resources as virtualized services. -​ General Advantages: Cost savings, scalability, centralized management. -​ General Drawbacks: Security, interoperability, and performance issues. Lecture 8: Cloud Selection -​ Introduction -​ Choosing the correct cloud service model, deployment model, and provider is critical for an organization’s success. -​ Once a provider is chosen, data migration to another provider can be difficult, leading to potential vendor lock-in. -​ A poor choice of provider can damage the IT department’s credibility. -​ To Go to the Cloud or Not? -​ Key Considerations: 1.​ Evaluate the Problem: -​ Determine the issue the organization needs to solve (technical, functional, or new service capability). -​ Consider whether the organization can handle the service internally. Even if feasible, it might not align with the organization’s core business focus. 2.​ Core Business Alignment: -​ If a service is not part of the organization’s core competencies or is expensive to support internally, consider moving it to the cloud. 3.​ Expectations for a Provider: -​ Identify realistic needs that a provider can meet. 4.​ Choosing the Right Service Model: -​ Once the needed service is identified, determine the service model (SaaS, PaaS, IaaS) that best fits the requirement. -​ Choosing a Cloud Service Model -​ Factors to Consider: 1.​ User Experience: -​ SaaS: Limited control over user interface (UI) and customization options. -​ PaaS/IaaS: Offers > control, allowing for application customization. -​ Bandwidth: Adequate network bandwidth is crucial for a smooth and responsive user experience. 2.​ Security: -​ SaaS: The provider has full control and access to data, which may pose risks. -​ PaaS: Shared responsibility between the provider and the user. -​ IaaS: Offers the user full control over security measures, including data encryption. 3.​ Compliance: -​ SaaS: Providers assume most compliance burdens, but organizations may still hold legal responsibility. -​ PaaS: Providers ensure platform-level compliance; users must ensure their applications meet standards. -​ IaaS: Users bear the majority of compliance responsibility, requiring due diligence to ensure proper implementation. -​ Choosing a Cloud Deployment Model -​ Key Factors to Consider: 1.​ User Experience: -​ Private Cloud: Ideal for organizations needing full control over the application, network, and client systems for optimal performance. 2.​ Security: -​ Trust is key. Determine whether to rely on a third-party provider or trust internal security measures. 3.​ Responsibilities: -​ Public Cloud: ↓ internal responsibilities by outsourcing to the provider. -​ Private/Hybrid Cloud: Retains more control and responsibility within the organization. -​ Choosing a Public Cloud Service Provider -​ Tips by Service Model: -​ SaaS Providers: -​ Evaluate both the application and the service provider. -​ Consider: -​ Pricing structure (e.g., pay-per-use, subscriptions). -​ Bulk data import/export capabilities. -​ How are data migrations handled? -​ Downtime schedules & SLA penalties for non-compliance. -​ Customization options for applications. -​ PaaS Providers: -​ Evaluate the platform compatibility with applications or services. -​ Consider: -​ How will you be charged? -​ Supported operating systems, databases, and development tools. -​ Scheduled maintenance and associated downtime. -​ SLAs, performance guarantees, and monitoring capabilities. -​ IaaS Providers: -​ Assess if the provider offers all required infrastructure components. -​ Consider: -​ Additional software inclusions. -​ Resource monitoring and data migration capabilities. -​ Maintenance schedules, SLAs, & associated penalties. -​ Summary -​ The decision to move to the cloud depends on the organization's specific needs and problems to solve. -​ Factors Influencing Cloud Model Selection -​ Service Model: User experience, security, and compliance are primary considerations. -​ Deployment Model: User experience, security, and responsibility allocation are key factors. -​ Choosing a Provider -​ For public cloud providers, assess application offerings, service reliability (SLAs), and costs.