#let title = [ *Unit 2: Reference Model* ] #set text(12pt) #set page( header: [ #box()[ _*Knowledge not shared, remains unknown.*_ ] #h(1fr) #box()[#title] ], numbering: "1 of 1", ) #align(center, text(20pt)[ *#title* ]) #show table.cell.where(y: 0): strong #outline() #pagebreak() = What is a Reference Model? A reference model is an abstract framework for understanding the significant relationships between entities in the same environment. It is helpful to develop consistent standards or specifications supporting that environment. A reference model is based on a small number of unifying concepts and may be used as a basis for education and explaining standards. == Key goals of reference model 1. Conveys the fundamental principles and basic functionality of a system it represents. 2. Facilitates efficient communication of system details between stakeholders. 3. Provides a point of reference for system designers to extract system specifications. 4. Enhances an individual's understanding of the representative system. 5. Documents the system for future reference and provides a means for collaboration. = Cloud Reference Model #figure( image("./images/referencemodel.png"), ) The cloud computing reference model is an abstract model that characterizes and standardizes the functions of a cloud computing environment by partitioning it into abstraction layers and cross-layer functions. It has 5 layers: 1. Physical Layer 2. Virtual Layer 3. Control Layer 4. Service Orchestration Layer 5. Service Layer And 3 cross layer functions: 1. Service Management 2. Business Continuity 3. Security == Cloud Computing Layers === Physical Layer - Foundation of cloud infrastructure. - Entities on this layer are: 1. Compute systems, network devices, storage devices. 2. Operating environment, protocol, tools, processes. - Executes the requests generated by control and virtual layer. === Virtual Layer - Deployed on physical layer - Entities in this layer are: 1. Virtualization software 2. Resource pools 3. Virtual resources - Abstracts virtual resources and makes them appear as virtual resources - Abstraction of resources enables multitenant environment, thereby improving the utilization of physical resources - Improved utilization leads to greater ROI - Executes requests from the control layer === Control Layer - Deployed on physical or virtual layer - Control software only entity on this layer - Enables resources configuration and resource pool configuration - Enables resource provisioning - Executes requests from service layer - Exposes services to and supports the services layer === Service Orchestration Layer - Orchestration software operates on this layer - Provides workflows for executing automated tasks - Interacts with various entities to invoke provisioning tasks When a consumer selects a service from the service catalog, an associated workflow in orchestration layer is triggered. Based on this workflow, the orchestration software interacts with various entities. === Service Layer - Consumers interact with this layer - Service catalog and Self-Service portal operate in this layer - Stores information about the cloud services in service catalog and presents them to the consumers - Encables cconsumers to access and manage cloud srvices via a self service portal === Business Continuity - Ensures the availability of services in line with service level agreement ( SLA ) - Supports all layers to provide uninterrupted access #table( columns: (auto, auto), table.header([Measures], [ Description ]), [Proactive], [ - Business impact analysis - Risk assessment - Technology solutions deployment \ ( backup and replication ) ], [Reactive], [ - Disaster recovery - Disaster restart ] ) === Security Specifies the adoption of: 1. Administrative mechanisms - Security and personnel policies - Standard precedures to direct safe execution of operations 2. Technical mechanisms - Firewall - Intrusion detection and prevention systems - Antivirus - Deployes security mechanisms to meet GRC requirements - Supports all the layers to provide secure services === Service Management - Specifies adoption of activities related to service portfolio management and service operation management. #table( columns: (auto, auto), table.header([Type of management], [Description]), [Service Portfolio], [ - Define the service roadmap, service features and service levels - Assess and prioritize where investments across the service portfolio are most needed - Establish budgeting and pricing - Deal with consumers in supporting activities such as taking orders, processing bills, and collecting payments. ], [Service Operation],[ - Enables infrastructure configuration and resource provisioning - Enables problem resolution - Enables capacity and availability management - Enables compliance conformance - Enables monitoring cloud services and their constituent elements ] ) = Deployment Options == Greenfield - Used when an infrastructure does not exist - Infrastructure needs to be built from physical layer == Brownfield - Some infrastructure is already present - Can be transformed into cloud infrastructure by implementing the remaining entities. - Used to bring applications deployed locally to the cloud = Solutions for building cloud infrastructure == 1. Integrating best of breed cloud infrastructure components - Integrates multi-vendor infrastructure components - Enables repurposing the existing infrastructure components - Enables organizations to switch vendors easily - Requires spending a significant amount of IT staff time on: 1. Evaluating individual and disparate hardware components 2. Installing and integrating infrastructure components 3. Testing hardware, middleware, software 4. Checking compatibility of all the components == 2. Cloud ready converged infrastructure #figure( image("./images/cloudreadyconverged.png") ) This solution provides a modular design that combines compute, storage, network, virtualization, and management components into a single package. This is a self contained unit that can be utilized to deploy colud service, or can be aggregated with additional package to support the demand for more capacity and performance. The package is pre configured, reducing the time to deploy cloud services. Further, in addition to integrating various components into a package, this solution offers single management software capable of managing all hardware and software within the package. A cloud-ready converged infrastructure solution has built-in capabilities that provide secured multi-tenancy. However, additional security mechanisms should be deployed to prevent external attacks. The solution is capable of managing and mitigating failure scenarios in hardware, software, and cloud services. A potential area of concern regarding cloud-ready converged infrastructure solutions is the lack of flexibility to use infrastructure components from different vendors. Some vendors may provide organizations with the flexibility to choose multi-vendor infrastructure components such as network devices, compute systems, and hypervisors for this solution. = Factors to consider while building a cloud infrastructure == Governance _Governance is the active distribution of decision making righes and accountability among different stakeholders in an organization. It also describes the rules and procedures for making and monitoring those decisions to determine and achieve the desired behaviors and results._ This allows the service provider to: - Ensure IT resources are implemented and used according ro policies and procedures - Ensure the resources are properly controlled and maintained - Ensure the resources are providing value to the organization IT governance also involves setting up a review board. This board is responsible for creating rules and processes that the orgainization must follow to ensure that policies are being met. These rules and regulations may have: - Understanding business issues, such as regulatory requirements or funding - Rstablishing best practices and monitering these processes - Assigning responsibility fot things such as standards, design, review and certifications #figure( image("./images/governance models.png") ) There are 3 types of governance models: 1. Centralized model - Single governing body for the entire organization. - Better for smalled or strongly central organizations. 2. Federated model - Seperate governing bodies for each business units - Can be a a functional organization, product group, or geographic location. - The services can be individually standardized, managed and owned. - Cental governing body can sbject all services to a common governance system. 3. Distributed model - Seperate governing bodies for each business group. - Not controlled by any common governance system. == Organization - A cloud provider needs to institute or transform the organization to a proactive services based model. - This requires defining several new roles that perform tasks related to cloud services. The new roles in cloud are: 1. *Service Manager* - Key interface between clients and IT staff - Understands the consumer's needs and industry trends - Ensures IT delivers cost-competitive services - Manages consumers' expectations of product offerings 2. *Account Manager* - Supports service managers in service planning, development, and deployment - Maintains day to day contact with consumers 3. *Cloud Architect* - Creates detailed designs for the cloud infrastructure 4. *Service Operations Manager* - Streamlines service delivery and execution - Provides early warnings for service issues, such as capacity constraints or unexpected increase in cost - Coordinates with architecture team to define technology roadmaps and ensures service level objectives are met == Finance === Service Valuation - A service provider needs to institute or transform the financial model that will enable them to manage their budgeting, accounting and chargeback requirements. - The model helps the service provider to provide for investments to offer cloud servicies. - It helps determine the IT budget for cloud infrastructure ans operations for the lifecycle of services. - Service valuation determines the price that a consumer is expected to pay. - Makes sure that the provider is profitable and meeting the investment goals. The steps to service valuation are: 1. Aggregate the all costs ( both capital and operating expenditures ) down to the service. 2. Calculate service costs on per unit basis by dividing the aggregated cost for a service by some logical unit of demand. 3. Establish a stable per-unit cost baseline based on demand or utilization of a service. 4. Add some margin amount over per-unit cost to define service price. #figure( image("./images/serviceval.png") ) #pagebreak() === Chargeback model Defines how consumers need to pay for the consumed services #table( columns: (auto, auto), table.header([Model], [Description]), [Pay-as-you-go],[ - Metering and pricing is based on consumption of resources - Cosumers do not pay for unused resources ],[Subscription by time], [ - Cost of providing a service for a subscription period is divided among predefined number of consumers ], [Fixed cost or pre-pay], [ - Consumers commit needed resources upfront for committed period - Consumers pay fixed charge periodically through a billing cycle regardless of utilization of resources. ], [User-based], [ - Billing is based on the number of logged in users ] ) == Tools - Tools enable service providers to build and offer cloud services to the consumers. - Providers should consider tools that will enable them to connect multiple clouds or applications - Some uses of tools are: 1. Virtualization and orchestration software. 2. Security and business continuity software. 3. Self-service portal software. - Some other tools that should be considered specially when deploying hybrid cloud, community cloud or brokerage service are: 1. Cloud integration tools 2. APIs 3. Specialized connections 4. Transformation and business logic programs - Cloud integration tools enable connecting cloud applications with other cloud and non-cloud applications to leverage the capailities of multiple applications. - Cloud integrations technology integrates multiple cloud applications using APIs. - APIs enable secure access to the data of integrated applications. == Service-level agreement and service contract _A service contract is an agreement between the cloud service provider and cloud service consumer, stating the terms of service usage_ \ \ _A service-level agreement is a contract negotiated between a provider and a consumer that specifies various parameters and metrics such as cost, service acailability, maintenance schedules, performance levels, service desk response time, and consumer's and provider's responsibilities. SLAs are part of a service contract._ - A legal contract must be established with the consumer before a service can be used. - The key points that must be included in a legal contract are: 1. Business level policies such as a data privacy, data ownership, security and jurisdiction. 2. Availability and performance metrics. 3. DR plan, exit plan, and penalties for not meeting SLA. 4. How unexpected incidents and prolonged service outage will be handeled. == Avoiding vendor lock-in _Vendor lock-in is a situation where a consumer is unable to move readily from the current provider to another._ - Causes of vendor lock-in are: 1. High migration costs 2. Applications requires significant re-engineering for migration. 3. Lack of open standards. 4. Restrictions or burdensome penalties imposed by the current provider. - Vendor lock in can be prevented by: 1. Using open standard tools, APIs, and file formats. 2. Including appropriate exit clause in the agreement. == Software licensing concerns - Cloud providers must consider challenges associated with software licenses. - Licensing challenges are relevant to IaaS and Paas models. - Consumers can use their existing license if it is cloud enabled. - If the license is not cloud enabled then: - Paying additional fees may get their license cloud enabled. - May use software by the service provider. - Providers must work to understand the software license rights and it's usage. - This prevents non-complience and violation of license agreements. == Service model considerations === Considerations for SaaS - Ensures software offered is throughly tested. - Ensures new features in the software are developed to meet customer's needs. - Ensures applications are scalable and acane handle increasingly larger consumer workloads. - Ensures consumers are provided with a secure environment. - Ensures applications are resilient and can withstand failures. === Considerations for PaaS - Provides development platform to the consumers. - Supports large variety of OS, development, and deployment tools. - Ensures consumers are provided with a secure environment. - Provides the consumer the required computing resources to operate the application. === Considerations for IaaS - Provides the consumer the required infrastructure resources to deploy their OS, application, and data. - Ensures that the consumers are provided a secure environment. == Migrations - Depends on whether a consumer plans to migrate application or data. - A migration strategy is required. - The providers need to identify the dependencies of the application. #table( columns: (auto, auto), table.header([Migration Strategy], [Description]), [Forklift],[ - Entire application is migrated at once instead of in parts. - Good for tightly coupled or self contained applications. ], [Hybrid Migration Strategy], [ - Applications and it's components are moved in parts. - Lower-risk approach to migrate applications to the cloud. - Good for applications with loosely coupled components. ] ) - For migrating data to cloud: - Consider copying data to cloud using replication technology. - Consider factor like network bandwidth, data security, data integrity, data consistency, jurisdiction, etc. == Testing _After the application is migrated to the cloud, the provider must work with the consumer to test their application to ensure that it is working as expected. The degree of testing may vary on the scope of the consumer's requirements._ When developing a test strategy, the providers and consumers must consider the following. 1. Define roles and responsibilities of the personnel involved in test and QA process. 2. Identify the tools required to perform test management and automation. 3. Design tests for data migration to the cloud. 4. Design test cases to perform various testing modes such as: - stress - performance - functional - interoperability - compatibility 5. Test cloud capabilities committed by provider such as: - Fault tolerance - Disaster recovery - Security controls