Hello,大家好,我叫殷成文,目前在拼開部工作很高興在這兒和大家一起分享Calsmatch 2.0使用功能工程更簡單這個主題整個分享主要會包含五個部分首先會先帶領大家去整體看一下Calsmatch到底是個什麼東西同時會介紹一下整體Calsmatch的一個架構接著我們會介紹一下Calsmatch 2.0這一個新版本你帶來了一些什麼新的變化以及為什麼Calsmatch 2.0能夠去幫助大家去減少功能工程的一個步驟和減始功能工程更簡單接著會介紹一下我們一個未來的一個計劃最後我會帶領大家去看一個非常簡單的一個demo首先什麼是CalsmatchCalsmatch最早是起源自TeddybyTeddyby是一個分布式的一個數據庫起源於Teddyby這樣一個分布式數據庫的一個內部磁石光架我們逐漸在使用這樣的一個磁石光架的時候我們發現這樣的一個很多一些功能和一些部分的功能我們可以完全可以把它抽象出來變成一個通用的磁石光架然後用到其他的一些磁石裡面去就比如說用到了EDC的磁石或者是其他分布式系統的一個磁石裡面然後可以去幫助更多的一些公司和組織來去使用到這個平臺去幫助他們去進行功能實驗同時我們在Calsmatch最早的時候我們一開始的時候內部的一個磁石平臺就是基於Communities這樣做的一個設計所以在Calsmatch在出生的時候它就是一個基於Communities這樣的一個平臺的設計後來我們就把基於之前的一個磁石光架然後把裡面的一些根於故障珠物相關以及混能生液相關的一些東西處理出來然後並把它可以開源然後後來命名它為Calsmatch所以就說Calsmatch它用一句話去完全去概括它它是一個語言聲的混能工程為Communities定制的一個混能工程的一個磁石平臺它主要提供一些可以讓你在容器或者POD或者在網絡或者文件系統或者內核甚至內核上面去模擬各種故障的這樣的一個工具同時它提供一個非常快捷一個辨解的一個掛的一個界面幫助你去很好地去管理和觀察你整個混能實驗的一個流程和一個磁石結果這裡是一個我們一個這樣的一個一個我們的一個官網一個網站還有就是我們的一個repo你可以去在我們的一個網站和repo上去找到一些更多的一些使用和一些介紹的一些信息在我們在構建Calsmatch的和我們在開源的時候我們有這樣的一個願景就是說以Calsmatch為基礎然後去構建一個完整的一個避還的營園生物的工程這樣的一個生態因為任何的一個工具或者是一個理論等等來說很多很難的時候你並不能是通過一個工具或者是一個很簡單的工具去把這所有事情都做掉所以就是說我們想要以這個工具為基礎同時可以去結合一些其他的一些開源工具來去構建這樣的一個生態可以去幫助去結合一些可以快速服用的一些場景或者是磁石案例等等幫助更多的一些想要使用活動工程的一些用戶然後快速去用起來同時能夠去幫助他們介紹他們在使用活動工程的時候的一個門檻然後去幫助整一個不熟悉活動工程的人然後去快速的去真正把活動工程在他們的一個生態場景或者是應用場景上去發揮振大的一個價值和作用另一個就是更長遠的一個計劃也是我們Calsmatch本身的這樣的目標就是把工程這個事情變得一個更簡單比如說我們整一個Calsmatch一直從開源到1.0到2.0就一直在朝著這個目標去前進去把Calsmatch把工程這個事情變得一個更簡單可以讓用戶在Calsmatch上非常簡單或者方便的去開始它的一個後面實驗後面我們會想繼續介紹我們在2.0上做了哪些事情然後如何去朝著這個目標一步一步去前進就是整一個Calsmatch這樣的一個時間的一個time line這裡面我們可以看到整體Calsmatch它還是比較年輕它可以看到我們在2019年的最後一天然後去把它開源然後同時在2020年的7月份的時候它正式加入CNCF成為Sandbox項目再加上CNCF一年之後我們發布了1.0的接頁版本和我們前段時間剛發布的2.0的接頁版本從整體上來看其實整一個Calsmatch從開源到現在其實也就兩年應該差不多剛好兩年的障礙時間在這兩年裏面Calsmatch它經歷了很多然後從一開始只是想做一個部長珠的一個工具然後後來逐漸的諜貸然後去完善然後朝著去構建生態然後去把後面工程就更簡單確定了我們更加明確的這樣一個目標然後逐漸的去諜貸1.0、2.0以及我們正在設計的一個3.0的這樣一個版本裏面接著我們看一下我們整體的一個架構其實整一個Calsmatch架構它比較簡單它是我們可以把它理解成一個看作成一個叫Community磁罩一個茶店其實也可以說它是為Community設計的這樣的一個軟件整一個Calsmatch從的一個執行流程它可以從上往下可以分成三部分第一部分就是用戶的一個官次以及管理的一個部分這裏面設計到我們自己的一個組件叫Calsmatchboard也就是說用戶可以在我們的一個Calsmatchboard上去使用表單或者表格的方式去提供你整個工程實驗然後同時可以在Dashboard上去觀察你整個工程實驗的一個結果和一個域行步驟這裏你當然也可以使用Couple Applier或者是腳本的或者是代碼的方式去創建你的工程實驗或者創建你整個workfloat然後整體這裏面的所有的一個不管你是通過Calsmatchboard還是用Couple Applier等等一些方式它最終的一個對象或存儲都會落到了一個Gonadis APS-O上去里面Gonadis APS-O裏面它主要是嵌入了一個EDCD然後它可以把你裏面這裏面提交的一些對象存儲到EDCD裏面同時它提供了這樣一個WATCH的機制然後接著就到我們整個主要的一個調度和一個管理的一部分也就是說這裏面用到了我們Cals controller managerCals controller manager它主要是說WATCH你這個Gonadis APS-O裏面提交的一些對象的一些狀態然後比如說創建或者是更新或者刪除這樣的一些狀態當你這裏面有一些對象的創建了一些新的對象然後我controller manager就會接觸到這樣的一個創建信息然後我接著就可以去把它給解析成具體的一些調度規則和一些後面實驗出的一些規則然後它接著整個調度完成之後它會把具體的一些規則發送到Cals daemonCals daemon是整一個主要的一個執行組件Cals daemon它會以Demon side的方式運行在每一個物理節點上去也就是說你的K8Gonadis這樣的一個集成裏面有多少的一個node上它就每個node上都會去運行這樣一個Cals daemon這樣的一個組件Cals daemon它主要是做的一個事情就是說我接受到Cals control manager這樣的一個一個請求然後比如說我要給具體某一個code住一個網絡故障然後Cals daemon就會找到這一個code然後進入到這個code的一個networks裏面然後去試著去干擾你的一個這個code具體的一個去虛擬網卡或者試著試著一些IP tabos這樣的一些規則然後我們使用這種請求到具體code的一個networks或者是如果你是一個壓力的一個詞詞它會進入到你這樣一個pidns它會通過這種請求到具體code的一個ns裏面然後去把你整一個故障的一個範圍控制在這個code裏面這樣就是說我們可以在很方便地避免我們整一個故障範圍的一個範覽或者是這樣一個爆炸這裏面是詳細介紹了一個calsdemon的一個執行的一個流程比如說首先我們會先通過一個controller on time去拿到具體的一個應用的一個pid然後這pid然後calsdemon根據這個pid然後去侵入到這個pid對應的一個ns裏面就比如說你是一個網絡的故障我會侵入到你一個networks如果你是一個壓力或者是一個搶帶內存的這樣一個故障我會侵入到你一個pidns裏面或者是我侵入到mnt.ns裏面然後整體的一個就比如說網絡的故障它會使用一些去干擾你具體的虛擬網卡然後或者是去試著itabels規則然後如果是一個壓力的一個模擬它會去在你的pidns具體port的pidns裏面去創建一個stress engine這樣一個進程去搶帶你的一個CPU的一個使用或者是搶帶你內存的一個使用如果是一個文件系統的一些故障它會在你的你這個port裏面去起這樣一個fuse這樣的文件系統用戶態文件系統服務然後去劫持到你具體的一個進程的一個文件系統IO的一個操作流程把你整個IO流程劫持到我自己實現的一個文件系統上去然後最終再落到用戶態的一個最終再落到實際的文件系統上去這樣我就可以在自己用戶態文件系統上去實現各種的一些干擾比如說就一些IO的延遲或者直接返回你具體的一些文件操作的一些錯誤等等這地方是整個整個CRD的一個定義整個castmatch它是使用了一個CRD的一個方式去定義整個控制實驗的一個規則整個可以看到我們整個castmatch裏面它根據不同的一些故障類型有多種的一些CRD對象就比如說PortCals或者NetworkCals或者OurCalsTOMCals或者等等包括我們的整一個在我們的2.0裏面嵌入的這樣WalkFlow它裏面也是使用了這樣一個CRD的方式我們可以使用一個CRDCRD對象去定義具體的一個WalkFlow這樣一個流程整一個CRD它是使用了一種去擴展Compatitis自定義資源的一種方式通過這種方式我們用戶可以在K8裏面去使用Compatitis自己的一些資源的方式去使用我們這種一些自己給它增加的這種資源對象就比如說我們可以用Google AppLineGetPortCals的方式去獲得我們整個PortCals後面實驗的具體的一個列表這裏面是一個例子比如說我們整一個PortCals一個對象的一個定義一個後面實驗的一個定義是什麽樣的我們可以看到它整體就要分為Selector我們使用一些Selector的方式去限制你整一個或者是定義整一個後面實驗的範圍這裏面使用LevelSelector也可以使用AnnotationSelector也可以直接在這個Selector裏面去指定具體的哪些POD這個Duration所以具體就是我們整一個故障的一個持續時間為30秒這裏面我們也可以去把它給刪掉刪掉的意思是說當我們這個PortCals被創建之後整一個故障就會一直持續直到你這個PortCals這個對象被刪除的時候這裏面Action是PortFailer就是說模擬具體某一個POD持續不可用這裏面就說模擬我這個POD持續30秒不可用這裏面Kind是PortCals如果你這裏面是NetworkCals這裏面就可以改成KindNetworkCals這非常簡單的一個CRD的定義你當把這個CRD對象創建到Google Apply或者是在YAML文件上或者是在Dashboard上去提腰你就可以去創建你這樣的一個故障的一個場景接著是一個Workflow的引擎就是說在CalsMatch 2.0裏面為了去更加方便的一個方便用戶去管理或者是定義多個故障的一個組合同時在這樣的一個流程裏面去定義整個應用狀態的一個檢查整個在2.0裏面我們實現了一個原生的一個Workflow引擎整個CalsMatch的Workflow是為CalsMatch定制的所以它整體的定義可以分為三個部分首先就是Workflow的名字還有一個入口還有整個模板的一個List的一個數組我們可以看這裏面的List就是說我們在Kind的選擇這樣一個Workflow然後定義這樣一個名字然後我們定義一個入口然後還有這樣一個模板跟這裏面我強調去要說一下就是說我們裏面的這個模板主要分為五類一類就是一個串形的模板並行的模板還有一個具體的一個故障類型的模板Cals模板還有就是斬體的模板還有這樣一個Task自定應用任務用戶可以使用這樣一個自定應用裏面去創建自己的一些比如說一些12腳本或者是應用狀態檢查的一些方式同時我們可以在這裏面所有的一個模板裏面選擇一個入口然後試著到這兒入口裏面然後我們就可以通真正執行的時候從入口出發然後去找到具體的某一個模板然後模板裏面是否有一些子任務或者子模板然後再去找到具體去執行真正執行的時候它會像一棵樹一樣方式去執行就和這裏面有點和這個圖可以看到先去入口然後找到一個模板2然後模板2如果它的一個子模板是模板3它執行的時候再去找到模板3然後如果模板3它有一個並行的模板或者子模板是模板1它就會再去找到模板1也就是說它整個Flow執行起來它就像一棵樹一樣從根結點然後一點點往下去找這樣去執行的方式也就是說可以看到整個我們的一個Wall Flow是非常簡單的也就是說我們很方便是通過壓紋鍵或者是一個Dashbowl的方式去管理或者創建我們這個多個混准實驗的一個組合接著我們想重點來看一下Calsmire 2.0裏面帶來哪些新的變化首先在應用性方面在Calsmire 2.0上面我們把整個Dashbowl做了一個進一步的優化然後我們可以讓之前我們創建一個混准實驗可能需要多戶現在我們在整個Dashbowl上只需要一步或者兩步的方式就可以去創建一個當中的一個混准實驗同時也就是說我們在整一個Dashbowl上去減少了整一個混准實驗的一個創建步驟另一個就是說在整一個在Calsmire 2.0裏面我們結合了一個Communities原生的一個Even的一些機制我們使用這種Even的機制去展示整一個每一個混准實驗的創建的步驟和具體的一些實驗信息同時在Dashbowl上我們也去展示這樣的具體的一些信息可以看到這裡面就是我們整一個Even的信息也就是說我們整個可以在Dashbowl上可以去通過Even的方式去看到我們每一個混准實驗的具體的一些步驟和當天執行的哪一步和這個步驟裏面實習到哪一些操作同時我們還提供了一個Cals control這樣一個工具幫助用戶去debar問題當我們遇到一些沒辦法容易看到的一些故障的時候或者是一些我們本身出現問題的時候我們可以使用Cals control的工具去幫助我們快速去定位問題同時也可以使用它去幫助我們去快速恢復我們某些故障這樣一些場景在功能方面在Calsmy 2.0上面我們提供了這樣一個schedule這樣的一個對象其實這個對象有點類似於這樣的一個定義比如說我們的schedule在schedule裏面你可以定義一些教的規則比如說時間多少天或者定時這樣的一些規則我們比如說我們在做某一個共產實驗的時候我們只是想要在半夜某一個時間點上去做什麼做這樣的一個故障注入那我們就可以使用這個schedule這樣的一個一個方式去在定義好這樣的一個chrome的這樣一個規則定義到具體的某一個時間點同時我們也可以使用比如說我們每隔一個小時或者每隔15分鐘繼續運行一次也可以使用它可以去做到這樣的一個效果第一個就是之前介紹的就是我們整個Casmatch上2.0裏面引入了這樣一個原生的一個編排引擎用戶可以使用這樣一個編排引擎去管理或者定義多個這樣獲益實驗的一個組合這樣形成一個完整的獲益實驗的一個場景同時可以在裏面去定義去整一個定義這樣一個應用狀態檢查的營養步驟把整個獲益實驗通過這樣一個workflow去串起來比如說我們第一步做這樣一個網絡的故障去檢查一下應用的狀態如果應用狀態有問題我們就直接退出或者是到下一步或者是跨過某一步或者是發相關的一些告警等等如果是正常的話我們再進行下一步比如說去執行一個執行一個執行一個次半的故障然後或者是同時去執行一個網絡故障然後並行的這樣一個故障然後我們可以通過這種workflow的形式去定義完整的一個獲益實驗的一個場景比如說我們在PalsMatter 2.0上你可以使用這樣一個workflow或者是這樣的一個場景的方式去運行你一個更加完整或者是把你整一個獲益實驗的一個步驟都使用它去整個管理起來然後去使用workflow同時我們在整一個dashboard上你也可以看到整一個它整一個每一個步驟的一個執行流程和一個之間的相互關係同時在2.1版本裡面我們也會去增加上每一步的一些每一步之間的一些對應關係和一些那個英文的信息等等同時在2.0裡面我們新增了很多一些新的一些故障內心比如說StressCalsDNSCalsGOMCalsIWSGSPCals還TDPCalsIWSCals和GSPCals就是說用戶可以使用這兩種去直接去調用一些IWS和GSP的一些一些平台的一些藉口就比如說給某一個節點去一些IWS節點去讓它去停機或者是重啟或者是IWS S3一些磁板或者是掛帶這樣的一些問題可以去模擬這樣一些問題GOMCals就是說一個問題的應用是基於GOM可以去模擬更加硬層的一些故障比如說某一個類的一個執行的一個故障就比如說一些寒暑的一些延遲等等DNS故障就是說你可以去模擬的一個DNS解釋失敗或者是某一個返回一個錯誤的IP或者是直接隨機的一個或者是說直接直接找不到具體的某一個IP等等StressCals解釋就是說去模擬某一個CPU或者人類存的這樣一個故障或者是剛才應該是模擬CPU或者人類存這樣的一個壓力這樣的一個情況StressCals就是說可以通過這個故障類型去模擬具體的某一個ITTP請求這樣的一個網絡上的一個故障就比如說ITTP請求讓的一個延遲或者是某一個包頭的一個錯誤等等另一個就是說2.0引入這樣一個CalsD這樣一個新的組件然後去直接去干擾一個非communities節點上這樣的一個故障就比如說你可以使用它直接在一個單獨的一個虛擬機上或者是一個物理節點上去運行這樣一個組件然後它可以直接在你這個物理節點上做一些故障就可以去模擬一些你WM層次的一些故障就比如說你的一個在你的應用沒有去基於communities就可以使用CalsD去達到這樣一個效果同時我們在2.1里面CalsD和CalsMatch這兩個組件是混合起來你可以在CalsMatchDatchBoard同時去去運行這一個K8的一個環境和非K8環境這樣的一個混合實驗在安全方面安全方面CalsMatch在2.0上引入了這樣一個安全認認的機制整一個CalsMatch的一個認認機制是基於Match'sIBSC的這種全線管理就是說我們在創建這樣一個用戶的時候他會先要求你去創建一個SWIS account然後去綁定具體一個角色一個class row或者是這樣的一個角色這個row的角色可以去跟你具體應用比如說你某個用戶對訪問某一個應用有這樣的一個全線我可以基於這樣的一個訪問創建這樣一個row然後把這樣一個row去綁定一個SWIS account然後通過這個SWIS account的一個token來拿來去登錄這樣一個CalsMatch這種方式的好處就是說你具體某個用戶對某個應用有什麼操作全線我就可以把你整一個混沌實驗的一個操作全線和你這個用戶的一個操作應用的全線去綁定起來這樣避免一些某些用戶他一些物操作影響到其他他沒有全線的一些應用這樣很方便把整一個你對應用的訪問全線和整一個混沌實驗的一個全線給綁定起來接著就是說我們下一步計劃了就是說整個CalsMatch我們下一步就在應用性方面首先我們會去提供這樣一個統一的一個管理的一個平台去幫助用戶去做調度整個非KPA和KPA環境這樣一個混沌實驗同時我們會提供一個更加簡單的一個狀態檢查一個機制和一個完整的一個報告另一個在我們會在應用性方面我們會提供更多的一些LogMatrix的一些信息安全性方面我們首先我們會和更多語音然後去做這樣一個配合然後去支持比如說GCP和IWS這樣的一些帳號登錄然後同時我們會會提供這樣一個在CalsControlCalsControl這樣一個組件上面去提供一個強制恢復的一個功能幫助用戶去當我們某一個做混沌實驗的時候出現異常的時候我們可以使用這樣的工具去強制去干擾某一個混沌實驗同時我們會提供一個Plugin的一種方式幫助用戶去擴大我們整一個混沌實驗的一個類型故障的類型然後後來我們會再去構建這樣一個HUB去幫助我們去分享和共同去分享這樣的一個插電眼然後以及去分享我們這樣的一個故障的一個場景新用戶可以在我們站在一個HUB上直接去找到自己需要的一些故障類型和我們需要的一些硬場景然後拿來可以直接用在自己的一個環境下很方便的一個減少他們整一個用戶使用的一個成本另一個就是說我們會去把Calsmatch和更多的一些生態工具去做整合然後去幫助他們把Calsmatch用在各種一些場景下比如說用在ARGO用在各種CSD的一個流程裏面或者是整一個Gitamption裏面你整一個在你的一個CSD流程裏面很方便的可以使用CalsmatchOK接著就是說Calsmatch它整個是使用你提供一個HEM的方式你可以快速使用HEM的方式去如果你是一個生態環境和一個正式的環境我們推薦使用這樣HEM方式去安裝Calsmatch同時如果你只是想在自己本機去快速去使用一下我們也可以使用這樣的腳板的方式去使用去安裝測試使用Calsmatch但是在我們的官網上也可以找到我們這樣的一個一個教程它整個教程會把你在在線創建這樣一個K8的環境在上面去使用整一個Calsmatch這裏面我們接著我們會有一個demo的時間也就是說我們這個demo我們主要是使用Calsmatch去創建一個網絡的鼓掌看我們如何在我們的一個Calsmatch上去模擬一個網絡鼓掌這裏面我們會找到一個應用類型一個應用我們叫做一個webshow這樣的應用因為在這個應用上就可以通過這個應用能看到我們整個網絡變化為了減少整個時間的話我們這裏面可以看到我這邊提前安裝好了一個Calsmatch可以看到整個Calsmatch主要分為三部分一是Cals controller manager然後還有Calsdemo還有Cals dashboard這三個組件對我們也可以使用這種方式Googleget a port然後莫讓我們Calsmatch裝在了Cals testing就是這樣的一個MS裏面我們可以用Google get aget a portgun test這樣的一個方式去檢查一下具體的一個進程或者應用的一個運行情況我們可以看到我們所有的一個port都是一個OK我們看一下我們在正常我們在安裝了這樣一個應用這個應用叫做webshow的應用它是一個Deployment的一個方式去運行OK我們回到這裏面我們這是我剛才安裝的一個Calsmatch整個Dashboard對我們看一下這是這是剛才安裝的一個webshow這樣應用我們可以在這個webshow上去看到我們具體的一個網絡變化就比如我們可以看到我們每一個的一個它主要是說我們webshow這個應用它會具體po某一個cooper system下了一個po的然後去檢查具體一個pin的延遲可以看到我們可以看到我們整體的一個pin延遲都是在應該是在1毫秒以下吧然後我們過後會給它注轉一個網絡延遲會在10毫秒然後我們看一下具體的這個應用的一個狀態一個表現我們這裡直接使用dashboard我們單獨你可以看到我們整個可以放為一個workflow的schedule然後還有experiment這裡面experiment就是一個單獨的一個混合實驗schedule就是創建一個list with ground job這樣的一個一個實驗場景workflow就是創建一個完整的一個多個混合實驗的一個組合還有裡面去定義整個故障的這種狀態檢查的一個步驟等等這裡面我們為了快速實驗我們只使用一個最簡單的一個單獨的一個實驗我們可以看到創建這樣混合實驗這裡面去選擇這樣環境然後這裡面選擇我們這一個找到network就是說網絡攻擊然後在裡面選擇我們這裡面可以去創造網絡分區網絡丟包或者是網絡包損壞或者是網絡財寬這裡面我們最簡單選擇延遲這地方可以去直接輸入你網絡延遲的值這地方比如說我試著10毫秒然後這裡一個getter是一個網絡一個來回抖動然後相關性然後一個方向然後這一個還有就是可以試著具體的一個對應具體哪一個POD去有這樣的延遲這裡面我們直接不選就是說它會對所有的POD都有這樣這樣一個10毫秒的延遲當我們確定好實驗的一個具體行為之後我們來選擇整個混沌實驗的範圍這地方我們可以使用一些snector比如說我們snector是D4OS我們可以看到這裡面有哪一個被選中的是這一個webshow這樣一個POD我們也可以再試著一個webshow這樣一個level然後我們最終可以看到最終應用作用的目標就是這一個webshow這樣一個POD這地方我們給它起一個名字叫delaynetworkdelay對然後這地方就說比如說我要網絡部長要持續30秒或者說一直是有這樣一個網絡部長都可以我們這地方可以如果一直讓它一直有這樣一個網絡延遲的話直接點它如果要是要給它具體的一個時間點去部長持續時間的話我們可以在這方試著一個持續時間對我們這地方可以持續30秒30秒對然後我們可以提交提交我們的混合線對可以看到我們持續的狀態我們可以點開點開我們可以看到具體的一個混合線你可以看到就裏面是它整個執行的一個英文的信息我們可以看到我們具體的一個我們可以看對對webshow這個POD我們可以看到我們在裏面具體給哪個POD什麽股檔這裏面我們都可以看到然後也可以看到我們整個實驗的一個YAML文件的一個配置也就是說我們整個在DashBoard上它其實給整個Control Manager提交的還是這樣一個YAML文件只是我們通過DashBoard去這種方式去簡化裏面一樣我們裏面的一個步驟我們這裏面有基本細節你看它整個狀態Running我們可以看一下它的一個我們看到網絡股檔網絡的延遲從之前的1毫秒以下然後去變成了一個11毫秒左右然後持續30秒之後它回到了一個正常狀態對這裏面如果我們你看它已經finished的也就是說它這裏面已經裏面持續時間已經結束了我們可以直接把它給刪掉直接把它和歸檔掉就可以了對如果您想是每隔多久去持續多久持續這樣的一個後面實驗的話或者是這樣一個網絡步驟的話可以用Schedule這樣的一個對象的一種方式去創建這樣一個互動實驗這很簡單的一個demo同時我們也可以使用Workflow比如說去創建這樣一個並行任務或者創新任務然後都可以然後回到這裏就是說整一個互動實驗或者是整一個互動工程整一個領域還是比較新的然後還是一個處於一個快速發展的階段我們整一個Calsmatch也是比較非常年輕的一個項目如果我們比較感興趣或者是在使用過程中遇到了任何問題都可以比如說在我們的Gate of Rebels上去提倡的E-SOUL或者是直接提倡的一個PR都可以或者是在Slock上CNCF這樣的一個Slock裏面去找到一個ProjectCalsmatch這樣的一個Channel然後去把你的問題或者是你的想法發送到Channel裏一起去討論或者是關注follow我們的一個Twitter或者是這樣的一個Channel都可以OK非常感謝然後我的分享到此結束謝謝