從裸機到雲端:OpenStack Nova 介紹 1

從裸機到雲端:OpenStack Nova 介紹

昨天的文章給予了讀者 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

Auto Draft

昨天我們介紹了雲端的五個必要條件,今天要接續昨天的雲端定義,來介紹雲端服務的三種服務模式。 服務模式 雲端的服務模式主要分為三種 基礎設施即服務 (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 環境

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 […]

OpenStack nova-scheduler 是如何運作的

OpenStack nova-scheduler 是如何運作的

最近在工作上因為某些緣由看了很多關於 OpenStack nova 的 code,因而打算來寫一些文章記錄一下 nova 是如何運作的。首先第一篇將由 nova-scheduler 的部分開始。會帶讀者從 code level 了解 conductor 如何 call scheduler 到 scheduler 怎麼做決定流程。 本篇文章以撰寫時最新 stable 版本 victoria 為基礎。 nova-scheduler 簡介 nova-scheduler 是設計成一個 plugin based 的 scheduler,使用者可以根據自己的需求撰寫自己的 scheduler driver。在 nova 中預設會啟用的是本身 nova code base 中提供的 filter scheduler。 Filter scheduler 的運作原理非常的簡單,基本上會將所有的 host 經過一系列的 "filter",如果不符合 filter 的條件就會被剔除,符合的就會通過,並且進入最後的選擇的 pool。這些通過 filter 的 host 會在做 […]

KubeVirt 架構介紹

KubeVirt Logo

前幾日在 Cloud Native Taiwan User Group 久違的講了一場 KubeVirt 101,越玩越覺得這個計畫還真有趣。在這裡打算把 KubeVirt 101 講的內容稍微濃縮一下,將重點放在架構的地方來寫一篇介紹。推坑大家來玩玩這個在 Kubernetes 上跑 VM workload 的 operator。 基本介紹 官網原文: KubeVirt is a virtual machine management add-on for Kubernetes. The aim is to provide a common ground for virtualization solutions on top of Kubernetes. 簡單來說 KubeVirt 是一個讓使用者能夠在 Kubernetes 上跑虛擬機應用的 Kubernetes operator,讓使用者可以跑一些還沒容器化或是需要特殊 kernel 的應用。最大的好處在於維運上所有概念都跟一般的 Kubernetes container […]

軟體工程師的 Work From Home 環境

Work From Home Setup

最近因為疫情關係越來越多公司採取在家工作的形式,本人服務的日本 LINE 也從 2 月底開始就在家工作了。也因為如此,為了讓自己有一個良好的工作環境也陸續購入了許多設備來增進自己在家工作的效率。這篇文章將會介紹筆者在家工作的一些設備已使用經驗等等,給因為各種原因要在家工作的讀者參考。 文章架構 本篇會將各種設備分成四大類來介紹,分別是: 電腦相關 視訊會議相關 娛樂相關 其他 裡面有些設備僅因個人興趣購入,一般在家工作可能不需要用到如此設備,在內文中也會有其他方案的簡單介紹。 電腦相關 使用設備: MacBook Pro 13 吋 Dell U2718Q 4K 螢幕 LG 27GL850-B QHD 螢幕 Amazon Basics 螢幕支架 Realforce for Mac 87 鍵鍵盤 筆電或桌上型電腦 一台好的筆電或是桌上型電腦可以大大增加工作效率,尤其是一個軟體工程師,在測試或編譯程式的時候一台好一點的電腦可以讓你省下不少時間。 筆者使用的是公司發的 MacBook Pro 13 吋筆電,拿來打 code 還蠻夠用的,大部分編譯測試等等都是在雲端上面跑,所以其實效能問題影響比較沒有那麼大。 當然 Mac 算是稍稍貴一點,當然如果公司已經有配發筆電的話也不需要另外購買,如果要額外購買的話一台有 SSD 2 萬台幣左右的筆電或桌機其實也是足夠一般使用了。 螢幕 一兩個大螢幕對於一個工程師來說是必須的。通常在 coding 的時候能夠一台顯示 code,另外一台螢幕放參考資料,如此不需要一直切換螢幕能夠提升工作效率。筆者比較習慣 27 […]

Stax SR-009BK/SRM-727A 開箱

SR-009BK Exterior

身為一個軟體工程師在 coding 時怎麼可以沒有一副好耳機呢?於是就有了這篇跟技術毫無關係的 Stax 限量 180 隻 SR-009BK 跟靜電耳機擴大器 SRM-727A 的開箱文。 前言 在疫情之際待在家裡悶著無聊沒事就上各種網購網站亂逛,逛著逛著逛到了 Fujiya-Avic,手又默默的癢了起來。看到竟然有 009BK 而且比 009 還便宜一點…,自從上一次聽完 D8000 pro 後就一直有想升級的耳機的念頭,一不小心手滑就連著一台 727A 整修品一起刷下去了。 開箱 於是昨天在家 Zoom 開會開到一半,突然間門鈴響了。 趕緊跟同事說有包裹,跑去簽收。 黑貓送來一個已知內裝大箱子 廢話不多說開完會趕緊開箱 009BK 外箱: 箱子裡面是個木盒,拿起來意外的很輕,不過外觀還蠻有質感的 打開箱子取出裡面泡棉墊就能看到 009BK 本體了 拿到的是限量 180 隻中的 178 號 外觀非常有質感,工藝品等級 727A 的外箱相對簡單,就是一般的紙箱,打開來就是本體了 直接接上電源上機開聽 心得 曲目: Eagles: Desperado The Last Resort いきものばかかり: SAKURA YELL […]