ref: https://medium.com/nerd-for-tech/ceph-ansible-deployment-testing-using-vagrant-8205a9f39f2d
本篇文章是一個工具分享文,探討如何使用 Vagrant 來架設一個 ceph 叢集環境來測試與開發。
Ceph 是非常知名的分散式儲存的解決方案,其提供 Object, block 以及 file 等儲存空間供不同需求的應用程式使用
Ceph 本身是由多個不同的組成元件所組成,這也是為什麼會稱 Ceph 叢集的概念,元件包含
1. Monitors(MON)
2. Managers(MGR)
3. Metadata Servers(MDS)
4. Object Storage Devices(OSD)
CNCF 畢業專案 Rook 則是一個將 Ceph 與 Kubernetes 整合的解決方案,其簡化了部署 Ceph 的複雜度,讓使用者可以更輕鬆的透過 Kubernetes 去部署一套 Ceph 叢集環境來測試與開發。
不過並不是所有使用 Ceph 的環境都會搭配使用 Kubernetes,作者觀察到目前網路上至少有七種以上的部署方式,而其中最知名也受歡迎的部署方式就是透過 Ceph-Ansible 來安裝。
本篇文章作者探討如何透過 Ceph-Ansible 來部署 Ceph 叢集。
Ceph-Ansible 內本身就有提供 Vagrant 的設定檔案,透過修改設定檔案就可以很順利的自動架起多個 VM,接者透過 Ansible 將 Ceph 的服務依序安裝上去最後就可以順利的搭起一個 Ceph 叢集環境來測試與開發。
本篇文章基本上要對 Ceph 有理解才會比較有背景去閱讀,對於 Ceph 有興趣的人可以參考看看
ansible 應用 在 矽谷牛的耕田筆記 Facebook 的最佳解答
#NetDevOps
今天這篇文章是一個數據調查文,主要內容是探討基於 NetDevOps 的文化下,網路維運人員使用哪些工具來協助日常的網路工作。
這份 2020 的報告總共有 333 的投票者,總共有一個月的投票時間。
整個文章總共有 49 個表格,非常的多...
這邊就列舉幾個大家可能比較有興趣的表格來幫大家預覽,當然對於整體有興趣的人還是不要忘了點選全文瀏覽!
每個項目都列舉前六名,標準基於使用正式於生產環境的票數
感興趣或是已經使用的工具
1. Ansible
2. Grafana
3. Netbox
4. ELK
5. EVE-NG
6. Promethes
感興趣或是已經整合的主題
1. Source of Truth
2. Network Health Moniroting
3. IaC
4. DevOps
5. CI
6. CI/CD
使用何種解決方案來自動化處理設定檔案
1. Ansible
2. 內部開發工具
3. NAPALM
4. Nomir
5. Terraform
6. 網路供應商的自主工具
如何控管設定檔案的改變
1. VCS
2. Rancid/Oxidized
3. 內部開發工具
4. 網路供應商的自主工具
5. FTP/SCP/TFTP
6. Solarwind NCM
管理哪些網路廠商的設備
1. Cisco IOS/IOS XE/Viptela
2. Cisco NX-OS/ACI
3. Juniper
4. Cisco IOS XR
5. Cisco ASA
6. Palo Alto
使用何種工具來模擬虛擬網路設備或是功能驗證
1. GNS3
2. VMWare
3. EVE-NG
4. 網路供應商工具
5. Docker Compose
6. Vagrant
網通業者的生態與軟體業者是截然不同的,很多軟體業習慣的操作流程與直覺並不是這容易的直接套用到網通業者的環境中。
舉例來說,使用公有雲創建 VM 並且於 VM 叢集上搭建出一個初始的工作流程並不難,Kubernetes 套上去後,就可以用容器的方式把各種應用,譬如 Prometheus, Grafana, logging, tracing, message queue 等服務都搭建到各個伺服器上。
對於網通業者來說,今天掌管的目標是 Switch 跟少部分的 Server,光 Switch 要買哪一家就是一個問題。
Switch 不太像 X86 架構一樣,想換什麼 OS 就換什麼 OS 這麼輕鬆,不走 whitebox 的架構下,一旦採購了某家廠商的解決方案,有可能就終生是對方的形狀了。這也是很多人都在提倡希望透過標準化來避免 vendor lock-in 的狀況。
上述的報告也可以看到前六名管理的機器中有四名都來自 Cisco 的機器,這種情況下很多事情都會受限於 Cisco 機器本身的設定與狀況,並不是想要做什麼就做什麼。
為了讓這一切變得簡單,如果可以透過標準化的方式去定義 switch 的架構,讓這一切變得如操作 Server 般簡單時,網通業者就會有另外一種方法來管理環境。
如果相關的軟體都有開源專案可以使用,這樣維運人員就可以用更省錢的方式來安裝與控管這一切的網通設備,聽起來真的很棒
現實生活上則是,網路產業對於 uptime 的需求非常的強,一旦出問題不是單純服務不能連,而是可能影響數千數萬甚至更多的使用者。這種情況下如果團隊全部使用開源專案而沒有 SI 公司的支援與維護,誰敢冒這個險去使用這些呢
最後要說的是,隔行如隔山,永遠不要用自己習慣的工作流程去看待別的產業,很容易被打臉。
https://dgarros.github.io/netdevops-survey/reports/2020
ansible 應用 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
本篇文章作者認為透過 Kubernetes Operator 的設計與精神,是有辦法達到夢寐以求中的 Zero-touch Ops,甚至發展到所謂的 AIOps,維運人員盡可能地減少主動去管理應用程式的部署。
一開始探討到微服務架構與 DevOps 文化的興起,愈來愈多的叢集與資源需要管理,但是如果今天應用程式本身難以管理的話,維運人員則必須要花費大量的精力與時間來部署這些應用程式,這無疑是種本末倒置的行為。
本文一開始作者先快速地複習什麼是 Operator,基本上可以當作是 k8s controller 的延伸版本,畢竟 K8s controller 其運作原理也是透過一個無止盡的迴圈,根據使用者輸入事先定義的好的資源格式,來確保當前叢集內的運行狀態有符合需求。Operator 基於這個概念上,讓使用者可以使用 CRD 這種自定義的格式來定義自己的資源,不單純只是所謂的 deployment/pod/service 等,可以是更符合應用程式需求的抽象資源,譬如 GitRepo, Network, PrometheusService 等
文章內還有更多關於 Operator 的介紹,包含如何透過 SDK 來撰寫開發一個 Operator,有興趣瞭解的
不可錯過。
文章後半部在探討關於 AIOPs 如何達成 Zero-Touch Ops 的願景,文中先以一張圖片來解釋 AIOps 的架構,最後提到如何將 AIOPs 與 Operator 的架構整合為一,該架構中整合了不少常見服務來滿足不同面向的要求,譬如 Grafana, Prometheus, ServiceMesh/istio, Ansible 等。
https://medium.com/faun/kubernetes-operators-to-realize-the-dream-of-zero-touch-ops-5bc8c3e5e11b