上一篇介紹了歷史最悠久的 OpenStack 元件 Nova,這篇要來介紹目前 OpenStack 中算是最核心的元件,Keystone Keystone 是什麼? 官方文件中是這樣敘述的: Keystone 是一個 OpenStack 服務,通過實現 OpenStack 的 Identity API 來提供 API 客戶端認證、服務發現 (service discovery) 和分散式多租戶授權 (distributed multi-tenant authorization)。 簡單來講,你可以把它當成 OpenStack 中的認證服務,並且記錄了所有 OpenStack API 的所在位置 (endpoint)。 Keystone 架構 Keystone 是由多個不同的內部服務 (internal service) 組成,而這些服務通常是組合在一起使用。例如:一個認證的請求首先會透過 Identity 服務驗證使用者提供的 credentials,成功後透過 Token 服務生成一個 token 給使用者。 Keystone 包含了以下服務: Identity Resource Assignment Token Catalog 我們將一一介紹這些服務的功能。 […]
Cloud
從裸機到雲端:OpenStack 介紹 2
前一篇文章以比較非技術角度介紹了 OpenStack 這個專案。今天開始要以比較技術的角度來介紹 OpenStack。首先本篇會先來大致介紹 OpenStack 所組成的元件,後續幾篇將會是各個元件的深入介紹。
從裸機到雲端:OpenStack 介紹 1
我們在前幾一篇文章敘述本次鐵人賽所會架出的雲端架構了,今天開始的文章將會介紹使用的 IaaS Layer: OpenStack,本次文章將會從 overview 開始,之後的文章將會針對一個個 OpenStack 元件做細部介紹。 Reference 本系列文章會大量利用到 OpenStack 自己本身的 Document 作為 reference 跟圖片來源。 想更了解 OpenStack 概念的可以去官方文件直接閱讀 OpenStack 是什麼? 要討論 OpenStack 是什麼我們可以從三個面向: 軟體 (Software) 社群 (Community) 群組 (Group) 軟體 OpenStack 基本上是一個能夠提供私有雲跟公有雲服務的軟體套件,其中包含了多種不同的應用狀況如一般企業、電信商、高效能運算等。 從軟體的角度看,OpenStack 是由多個微服務 (micro service) 組成,而使用者可以根據其應用情境去組合這些服務以達到自己的需求。這些服務基本上是透過 REST API 提供,另外也有提供不同程式語言的程式開發套件 (Software Development Kit) 來取用服務。 這些軟體可以透過官方提供的 tarball 進行安裝,另外在各大 Linux 發行版的套件管理工具中也都有包好的套件。 OpenStack 軟體地圖: 社群 在軟體之外,OpenStack 其實也是個龐大的社群,而這個社群的目標是: […]
從裸機到雲端:OpenStack Nova 介紹 2
上一篇文章我們介紹了 Nova 的功能與其使用方法,本篇文章將會繼續介紹 Nova 的架構 OpenStack Nova 系統架構 Nova 包含多個伺服器進程 (process),每個進程執行不同的功能。 面向用戶的界面是 REST API,而內部 Nova 的不同元件透過 RPC 來進行溝通運作。 API 服務器處理 REST 請求,這通常涉及資料庫讀/寫、或是 RPC 消息發送到其他 Nova 服務,並生對應的 REST 回應 (response)。 RPC message 傳遞是通過 oslo.messaging 完成的,它是一個 OpenStack 元件共用的 RPC message 抽象層,讓 OpenStack 元件可以不用在意底下 RPC 的實作。 大多數主要的 nova 元件都可以在多台伺服器上運行,並且有一個 manager 來監聽 RPC message,達到高可用性和附載平衡的目的。一個主要的例外是 nova-compute,它只在每一個其管理的 hypervisor 上運行單一個進程(使用 VMware 或 […]
從裸機到雲端:OpenStack Nova 介紹 1
昨天的文章給予了讀者 OpenStack 的架構一個大致的介紹,今天要來開始深入介紹各個元件。我們首先將由 OpenStack 提供的最核心功能:運算功能 (Compute Service),也就是開虛擬機器 (Virtual Machine) 功能的元件開始,也就是 Nova。 什麼是 Nova? Nova 是 OpenStack 其中一個專案,它負責提供一個方式來生成 (provision) 運算機器,目前主要同時支援虛擬機器和實體主機 (透過 Ironic)。Nova 作為一組 daemon 運行在現有 Linux 服務器之上,以提供該服務。在稍後的章節會介紹 Nova 各個 daemon 所負責的工作。 目前 Nova 的基本功能需要搭配以下的 OpenStack 服務才能使用: Keystone Glance Neutron Placement 在上一篇中沒有介紹的 Placement,這裡快速的簡介一下。 Placement 是從 Nova 中拆分出來的服務,主要功能是追蹤不同類別的可用資源和其使用量,例如:CPU, RAM 等等。 對使用者來說 你可以透過 Nova 所提供的工具或 API 來建立和管理運算資源 使用 Nova […]
從裸機到雲端:高層架構介紹
我們在前幾篇文章介紹了 NIST 對雲端的定義,從今天開始文章將會進入正題,教你一步一步從裸機蓋出雲端。首先我將會大致介紹一下筆者預計蓋出雲端的架構。 IaaS Layer 本次雲端的 IaaS Layer 將會使用 OpenStack 來提供服務,選擇的原因如下: 目前最常見的私有雲都是使用 OpenStack 發展成熟,使用者多,規模小到大皆有 Open Source Open Source Open Source Open source 最為重要所以列了三次。由於是 open source,軟體將容易取得並且免費使用 (Apache License)。讀者們能夠容易地跟著筆者腳步實作。 PaaS Layer PaaS Layer 將會選擇 Kubernetes 來提供服務,選擇的原因如下: 目前最常見的 container orcherstration 平台 各大公有雲都有提供 managed service 基本功能發展成熟,使用者多,規模從小到大都有 Open Source Open Source Open Source 相信很多讀者應該皆有 Kubernetes 的經驗,本次主題也會有教學如何將 Kubernetes 架設在 OpenStack 上並且使用 […]
從裸機到雲端:雲端定義 3
昨天我們介紹了雲端的三種服務模式,今天要接續昨天的雲端定義,來介紹雲端服務的三種部屬模式。 部屬模式 NIST 所定義的雲端的部屬模式主要以下這幾種 私有雲 (Private Cloud) 公有雲 (Public Cloud) 混合雲 (Hybrid Cloud) 社群雲 (Community Cloud) 有些人也會將混合雲稱之為多雲 (Multi Cloud) 在這裡的介紹同樣會引用部分中興大學樂齡學習網的翻譯 私有雲 雲基礎設施專為組織而運作,這可能是由組織本身或第三方管理者就地部署(On premise)或遠端部署(Off premise)。其中,私有雲除具備公用雲環境的彈性優點,還能因網路與使用者受到特殊限制,且資料與程序皆在組織內部管理,較不受網路頻寬、安全疑慮、與法規限制等影響,讓雲端供應者及使用者更能掌控雲端基礎架構並改善安全與彈性。 簡單來講,公司自己建置的雲端通常都會是私有雲,使用者通常為公司內部其他開方部門。 社群雲 雲基礎設施由眾多利益相仿的組織掌控及使用,社群成員可共同使用雲端資料及應用程式,他們擁有共同的關注問題,例如特定任務、安全要求、政策和合規性考量等。可能由組織或第三方管理,且可以就地部署與遠端部署。 此種模式目前應該比較少見。 公用雲 雲基礎設施提供給一般大眾或一個大產業集團,由銷售雲服務的組織所擁有,除彈性之外,又能具備成本效益。這讓公有雲使用者可以省下管理實體機器以及其機房、電力、散熱設施的成本以及技術。另外「公用」並不表示使用者資料可供任何人查看,雲供應者通常會對使用者實施使用存取控制機制。 公有雲也是大眾最為廣泛認知的雲端。目前國際上公有雲三大業者為 AWS, Google GCP, Microsoft Azure,另有其他比較小規模的如 Oracle Cloud, Tencent, Alibaba, IBM Cloud 等等業者。 混合雲 雲基礎設施是由兩個或兩個以上組成的雲(私有、社群或公用),此種雲維持單一實體,但是藉由標準或專有技術聯繫在一起,使資料和應用程序具可移植性。 此類這個模式中,使用者通常將非企業關鍵資訊外包,並在公用雲上處理,但同時掌控企業內部機敏服務及資料。 現在有些廠商為了避免將雞蛋放在同一個籃子裡,也開始規劃同時使用多個公有雲,避免因單一公有雲發生問題而造成服務中斷。 通常要架設混合雲會需要工程師對各個雲端有一定了解,並且混合雲比較難使用個公有雲獨有服務,因為需要程式在各個不同雲端都能正常運作。 以上為 NIST 定義的四種雲端部屬模式。 小結 雲端部屬模式應該同樣相較於必要條件來的易懂,相信很多讀者應該也有使用公有雲的經驗。 本次鐵人賽將會專注於私有雲的概念,帶領大家一步一步從一台實體的 server […]
從裸機到雲端:雲端定義 2
昨天我們介紹了雲端的五個必要條件,今天要接續昨天的雲端定義,來介紹雲端服務的三種服務模式。 服務模式 雲端的服務模式主要分為三種 基礎設施即服務 (Infrastructure as a Service) 平台即服務 (Platform as a Service) 軟體即服務 (Software as a Service) 我們會在接下來的介紹簡稱為 IaaS, PaaS, SaaS。我會在這邊引用中興大學樂齡學習網的翻譯 IaaS 「基礎架構即服務」,是虛擬化後的硬體資源和相關管理功能的集合,透過虛擬化技術將運算、儲存和網路等資源抽象化,實現內部流程自動化和資源管理優化,進而向外部提供動態、靈活的基礎架構服務。此層的消費者使用處理能力、儲存空間、網路元件或中介軟體等「基礎運算資源」,還能掌控作業系統、儲存空間、已部署的應用程式及防火牆、負載平衡器等,但並不掌控雲端的底層架構,而是直接享用IaaS帶來的便利服務。 以各大雲端服務商為例,下列服務都是 IaaS 的範疇 AWS: EC2, VPC GCP: GCE Azure: VM, Block Storage PaaS 「平台即服務」,是為雲端應用提供了開發、運行、管理和監控的環境,可說是優化的「雲端中介軟體」,優良的平台層設計可滿足雲端在擴充性、可用性和安全性等方面的要求。此層的消費者可透過平台供應商提供的程式開發工具來將自身應用建構於雲端架構之上,雖能掌控運作應用程式的環境(也擁有主機部分掌控權),但並不掌控作業系統、硬體或運作的網絡基礎架構。 各位很常聽見的 Kubernetes 大致上即被歸類在 PaaS (Container as a Service),各種 managed service 如 database 等等也是。 以各大雲端服務商為例,下列服務都是 PaaS 的範疇 AWS: […]
從裸機到雲端:雲端定義 1
前言 大家好,我是 Gene,如果有參與過 Cloud Native Taiwan User Group 的朋友應該都有聽過我。本次被社群成員推坑第一次來參加鐵人賽,將以 從裸機到雲端 — 30 天教你蓋雲端 為題目。 本次參賽將會從雲端的概念開始介紹,一路帶讀者從雲端的概念開始認識,接這進入到 OpenStack 的架構及部屬方式,最後帶到 Kubernetes 的架構並且如何在 OpenStack 上部屬 Kuberentes 整體來說,本次主題將會帶學員從簡單的 Linux 機器一步一步操作自己建立一個私有雲。 雲端定義 通常雲端的定義都會依據 The NIST Definition of Cloud Computing 來解釋 NIST 將雲端的定義分為三種不同方向做定義,分別為: 必要特性 (Essential Characteristics) 服務模式 (Service Model) 部屬模式 (Deployment Model) 必要特性 雲端的必要特性總共有五種,也是雲端的最核心概念。其中包含了: 隨需求應變自助服務 (On-demand Self-service) 消費者可以根據自身需求,而不需要藉由跟廠商的人為互動即可依自身需求去使用雲端服務商所提供的網路、儲存和運算資源。 廣泛的網路 (Broad Network Access) […]
MicroStack — 30 分鐘內建立 OpenStack 環境
近幾年仍然有很多人認為 OpenStack 是個很難安裝的軟體,但是事實並不是這樣的。在 Kolla-Ansible, TripleO, OpenStack-Ansible 等計畫出現後,OpenStack 的安裝跟設定其實成為一件非常容易的事情。而這次就來要介紹一個將 OpenStack 安裝更為簡化的專案,MicroStack。 MicroStack 是甚麼? An OpenStack Environment in 2 commands MicroStack 是個讓你下兩個指令就能夠生成一個基本 OpenStack 環境的專案。能夠大大減輕 OpenStack 使用的入門門檻。 其擁有以下特點: 安裝快速 筆者自己實際測試過,在一個 4 core 16GB RAM 100GB SSD 的機器內,大概總共只需要花 30 分鐘就能夠建立一個 MicroStack 的安裝,安裝的速度非常快速。 Upstream MicroStack 安裝的 OpenStack 都是上游未經修改的 OpenStack 程式碼,不需要擔心有廠商自己加入的功能造成系統不穩。 完整 MicroStack 建立的環境包含了大部分主要的 OpenStack 元件,其中有: Keystone Nova Glance Neutron Cinder […]