---
# System prepended metadata

title: Cloud computing 期中
tags: [CSnote, Cloud computing]

---

---
title: Cloud computing 期中
---
# 1.	根據NIST，雲端計算的定義為何? 雲端有那些重要的特性？
## definition
* A model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. 
## Essential Characteristics 
* On-demand self-service 
* Broad network access. 
* Resource pooling 
* Rapid elasticity 
* Measured service

# 2.	請說明雲端的服務模型有那些？雲端的佈建模型有那些？
## Service Models 
* Software as a Service (SaaS) 
* Platform as a Service (PaaS) 
* Infrastructure as a Service (IaaS)
## Deployment Models 
* Private cloud 
*  Community cloud 
* Public cloud 
* Hybrid cloud 

# 3.	請說明何謂SOA？OASIS的定義為何？
## SOA
* Service oriented architecture
* It logically represents a repeatable business activity with a specified outcome.
* It is self-contained.
* It is a black box for its consumers, meaning the consumer does not have to be aware of the service's inner workings.
* It may be composed of other services.
## OASIS
* A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.
## 4.	請說明何謂Remote Method Invocation？他的基本原理為何？
## RMI
* A true distributed computing application interface for Java, written to provide easy access to objects existing on remote virtual machines Helps provide access to objects existing on remote virtual machines
## 原理
![](https://i.imgur.com/NoD7yEB.png)
* Stub/skeleton layer
    * Responsible for managing the remote object interface between the client and server
* Remote reference layer
    * Responsible for managing the "liveliness" of the remote objects
    * Manages the communication between the client/server and virtual machines
* Transport layer
    * Actual network/communication layer that is used to send the information between the client and server over the wire
    * Currently TCP/IP based
* Uses serialization and remote procedure call to send information back and forth between remote objects

# 5.	何謂Web Service？Web Service的特性為何？
* A software application available via internet based protocols that supports to use xml based messages to communicate with other software applications
## 特性
* XML based everywhere
* Message-based
* Programming language independent
* Could be dynamically located
* Could be dynamically assembled or aggregated
* Accessed over the internet
* Loosely coupled
* Based on industry standards

# 6.	請以圖簡單的說明Web Service的架構。並說明何謂SOAP？何謂WSDL？
![](https://i.imgur.com/fXPmcqm.png)

## SOAP
* Simple Object Access Protocol
* Message Protocol for web services
## WSDL 
* Web Services Description Language
* XML language for describing web services

# 7.	請說明RESTful Web Service與一般的Web Service有何不同？
* Representational State Transfer是個設計架構。
* 藉由CRUD、Resourcename、resourceID進行訪問，將控制細節抽向化，使伺服器端與客戶端更為獨立，就算兩端都經過了極大的變動，只要傳訊方式不變就不會影響運作
# 8.	Google的GFS有那些特性?
* High fail tolerance by chunk replication
* Larger chunk size -> reduce meta data size and client master interaction
* most files are mutated by appending new data rather than overwriting existing data
* Is a user-space library
# 9.	請繪圖說明GFS的動作原理?
* ![](https://i.imgur.com/j625S0U.png)
# 10.	Google的GFS的複本配置的策略為何? 
* 預設為3個複本，並放入複數不同伺服器當中
# 11.	Google的GFS中寫入資料到複本的原理為何?
![](https://i.imgur.com/p5XiHV7.png)
![](https://i.imgur.com/QXKTHRE.png)
![](https://i.imgur.com/UurhMeV.png)
![](https://i.imgur.com/HzL8CK4.png)

# 12.	請繪圖說明Google的MapReduce的動作原理?
![](https://i.imgur.com/dlSOSie.png)
# 13.	請說明Spark的目標。Spark比MapReduce有何優點？
* Provide distributed memory abstractions for clusters to support apps with working sets retaining the properties of mapreduce
    * Or simply, Better for applications that repeatedly reuse a working set of data
## 優點
* MapReduce is built for batch processing, Spark has an interactive mode
* by caching partial/complete results across distributed nodes spark is faster than MapReduce, which is disk based
# 14.	Spark上的RDD為何？RDD在Spark中的重要性為何？
* An RDD is an immutable, partitioned, logical collection of records.
* RDD是SPARK的基本數據結構

# 15.	何謂虛擬化(Virtualization)？虛擬化的理由為何？
* 將電腦的各種實體資源（CPU、記憶體、磁碟空間、網路適配器等），予以抽象、轉換後呈現出來並可供分割、組合為一個或多個電腦組態環
## 理由
*　合併伺服器->增加使用率
*　容易控制、更改配置
*　不需預先購買硬體
*　容易轉移
*　較能從災難中恢復
# 16.	虛擬化的型態中，請說明何謂 Hardware Virtualization？Software Virtualization？Desktop Virtualization？
## Hardware Virtualization
* It hides the physical characteristics of a computing platform from users, instead showing another abstract computing platform
## Software Virtualization
* Application virtualization and workspace virtualization, the hosting of individual applications in an environment separated from the underlying OS
## Desktop Virtualization
* separates a personal computer desktop environment from a physical machine using the client–server model of computing

# 17.	何謂Full Virtualization？ 它的主要挑戰為何？
* provide a certain kind of virtual machine environment, namely, one that is a complete simulation of the underlying hardware. 
## challenge
* interception and simulation of privileged operations, such as I/O instructions. 
* The effects of every operation performed within a given virtual machine must be kept within that virtual machine 

# 18.	何謂Paravirtualization？Paravirtualization的主要目標為何？
* a virtualization technique that presents a software interface to virtual machines that is similar but not identical to that of the underlying hardware
## goal
* Modified OS, unmodified applications
* Leverage OS knowledge of virtualization to provide high-performance VM
* Enable hosting of 10’s-100’s of VM’s on a single machine

# 19.	Full Virtualization與Paravirtualization差異為何？
* Paravirtualization uses hypercall for system call, while full virtualization uses Binary Translation and Direct Execution
* Full virtualization guest OS don't have to be similar to host OS, but Paravirtualization guest OS is heavily dependent on Host OS
# 20.	何謂Hypervisor？Hypervisor可以分成那二類？
## what is ?
* aka virtual machine manager 
* technique that allow multiple operating systems, to run concurrently on a host computer. 
## types
* native, bare metal: 
    * hypervisors run directly on the host's hardware to control the hardware and to manage guest operating systems.
* hosted:
    * hypervisors run within a conventional operating system environment. With the hypervisor layer as a distinct second software level, guest operating systems run at the third level above the hardware
# 21.	何謂Docker？Docker跟Virtual Machine的差異為何？
## what is?
* Docker is a software platform that packages software into containers. It binds application and its dependencies inside a container.
## Difference
* All docker containers share the same host os, while VMs all has their own guest OS to run on.
# 22.	何謂Kubernetes？Kubernetes的功能為何？Kubernetes的基本單元為何？
## what is 
* Kubernetes is a portable, extensible, open-source platform for managing containerized workloads and services, that facilitates both declarative configuration and automation. 
## Pod
* Pods are the smallest deployable units of computing that you can create and manage in Kubernetes.
* a Pod is similar to a group of Docker containers with shared namespaces and shared filesystem volumes

###### tags: `Cloud computing` `CSnote`








