Coursera – Cloud Computing Concept Part 1 Week 1 – Introduction to Clouds

Orientation

  1. 這堂課主要會探討應用於Cloud computing的distributed systems和distributed algorithms。
  2. 不會探討如何撰寫Cloud application。
  3. 不會探討Computer Network。

Basic Computer Science Fundamentals

  1. Queue是一種資料結構(data structure),存取資料的順序為FIFO(First in First out),由尾端存入(enqueue)資料,由頭端取得(dequeue)資料,存取資料的動作可以同時進行。
  2. Stack是另一種資料結構,存取資料的順序為FILO(First in Last out),用相同的存取位置存入(push)資料和取得(pop)資料。
  3. Process是執行中的program,包含了programe執行時相關的stack、heap、registers、code、programe counter等物件。程式中的函式A呼叫執行函式B時,會藉由Stack傳遞參數,將參數push到stack後再由函式B取得,當函式B執行完畢,也是藉由Stack傳遞回傳值,將回傳值push到stack後再由函式A pop取出。
  4. 此外,會有一個叫作Program counter(PC)的指標,用來指出正在行的程式machine code的位置。
  5. 記憶體空間Heap、register則會用來存放變數的值。
  6. 簡化的計算機結構可以視為CPU + Register + Cache + Memory + Disk,其中的Register + Cache + Memory + Disk都是資料儲存裝置,以memory hierarchy的架構被使用,可儲存的資料容量大小依序為Register < Cache < Memory << Disk,資料存取速度依序為Register > Cache > Memory >> Disk。
  7. Big-O是用來描述演算法在worst case時的效能、當input size為無窮大時的運算數量上限。
  8. 要從未排序過的大小為n的Array中找到特定element,其為O(n)。
  9. 要從未排序過的大小為n的Array進行insert sorting,其為O(n^2)。
  10. Set是指一群相同事物的集合,SubSet是指一群相同事物且隸屬於Set底下的子集合。
  11. Event1、Event2發生的機率可分別表示為Prob(E1)、Prob(E2),如果兩個事件的發生機率彼此獨立(independent),亦即兩者的發生機率沒有任何相關性,則兩事件同時發生的機率Prob(E1 And E2) = Prob(E1) * Prob(E2)。而兩事件至少發生一件的機率Prob(E1 Or E2) = Prob(E1) + Prob(E2) – Prob(E1 And E2),故Prob(E1 Or E2) <= Prob(E1) + Prob(E2)。
  12. DNS(Domain Name System),可以藉由Domain name(人類可讀的有意義字串)取得網路設備的IP Address。
  13. 在Graphs中,用Node或Vertex稱呼各個節點,並以Edge稱呼節點之間的連線、以Edge weight稱呼edge相關的數值。"A is adjacent to B" = There is an A-B edge。

Lesson 1:Introduction to Clouds

Why Clouds

  1. 目前主要的三大Cloud Providers分別為
  2. AWS(Amazon Web Service)
  3. Microsoft Azure
  4. Google Compute Engine
  5. 以存取的開放程度劃分,Clouds可分為以下兩種類型
  6. public cloud:讓付費的顧客或允許的大眾存取。
  7. private cloud:只允許網路內部的人(e.g. 公司員工)存取。
  8. 使用雲端服務可以快速的取得運算資源(大幅減少了建置硬體所需的時間)、去除了維運計算機硬體所需的人力成本,因此有越來越多的新創公司使用雲端運算資源,而非自己持有主機。

What is a Cloud

  1. Clouds = Lots of storage + compute cycles nearby. (運算資源的實體位置需要鄰近資料,以方便對資料進行運算處理)
  2. 以地理位置分佈方式劃分,Clouds可分為以下兩種類型
  3. single-site cloud (又稱為datacenter,通常會是同一個廠房),其包含了
  4. compute nodes(由同一個switch所連接的數個compute nodes的集合可以稱為rack)
  5. Switches(用來連接各組rack。如果是兩階層的switches樹狀架構,則由最上層的root switch連接下層的各個switches,再由第二層的switches連接各個compute nodes(分別形成一個rack),)。
  6. 連結到網路的Storage (backend) nodes
  7. 可用來接受client端的運算需求的前端
  8. 提供的軟體服務
  9. geographically distributed cloud,其包含了
  10. 多個分處不同地理位置並彼此連接的datacenters。
  11. 各datacenter 通常具有相同的structure和software service,但也可能不同。

History

  1. Distrubuted Systems的發展歷史:
  2. 大約1942~1960年代:由真空管組成的電腦,其體積相當於一個房間的大小。
  3. 1960~1980年代:timesharing companies & data processing industry,關注於用timesharing的技術運算處理大量資料並輸出。
  4. Grids
  5. Clusters
  6. Peer to Peer
  7. Cloud

What’s new in today’s clouds、New Aspect of Clouds

  1. Clouds是由各世代的distributed systems所組成的,尤其是timesharing & data processing industry。
  2. 現在的Cloud computing世代處理的新問題與之前的各世代Distributed systems有四個主要的差異:
  3. Massive scale:datacenter擁有的server數量達到數萬甚至數十萬。
  4. On-demand access:可以用精確微小的計算單位對所使用的運算資源進行付費,不需額外訂定合約。持有server相對於on-demand access,就類似買車相對於租車的概念,根據提供租取的服務等級的不同,依序可分類如下,排序越後面者,其可掌控的運用彈性越小、但使用者需要進行維運的比例越低。
  5. HaaS(Hardware as a Service):租借實體硬體,需要考慮較多的資安問題。
  6. IaaS(Infrasturcture as a Service):存取使用虛擬化技術所提供的儲存資源和運算資源。(例如:AWS的EC2和S3)
  7. PaaS(Platform as a Service):存取限定使用特定語言或框架程式的儲存運算資源。(使用彈性較IaaS低)
  8. SaaS(Software as a Service):存取使用特定的軟體服務(例如:Google docs、Gmail)。通常也視為SOA(Service Oriented Architectures)。
  9. Data-intense nature:存取的資料量極大,達到TBs, PBs或 XBs等級。Data-intense computing相對於Computation-intense computing,更注重硬碟和網路的I/O而非CPU利用率。
  10. New cloud programming paradigms:使用MapReduce/Hadoop/NoSQL/Cassandra/MongoDB或是Key-value storage等不同的資料存取機制,提升大量資料的存取效率。
  11. WUE = Annual water power usage / IT Equipment energe (L/kWh) 數值越低越好
  12. PUE(Power usage effectiveness ) = Total Facility power / IT Equipment energe, 數值越低越好 (基本上一定會大於1 , 也就是100%)
  13. Data center通常也會包含冷卻系統。

Economics of Clouds

  1. 訂定規格目標:Server機器數量、CPU數量、硬碟容量。
  2. 計算使用Public Cloud的每月成本:以S3($ per GB Month)和EC2($ per CPU Hour)的費率,可以估算整體每月費用。
  3. 計算使用Owned Private Cloud的每月成本:以全部的硬體購買成本,攤分M個月的使用時間得到每月的硬體成本,再以0.45:0.45:0.15(硬體:電力:網路)的比例、考慮到維護人員的費用,可估算得到整體每月費用。
  4. 預期的服務提供長度M個月,會決定採用哪一種網路資源持有方式更具成本效益。
  5. 以本課程的範例,當M > 5.5個月,則owned private cloud的硬碟成本將較public cloud更低。當M > 12個月,則owned private cloud的整體成本較public cloud更低。因此服務短於12個月的新創公司,服務需求和發展尚未穩定,大多採用public cloud。

參考資料

Coursera – Cloud Computing – Week 1: Orientation, Introduction to Clouds, MapReduce

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s