Hackpads are smart collaborative documents. .

謝廣霖

586 days ago
755 days ago
Jim H GitHub of speaker: a https://github.com/fcwu
Derek H 如何打造持續整合測試環境
目前任職於QNAP
做的project是 container station
前一家公司在Canonical/Ubuntu工作,比較open source環境會比較多open source的東西
 
現實跟理想往往相反,你覺得很有意義的事情常常不會受到別人認同
 
只有1/4的人使用NAS會需要虛擬化技術或container
很多人還不知道container可以為我們做什麼
 
Yi C 針對兩種人設計軟體,
Derek H 另外一種給宅宅用得比較喜歡玩技術會開放那方面的資料給大家使用。
 
有一種人非常需要虛擬化技術但是卻買了另外一家的產品
S牌跟Q牌有做虛擬化技術,但是只有Q家有做KVMsurvery的最後問大家是否需要HDMI輸出的功能,比如說接到電視上就變成一台PC。
 
我差不多在6年前買了第一台NAS,我第一台買的NAS是S的,被右下角的介面深深的吸引住,網頁用起來的網頁速度跟便利性也變得很好。
 
其實QNAP也做了這樣的東西加上一些原因就再也不買其他家的了。
 
大部分人買NAS需要的都是拿來備份。
 
NAS越來越強,CPU越來越大,可以做一些不一樣的事情,比如說我自己都會去一些特殊了論壇透過管道抓影片,抓下來之後要是說沒有HDMI輸出的話就必須另外有一台電腦才能看這些影片,但自從QNAP有了HDMI輸出之後我家的NAS就直接擺在電視旁邊。
 
用CP值來看,你在x86 CPU上會比其他家還要高上許多。
 
但對於各位工程師來講,買NAS不會只有用他的Interface而已,會有好幾條ssh tunnel這樣連著
 
Yi C 工程師使用:busybox,apt/yum,HDD layout
Derek H (S 牌) 想要裝一些軟體什麼都沒有,df看一下硬碟分配的情況她用了lvm,整個用起來非常的卡。
 
你想要放一些自己的東西上去但是因為library的問題,你可以用toolchain自己build你要的東西,不如自己買一個機器灌個ubuntu好了
 
Yi C Virtualization
Derek H
  •  虛擬化可以讓我們跑各種作業系統
MKID H
  • 基於KVM
Jim H
  • 透過網頁可直接存取 Linux 桌面
Yi C
  • 網頁可以直接操作KVM
 
MKID H Container Station
  • Light-weight, fast and small
  • same kernel
 
Derek H 這就是我們container station的介面,建立容器,deploy, undeploy...。
有S的sales來問這個怎麼達成的,我這跟他們說這些都是跑在vm,不是跑在container裡面,其實我們也測過硬體加速也是可以輕易達成的。另外其實我們也有嘗試安裝virtualbox。
 
我們對一般的User提供的功能一些複雜的軟體會需要許多container來達成,只要按下建立就可以把兩三個container達成。
 
MKID H Auto Configuration
Aweimeow
  • docker run -p 6379 -v /data redis
王茂林 正常情況應該都會開個 6379 por
Derek H 大部分docker都不會帶預設的值,不管怎麼建都會失敗。以redis為例正常使用的情況下會開port在6379,data會放在/data的資料夾。
 
正確的設定要看誰包這個image,但是大部分你常見的那些東西都可以建出對的container,我們還有推出ARM的機種: TS-531P
Jim H
  • 採用低功耗、高效能的 ARM® Cortex-A15 核心架構處理器
  • 硬體加速加密引擎實現每秒超過 400 MB 的快速加密效能
  • 享受 Container Station 帶來的 LXC 與 Docker 輕量級虛擬技術
Derek H 別家也有支援docker,但是只有我們能跑ARM。
 
我們還支援lxc,lxc ubuntu 推出的,如果你想要模擬一個OS的話,用lxc會簡單許多。
 
Jim H docker的設計精神是, 一建立出來所有參數都是被設定好的,所以說,若你想變更 ssh port forwarding 的設定,使用 lxc 會比較有彈性
Aiden W 要動態部署的話建議用lxc比較方便 (例如修改網路設定...等)
 
王茂林 Docker compose:官方所提供的標準作法,搭建自己的 Docker app
 
吳佳儒 大家可以把自己的docker上傳到git,公司的QA就會開始測試,通過測試後,公司就會merge回master,你就可以在QNAP列表看到你上傳的docker了
 
=== 持續整合發佈 ===
CI就是寫完程式後,會自動build,自動測試
Jim H QCS: Qnap Container Station
 
Derek H 聚焦在基礎架構的建立
 
Aweimeow Gitlab => Jenkins => docker(Docker, Private, Registry) => TestBed
 
MKID H 使用QCS輕鬆建立 CI 基礎設施
 
Derek H Build的流程從jenkins開始,我們這邊是讓他去跑一個docker的container,這個container會去gitlab把source拿出來build。接下來就是把它deploy到真實的機器上面去,把docker的image拉下來從archieve deploy到測試的環境裡面。
 
吳佳儒 *所有的行為都是在docker container完成 
Derek H * 需用到的Docker images
  * Build source cod and Test
  * Operate archieve and Deploy
吳佳儒 *jenkins job自動更新docker image
 
Derek H Automate
我們build有分兩個平台,一個是amd_64一個是arm
 
開發環境的建立:
VirtualBox + Vagrant
吳佳儒 下四行指令
把東西抓回來
建立環境
...

Contact Support



Please check out our How-to Guide and FAQ first to see if your question is already answered! :)

If you have a feature request, please add it to this pad. Thanks!


Log in