---
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
## 原理

* 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?

## 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的動作原理?
* 
# 10. Google的GFS的複本配置的策略為何?
* 預設為3個複本,並放入複數不同伺服器當中
# 11. Google的GFS中寫入資料到複本的原理為何?




# 12. 請繪圖說明Google的MapReduce的動作原理?

# 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`