Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CI on OpenStack

CI on OpenStack

OpenStack Day Taiwan 2017
串接持續整合(CI)到 OpenStack 上
持續整合(CI)已儼然成為現今軟體開發流程中極為重要的一環,然而一般持續整合服務不一定能夠提供所需的測試環境。介紹如何使用 OpenStack Python SDK,如何透過常見持續整合服務串接 OpenStack ,建立自由彈性的環境作為整合測試(Integration Testing)。

Date Huang

July 18, 2017
Tweet

More Decks by Date Huang

Other Decks in Programming

Transcript

  1. 過去 • 如果我們測試一個軟體,但是他要多節點的,可能跟網路相關的 • 大概會 ◦ 準備一台虛擬機 ◦ 安裝相依套件 ◦

    編譯原始碼 ◦ 複製虛擬機成多台 ◦ 修正網路架構 ◦ 把每一台虛擬機打上指令
  2. 簡介 CI • 一種軟體工程上的概念 ◦ 衍生自極限編程(Extreme programming) • 志在解決不同分支(branch)整合問題 ◦

    分支過多導致整合難度上升 • 自動化 ◦ 自動建置 ◦ 自我測試 ◦ 自動部署
  3. 為什麼要 CI • 在每一次的修改中就發現錯誤 ◦ 及早發現整合上的錯誤 ◦ 解決合併衝突(Merge Conflict) •

    自動化處理 ◦ 避免手動操作,提高生 產力 ◦ 避免手動操作低級錯誤
  4. 為什麼要 CI • 在每一次的修改中就發現錯誤 ◦ 及早發現整合上的錯誤 ◦ 解決合併衝突(Merge Conflict) •

    自動化處理 ◦ 避免手動操作,提高生 產力 ◦ 避免手動操作低級錯誤 • 盡可能的維持 master branch 的單一性
  5. 常見 CI 服務 • Travis-CI ◦ 整合 Github • GitLab-CI

    ◦ 整合 Gitlab • Jenkins ◦ 大量第三方插件
  6. CI 服務的限制 • 現行 CI server 多為 Container-based,少數 VM-based ◦

    環境不夠彈性 • 多半提供過舊的套件 ◦ Travis-CI 目前只提供到 Ubuntu Trusty (14.04) 的環境 • 特殊環境 ◦ 沒有辦法提供特殊環境 ◦ 例如:arm64
  7. OpenStack API • REST API ◦ 難度:高 ◦ 語言:只要能發 HTTP

    Request 就能用 ◦ 文件:完整 ◦ https://docs.openstack.org/api/ • OpenStack SDK ◦ 難度:低 ◦ 語言:官方只提供比較常見的語言 ◦ 文件:更新較慢 ◦ https://docs.openstack.org/user-guide/sdk.html
  8. DEMO 環境 • OpenStack ◦ OpenStack on ARM64 ◦ https://speakerdeck.com/tjjh89017/openstack-on-armv8

    • 測試軟體 ◦ EZIO, BT-based Multi-PC Deployment Tool ◦ https://speakerdeck.com/tjjh89017/ezio-torrent-based-recovery ◦ https://github.com/tjjh89017/ezio