INF281Notes1.docx
Document Details
Uploaded by Deleted User
Full Transcript
Oct 7, 2024 **INF281(Information Systems)-Specialized Systems:** ***[Ch1: Intro To The Cloud:]*** Information and communication technology has changed the way in which we can access resources and how enterprise applications and software can be accessed. Various concepts such as Software as a...
Oct 7, 2024 **INF281(Information Systems)-Specialized Systems:** ***[Ch1: Intro To The Cloud:]*** Information and communication technology has changed the way in which we can access resources and how enterprise applications and software can be accessed. Various concepts such as Software as a Service and Platform as a Service is changing the way companies do business. This module will investigate Microsoft Azure, Amazon, and Google and provide an understanding of these nearly limitless resources for mature enterprises and start-ups, and how they can be utilized with little to no initial capital investment. This module will further investigate security and ethical considerations for public, private and hybrid cloud services and delivery models ***[Cloud Computing Definition:]*** Cloud computing is the use of a pool of resources hardware or software that are delivered as a service over the Internet or any network. It can be defined as the practice of using a network of remote servers hosted on the Internet to store, manage, and process data, rather than a local server or a personal computer. Simply put, cloud computing is the delivery of computing services---servers, storage, databases, networking, software, analytics, intelligence and more---over the Internet ("the cloud") to offer faster innovation, flexible resources and economies of scale. You typically pay only for cloud services you use, helping lower your operating costs, run your infrastructure more efficiently and scale as your business needs change. For small and mid-sized businesses, cloud computing allows time-constrained IT teams to operate more efficiently. For large enterprises, the cloud provides the ability to scale up or down to respond quickly to changing market conditions. The term moving cloud also refers to an organization moving away from a traditional capex model (buy the dedicated hardware and depreciate it over a period of time) to the opex model (use a shared cloud infrastructure and pay as you use it). End users access cloud based applications through a web browser or a light weight desktop or mobile app while the business software and users data are stored on servers at a remote location. -National Institute of Standards and Tech (NIST) came up w/ formal def for cloud computing, but their def has changed over time. -the NIST cloud def has 3 main parts: 1\) 5 key/essential cloud characteristics: on demand self-service, broad network access, resource pooling, rapid elasticity, measured servive...All 5 must be present for an offering to be a TRUE Cloud offering 2\) 4 cloud deployment models 3\) 3 cloud service models ***[History of Cloud Computing:]*** Cloud computing dates back to the 1950s, when large-scale mainframe computers became available in corporations, accessible via thin clients/ terminal \[dumb terminals\]. For efficient use of costly mainframes, multiple users shared both the physical access to the computer from multiple terminals, as well as to share the CPU time. This eliminated periods of inactivity on the mainframe. The practice of sharing CPU time on a mainframe became known in the industry as time sharing. In the 1990s, telecommunications companies began offering VPN services with comparable quality of service, but at a lower cost. By switching traffic as they saw fit to balance server use, they could use overall network bandwidth more effectively. They began to use the cloud symbol to denote the demarcation point between what the providers was responsible for and what users were responsible for. Cloud computing extends this boundary to cover servers as well as the network infrastructure. The development of the Internet, from a document-centric towards more and more services was described as \"Dynamic Web\". The availability of high-speed, high-capacity networks, low-cost computers and storage devices as well as the adoption of hardware virtualization and service-oriented architecture have led to a tremendous growth in cloud computing. Amazon played a key role in the development of cloud computing by modernizing their data centres and launched Amazon Web Service (AWS) on a utility computing basis in 2006 In early 2008, many cooperates developed AWS API-compatible platforms for deploying private clouds. \[See Page 4 of textbook\] ***[Similar Systems and Concepts:]*** Cloud Computing is the result of the evolution and adoption of existing technologies and paradigms. The goal of cloud computing is to allow users to take benefit from all of these technologies, without the need for deep knowledge about or expertise with each one of them. The cloud aims to cut costs and help users focus on their core business instead of being impeded by IT obstacles. *** Similar technologies include:*** Virtualization - The main enabling technology for cloud computing. Virtualization abstracts the physical infrastructure, which is the most rigid component, and makes it available as a soft component that is easy to use and manage. Virtualization provides the agility required to speed up IT operations, and reduces costs by increasing infrastructure utilization System Automation is the process which minimizes user involvement, speeds up the transaction processes, and reduces the possibility of human errors. **Service-Oriented Architecture (SOA)** - Method that help the user break problems into services that can be integrated to provide a solution. Cloud computing provides all of its resources as services, and makes use of the well-established standards and best practices gained in the domain of SOA to allow global and easy access to cloud services in a standardized way. **Utility Computing** -- This is a service provisioning model in which a service provider makes computing resources and infrastructure management available to the customer as needed, and charges them for specific usage rather than a flat rate. **Grid Computing** - a computer network in which each computer\'s resources (processing power, memory and data storage) are shared with every other computer in the system. **Cloud computing** has evolved from grid computing by addressing the QoS and reliability problems. Cloud computing provides the tools and technologies to build data/compute-intensive parallel applications with much more affordable prices compared to traditional parallel techniques. **[Class Discussion Exercise:]** 1\. Discuss case studies you know where the above-mentioned technologies were implemented, and how they impacted the operations of the company. 2\. In what ways is Cloud computing similar to these technologies? ***[Cloud Computing Characteristics:]*** Cloud computing exhibits the following key characteristics: a. Agility improves with users\' ability to re-provision technological infrastructure resources. - Easy to reappropriate resources (add, take away, add sys's to expand) when needed b\) API accessibility to software that enables machines to interact with cloud software in the same way that a traditional user interface (e.g., a computer desktop) facilitates interaction between humans and computers. Cloud computing systems typically use REST-based APIs (A REST - REpresentational State Transfer API - is an application program interface that uses HTTP requests to GET, PUT, POST and DELETE data.) c. Cost is claimed to be reduced, and in a public cloud delivery model capital expenditure is converted to operational expenditure. - In traditional models, companies often make large, up-front capital expenditures (CapEx) to buy hardware and infrastructure. However, in a public cloud model, these expenses are shifted to smaller, ongoing operational expenditures (OpEx), such as monthly or yearly payments for cloud services. This approach allows businesses to pay for what they use, making costs more predictable and scalable. - Cloud enviros are usually built using utility storage & computing...which generally cheaper than more specialized components - usually easier to get approval for operational expenses (OpEx) than for capital expenses (CapEx). i. Operational expenses= regular, ongoing costs for running business, like monthly payments for services (e.g., cloud subscriptions, utilities). 1. often smaller and more flexible, so get through approval processes more smoothly. - capital expenses involve large, one-time investments in long-term assets (e.g., buying hardware, equipment)... require more scrutiny and higher-level approval due to their significant impact on the budget. d\) Device and location independence - enable users to access systems using a web browser regardless of their location or what device they are using (e.g. PC, mobile phone). As infrastructure is off-site (provided by a third-party) and accessed via the Internet, users can connect from anywhere. e\) Virtualization technology - allows servers and storage devices to be shared and utilization be increased. Applications can be easily migrated from one physical server to another. - Not a requirement of cloud enviro - Can host many virtual sys's on one phys sys...cuts implementation costs, don't need separate phys sys's for each customer - Allows for resource pooling & increased use of phys sys f\) Multitenancy - enables sharing of resources and costs across a large pool of users thus allowing for: ❑ Centralization of infrastructure in locations with lower costs (such as real estate, electricity, etc.) ❑ Peak-load capacity increases (users do not feel high load-levels) ❑ Utilization and efficiency improvements for systems that are often only 10--20% utilized. ❑ Reliability is improved if multiple redundant sites are used, which makes well-designed cloud computing suitable for business continuity and disaster recovery. - Can be \$\$\$ly, must have: many sys's/datacenters, disaster recovery(DR), continuity planning, simulations ❑ Scalability and elasticity via dynamic provisioning of resources on a self-service basis near real-time, without users having to feel peak loads. - Cloud enviro can auto scale to meet customer needs ❑ Performance is monitored and consistent and loosely coupled architectures are constructed using web services as the system interface. - Constantly measured/monitored - If performance falls below certain level...sys can automatically adjust to give more capacity using a service level agreement (SLA) - Performance cant be assured but \$ary compensation can be given due to lack of performance ❑ Security&Compliance could improve due to centralization of data, increased security-focused resources - security measures in cloud computing environments = often stronger/more effective, maybe due to factors such as: advanced security technologies, centralized management, regular updates, use of specialized teams by cloud providers to protect data and infrastructure. ❑ Ease of Maintenance of cloud computing applications is easier, because they do not need to be installed on each user\'s computer and can be accessed from different places. - Also don't have to stay update w/ latest hardware/software patches ***[Cloud Computing Essential Characteristics:]*** The National Institute of Standards and Technology\'s (NIST) definition of cloud computing identifies five essential characteristics: **On-demand self-service** -means that a consumer can request & receive access to a service offering, w/o an admin/support staff having to fulfil the request manually -request & fulfilment processes are automated...good for both provider & consumer -important to know which services can & cannot be automated On-demand self-service allows users to obtain, configure and deploy cloud services themselves using cloud service catalogues, without requiring the assistance of IT....users get resources quickly....reduces admin burden on support staff +-----------------------------------+-----------------------------------+ | Pros | Cons | +===================================+===================================+ | -worthwhile to build even though | -can be hard to build | | needs time & \$ for cloud | | | providers | -can have compliance & regulatory | | | issues | +-----------------------------------+-----------------------------------+ Users are able to provision cloud computing resources without requiring human interaction, mostly done though a web-based self-service portal (management console). **Broad network access** Cloud computing resources are accessible over the network, supporting an array of client platforms such as mobile devices and workstations (thin or thick client platforms, e.g., mobile phones, tablets, laptops, and workstations). -services should be accessed easily; thus don't require users to have a large amt of bandwidth needed to use the cloud service -note LANs are still faster than public internet connections **Resource pooling** Service multiple customers from the same physical resources, by securely separating the resources on logical level. -saves cost & allows flexibility from provider side -allows resources to be used by other customers when those initially using them are not currently using them -often achieved using virtualisation(host many virtual sessions on 1 system) -aka: 1 phys sys is placed in a pool that can be used by many virtual sys's **Rapid elasticity** Resources are provisioned and released on-demand and/or automated. This will make sure your application will have exactly the capacity it needs at any point of time. -ability of cloud enviro to easily grow to satisfy user demand -if done correct might just need to add: computers, hard disks, etc...this still allows provider to save on consumption costs(power, cooling) -done by using automation & orchestration -rapid elasticity allows company to deal w/ Burst capacity; needed only temporarily **Measured service** Resource usage are monitored, measured, and reported (billed) transparently based on utilization. In short, pay for use. -Usage quantification measured via: time used, bandwidth used, data used -this allows for the pay-as-you-go (\*if the service not used on a particular day then customer isn't charged for that time) to be implemented -user must be aware of associated costs **[Exercises:]** 1\. Discuss what it means when IT is defined as "in the cloud." 2\. Describe the Capex model of computing, and further explain the Opex model for cloud computing. Outline how the Opex model first became a service delivery model. 3\. Discuss the reasons why cloud computing is an essential part of information technology. 4\. List and expand on the 5 Cloud Computing essential characteristics. **Cloud Services and Infrastructure** **Learning outcomes:** At the end of this lecture, students must be able to: Outline things to consider when selecting a cloud service Describe the general features of services provided by cloud computing Outline the different cloud deployment types and their properties Describe the reasons why cloud computing is essential Differentiate between private and public clouds Describe the business drivers and benefits for cloud infrastructure -the NIST defn of cloud computing has 4 diff cloud deployment models: public, private, community, hybrid ***[Cloud Services Considerations:]*** ***These are a few things to consider before choosing a Cloud service:*** *** Features*** ✓ The type of content you can store (word documents, music files etc) ✓ Cloud service should also allow you to view, edit and share your content regardless of what computer or device you are using. ✓ Other features - automatic syncing of your files across all your devices, and password protected sharing and files encryption to safeguard your content. *** Mobile Access*** ✓ Wide-ranging access at the office or at home on your iPad ✓ Cloud services allow you to access your content anywhere, anytime and on any one of your devices. ✓ Offer the greatest range of mobile access, including apps for popular smartphones and the ability to log into your account from any mobile browser. *** Ease of Use*** ✓Select a cloud service that is intuitive and straightforward. ✓The service's interface and tools should be easy to navigate and convenient to use. *** Help & Support*** ✓Getting help when you need it is crucial when using cloud services. ✓Available support options should include technical assistance via telephone, email and live chat. ✓The service should also provide a knowledgebase and user forums as resources. ***[Features of Services provided by Cloud Computing:]*** *** Scalable and Elastic services*** ✓ The service should scale capacity up or down as the consumer demands at the speed of full automation (which may be seconds for some services and hours for others). ✓ Elasticity is a trait of shared pools of resources. ✓ Scalability is a feature of the underlying infrastructure and software platforms. ✓ This means that services scale on demand to add or remove resources as needed. *** Shared services*** ✓ Services share a pool of resources which are used with maximum efficiency. ✓ The underlying infrastructure, software or platforms are shared among the consumers of the service. ✓ This enables unused resources to serve multiple needs for multiple consumers, all working at the same time. *** Metered by Use*** ✓ Services are tracked with usage metrics to enable multiple payment models. The service provider has a usage accounting model for measuring the use of the services, which could then be used to create different pricing plans and models. ✓ These may include pay-as-you go plans, subscriptions, fixed plans and even free plans. ✓ The implied payment plans will be based on usage, not on the cost of the equipment ✓ These plans are based on the amount of the service used by the consumers, which may be in terms of hours, data transfers or other use-based attributes delivered. *** Uses Internet Technologies*** ✓ The service is delivered using Internet, with protocols, such as URLs, HTTP & IP. ✓ Examples include Google\'s Gmail, Amazon\'s book buying, eBay\'s auctions and Lolcats\' picture sharing -- all exhibit the use of Internet and Web technologies and protocols. *** Multitenancy*** ✓ Refers to a principle in software architecture where a single instance of the software runs on a server, serving multiple customers (tenants). ✓ With a multitenant architecture, a software application is designed to virtually partition its data and configuration, and each client organization works with a customized virtual application instance **Public:** -all of sys's/resources used to provide service are located at an external service provider -connections to public cloud providers usually made via internet **Private:** -sys's & resources that provide service are located internal to company/org that uses them -private clouds accessed via: local LAN or WAN (wide area network), in remote access by users case-access given via internet or VPN(virtual private network) **Community:** -community clouds are semi-public clouds shared b/w members of a select group of orgs, generally have a common purpose...they want more privacy than public cloud (open to everyone) AND indiv. Orgs don't want to be solely responsible for maintaining their cloud(they want to share responsibility w/ other members of select grp) **Hybrid:** -Combo of 2+ cloud models, the 2 clouds aren't mixed together they're separate but linked together -may intro more complexity and flexibility to fulfil orgs goals **[Cloud Service Models:]** - Provides basic infrastructure services to customers (i.e. phys machines, virtual machines, networking, storage, or combo of these) - You can build what you need ontop of the infrastructure - Used to replace internally managed datacenters - Allow orgs more flexibility but at reduced cost - Gives an OS, dev platform, database platform - Allow orgs to dev apps w/o having to worry about building infrastructure needed to support the dev enviro - However, may be limited w/ what tools you can use to build your app - Is the original cloud service model, remains most popular model by most providers - Provides app & data services - Apps, data, necessary platforms, infrastructure given by service provider - Ex: customer relationship management(CRM), enterprise resource planning (ERP) ***[Reasons why cloud computing is essential:]*** *** Elasticity*** ✓ The basic value proposition of cloud computing is to pay as you go, and to pay for what you use. ✓ This implies that an application can expand and contract, on demand, across all its tiers (presentation layer, services, database, security, etc.). ✓ This also implies that application components can grow independently from each other. ✓ So if you need more storage for your database, you should be able to grow that tier without affecting, reconfiguring or changing the other tiers. ✓ Basically, cloud applications behave like a sponge; when you add water to a sponge, it grows in size; in the application world, the more customers you add, the more it grows. ✓ While adding servers in a datacenter helps in achieving scale, it is hardly enough. The application has yet to use this hardware. ✓ If the process of adding computing resources is not transparent to the application, the application is not elastic. User Self-Provisioning ✓ User self-provisioning, also known as cloud self-service, is a system that allows end users to set up and launch applications and services without the direct help of an IT organization or a service provider. ✓ Utilization of a portal application that end users can use to request the resources necessary to run an application. ✓ Many self-provisioning user portals show a list of applications and services that allowed and available for self-provisioning. ✓ Establish back-end policies that automatically assign computing, storage and network resources to support the applications, along with specific security and performance settings *** Billing Metering*** ✓ Cloud computing helps provide a platform for an infrastructure design that establishes a charge-back model for metering and billing. *** Performance Monitoring*** ✓ A cloud service provider must have a full management environment which manage its services consistently. ✓ Be able to monitor and measure the availability of the services provided to customers in order to be competitive. ✓ Provide customers with a dashboard so that they can monitor the level of service they're getting from their provider. ✓ Many customers will leverage their own monitoring tools to measure the effectiveness of the service/offering to be able to meet its service level requirements *** Customer Security*** ✓ The cloud provider should provide a secure and isolated environment for each customer. ✓ Each customer should only be able to access his or her own environment and no other customer's environment in any way. ✓ No customer should have any visibility into the structure, systems, data or any other attributes of another customer's environment. ***[Private vs Public Clouds:]*** A **private cloud** is one in which the services and infrastructure are maintained on a private network. These clouds offer the greatest level of security and control, but they require the company to still purchase and maintain all the software and infrastructure, which reduces the cost savings. A **public cloud** is one in which the services and infrastructure are provided off-site over the Internet. These clouds offer the greatest level of efficiency in shared resources; however, they are also more vulnerable than private clouds ![](media/image2.png) ***[Business Drivers and Benefits for Cloud Infrastructure:]*** Business drivers can be seen as the "why". Why do you want to implement a public cloud? The following are five important business drivers: *** Speed to Market*** ✓ You are able to setup and deploy your cloud within hours, and service your clients sooner. *** Cost saving*** ✓ Will public cloud save me money? Is opex better than capex? ✓ The answer to both of these questions: It depends. ✓ What public cloud definitely does provide is the ability for your organization to be more financially efficient. ✓ This ensures the amount of money you have sitting in underutilized assets is minimized *** Business Expansion*** ✓ Public cloud is a key enabler of this. There is no upfront capital expenditure and the environment can be turned off at any point in time. ✓ When that occurs, any opex expenses stop. ✓ On the other hand, if the business is more successful than originally anticipated, the ability to quickly expand infrastructure to support the load is of paramount importance. ✓ This ability is a key characteristic of the public cloud. *** Global Expansion*** ✓ Global expansion and business expansion are very similar, and public cloud brings comparable benefits to the table for both of them. ✓ Savvis\' public cloud allows for the deployment of data centers in a pay-per-use fashion within the global markets. *** Core Competency - Flexibility*** ✓ Core competency is the primary reason customers turn to cloud computing. ✓ By relying on an outside organization to take care of all IT hosting and infrastructure, you\'ll have more time to devote towards the aspects of your business that directly affect your bottom line. ✓ That allows customers to focus on theirs. *** Security*** ✓ A cloud host\'s full-time job is to carefully monitor security, which is significantly more efficient than a conventional in-house system. ✓ RapidScale claims that 94 percent of businesses saw an improvement in security after switching to the cloud, and 91 percent said the cloud makes it easier to meet government compliance requirements. ✓ The key to this security is the encryption of data being transmitted over networks and stored in databases. ✓ By using encryption, information is less accessible by hackers or anyone not authorized to view your data *** Mobility*** ✓ Cloud computing allows mobile access to corporate data via smartphones and devices. ✓ Through the cloud, you can offer conveniently accessible information to sales staff who travel, freelance employees, or remote employees, for better work-life balance. *** Insight and Data Analysis*** ✓ Many cloud-based storage solutions offer integrated cloud analytics for a bird\'s-eye view of your data. ✓ With your information stored in the cloud, you can easily implement tracking mechanisms and build customized reports to analyze information organization-wide *** Increased collaboration*** ✓ Cloud computing makes collaboration a simple process. ✓ Team members can view and share information easily and securely across a cloud-based platform. ✓ Some cloud-based services even provide collaborative social spaces to connect employees across your organization, therefore increasing interest and engagement. *** Quality control*** ✓ In a cloud-based system, all documents are stored in one place and in a single format. ✓ With everyone accessing the same information, you can maintain consistency in data, avoid human error, and have a clear record of any revisions or updates *** Disaster recovery*** ✓ Cloud-based services provide quick data recovery for all kinds of emergency scenarios\' from natural disasters to power outages. *** Automatic software updates*** ✓ Cloud-based applications automatically refresh and update themselves, instead of forcing an IT department to perform a manual organization-wide update. ✓ This saves valuable IT staff time and money spent on outside IT consultation. ***Exercises:*** 1\. State and explain any five things to consider before choosing a Cloud service. 2\. List five Cloud Computing Key Characteristics. 3\. Discuss any two Cloud Deployment Types and give one benefit for each type. 4\. What are the Benefits of Cloud Infrastructure? **Cloud Services Features:** Learning outcomes: At the end of this lecture, students must be able to: Describe the SOAP Web Service Architecture. Outline the web services that use Mark-Up languages (XML) ***[Introduction:]*** We will continue from the last lecture and talk more on key things to consider when choosing a cloud service. We will also look at the features of services provided by Cloud Computing. ***[Web Services:]*** A web service is a method of communication between two electronic devices over the World Wide Web. A web service is a software function provided over the web or the cloud, it is a service that is "always on" as in the concept of utility computing. The Web Services architecture describes three roles: service provider, service requester and service broker; and three basic operations: publish, bind and find. A network component can play any or all of these roles ***[The SOAP web services architecture:]*** SOAP - The SOAP (Just an acronym) web services architecture is based on interactions between three components: a service provider, a service requester, and an optional service registry. ***[The SOAP web services architecture (cont.):]*** The service provider The collection of software that provides a web service. Web service providers offers APIs that enable developers to exploit functionality over the internet, rather than delivering full blown applications. The application program, The middleware, The platform on which they run The service requester The collection of software that is responsible for requesting a web service from a service provider. The application program, The middleware, The platform on which they run The service registry (Agent) The service registry is a central location where service providers can publish their service descriptions and where service requesters can find those service descriptions. The SOAP web services architecture... WSDL -- Web Service Descriptions Language Expressed in XML which include both data types and messages. Four types of operations: One-way -- messages sent without a reply required. Request and response -- sending and replying messages. Solicit response -- a request for a response. Notification -- messages sent to multiple receivers. The SOAP web services architecture... UDDI - Universal Description, Discovery, and Integration XML standard for describing, publishing and finding web services. It enables businesses to discover each other and define how they interact over the internet. The concept of Web Services, described here, is our view of what the next generation of e-business architectures for the Web will look like. The Web Services architecture describes principles for creating dynamic, loosely coupled systems based on services, but no single implementation ***[Web API:]*** A Web API is an application programming interface for either a web server or a web browser. It is a web development concept, usually limited to a web application\'s client-side and thus usually does not include web servers. A web API is a development in web services where emphasis has been moving to simpler representational state transfer (REST) based communications. RESTful APIs do not require XML-based web service protocols (SOAP and WSDL) to support their light-weight interfaces. ***[XML Web Services:]*** XML web services use Extensible Markup Language (XML) messages that follow the SOAP standard and have been popular with the traditional enterprises. XML is the data format used to contain the data and provide metadata around it, SOAP is used to transfer the data, WSDL is used for describing the services available and UDDI lists what services are available. A web service is a method of communication between two electronic devices over a network ***[Web Services that use Markup Languages:]*** There are a number of web services that use markup languages: JSON-RPC JSON-WSP Web template Web Services Description Language (WSDL) from the W3C XML Interface for Network Services (XINS) provides a POX-style web service specification format Web Services Conversation Language (WSCL) Web Services Flow Language (WSFL) (superseded by BPEL) WS-Metadata Exchange Representational State Transfer (REST) versus Remote Procedure Call (RPC) XML-RPC -- XML Remote Procedure Call ***[Exercises:]*** 1\. List and explain 6 features of services provided by cloud computing. 2\. With the aid of a diagram, explain the SOAP web services architecture. 3\. Discuss any five Web Services that use Markup Languages.