Community Cloud A collaborative effort in which infrastructure is shared between several organizations from a specific community whether managed internally or by a third-party and hoste
Trang 11
MINISTRY OF EDUCATION AND TRAINING
DUY TAN UNIVERSITY
NGO DINH CUONG
PRIVATE CLOUD COMPUTING AND
AMAZON WEB SERVICES
MASTER THESIS OF COMPUTER SCIENCE
Danang, 2019
Trang 2MINISTRY OF EDUCATION AND TRAINING
DUY TAN UNIVERSITY
NGO DINH CUONG
PRIVATE CLOUD COMPUTING AND
AMAZON WEB SERVICES
Major: Computer science Major Code: 8480101
MASTER THESIS OF COMPUTER SCIENCE
Supervisor: Dr ANAND NAYYAR
Danang, 2019
Trang 31
ACKNOWLEDGEMENT
I would like to express my special thanks of gratitude to my mentor, Dr Anand Nayyar as well as Computer Science Faculty, gave me the golden opportunity to do this wonderful project on the topic ”Private Cloud Computing and Amazon Web Services”, which also helped me in doing a lot of Research and i came to know about so many new things I am really thankful to them
Ngo Dinh Cuong
Trang 4Table of Contents
CHAPTER 1: INTRODUCTION TO CLOUD COMPUTING AND STORAGE AS
CHAPTER 2: AMAZON WEB SERVICES 43
Trang 52.2 Technologies surrounding Amazon Web Services 48
CHAPTER 3: IMPLEMENTATION AND ANALYSIS 59
3.1 Building a Private Cloud as Storage Cloud with ownCloud 59
3.3.2 AWS Serverless without considering about servers 74
Trang 6List of Figures Figur
e
1.1 Software as a Service 31 1.2 PaaS Architecture 33 1.3 Summary of Key differences 35 1.4 Benefits of DaaS 37 1.5 Storage as a Service 381.6 Cloud Storage 392.1 Popular AWS services 45 2.2 AWS Gateway Architecture 56 3.1 Storage Cloud 60
3.2 ownCloud has a single interface from which users can access,
sync and share files on any device, anytime, from anywhere
62
3.3 ownCloud home page 63 3.4 Uploading file to ownCloud 63 3.5 Managing users and group 64 3.6 Serverless Application Architecture 65 3.7 Setting static website hosting by S3 66 3.8 Accessing website by S3 endpoint 67 3.9 Cognito user pool stores user’s info 67 3.10 Verification code is sent by Amazon 68 3.11 Auth Token Key is generated by Amazon Cognito 68 3.12 Demo Application 69 3.13 Data is stored in DynamoDB 70 3.14 RESTful API is set by API Gateway 71 3.15 Cost Comparison of Commercial Cloud providers and ownCloud 73
Trang 73.16 Lambda Configuration 75 3.17 Lambda Online editor 75 3.18 Setting test event in Lambda 76 3.19 Lambda combining CloudWatch stores logs 76 3.20 Storing source code in Amazon S3 77 3.21 Amazon S3 Properties 77 3.22 Setting server access logging in S3 78 3.23 Logging directory in S3 78 3.24 Logging detail by Json format 79 3.25 Monitoring Read/Write Capacity 80 3.26 DynamoDB metrics 80 3.27 API Gateway integrated with Lambda function 81 3.28 Published URL by API Gateway 81 3.29 API Gateway controls access by Amazon Cognito 82 3.30 Managing users and groups 82 3.31 General setting 83 3.32 Password policy by Cognito 83 3.33 Setting app client 84
Trang 8
List of Tables Figur
e
1.1 Software as a Service 79 1.2 PaaS Architecture 79
Trang 9GLOSSARY Amazon Web Services
(AWS)
A subsidiary of Amazon that provides on-demand cloud computing platforms to individuals, companies and governments, on a metered pay-as-you-go basis
Community Cloud A collaborative effort in which infrastructure is shared
between several organizations from a specific community whether managed internally or by a third-party and hosted internally or externally
Cloud Computing The demand availability of computer system resources,
especially data storage and computing power, without direct active management by the user
Cloud Storage A model of computer data storage in which the digital
data is stored in logical pools
Data as a Service (DaaS) An information provision and distribution model in which
data files (including text, images, sounds, and videos) are made available to customers over a network, typically the Internet
Hybrid Cloud
Refers to the cloud infrastructure environment that is a mix
of public and private cloud solutions
Trang 10Infrastructure as a
Service (IaaS)
Online services that provide high-level APIs used
to dereference various low-level details of underlying network infrastructure like physical computing resources, location, data partitioning, scaling, security, backup etc
NoSQL
Provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases
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 typically associated with developing and launching an app
Private Cloud Refers to the cloud solution dedicated for use by a single
organization
Public Cloud Refers to the cloud computing model with which the IT
services are delivered across the Internet
RESTful API An application program interface (API) that
uses HTTP requests to GET, PUT, POST and DELETE data
Serverless Compute A misnomer referring to a cloud-computing execution
model in which the cloud provider runs the server, and dynamically manages the allocation of machine resources
Software as a
Service (SaaS)
A software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted
Trang 11Structured Query
Language
Domain-specific language used in programming and designed for managing data held in a relational database management system, or for stream processing in
a relational data stream management system
Virtualization
Refers to the act of creating a virtual (rather than actual) version of something, including virtual computer hardware platforms, storage devices, and computer network resources
Trang 12INTRODUCTION
1 RESEARCH BACKGROUND INFORMATION
Cloud computing has become one of the most vivid technologies in recent times and has been attractive lots of attention from media as well as analysts because of the opportunities it is offering In fact, cloud computing is transforming the computing landscape, will change the way to deploy technology and how it affects on the economics
of computing
Cloud computing is more than a service sitting in some remote data center It’s a set
of approaches that can help organizations quickly, effectively add and subtract resources
in almost real time Unlike other approaches, the cloud is as much about the business model
as it is about technology Companies clearly understand that technology is at the heart of how they operate their businesses Business executives have long been frustrated with the complexities of getting their computing needs met quickly and cost effectively In a sense, cloud computing has started to become mainstream because these business executives have forced the issue into the forefront
It is a term used to describe both a platform and type of application Many companies have invested in Cloud computing technology by building their public clouds, which include Amazon, Google and Microsoft Amazon is a pioneer in cloud zone that provides Amazon Web Services (AWS) is a secure cloud services platform, offering compute power, database storage, content delivery and other functionality to help businesses scale and grow (Golden, 2013) Explore how millions of customers are currently leveraging AWS cloud products and solutions to build sophisticated applications with increased flexibility, scalability and reliability Amazon Elastic Compute Cloud (Amazon EC2) is one of AWS products, being a web service that provides secure, resizable compute capacity in the cloud It is designed to make web-scale cloud computing easier for developers
Trang 13As many software companies are running private cloud computing and Amazon Serverless Compute in the progress of software development as implementing application testing and product demo This trend leads this paper aims to analyze the affect and effect
of Private cloud computing and Amazon Web Services
2 OBJECTIVES
The main research objective of this thesis is to “researching, implementing and managing an application on private cloud and Amazon Web Services” The private cloud support organizations set up testing environment before the products are deployed on Amazon Web Services In order to meet this research objective, the thesis focuses on discussing the follow specifications:
● In-depth analysis with regard to Pros and Cons of Cloud Computing and highlighting and researching the technologies associated with trends
● Analysis of existing SaaS technology such as ownCloud and other private server technologies
● Study and Analysis with regard to Storage cloud solutions based on private cloud addressing the financial problems of organizations
● Implementing a novel SaaS private cloud solution by utilizing and implementing Amazon Serverless Compute technology
The following research questions are formulated to set the boundaries and guide the research towards the achievement of the research objective
Research Question 1: What is the importance of private cloud?
Research Question 2: What exactly is Amazon Web Services based products? Research Question 3: How to implement software application on private cloud and Amazon Web Services?
Research Question 4: What are the associated benefits and drawbacks with regard
to utilization of Amazon Web Services based Amazon Web Compute product?
Trang 143 RESEARCH OBJECTS AND SCOPE
a Research Objects
The thesis will concentrate on these main points in examing and analyzing that prove the role of cloud computing has impacted on information and communication industry:
● Evolution and history of Cloud Computing;
● Private Cloud Computing;
● Storage Cloud based on STaaS Technology;
● Amazon Web Services products: Amazon Lambda, Amazon Simple Storage Service (S3) and Amazon DynamoDB
b Scope
Regarding the research objects, author conducts applications using below technologies:
● Implementing Storage Cloud on Virtual Machines
● Applying RESTful API by using AWS API Gateway, Cognito, Lambda
● Setting SQL and NoSQL Database corresponds to Private Cloud and Serverless Compute
4 RESEARCH METHODOLOGY
With the purpose of supporting information science researches, The Design Science Research Methodology (DSRM) is one of the most widely adopted methodologies DSRM covers 6 activities including:
Identify problem and motivate: The research problem is defined together with
the proposed solution In the current project the problem identification and motivation is
given in Chapter 1 and 3
Trang 15Define objectives for a solution: The research objectives can be defined based
on the problem definition In order to define the research objectives, it is necessary to be knowledgeable on the current state of the field and the proposed solutions The research objective can be considered as quantitative since we aim to develop a new architectural approach to accelerate the adoption of Cloud based solutions Chapter 1 provides background information about Cloud Computing and describing the essentials of Amazon
Web Services and its ecosystem
Design and development: this activity is developed, by determining the
functionality and the structure of it The design and development activity can be mapped with Chapters 1 & 3 where the theoretical framework is applied in the design of Storage
Cloud and AWS serverless
Demonstration: The case study is presented together with the design and
development of the artifact These two activities are reported together to improve the
understanding of the artifact and facilitate the structuring of the document
Evaluation: The proposed approach evaluated qualitatively for its suitability
This requires comparison between the objectives of the research and with the resulting
approach from the demonstration activities
Contribution: In this activity the identified problem and the proposed solution
in the form of a research publication, such as this master thesis The project result will be shared to Danang IT communities and IT groups on social networks
5 THESIS STRUCTURE
This thesis covers these parts including:
● Chapter 1 - Introduction to Cloud computing: in-depth analysis of Cloud Computing technology with regard to real-time implementation for smart solution
● Chapter 2 - Amazon Web Services: analysis towards technologies in AWS ecosystem
Trang 16● Chapter 3 - Implementation and Analysis: implementing Serverless Compute based
on Amazon Web Services and Private Cloud bases STaaS Solution
Trang 17CHAPTER 1: INTRODUCTION TO CLOUD COMPUTING AND
STORAGE AS A SERVICE (STaaS) 1.1 Definition of Cloud Computing
1.1.1 Evolution and History of Cloud Computing
Multiple users were capable of accessing a central computer through dumb terminals, whose only function was to provide access to the mainframe Because of the costs to buy and maintain mainframe computers, it was not practical for an organization to buy and maintain one for every employee Nor did the typical user need the large (at the time) storage capacity and processing power that a mainframe provided Providing shared access to a single resource was the solution that made economical sense for this sophisticated piece of technology
Using virtualization software like VMware, it became possible to execute one or more operating systems simultaneously in an isolated environment Complete computers (virtual) could be executed inside one physical hardware which in turn can run a completely different operating system The VM operating system took the 1950s’ shared access mainframe to the next level, permitting multiple distinct computing environments to reside
on one physical environment Virtualization came to drive the technology, and was an important catalyst in the communication and information evolution
In the 1990s, telecommunications companies started offering virtualized private network connections Historically, telecommunications companies only offered single dedicated point–to-point data connections (Hayes, 2008) The newly offered virtualized private network connections had the same service quality as their dedicated services at a reduced cost Instead of building out physical infrastructure to allow for more users to have their own connections, telecommunications companies were now able to provide users with shared access to the same physical infrastructure
The following list briefly explains the evolution of cloud computing:
Trang 18● Grid computing: Solving large problems with parallel computing;
● Utility computing: Offering computing resources as a metered service;
● SaaS: Network-based subscriptions to applications;
● Cloud computing: Anytime, anywhere access to IT resources delivered dynamically as a service
Cloud computing is the next stage in evolution of the Internet (B Furht & A Escalante,
2010) The cloud in cloud computing provides the means through which everything from computing power to computing infrastructure, applications, business processes to personal collaboration that can be delivered as a service wherever and whenever users need In the traditional data center, it has always been possible to add and release resources However, this process could not be done in an automated or self-service manner This evolution to cloud computing can completely change the way companies use technology to service customers, partners, and suppliers Some businesses already have IT resources almost entirely in the cloud They feel that the cloud model provides a more efficient, cost-effective IT service delivery
The cloud itself is a set of hardware, networks, storage, services, and interfaces that enable the delivery of computing as a service Cloud services include the delivery of software, infrastructure, and storage over the Internet (either as separate components or a complete platform) based on user demand Companies are finding some important new value in cloud services The cloud can eliminate many of the complex constraints from the traditional computing environment, including space, time, power, and cost Cloud services like social networks (such as Facebook or LinkedIn) and collaboration tools (like video conferencing, document management, and webinars) are changing the way people in businesses access, deliver, and understand information Cloud computing infrastructures make it easier for companies to treat their computing systems as a pool of resources rather than a set of independent environments that each has to be managed
Trang 191.1.2 Essential Characteristics of Cloud Computing
The following basic characteristics explain that why cloud computing is becoming highly important
Elasticity and scalability
The service provider cannot anticipate how customers will use the service One customer might use the service three times a year during peak selling seasons, whereas another might use it as a primary development platform for all of its applications Therefore, the service needs to be available all the time (7 days a week, 24 hours a day) and it has to be designed to scale upward for high periods of demand and downward for lighter ones Scalability also means that an application can scale when additional users are added and when the application requirements change (Chandrasekaran ,2014)
Self-service provisioning
Customers can easily get cloud services without going through a lengthy process The customer simply requests an amount of computing, storage, software, process, or other resources from the service provider [1] While the on-demand provisioning capabilities of cloud services eliminates many time delays, an organization still needs to do its homework
Resource pooling
The provider’s computing resources are pooled to serve multiple consumers using
a multi-tenant model, with different physical and virtual resources dynamically assigned and reassigned according to consumer demand [2] There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter) Examples of resources include storage, processing, memory, and network bandwidth
Application programming interfaces (APIs)
Cloud services need to have standardized APIs [4] These interfaces provide the instructions on how two application or data sources can communicate with each other A
Trang 20standardized interface lets the customer more easily link a cloud service, such as a customer relationship management system with a financial accounts management system, without having to resort to custom programming
Performance monitoring and measuring
A cloud service provider includes a service management environment which is an integrated approach for managing physical environments and IT systems (Rehman, 2018) This environment must be able to maintain the required service level for that organization
In other words, service management has to monitor and optimize the service or sets of services Service management has to consider key issues, such as performance of the overall system, including security and performance For example, an organization using an internal or external email cloud service would require 99.999 percent uptime with maximum security The organization would expect the cloud provider to prove that it has met its obligations Many cloud service providers give customers a dashboard so they can monitor the level of service they’re getting from their provider In addition, many customers use their own monitoring tools to determine whether their service level requirements are being met
1.1.3 Requirements for Cloud Services
The following are the basic requirements for anything that can be considered as a service by the actors of the cloud computing ecosystem, which can be offered or provisioned through the cloud:
● Multitenancy: Multitenancy is an essential characteristic of cloud systems
aiming to provide isolation of the different users of the cloud system (tenants) while maximizing resource sharing (Buyya & Broberg & Goscinski, 2010) It is expected that multitenancy be supported at various levels of a cloud infrastructure As an example, at the application level, multitenancy is a feature that allows a single instance of an application (say, database system) and leverages the economy of scale to satisfy several users at the same time
Trang 21● Service life cycle management: Cloud services are paid as per usage and can
be started and ended at any time Therefore, it is required that a cloud service support automatic service provisioning In addition, metering and charging or billing settlement needs to be provided for services that are dynamically created, modified, and then released
in virtual environments
● Security: The security of each individual service needs to be protected in the
multitenant cloud environment; the users (tenants) also support the needed secured services, meaning that a cloud provides strict control for tenants’ service access to different resources to avoid the abuse of cloud resources and to facilitate the management of CSUs
by CSPs
● Responsiveness: The cloud ecosystem is expected to enable early detection,
diagnosis, and fixing of service-related problems in order to help the customers use the services faithfully
● Intelligent service deployment: It is expected that the cloud enables efficient
use of resources in service deployment, that is, maximizing the number of deployed services while minimizing the usage of resources and still respecting the SLAs [7] For example, the specific application characteristics (e.g., central processing unit [CPU]-intensive, input/ output [IO]-intensive) that can be provided by developers or via application monitoring may help CSPs in making efficient use of resources
● Portability: It is expected that a cloud service supports the portability of its
features over various underlying resources and that CSPs should be able to accommodate cloud workload portability (e.g., VM portability) with limited service disruption
● Interoperability: It is expected to have available documented and
well-tested specifications that allow heterogeneous systems in cloud environments to work together
● Regulatory aspects: All applicable regulations shall be respected, including
privacy protection
Trang 22● Environmental sustainability: A key characteristic of cloud computing is the
capability to access, through a broad network and thin clients, on-demand shared pools of configurable resources that can be rapidly provisioned and released Cloud computing can then be considered in its essence as an ICT energy consumption consolidation model, supporting mainstream technologies aiming to optimize energy consumption (e.g., in data centers) and application performance Examples of such technologies include virtualization and multitenancy
● Service reliability, service availability, and quality assurance: CSUs demand
for their services end-to-end quality of service (QoS) assurance, high levels of reliability, and continued availability to their CSPs
● Service access: A cloud infrastructure is expected to provide CSUs with access
to cloud services from any user device It is expected that CSUs have a consistent experience when accessing cloud services
● Flexibility: It is expected that the cloud service be capable of supporting
multiple cloud deployment models and cloud service categories
● Accounting and charging: Its expected that a cloud service be capable to
support various accounting and charging models and policies
1.1.4 Pros and Cons of Cloud Computing
Advantages
According to Mukherji and Srivastava, one of the attractions of cloud computing is accessibility If user’s applications and documents are in the cloud and are not saved on an office server, then they can access and use it at anytime, anywhere A consolidated set of points briefing the benefits of cloud computing can be as follows:
● Achieve economies of scale: user can increase the volume output or
productivity with fewer systems and thereby reduce the cost per unit of a project or product
● Reduce spending on technology infrastructure
Trang 23● Globalize the workforce: People worldwide can access the cloud with Internet
connection
● Streamline business processes: It is possible to get more work done in less time
with less resource
● Reduce capital costs: There is no need to spend huge money on hardware,
software, or licensing fees
● Pervasive accessibility: Data and applications can be accessed anytime,
anywhere, using any smart computing device, making our life so much easier
● Monitor projects more effectively: It is possible to confine within budgetary
allocations and can be ahead of completion cycle times
● Less personnel training is needed: It takes fewer people to do more work on a
cloud, with a minimal learning curve on hardware and soft-ware issues
● Minimize maintenance and licensing software: As there is no too much of
on-premise computing resources, maintenance becomes simple and updates and renewals of software systems rely on the cloud vendor or provider
● Improved flexibility: It is possible to make fast changes in the work
environment without serious issues at stake
Disadvantages
● Security and Privacy: There is a possibility that the data could be stolen or
viewed by unauthorized people If the customer does not have full control, the risk increases After the client makes sure that a vendor takes security measures, they are to
consider the data transfer by using encryption technologies
● Bandwidth limitations: If bandwidth is not as fast as the customer need, the solution would be not suitable
● Limited control and flexibility: To varying degrees (depending on the
particular service), cloud users may find they have less control over the function and execution of services within cloud-hosted infrastructure A cloud provider’s end-user license agreement (EULA) and management policies might impose limits on what
Trang 24customers can do with their deployments Customers retain control of their applications, data, and services, but may not have the same level of control over their backend
infrastructure
● Vendor Lock-In: Differences between vendor platforms may create difficulties
in migrating from one cloud platform to another, which could equate to additional costs and configuration complexities Gaps or compromises made during a migration could also
expose data to additional security and privacy vulnerabilities
1.1.5 Cloud Ecosystem
Cloud ecosystem is a term used to describe the complete environment or system of interdependent components or entities that work together to enable and support the cloud services The cloud ecosystem of interacting components and organizations with individuals, together known as the actors who could be responsible for either providing or consuming cloud services, can be categorized in the following manner:
● Cloud service users (CSUs): A consumer (an individual/person), enterprise
(including enterprise administrator), and/or government/public institution or organization that consumes delivered cloud services; a CSU can include intermediate users that will deliver cloud services provided by a cloud service provider (CSP) to actual users of the cloud service, that is, end users End users can be persons, machines, or applications
● CSPs: An organization that provides or delivers and maintains or manages cloud
services, that is, provider of SaaS, PaaS, IaaS, or any allied computing infrastructure
Cloud service partners (CSNs): A person or organization (e.g., application developer;
content, software, hardware, and/or equipment provider; system integrator; and/or auditor) that provides support to the building of a service offered by a CSP (e.g., service integration)
1.1.6 Cloud Service Providers
There are three big commercial providers:
Trang 25Google Cloud Platform enables developers to build, test, and deploy applications
on Google’s highly scalable and reliable infrastructure Google has one of the largest and most advanced networks across the globe Software infrastructures such as MapReduce, BigTable, and Dremel are the innovations for industrial development Google Cloud Platform includes virtual machines, block storage, NoSQL datastore, and big data analytics It provides a range of storage services that allow easy maintenance and quick access of user’s data The cloud platform offers a fully managed platform as well as flexible virtual machines allowing the user to choose as per the requirements Google also provides easy integration of user’s application within the cloud platform
Google Cloud Storage is a RESTful online file storage web service for storing and accessing one’s data on Google’s infrastructure Representational state transfer (REST) is
an architectural style consisting of a coordinated set of architectural constraints applied to components, connectors, and data elements within a distributed system The service combines the performance and scalability of Google’s cloud with advanced security and sharing capabilities Google Cloud Storage is safe and secure Data are protected through redundant storage at multiple physical locations
Amazon Web Services (AWS) is a collection of remote computing services (also
called web services) that together make up a cloud computing platform, offered over the Internet by Amazon.com Amazon EC2 is an IaaS offered by AWS and is the leading provider of IaaS in the current market Powered by a huge infrastructure that the company has built to run its retail business, Amazon EC2 provides a true virtual computing environment By providing a variety of virtual machine or instance types, operating systems, and software packages to choose from, Amazon EC2 enables the user to instantiate virtual machines of his choice through a web service interface The user can change the capacity and characteristics of the virtual machine by using the web service interfaces, hence named elastic
Amazon Simple Storage Service known as Amazon S3, is the storage for the Internet It is designed to make web-scale computing easier for developers Amazon S3
Trang 26provides a simple web service interface that can be used to store and retrieve any amount
of data, at any time, from anywhere on the web It gives any developer access to the same highly scalable, reliable, secure, fast, inexpensive infrastructure that Amazon uses to run its own global network of websites The service aims to maximize benefits of scale and to pass those benefits on to developers
Cloud computing provides a new way of looking at IT at Microsoft called Microsoft
IT (MSIT) Cloud computing is now the preferred and default environment for new and
migrated applications at Microsoft MSIT has developed a methodology and a set of the best practices for analyzing their current application portfolio for possible candidates to migrate to cloud computing This analysis enables MSIT to select the ideal cloud computing–based environment for each application MSIT has captured these best practices and documented them for other Microsoft customers who wish to migrate their organizations to cloud computing
Windows Azure Cloud Services (web and worker roles/PaaS) allow developers to easily deploy and manage application services It delegates the management of underlying role instances and operating system to the Windows Azure platform The Migration Assessment Tool (MAT) for Windows Azure encapsulates all the information to be aware
of before attempting the application migration to Windows Azure Based on the response
to a series of simple binary questions, the tool generates a report that outlines the amount
of development effort involved to migrate the application, or the architecture considerations for a new application
On another hand, the open source of cloud providers are proving their role in developing cloud community:
OpenStack, a cloud-computing project, aims to provide IaaS It is a global
collaboration of developers and cloud computing technologists producing the ubiquitous open source cloud computing platform for building public and private clouds It delivers solutions for all types of clouds by being simple to implement, massively scalable, and
Trang 27feature rich The technology consists of a series of interrelated projects delivering various components for a cloud infrastructure solution This technology provides several features:
+ Leverages commodity hardware
+ Unlimited storage
+ Easily add capacity
+ Restrict container per account
The goals of the OpenStack initiative are to support interoperability between cloud services and allow businesses to build Amazon-like cloud services in their own data centers OpenStack, which is freely available under the Apache 2.0 license, is often referred
to in the media as the Linux of the Cloud and is compared to Eucalyptus and the Apache CloudStack projects
Apache CloudStack is an open source software designed to deploy and manage
large networks of VMs, as a highly available, highly scalable IaaS cloud computing platform CloudStack is used by a number of service providers to offer public cloud services and by many companies to provide an on- premises (private) cloud offering, or as part of a hybrid cloud solution CloudStack is a better solution that includes almost all the features that most organizations expect from an IaaS cloud It can be listed as follows:
+ Compute orchestration
+ Network as a Service
+ User and account management
+ Full and open native API
+ Resource accounting
+ UI
Docker is a tool designed to make it easier to create, deploy, and run applications
by using containers Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and ship it all out as one
Trang 28package By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code
In a way, Docker is a bit like a virtual machine But unlike a virtual machine, rather than creating a whole virtual operating system, Docker allows applications to use the same Linux kernel as the system that they're running on and only requires applications be shipped with things not already running on the host computer This gives a significant performance boost and reduces the size of the application Docker provides lots of features, there are some major features such as:
+ Easy and Faster Configuration: Docker assists to deploy application in less time and effort
+ Increase productivity: by easing technical configuration and rapid deployment of application Docker not only helps to execute the application in isolated environment but also it has reduced the resources
+ Application Isolation: Each container is independent to another and allows us to execute any kind of application
+ Swarm: It is a clustering and scheduling tool for Docker containers Swarm uses the Docker API as its front end, which helps to use various tools to control it
+ Routing Mesh: This feature enables the connection even if there is no task is running on the node
+ Services:Services is a list of tasks that specifies the state of the container inside a cluster Each task represents one instance of a container that should be running and Swarm schedules them across nodes
+ Security Management: allows users to save secrets into the swarm itself and then choose to give services access to certain secrets
Trang 291.2 Deployment Models
1.2.1 Public Cloud
Public clouds are the latest evolution of computing, offering tremendous value to businesses in terms of better economics, agility, rapid elasticity, etc The public cloud infrastructure is operated by a cloud service provider and the services are offered over the internet This very nature of public clouds offers various advantages such as better ROI and faster time to market, while also raising concerns about lack of visibility, security, reliability and so on Public clouds are well suited to meet the collaborative needs of today’s global workforce distributed across different geographies and time zones (Furht, Escalante,
2010)
Basically, the public cloud is the availability of IT resources, like compute, storage, development platforms, applications, etc., as service over the internet and which can be provisioned on demand using a self-service portal Public clouds offer rapid elasticity and seemingly infinite scalability with an ability to consume resources on a pay-per-use basis Typically, public clouds are operated and managed at data centers belonging to service providers and shared by multiple customers (multi-tenancy) Such a shared model helps reduce vendor costs, which manifests itself in better cloud economics However, there is also less visibility and control in a public cloud than a private cloud because the underlying infrastructure is owned by the service provider The degree of visibility and control depends on the specific public cloud delivery model
1.2.2 Private Cloud
Cloud computing has completely transformed the way business organizations use
IT both inside and outside of their organization In spite of the economic benefits offered
by public cloud services, organizations are reluctant to move their infrastructure outside their premises However, they also want to apply the lessons learned from public clouds to better optimize the resource usage in their infrastructure Private clouds offer an easy
Trang 30solution to help businesses take advantage of some of the benefits of cloud computing without compromising on security and control
The private clouds are cloud infrastructure based on dedicated hardware under the control of the organization offering services on-demand through a self-service portal Private clouds provide elasticity that was previously unavailable in the traditional computing models, including rapid computer resource provisioning with services billed back to individual business units
The infrastructure services are single-tenant and they can be managed by the organization or a third party either on premise or in third-party data centers Private clouds can be deployed either by using one of the packaged cloud platforms like Eucalyptus, OpenStack, etc or by adding automation, management, and self-provisioning capabilities
to an already virtualized infrastructure It does not matter how one deploys a private cloud
as long as it results in resources being pooled together into one centralized unit; available
on demand to the users to provision, manage, and monitor using a management interface; and a chargeback mechanism
1.2.3 Hybrid Cloud
The economic benefits offered by public clouds are attractive enough for many organizations to push some of their non-critical workloads to such services while also using private clouds for their mission-critical needs Such hybrid cloud deployments have proven
to be advantageous not just in terms of better economics but also in terms of business agility The best-of-both worlds approach of hybrid cloud lets organizations take advantage
of public clouds to reduce capex while still keeping their mission-critical workloads inside the organization (Coyne & Dain, 2018)) However, by combining private and public cloud models, hybrid clouds have the largest attack surface Businesses must deploy security across both the private and public cloud elements
In its simplistic definition, a hybrid cloud is a combination of both public and private clouds According to the definition from the National Institute of Standards and
Trang 31Technology (NIST), “a hybrid cloud is a combination of public and private clouds bound together by either standardized or proprietary technology that enables data and application portability” It could be a combination of a private cloud inside an organization with one
or more public cloud providers or a private cloud hosted on third-party premises with one
or more public cloud providers
1.2.4 Community Cloud
The Community Cloud is a paradigm for Cloud Computing in the community, without dependence on Cloud vendors, such as Google, Amazon, or Microsoft Removing the dependence on vendors makes the Community Cloud the open equivalent to vendor Clouds, and therefore identifies a new dimension in the open versus proprietary struggle that has emerged in code, standards and data, but has not until now been expressed in the realm of hosted services
The Community Cloud is as much a social structure as a technology paradigm, because of the community ownership of the infrastructure (Jadeja & Modi, 2012) This community ownership carries with it a degree of economic scalability, without which there would be diminished competition and potential stifling of innovation as risked in vendor Clouds The Community Cloud, unlike vendor Clouds, has no inherent conflict between convenience and control, because its community ownership provides for democratic distributed control
The Community Cloud will have a significantly smaller carbon footprint than vendor Clouds, because making use of underutilized user machines will require much less energy than the dedicated data center’s required for vendor Clouds The server farms within data centers are an intensive form of computing resource provision, while the Community Cloud is more organic, growing and shrinking in a symbiotic relationship to support the demands of the community, which in turn supports it
Trang 321.3 Service Models
1.3.1 Software as a Service (SaaS)
The capability provided to the consumer is to use the provider’s applications running on a cloud infrastructure, including network, servers, operating systems, storage, and even individual application capabilities, with the possible exception of limited user-specific application configuration settings (Furht, Escalante, 2010) The applications are accessible from various client devices through either a thin client interface, such as a web browser (e.g., web-based e-mail), or a program interface The consumer does not manage
or control the underlying cloud infrastructure Typical applications offered as a service include customer relationship management (CRM), business intelligence analytics, and online accounting software
The expected service requirements for services in the SaaS category include the following:
● Application-specific requirements (including licensing options)
● Network requirements (including QoS specifications such as band-width and traffic volumes)
Trang 33Figure 1.1: Software as a Service SaaS is helpful solution for organizations and single users:
● No Initial Set up Costs: Client are simply expected to subscribe for service they
want, they don't require any extra starting expense for the same
● No Hardware Cost: The SaaS provider will provide the ability to run the application and client can utilize the service with no additional hardware
● Pay according to Usage: If little piece of service is required for short period at
that point pay just for that time span and for that little service as it were Membership can
be adjusted whenever
● Scalable: If there is a requirement for more services then it can be effectively gotten to on request without expecting to introduce additional software or hardware
● Easy to Update: At whatever point there is a refresh, it is constantly accessible
online for enrolled client No requirement for having any additional assets to deal with this
refresh It is for the most part good with past services
Trang 34● Cross Device Compatibility: SaaS services are perfect for the individuals who
utilizes different sorts of devices, i.e tablets, web empowered phones and the individuals
who don't utilize a similar PC without fail
● Ubiquity: This sort of service can be utilized anyplace as far devices are
associated with the web
SaaS provides a complete software solution that all of the underlying infrastructure, middleware, app software and app data are located in the service provider’s data center The service provider manages the hardware and software and with the appropriate service agreement, will ensure the availability and the security of the app and data as well SaaS allows organization to get quickly up and running with an app at minimal upfront cost
1.3.2 Platform as a Service (PaaS)
The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages, libraries, services, and tools supported by the provider The consumer does not manage or control the underlying cloud infrastructure but has control over the deployed applications and possibly configuration settings for the application-hosting environment In other words, it
is a packaged and ready-to-run development or operating framework The PaaS vendor provides the networks, servers, and storage and manages the levels of scalability and maintenance (Dillon, Wu & Chang, 2014) The client typically pays for services used Examples of PaaS providers include Google App Engine and Microsoft Azure Services
The expected service requirements for services in the PaaS category include the following:
● Requirements similar to those of the IaaS category
● Deployment options of user-created applications (e.g., scale-out options)
Trang 35Figure 1.2: PaaS Architecture There are several advantages of PaaS:
● Cut coding time: PaaS development tools can cut the time it takes to code new
apps with pre-coded application components built into the platform, such as workflow,
directory services, security features, search, and so on
● Add development capabilities without adding staff: Platform as a Service
components can give development team new capabilities without needing to add staff
having the required skills
Trang 36● Develop for multiple platforms—including mobile—more easily Some
service providers give development options for multiple platforms, such as computers,
mobile devices, and browsers making cross-platform apps quicker and easier to develop
● Use sophisticated tools affordably: makes it possible for individuals or
organizations to use sophisticated development software and business intelligence and
analytics tools that they could not afford to purchase outright
● Support geographically distributed development teams: Because the
development environment is accessed over the Internet, development teams can work
together on projects even when team members are in remote locations
● Efficiently manage the application lifecycle: PaaS provides all of the
capabilities that need to support the complete web application lifecycle: building, testing, deploying, managing, and updating within the same integrated environment
1.3.3 Infrastructure as a Service (IaaS)
The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources on a pay-per-use basis where he or she is able to deploy and run arbitrary software, which can include operating systems and applications The consumer does not manage or control the underlying cloud infrastructure but has control over the operating systems, storage, and deployed applications and possibly limited control of select networking components (e.g., host firewalls) The service provider owns the equipment and is responsible for housing, cooling operation, and maintenance Amazon Web Services (AWS) is a popular example of a large IaaS provider
The expected requirements for services in the IaaS category include the following:
● Computing hardware requirements (including processing, memory, disk, network interfaces, and virtual machines)
● Computing software requirements (including OS and other preinstalled software)
● Storage requirements (including storage capacity)
Trang 37● Network requirements (including QoS specifications, such as band-width and traffic volumes)
● Availability requirements (including protection/backup plan for computing, storage, and network resources)
Figure 1.3: Summary of Key differences between SaaS, PaaS and IaaS
IaaS delivers Cloud Computing infrastructure to organizations, including things such as servers, network, operating systems, and storage, through virtualization technology These cloud servers are typically provided to the client through a dashboard or
an API, and IaaS clients have complete control over the entire infrastructure IaaS provides the same technologies and capabilities as a traditional data center without having to physically maintain or manage all of it IaaS clients can still access their servers and storage directly, but it is all outsourced through a “virtual data center” in the cloud
Trang 38There are many benefits of choosing IaaS including:
● It is the most flexible cloud computing model
● Easily allows for automated deployment of storage, networking, servers, and processing power
● Hardware can be purchased based on consumption
● Gives clients complete control of their infrastructure
● Resources can be purchased as-needed
● IaaS is highly scalable
1.3.4 Data as a Service (DaaS)
Data as a service, or DaaS, is a cousin of software as a service Like all members of the "as a Service" (aaS) family, DaaS is based on the concept that the product, data in this case, can be provided on demand to the user regardless of geographic or organizational Separation of provider and consumer Additionally, the emergence of service-oriented architecture (SOA) has rendered the actual platform on which the data resides also irrelevant This development has enabled the recent emergence of the relatively new concept of DaaS
DaaS eliminates redundancy and reduces associated expenditures by accommodating vital data in a single location, allowing data use and/or modification by multiple users via a single update point Initially used in Web mashups, the DaaS strategy
is often used by commercial organizations
The DaaS approach delivers the following benefits:
● Agility: Because data is easily accessible, customers can take immediate action
and do not require in-depth understanding of actual data
Trang 39● Affordability: Providers can construct a foundation and outsource the
presentation layer, which helps build highly affordable user interfaces and allows more feasible presentation layer change requests
● Data quality: Data accessibility is controlled through data services, which
improves data quality, as there is a single update point
Figure 1.4: Benefits of DaaS DaaS pricing models are classified into two main categories:
● Volume based model with two approaches: Quantity-based pricing and call (PPCall)
pay-per-● Data type-based model
Trang 401.4 Introduction to Storage as a Service
1.4.1 Storage cloud
A storage cloud can be delivered in any of the cloud delivery models (public, private, hybrid, and community) A storage cloud can be used to support a diverse range
of storage needs, including mass data stores, file shares, backup, and archive
Figure 3.1: Storage as a Service Implementations range from public user data stores to large private Storage Area Networks (SAN) or Network-Attached Storage (NAS), which are hosted in-house or at third-party managed facilities The following examples are publicly available storage clouds:
IBM Cloud offers various storage options, including archive, backup, and object storage
SkyDrive from Microsoft allows the public to store and share nominated files
on the Microsoft public storage cloud service
Email services, such as Hotmail, Gmail, and Yahoo, store user email and attachments in their respective storage clouds