OpenStack 開發(fā)入門

什么是 OpenStack?

官方網(wǎng)站給出的定義是:

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

粗略翻譯:
OpenStack 是一個可以控制整個數(shù)據(jù)中心里大量的計算、存儲和網(wǎng)絡(luò)資源池的云操作系統(tǒng),它通過一個既能賦予管理員控制資源的能力,也能讓普通用戶調(diào)配資源的可視化控制面板(Dashboard)來管理這一切。

Openstack 介紹

對開發(fā)者來說,我們需要知道的是,OpenStack 是由一系列開源組件構(gòu)成的基礎(chǔ)設(shè)施即服務(wù)(Infrastructure as a Service,簡稱IaaS)范疇的云平臺解決方案,它讓用戶方便的構(gòu)建和管理自己的云平臺,它正在解決以及將要解決的主要問題就是如何自動管理物理主機上虛擬出來的虛擬機和虛擬資源。

虛擬資源主要計算、網(wǎng)絡(luò)、存儲三種,OpenStack 有對應(yīng)的組件去管理這些資源,每個組件在 github 上都是分開的工程,我們可以從這里獲取到源碼:https://github.com/openstack/

主要組件以及作用

Project Service Catalog
NOVA
Compute Service 計算服務(wù) Compute
GLANCE
Image Service 鏡像服務(wù) Compute
SWIFT
Object Store 對象存儲 Storage, Backup & Recovery
CINDER
Block Storage 塊存儲 Storage, Backup & Recovery
KEYSTONE
Identity service 認(rèn)證服務(wù) Security,Identity & Compliance
NEUTRON
Networking 網(wǎng)絡(luò)服務(wù) Networking&Content Delivery
HORIZON
Dashboard 管理界面 Management Tools

組件內(nèi)部也并不是完全一體,緊密耦合的狀態(tài),這樣方便了組件的擴展和維護,組件之間也并不是孤立的,有時候一個操作可能需要多個組件共同完成,下圖就是從整個 OpenStack 的全局技術(shù)架構(gòu)的角度看它的組件,以及之間的大致的調(diào)用關(guān)系。

全局視圖

準(zhǔn)備動手之前

  • 你需要熟悉 Python 語言,不管 2.x 還是 3.x
    因為 OpenStack 各個組件主要是基于 Python 開發(fā),熟悉 Python 語言就自然成為一個不可或缺的準(zhǔn)備工作。雖然 2.x 和 3.x 現(xiàn)在都被廣泛的試用,并無太大優(yōu)劣之分,不過我還是推薦學(xué)習(xí) 3.x,你可以從這些地方獲取到學(xué)習(xí)資料

  • WSGI 和 Paste Deployment 相關(guān)知識點

    Web服務(wù)器網(wǎng)關(guān)接口(Python Web Server Gateway Interface,縮寫為WSGI)是為Python語言定義的Web服務(wù)器和Web應(yīng)用程序或框架之間的一種簡單而通用的接口。這一塊是 OpenStack Restful 接口的基礎(chǔ)。
    Paste Deployment是用來發(fā)現(xiàn)和配置WSGI的系統(tǒng)。對于WSGI使用者來說,它提供了簡單的方法(loadapp)通過配置文件來啟動WSGI應(yīng)用,對于WSGI的開發(fā)者來說,只需要給自己的應(yīng)用提供一套簡單的入口點即可。OpenStack 主要使用這個框架來完成 WSGI 部分的工作,那么我們開發(fā)的時候,自然也是從這里入手。
    文檔地址:- http://pastedeploy.readthedocs.io/en/latest/
    資料地址:- http://yansu.org/2013/06/07/learn-python-setuptools-in-detail.html

  • 了解OpenStack 用到的包(或者叫框架)及其作用
    這里 OpenStack 列舉了自己開發(fā)中使用的包,可以簡單了解下,并且在自己的開發(fā)中使用 https://docs.openstack.org/developer/openstack-projects.html

  • IDE
    建議使用 IDE 開完成開發(fā),可以選在 pydev 提供的基于 eclipse 的版本 liclipse ,也可以使用 Jetbrains 公司開發(fā)的 Pycharm

Win環(huán)境中遠(yuǎn)程調(diào)試 OpenStack 代碼設(shè)置

OpenStack 的各個組件現(xiàn)在還只能部署在 Linux 環(huán)境中, 如果我們想調(diào)試 OpenStack 組件的代碼,那么必須遠(yuǎn)程調(diào)試,下面就簡單的說明一下調(diào)試環(huán)境的搭建。

  1. 安裝 dokan 和 win-sshfs,這兩個軟件能夠?qū)⑦h(yuǎn)程的文件,掛載成一個 windows 系統(tǒng)中的盤,方便我們對遠(yuǎn)程的代碼進行修改和同步
    下載地址:
    https://github.com/dokan-dev/dokany/releases/tag/v1.0.1
    https://github.com/Foreveryone-cz/win-sshfs/releases

    先安裝 dokan 庫,然后安裝 win-sshfs, 安裝 win-sshfs 的時候,不會有具體提示信息,安裝成功之后可以在任務(wù)欄看到它的圖標(biāo)


    圖標(biāo)
  2. 安裝 pycharm,或者 liclipse ,下載地址見上節(jié)

  3. 在需要調(diào)試的代碼環(huán)境中安裝 pydevd 包,方法:pip install pydevd

  4. 將掛載的工程導(dǎo)入到 IDE 里面,由于是遠(yuǎn)程訪問,速度可能稍慢,等待他完成

以 pycharm 為例,講解設(shè)置遠(yuǎn)程調(diào)試步驟

1 配置遠(yuǎn)程 debugger
2 啟動debugger server
3 啟動完成,將控制臺顯示的代碼放到需要遠(yuǎn)程 debugger 的文件
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容