系統架構

系統架構 Hyper-V (1)

教學目標

初步了解 Hyper-V 基本概念和企業應用 Hyper-V 為虛擬化平台的注意事項。

重點概念

首先 Hyper-V 主要是管理 Windows 虛擬機器的虛擬 化解決方,以利幫助我們提高伺服器率用率,同時降低成本。其中每台虛擬機器皆像一台完整的伺服器,運作一個作業系統和程式。當我們需要運算資源時,虛擬機器將會為我們提供更多彈性的設定。

接著 Hyper-V 主要是在同一個硬體上同時執行多個虛擬機器,因此我們需要注意避免崩潰等問題發生影響其它工作負載,或者讓不同的人員、群組或服務存取不同的系統。此外我們也會透過 Hyper-V 進行故障轉移群集、遠程桌面服務和虛擬機管理等技術應用,以利保持企業內部的工作生產力。

再來在企業中的網路設定通常會進行網段分割,所謂網段就是讓一個環境中的伺服器之間有所區分,這時就會設定 VLAN 識別碼,若我們移除網路介面卡重新建立除了設定虛擬機器中的網路卡介面設定之外,還必須確認 VLAN 是否設定正確,才能夠確保網路連通。

最後在企業中針對 Windows 伺服器將會定期進行更新,此時很有可能會影響 Hyper-V 的網路卡設定導致連線斷斷續續不穩定,像是 KB4074590 (OS Build 14393.2068) 就有可能會導致虛擬機器中的網路卡連線不正常,造成關鍵系統無法正常執行。所以當我們要進行 Windows 更新之前最好先進行 Hyper-V 的測試,以利避免更新正式環境造成關鍵系統不正常運作,那就麻煩了。

相關資源

系統架構 Kubernetes (1)

教學目標

初步了解 Kubernetes 的基本概念,以利後續進行系統架構的規劃。

重點概念

首先 Kubernetes 主要是由 Google 在 2015 年所釋出的開放源始碼專案,簡稱 K8S。K8S 是一套分散式的容器解決方案,並且我們能夠使用 Kubernetes API 取得叢集所需要的狀態、需要運行的應用程式、其它工作負載、使用容器映像檔、… 等資訊,以及我們更能夠直接使用 Kubernetes API 與叢集進行互動,並且設定或修改我們所需狀態。

接著當我們設定所需的狀態之後,Kubernetes 就會使得叢集目前狀態匹配至所需的狀態,因此 Kubernetes 能夠自動執行各種任務,像是啟動或重啟容器、擴展給定應用程式的副本數量。其中 Kubernetes 主要是由叢集上執行的一系列程序所組成,分別為:

  1. 主要節點 (Kubernetes Master):主伺服器主要負責維護叢集所需的狀態,並且當我們主要是和 Kubernetes Master 進行互動以利與叢集進行溝通,並且其包括三個重要的程序 kube-apiserver、kube-controller-manager 和 kube-scheduler。
  2. 叢集節點 (Kubernetes Node):叢集節點主要是運行應用程式和雲端工作流程的機器,其主要是由主要節點所控管,我們很少直接與叢集節點進行互動,並且包括其二個重要的程序 kubelet 和 kube-proxy。

其中所謂 kube-apiserver 主要是 Kubernetes API 伺服器,它是驗證和設定 API 物件的資料,並且提供 REST API 以利提供給前端所有叢集元件進行互動的狀態。所謂 kube-controller-manager 主要是 Kubernetes Controller 管理器,它是一個控制循環,透過 Kubernetes API 伺服器監控叢集的共享狀態,並且進行更改,以及將目前實際狀態程至所需要的動態。所謂 kube-scheduler 主要是 Kubernetes Scheduler 排程器,它是在考慮個人和整體資源需求的情況下進行相關的參數調整。所謂 kubelet 主要是每個叢集節點上執行主要節點的代理,請注意 kubelet 不管理非由 Kubernetes 所建立的容器。所謂 kube-proxy 主要是 Kubernetes 網路代理執行在每個叢集節點上,Kubernetes API 定義的服務將會透過 TCP 和 UDP 與其進行通訊互動。

再來 Kubernetes 中包括許多代表系統狀態的抽象概念,這些抽象概念皆會由 Kubernetes API 中的物件進行表示,主要包括 Pod、Service、Volume 和 Namespace。所謂 Pod 主要是 Kubernetes 的基本建構模塊,其主要是我們建立或部署的 Kubernetes 物件模型中最小和最簡單的單元,同時其代表叢集上正在執行的程序。所謂 Service 主要是 Kubernetes 抽象概念,其主要定義了 Pod 的邏輯集合,以及存取策略或稱微服務。所謂 Volume 主要是一個目錄,其可能包括一些資料,能夠透過容器中的 Pod 進行存取。所謂 Namespce 主要是讓多個團隊或多個專案共享一個叢集資源的命名空間。

此外 Kubernetes 上還包更高層次的抽象概念稱為控制器,控制器主要建立在基本物件上,並且提供 ReplicaSet、Deployment、StaefulSet 和 Job 等進階功能。

最後 Kubernetes Control Plane 主要是維護 Kubernetes 中所有物件的記錄,並且執行連續的控制循環來管理這些物件的狀態。同時在任何特定時間,以利管理叢集的狀態,將容器系統中所有的物件實際狀態調整為我們所需的狀態,像是當我們透過 Kubernetes API 建立一個 Deployment 物件時,我們將會為系統提供新的所需狀態,此時 Kubernetes Control Plane 將會記錄物件的建立,並且透過啟動所需的應用程式將它們安排至叢集節點中執行特定指令,以利使得叢集實際狀態與所需要的狀態相互配對。

總結若在了解 Kubernetes 基本概念,想更進一步了解 Kubernetes 實際操作,則能夠透過 Kubernetes 官方網站所提供的免費互動教學進行線上學習,非常方便。

相關資源

系統架構 F5 Networks (1)

教學目標

初步了解 F5 BIG-IP 產品學習指南和認證考試以利後續進行系統架構的規劃。

重點概念

首先目前許多大型銀行皆會採用 F5 BIG-IP 產品進行企業內部網路的負戴平衡器。其中有許多不同型號的 BIG-IP iSeries 系列產品,不同型號會有不同的流量處理規格,以 7255v 為例,則會有以下有關流量處理的規格,分別為:

關鍵指標 上限值
第七層應用層每秒請求數 16,000,000
第七層最大輸出量 20 Gbps
第四層傳輸層每秒請求數 7,000,000
第四層傳輸層每秒連接數 775,000
第四層最大並行連接數 24,000,000
第四層最大輸出量 40 Gbps

接著到底何謂第四層和第七層,事實上所指的就是 OSI 七層網路架構,OSI 全名為 Open System Interconnection Reference Model ,也就是開放式系統互聯通訊參考模型。其中七層分別為:

  1. 實體層
  2. 資料連結層
  3. 網路層
  4. 傳輸層
  5. 會談層
  6. 呈現層
  7. 應用層

至於詳細的七層介紹我們則能夠參考 F5 的學習指南「101 – Application Delivery Fundamentals」,當然除了 OSI 層之外,還有許多有關負載平衡、網路安全、應用程式和 F5 技術與解決方案等基本概念皆能夠在該學習指南中進行學習。

再來 F5 BIG-IP 產品在軟體架構的部份皆搭載 TMOS (64-bit),全名為 Traffic Management Operating System,也就是流量管理作業系統,主要是應用於 BIG-IP 產品的作業系統。至於詳細的 TMOS 流量管理作業系統介紹我們則能夠參考 F5 的學習指南「201 – TMOS Administration v2」,其學習指南主要是介紹如何進行故障排除和維護設定等基本操作。

最後 F5 除了「101 – Application Delivery Fundamentals」和「201 – TMOS Administration v2」兩份最基本的學習指南提供我們學習參考之外,更有提供更進階的證照考試,當我們通透過 Exam 101 和 Exam 201 之後就能夠取得 F5 Certified BIG-IP Administrator 認證,基本上對於 F5 BIG-IP 就有基本概念,以及故障排除的能力。

相關資源