然後,然後,the title is,那個不好意思,那個 title就是Unified Containerizer然後,是我們推定的一種方式,在你的生產環境中輪到會 Container然後,就是,整個talk的那個,大概情況就是說,我先會講一下那個Messos裡面怎麼做container,然後在,在,在,然後在那個深入的講一下Unified Containerizer是怎麼work,然後,包括開一些architecture然後,怎麼,怎麼支持多種那個,接下來的就是,怎麼支持網絡,怎麼支持存儲安全方面的一些特性,然後,怎麼施加與自定的一些拓展然後,最後那個,可能我skip了,因為明天有一個Skinno是這樣,那個,怎麼,怎麼支持那個Stick Container所以我就,最後一個就不講了然後,這就是Messos的一個整個architecture你可以看到就是說,可能有些人已經比較熟悉了然後,對於那些不熟悉的人可以,可以想看就是說,整個cluster裡面有多個Messos Master,可能三到五個Messos Master然後,每個機器上有一個Messos Agent而已然後,Agent會跟那個e-master去,去做那些resource然後,Agent跟container之間有個container叫containerizercontainerizer的功能其實非常簡單,就是說它就是,在那個Agent跟container之間的一個container然後,它負責啟動更新和小規容器然後,也包括提供那些容器之間的隔離加上,它會規保一些容器的狀態,或者是那種統計信息然後,這就是大概一個架構,其實我去想就是說containerizer是一種一個container agent然後,它是所有Messos,你要跟容器相關的那些槽子都要經過containerizer這個component然後,現在其實Messos,它是支持兩種containerizer就一種叫Doccontainerizer,一種叫MessoscontainerizerDoccontainerizer,它其實就是把所有跟容器相關的工作去不交給Doccontainerizer來處理比如說,你要啟動或下回一個容器就告訴Doccontainerizer,幫你啟動Doccon run或Doccon stop然後,另一種方式是Messoscontainerizer然後,其實這個是很在代的問題Doccontainerizer要久了因為呢,對到Messos寫的時候,它沒有Doc存在所以說,最早開始我們寫Messoscontainerizer就是說用一些標準的,連接上的一些feature比如說,Z-groups或Z-space然後,我們那個Messoscontainerizer架構是一個moveable architecture比如說,可以做任何的拓展和延伸然後,其實你發現,其實有兩種containerizer其實在大的production,那個懷孕中Messoscontainerizer是用的比較多的比如說,Apple to的,它們都是用Messoscontainerizer它其實是有一定的原因的待會兒我會講到然後,最近我們做了一個工作就是說,在Messoscontainerizer裡面我們加了那個Docker進向,act進向或者說,OCI進向那邊,賬清在那邊然後,我們就在做這件事情就是說,我們加了這些進向的支持也就是說,你可以支持你用Messoscontainerizer使用一個Docker的進向然後,沒有任何Docker進向自己比如說,你不需要在你的機器上裝Docker進向也可以讓你的Docker進向這個然後,因為這個原因所以我們把Messoscontainerizer上一步就是改原了一下因為我們想讓它體現出它可以handle很多container image所以就把Messoscontainerizer變成了叫做Unified Containerizer就是那個名字由來的原因然後,想簡單講一下為什麼我們要做Unified Containerizer其實,有很多原因所以,其實是其中一部分原因然後,我已經失戀了其中四條就是說,一個原因是因為每天兩個containerizer就比較麻煩因為有個必取夾心我們就要去更新兩個containerizer然後,還有一些Docker我會繼續講到Docker的問題然後,還有其實我們想支持多種進向格是因為Docker太支持Docker太本身一種進向格然後,我們可能需要支持其他另外一些進向格比如說OCI所以說,不能直接relineDocker第一門來做一件事情然後,還有一些原因就是我們要加拓展因為有些拓展我會講到為什麼我們這些拓展沒辦法用Docker第一門來做然後,這是我前面講的第一條為什麼我們要做Unified Containerizer第一個原因就是說,每天兩個containerizer其實是一件很痛苦的事情就比如說,每當你加一個新的feature比如說GPU,PersistentVolume,那些feature的話你只要去更新兩個containerizer然後,這就會導致很多的那個重複的代碼然後,重複代碼它意味著就是你的複雜性的身高然後,就變得比較難去maintain然後,有些情況下你會發現你有兩個containerizer的時候你有些resource比如說,是一件全聚的資源的話你需要兩個containerizer之間去協調然後,那就比較難做比如說GPU或比如說,有些網絡上面的一些資源的話,是全聚的你不能說,一個containerizer有Full control所以說,製作這些coordination就是一件很麻煩的事情然後,第二個我講的原因就是說,敵們其實才有很多問題你看,這些特異詞就是我從網上直接拉下來就是說,很多比如說,Coordination那個containerizer那些人都對Docker敵們的穩定性有大規控所以說,這邊有人就說比如說,我們要FolkDocker敵人或者說,這邊有一天hack news channel那天衝得很高一篇文章就說了為什麼那個補達生裡面碰到了Docker敵們的問題所以說,你可以去查一下就是網上還有很多然後還會中文翻譯一些那個article來說那個Docker敵們的問題所以說,我們其實經驗的話就是說我們跟客戶很多經驗來累積一下就是說,其實我們很多時候我們support的要support的問題不是每次要錯dcOS本身的一些問題而是Docker敵人的穩定性的問題然後還有一個原因為什麼要做impact containerize其實是因為我們要支持多種鏡像格式不只是Docker鏡像格式我們要比如說我們要支持OCI然後我們要支持FC然後就是那種其他的鏡像格式還有鏡像格式叫CMFS然後因為這個是我在今年那個Misocom北美的時候給了一個talk關於這個鏡像格式然後這個鏡像格式PAPA也會有一個demo就是這個鏡像格式是一個比較好的鏡像格式因為呢Docker image有個問題就是說你你那個registry是在一個centralized location然後當你比如說你進行那個規模比較大的時候你比如說有一萬談load或幾千談load然後你同時要從一個registry鋪一個image的時候你會發現你最後的那個瓶頸其實是在你的網絡上面然後因為比如說你以前還是從事補儀機的網絡你那個路由系或者是所有的系統都有承受不了然後然後CMFS的好處其實你的application它本身雖然說你那個Docker鏡像可能是遺跡但是你實際上用到那些dibrary或那些application binary可能只有幾十兆然後你為什麼需要去把那個遺跡都下載下來呢然後CMFS的做法就是說直到你要用到那些dibrary或binary的時候你才會去下的那些data然後其他你沒有touch到的那些法你都不會去下的所以會解決一部分就是部分解決那個register的問題然後然後還有其實一些影響格是我們想比如說就是其實很常用的一個功能比如說比如說我要用一個java的application我的dipendency只有這邊我只有這邊一個dipendency然後我有寫jar然後我不知道有任何其他dipendency然後這種情況下我就沒必要所以直接說我用host file system因為我唯一dipendency就是一個jvenm然後已經在裝在host file system上面了然後我就把這個jar從某個district file system扶下來比如說hdfs或者在cloud裡面be s3那種然後然後你會發現其實host file systemTarantjar是用的最常用的一種image格是就是說在production裡面用的最常用的比如說推的apple其實都沒有用比如說他們就是用host fileTarantjar就是一個image distribution的問題然後你可以dip into the image都沒有問題然後最後我想講為什麼我們要作為unit pack containerRigel的原因是因為我們想支持那種拓展和和和和就是說比如說dop.e它只是比如說只有部分的東西可以拓展比如說網絡和存儲網絡它是用Lib network然後start可能是用dop.org然後但是其實沒錯是要支持的不止這些沒錯是要支持更多的東西可以被拓展比如說我要做disk quota enforcement我要保證我那個task不用到它比如說申請了4G的disk它只能用4G不能超過用4G然後還有一些security extension比如說我要scan所有那個container裡面的disk去保證它那邊沒有那個安全漏洞所以也需要對那個containerization那個technology做 extension然後這個就是還有很多其他的就是說不單單只是高科支持這些然後往高科裡面加一些 extension不是那麼容易的一件事情所以說下面我們是從4號會議具體講那個Unified Containerizer的具體架構然後我們是怎麼樣 support在開始之前可能就是在重複裡面早上11點半的一個小調查就是說在座因為現在在座好多同學都不一樣然後有多少位就是使用Docodemon在Conduction裡面的進去一下說好嗎然後那有多少位是使用就是Macer在Conduction裡面然後那有多少位在座的是聽說Unified Containerizer就是我們實際上Unified Containerizer是Macer 0.28的時候就有了那大概是在2月份2月裡的時候我們的0.28 release我們nounced就是一個experimental version然後我們後來在1點裡的時候我們加了好多beach包括以前的一些CN-9的beach然後包括Docodemon的beach然後回到這個主題上就是Unified Containerizer就是我們它是一個我們之所以剛才允潔講的所有的就是我們做它的原因然後我們現在可以開始看一看它大概的架構然後這個Unified Containerizer就剛才允潔介紹的它是based on原來的Macer Containerizer然後Macer Containerizer它有一個很好的架構然後它是就是它能保證它是potable然後它能方便的用各種用各種不同需求的用戶然後所以說在生產上它是絕對適合而且輕量而且螢光站的然後大家來看一看在Unified Containerizer裡面它主要有三大組件首先是launcher然後現在有sangle launchercoxy launcherlainix launcher還有bindle launcher然後它是負責就是管理進程的管理整一個進程的life cycle然後還有其次isolator然後isolator現在Macer裡面大概有將近20個甚至20多個原生的isolator然後不同的用戶它們都可以就是開它自己不同的isolator多快然後進行不同的功能不同需求的功能然後它實際上它的作用就是continent lifecycle book然後它可以根據continent不同不同過程在一個continent它起之前起在它的run time在它起之後都能有不同的操作所以說它是一個很方便的架構去進行一些 extension然後provisioner這是我們在介紹unified containerizer專門家的一個 component然後provisioner它是專門負責就是image provisioning就是好比說就是一個 docker你想要有一個 docker image但是你想要運行它同時使用 docker demon然後你就需要先把它給鋪下來先把它給 batch 下來然後provisioner在 batch 下來之後都在等地有這樣一個 image你需要把它通過不同的 backhand我們有 copy backhand我們有overlay fsfs backhand然後我們有mail fs backhand然後根據不同的 backhand把它拿到特定的位置然後就是我們的 container就是containeroverlay fs所在的地方對這實際上就是一個 launcher 的 detaillauncher它就是專門負責進程的管理剛才提到的然後它主要的主要的那個責任就是在於它需要去 spawn一個又一個的 container然後它需要就是負責去 queue container而為 container就是說如果有任何時候想要就是 queue 一個 container發揮 send一個 queue的 send 路過去然後呢一個 send queue然後呢這個 container 進程給它給 queue 掉或者是就是當一個 containerterminate 的時候它會 waitwaitfor the exit statusof the container然後就是帶著 container 結束或者是container遇到什麼情況中途掛掉它也會exit code然後我們現在剛才提到的就是我們這個 sender supportthe launcher然後我們現在選擇 launcher的情況就是我們有一個 agent crack你可以通過 the agent crack選擇你需要的 launcher然後呢當你沒有 specific agent crack的時候會根據你的你的機器你的 host 的機器自動的選擇合適的 launcher 名好於說你是用 Ubuntu它是一個 Linux OS它會選擇 Linux launcher然後同時這時候IsolatorIsolation 上面它會就會選擇到你所應該需要的CPU Isolator然後進行CPU上的CPU memory的 Isolation這個就是這個是我們實際上是我們這個Isolator其實 Isolator在每一種層面是一個很重要的一個部分然後各種的各樣不同的公司根據他們所不同的需求都會開發很多很多Isolator的破壞然後這就是為什麼我們會說Mazos 是一個Extendable一個很容易進行Cosmization的原因然後大家可以一起看一下這是在那個什麼在這個Isolator這個 interface 裡面首先是 prepareprepare 他說進行他說進行的事情就是container launch 之前他可以就是把這個container所需要的任何需要做的準備工作譬如說by mount a warrior把一個捲挂載到你的container的一個特定的位置或者是還有一些其他的一些譬如說你要需要找到一些特定的configuration他都可以在prepare 裡面Isolator的prepare 裡面進行實現然後post launch就是在無論你是就是我們就是container然後就是無論是在prepare還是chosen compact我們都可以進行Isolator 操作然後Isolator就是去進行各種資源的那個合理然後包括在那個Isolator一個又一個的Isolator在我們container就是like cycle 結束terminate 的時候我們需要進行print out譬如說你有一些 metadata在你的一些路徑裡面需要把它進行清除好比說你有一些掛載然後你先前在prepare 裡面迷路的時候你的那個print out它是有責任去把它按mount調的這樣子它也沒保證Post mount cable不會被Isolator然後還有其次的就是resource update這個是也是一個很重要的一個interface在Isolator 裡面如果我們用到Isolator那個CPUmemory它都會它都是屬於resources然後我們當你變換了一些pass的時候In the new resourceresources可能會變換我們需要換到update去把這resourceupdate 了然後resource combination rich就是我們當我們用watch的是watch就是它和update有點像就是說我們需要去去監控它這個resources它是怎麼樣進行變換然後這個是個很其次是有recover就是說Mazos有一個特點就是說recover你的那個它平常任何時候都有可能掛掉無論是由於那個application的責任還是由於機器的責任包括Agent也有可能掛掉所以說Mazos的一個很大的特點就是說它是recoverable的當你任何時候掛掉的時候你都能把這個重新把Mazos重啟起來所以你是可以找到原先的狀態然後能繼續你原先的工作所以說這recover就是保證你這個isolator在掛掉的時候可以很快的重新之後可以繼續正常的進行工作然後就是對那個statistic跟status進行報告這個的話是一個例子就是說對於這個single isolation從launch開始它是如何對如何對那個如何對這個container解析然後首先是大家看到就是這個isolator它會launch infolaunch info它是一個它就會它就會一個single然後這個container然後那個hire watch裡面裡面有一個single是專屬於這個container然後launch就會可以一個superset一個superset然後這個superset是專屬於container的superset然後這時候它就會brock用通過一個派把這個containerbrock去然後讓它親自繼續往下走然後這時候isolator是任何的isolator因為這是在創建的這個superset之後它會有一個pidpid會把它推回來然後它就會通過這個pid進行不同的isolate操作然後好比說在memoryisolator裡面它就會把這個pid移到這個memory sql裡面然後然後當這個isolateisolate完成了之後它會直接set一個signal讓這個container繼續自行安排自行的comment然後這就是unbrock之後的exit然後我們可以在這裏拍的過一下就是實際上這是有兩個進程然後我們在mesos裡面agency of assessagent當它需要就是發起一個新的task到sql的時候它可能會就是它就會call到這個increase the updateincrease the update它就會change這個signal在這個signal裡面就是它memory的一些設定好比說這個limit invites然後這個task就是傳送到這個sql的裏面然後這個是這個是在這個container結束的時候然後它會就是agency of assess它會set一個就是我需要destroy這個container然後呢for the future task然後結束它就會call到這個continuizer然後continuizercall到這個sql的裏面然後去根據不同的需求去放這些殘留的任何東西無論是mum開始很賤給它清理乾淨然後這個就是我們有的sql大家可以看看我可以迅速的把這個功能給貨一遍然後sql這個是最近我們把sql做了一個把sql主要是好處和賺錢兩個非常非常宿舍的committer賺錢的然後它好處就是在於就是通過一個的sql然後有不同的subsist無論是CPU還是那個memory或者是未來我們可能會有Roc.io它都可以很記憶能加到sql這個就是我們現在有兩個一個是inu它可以就是監控這個這個usage然後另外一個是xfs通過的蘋果蘋果在用BioSystem Isolated然後主要是有這個Positive Isolated還有這個Linux Isolated然後如果是用到unified這個房間的BioSystem Linux Isolated是一個美好的選項因為它基於dance-based這個Volume Isolated就是一個dockerVolume Isolated它提供的是一個外部儲存今天早上一個town11點半的時候GPU Isolated現在我們有cniisolated然後是彰遷還有語解主要貢獻出來的然後pop-backisolated是以前的一個往後的建築方案它都是它都是現在在mysosrepo裡面的然後GPU Isolated現在是就是它是大概半年前的時候做出來它是支持mysoscontinuizer就是supportimedia的GPU然後現在它應該是就是在這一個月它支持noncontinuizer現在同時有一個在旁邊在隔壁在講這個然後我們還有mysosisolated就是提供給每一個很明顯的提供pdance-based然後POWcniisolated那個隔離然後在mysosisolated裡面我們現在有mysolated去解釋這些安全上的一些加上一些安全上的一些可學的操作都我們聽過開的規則這個continuizer就是一開始說到就是可以就是通過一個最不同的dogger image然後我們把它run在mysos上面完全不依賴於DogDemon好相對應的我們也支持hd image然後我們完全可以不依賴於他們的rocking所以說mysos可以就是支持各種各樣的不同的continuizer在mysos上面然後你可以有可以控制這一個continuizer那它好處在於就是說我們沒有了一個dependency然後不依賴於DogDemonDogDemon的話它可能在我的坑在座剛才舉手的有部分就是有部分舉手的就是使用DogDemon在分大水上相信你們也遇到了一些DogDemon的話它可能有一些問題就是說它中間可能會hand住譬如說DogDemon is dead的時候有時候可能會hand住然後有時候DogDemon的話會沒有原因的掛掉或者是沒有原因的導致導致你機器的重啟然後DogDemon還有一個問題就是它有可能會bripping就是說它有時候它有好多各種各樣的掛載電譬如說MountMNTSensationMount那些掛載電當地的掛載電被佔用的時候它不斷的重啟這些都是DogDemon潛在的一些問題然後我們就是做這個UmbiPro它就是完全擺脫DogDemon的依賴AgentRestaurantRestaurantRestaurant然後這個我剛才提到就是就是和重啟的Mazos它就是因為擺脫了DogDemon然後呢DogDemon在重啟上它會有時候它會lost everything然後所以說當你沒有了這個Demon然後反正是依賴MazosConditizer你在Mazos一個container的時候你可以繼續這個container之前是以前已有的工作然後這些也是也是我們當時做的一些運動剛才我們都有提到就是說將長不同的ISA將長不同的加上各種各樣不同的expansion這個是剛才的一個列表以前提到過就是來使用各種各樣的image format對所以剛才都提到過然後對現在是Permission我們可以做一下PermissionPermission也是一個很重要的組件在Unified CountryDriser裡面然後剛才提到的就是它有一個store然後呢它支持不各種各樣的不同的image我們有Docker storeFZ store然後它也會有將前FCI store都支持各種各樣的image然後Backhand剛才提到的還有Flybackhand還有AUFSbackhand然後呢在生產上我們會強烈建議大家會使用OverlayFSbackhand因為有一些大公司他們的一些鏡像可能會五Gigabyte七Gigabyte甚至十幾Gigabyte然後呢如果你Copybackhand的話它是一個特別它為了一個宣傳它可能需要花好長時間然後暫時好長好大的空間然後呢去進行Copy然後這時候我們就可以使用到這個Linux的一些比較新LinuxVersion的一些OverlayFS應該是4.3還是4.4的方法記得Store的話Store的話然後它是非常延遲的然後我們有各種各樣的Store它可以作為一個模塊在中間Noiser然後現在我們有兩個StoreDockerFZ然後呢它是CopyCustomization的就是說我們Version它可以作為一個Module然後呢用作可以根據不同的需要寫它們各種各樣的Version所以好比說當你需要需要鋪一些image的時候同時鋪幾千台機器去同時鋪一個Docker image或者是什麼image你可以加一些自己的好比說P2P的一些Linux的去implementVersion然後呢它們可以去以有的image可以減少一些網絡上的一些負擔接下來是這個對還有一個這個demo就是先過還有後面還有一個然後現在這個是一個continent network這次CNI然後有賬錢預見還有那個還有Ivanish那年前左右寫出來的它是一個很重要的一個通案對於Unified Continuization它主要就是CNI它是一個寫寫然後我們來寫它是一個寫寫就是對於continent networking然後有好多人不同各種各樣的network window就好比說那個Telecom好比說應該在後面都有IPP then還有Friendles它們都會有各種各樣for this module對於CNI所以說它可以很簡單翻位的使用起來能不能使用在SV的人簡單它就是一個然後通過dash-isolationnetwork-CNI就可以使用起來然後我們都有很充足的充分的一個documentation在Masters的主頁上可以這個去看一看就這個covered up然後為什麼我們會選擇CNI就是我們當時所面臨的選擇就是說Docker它的網絡解決它是有Docker的CNIcontinent network應該是module吧對吧然後然後那個當時的話它是因為CNI它是更加簡單更加少了一些依賴對於其他出現的依賴所以說我們當時沒有選擇Docker這個包括Docker他們自己內部也是存在CNI是比CNI更加清潔的一個解決方案然後然後同時CNI它是被Governet使用的然後它有很多的project來自於不同的那個network window包括calico他們都有好多好多的project寫給CNI所以說用CNI就是一個很快速的一個解決方案吧然後它還有一個特別明瞭的一個separationYou can do acontinent就是說它可以把continent然後還有它的網絡的管理完全的給分隔開來作為一個橋樑去支持一個去提供一個continent的一個網絡解決方案然後ipad也有它自己的fogable interface這是這是這是有的這個CNI然後在在CNI的那個github repo裡面都有提到所以說大家可以這個去看然後整天快樂就是這是一個CNI isolated如何去支持一個continent的一個例子也是跟那個memory isolated有點像就是它是一樣的就是co-isolatedprepared然後它會它會把這些它會把這些告訴這個runch然後它去你要去可以一個triple sets然後我們去它的包含一些netUTSnet space都去create這些net space然後給這個CNI然後然後這CNI然後lunch會fog一個support sets所有的它的support sets也會一樣的跟那個memory isolated一樣會被fog在這拍上面然後這時候這個CNI isolated它就會fog isolated然後然後把它根據這個efog出來的這個pick然後去isolate它就一個network isolation然後然後這個就會create一個network space出來然後給這個slayer然後張前應該是在今天還是明天會有一個張的CNI的討論大家可以參加那個討論去關注一些更多的detail這個也是告訴就是一個很簡單的故事告訴大家就是說當你terminate這時候會讓他們多去把該清理的這個是一個storage就是今天早上其實已經介紹過了大概十一點等的時候所以就不想記得他說這是一個security feature然後也會有還有那個不簡單可以在另外一個talk在旁邊的room裡面會講到這個security feature主要是talk就是link capability然後set call還有就是net space的一些未來計劃都會講到這些都是關於勇氣安全的對這些都講到了就是launch isolation provision特別的作用和他們主要的功能這個的話明天就是有一個kino去將他們談到這個nest become kino還有pass group這些最新的message feature就是說我們今天就不細說了對然後這個nest container support明天早上kino會具體講到底是怎麼做的然後就highlight這個feature然後我就具體講它的那個highlight feature就是說你可以任意陳述的nesting也就是說最後的限制你可以做到32層英文就是一個32是一個current limitation然後然後它它可以跟前面Gilbert講到所有一些isolatorcomposed就是你可以reuse所有一些isolator然後然後還允許就比如說像couple nice那個pull它其實就是Static就說你你可以放一個pull stack然後裡面有兩個container然後你就沒把再create一個新的containerdynamic link然後這個feature你發現我要輪一個backup job我要載上一個新的container在那個pull的裡面你可以是其實在每一次你可以做這些事情你不是要去重新create一個新的pull來做這些事情然後我今天會具體講到這些是怎麼實現的然後這些就是game然後主要是為了給你們看一個demo然後你好能夠放下一個demo因為本來想做的dynamo然後想然後這邊它那個mac所以只能把demo錄下來然後講一下然後其實就是這樣就是說我先dynamo那個你可以放container然後我就是在common line裡面我就先寫一個先寫一個master然後寫完以後我當一個UI去看一下當一個UI去看一下就是在我那個vacuum boss然後你看一下然後就是然後Go back toUI那個ci然後就是我launchagent flag我specify一些Isolator比如說Boss SendingStalker然後這個image provider是dalker然後就把這個agent然後再到那個UI然後然後刷新一下你看到那個有一個agent然後agent然後然後再Go back然後去然後用mesos sql那個ci去launch一個container然後那個dalker image是redis然後用那個d for entry point然後就敲去gmail然後這裡是沒有任何dalkerd money involved所以所有東西都是mesos本身在處理你發現那個task已經在running狀態然後就到那句話再去看一遍然後你發現那個taskredis那個task你可以點去那個sandbox裡面去看一下他那個redis你search那個sql然後這個跟dalker其實是一樣你發現那個taskredis在那個反正就是darker你可以一個dalker譬如說redis就是我直接從dalker號碼鋪下來一個redis然後沒有任何dalker你們在在用解然後然後下面一個我想darker是一個CMFest譬如說其實除了dalker進行一種標準以外你還可以支持其他進行標準然後我在那個機器上裝了一個CMFest的server跟client然後我先先把那個CMFestserver起來然後然後我裝了一個裝了那個CMFestmesosphere.com下面然後我先看一下那個CMFest看自己的環存的那個那個size是多少然後先把那個環存清掉所以說他會環存一下環存清掉然後你可以看一下那個名字你可以看一下那個cash的size然後看一下cash的話然後這裡面什麼都沒有然後你再重新一下agent打那個imagebackhand切換成fine因為CMFest的話他們不需要用callback因為callback就是取它的意義了所以你把那個backhand切換成fine然後以後可以加一個auto就是我們會自動把你pick但是你一定要自己指定一個backhand叫fine然後去那個CMFestreport就是我裝在那個CMFestreport那個server裡面的寫法我裝那個5分2一個sshd然後我們要用那個5分2那個image然後你看就是正常一個5分2的一個景象我從那個到個號碼上拉下來然後然後就同樣用那個message有那個command然後你要指定的是那個CMFest那個image就是那個message journey然後然後然後然後然後這個東西就很快的反正是就沒有任何download那個5分2的其實還挺大然後你可以去那個那個sandbox裡面去看一眼就是那個智慶的結果就是上去就是把那個那個你可以通過那個命令行李再去看一下它到底開始了多少那個那個變子因為你桌子的一下LS的話它其實不需要用到很多那個鏡像裡面整個無本圖的鏡像然後這些就是整個無本圖鏡像裡LS用到那些Library然後其他那些Library都是沒有鋪下來的所以說這就是Diamond Street就是Message ContainerMessage Container這個這個這個功能就是比較extensible你可以自己可以用Docker你也可以自訂你也可以用CMFS你可以自訂一些鏡像然後CMFS可以幫你建立一些Registry Scalability的問題然後這就是我們Top然後下面就有時間留給有什麼問題可以問問還有Gillbird那就是說因為我們一直在在這個Docker地方有什麼差異嗎像長的那些Agent那些樣子什麼的沒想到畢竟其實也有些地方是有些東西關聯的對 這個你可以有很多解決方法一種是你如果你有Syndi你可以用Syndi進程的那些所以你的問題就是說你有一些其他一些守護進程你還是要人家給他Agent上然後你怎麼去玩那些進程然後有很多解決方法然後一種解決方法就是說你可以用Syndi去Launch那些比如說你OS本身有個Agent你可以通過那個來來去一直重新那些守護進程還有一種解決方法就是你可能在Message裡面你可以用Scheduling的方法然後Resert your resource保證每個Agent box上都有一些預留的空間然後可以讓你去通過Malware或一些進行的概率去寄那些守護進程就是因為你其實你不用擔心Agent掛掉因為Agent掛掉不會影響那些守護進程其實你只要寄那些守護進程還有就是我沒有考慮就是說Message會加一些就是一些feature比如說像我們那一次Demonstrate那種feature就是說別人說我不管你有多少Agent我一定要在每個Agent上有那些教然後那些Scheduling的守護進程然後我們夠其實就是說所有那些container最好都是Message你不需要有任何但container就是我們的想法當然現在就是Demonstrate那個feature還沒有在做但是你有考慮在做然後應該很快吧我覺得應該這個東西因為不是特別難然後然後現階段如果沒有Demonstrate的話一的可以說是預留一些空間然後通過Message上去調整一些那些container或者說你可以用SystemD的方式去寄那些守護進程還有什麼問題嗎大家儘管問問題然後不要當那個強保定對 這個綜合的Message想保證裡面所能在其他的Agent如果你想跟CoupleS整合的話有一種方法因為CoupleS也有一個interface叫container-retain interface就是一種解決方法你可以寫個Message的container-retain interface就是一種跟CoupleS整合的方法然後我們也選就是我們在在解釋這個綜合container-retain的時候它container-retain那個component是跟Agent其實不是強保護的它就是中間一層很clear interface以後要把那個container-retain原來能夠過離出來也是很容易的解釋還有問題還有一些其實還有問題嗎對 有很多方式就是我前面在那個talking中也有強調就是說就是有很多公司其實他們沒有有很多的影響就比如說java的話可能就是一個jar或者一個tar對吧然後因為在推的那時候我在推的工作的時候就是說他們沒有用down-to-container然後他們所有那些application的data都是存在hdfs然後Message當起一個container的時候它specify一個url而說這個是一個binary的url一個tar的url然後Messagefature會把它fature下來然後解壓然後就可以為你的convent這是一種比較skid的然後你就因為你hdfs是一個比如說那些或者說你用在cloud裡面你可以直接用s3這種都不用你自己去maintain所以這就是減輕了你去maintain一些docker registry的那些overhead然後當然如果你一定要用鏡像的話我前面講就是說你用其他的鏡像你可以自己就放一些怎麼去fetch的標準就比如說你可以說我fetch的鏡像我是hosts的s3裡面或者hdfs你可以寫fature來做這件事情所以這些都是比較比較可插的話的就是message的理念就是說我不定義我不想就是讓用我不想就是說message不想就是說讓用戶去做某件事情message是想說我支持所有那種可能的方式然後讓用戶自己去提到他想自己實現的方式然後是message本身會做的很多快化是的你可以做任意的口點這是我們那個對大家的理念還有什麼問題嗎想問一下就是slay 5升級的時候然後就是Unaffix創始會重啟不會重啟所以沒錯從一開始就是可能是0.10還是0.09的時候就開始支持Agent掛掉以後跟天然都不會重啟然後我們一直就是我覺得這是一個很重要的feature我們一直會用天然的feature然後其實就跟你說很有趣的件事情就是說最早在推的的時候我們做的最多的一件事情就是重啟master重啟agent一旦碰到bug的話我們就重啟master譬如說master memory用了它譬如說有memory leak的話就是重啟master沒有任何關係沒錯這就是說任何可能的pp被隨時殺掉然後重啟不會做出一些下面的人的一些困境這個其實就是跟到口口用的時候有一個很好的優秀對你好我有個問題那個我看到message說明應該是它不能用被系統比如說pagecache到page的一些memory那些messages是不能使用的它認為那些是被佔用的資源對吧你說pagecache就是沒錯本身沒有modelpagecache就是說但是cgroup會account那個pagecache usage如果你有cgroup memory那個cgroup的話你用的任何pagecache它其實會被算在你用的memory裡面然後如果你超過你的code比如說你說我申請了兩劑那你就可以cache超過兩劑的話可能會把你的那個cgroup memory還是類似的我可能沒有說清楚我的問題不好意思那我可能沒聽清楚就是說我們用那個free然後看到系統上的一些內存使用量然後那些內存有一部分是被buffer掉的或者說是被cache掉的就是被其他程序可能被保存到那個pagecache裡面然後這部分程序的話就是我覺得可能是它是可被利用的因為可以pagecache可以被jump掉那這些內存其實可以被利用的然後就是我現在看到Message認為這部分內存是不可以使用的你是啟動了你是啟動的時候你是自己指定那個buffer上面有多少memory還是還是你是每次自己detail多少memory啟動的時候參數就是沒有指定那就是每次它會自己去detail多少memory然後對這是一個問題但其實大公司很多都是它指定dash dash resource等於多少memory你不需要讓每次自己去detail自己detail的一個問題就是說如果memory那個size變掉或者disk size變掉的話那個message是會flash的所以說一個很好的practice就是說resourcedetail出來然後當你啟動研究的時候你把resource那個size fix然後就是一個就是我知道大部分公司都是這樣不過我們可以要不然交流一下然後我還是沒有特別明白你這個問題因為你靠那個對我們待會交流一下我沒有我沒有聽明白你的問題謝謝不好意思還有什麼問題嗎好