亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Docker技術淺談:私有化部署的優(yōu)勢以及在頂象內(nèi)部的應用實踐

andong777 / 807人閱讀

摘要:本文主要和大家分享下容器技術和頂象風控系統(tǒng)私有化部署的優(yōu)勢以及容器技術在頂象內(nèi)部的應用實踐。容器技術在頂象內(nèi)部的應用目前容器技術已在頂象內(nèi)部大規(guī)模推行,所有應用均通過容器實現(xiàn)部署交付與更新。

頂象全景式業(yè)務安全風控體系基于新一代風控體系構建,并采用Docker技術進行私有云和公有云部署。本文主要和大家分享下Docker容器技術和頂象風控系統(tǒng)私有化部署的優(yōu)勢以及Docker容器技術在頂象內(nèi)部的應用實踐。

Docker容器技術概述

Docker是一個開源的容器引擎,Docke是以Docker容器為資源分割和調(diào)度的基本單位,封裝軟件的運行時環(huán)境,用于快速構建、發(fā)布、運行分布式應用的平臺。

Docker容器本質(zhì)上是宿主機上的進程,通過namespace實現(xiàn)資源隔離,通過cgroups實現(xiàn)資源限制,通過寫時復制(copy-on-write)實現(xiàn)高效的文件操作。容器是應用程序?qū)拥囊粋€抽象,將代碼和依賴關系打包在一起。 多個容器可以在同一臺機器上運行,并與其他容器共享操作系統(tǒng)內(nèi)核,每個容器在用戶空間中作為孤立進程運行。


圖自官網(wǎng)

Docker引擎包含Docker守護進程(Docker daemon,dockerd 命令)、REST API和Docker客戶端(docker 命令)。Docker采用 C/S架構,Docker客戶端與Docker守護進程通信,Docker守護進程負責構建,運行和分發(fā)Docker容器。 Docker客戶端和守護進程可以在同一個系統(tǒng)上運行,也可以將Docker客戶端連接到遠程的Docker守護進程。 Docker客戶端和守護進程使用REST API通過UNIX套接字或網(wǎng)絡接口進行通信。Docker容器基于開放標準,可運行在所有主要Linux發(fā)行版,Microsoft Windows以及包括虛擬機,裸機和云上的任何基礎架構上。

技術優(yōu)勢

Docker能夠?qū)贸绦蚺c基礎架構分離,從而可以快速交付軟件。使用Docker,可以像管理應用程序一樣管理基礎架構。宿主機不需要去關心某一個容器運行所需要的依賴,只要它可以運行Docker,那么它就可以運行所有的Docker容器,容器將軟件與其周圍環(huán)境隔離開來,并有助于減少在同一基礎架構上運行不同軟件的團隊之間的沖突。

Docker容器實現(xiàn)了應用環(huán)境的標準化,我們可以為不同應用、及其不同的版本制作各自的鏡像,實現(xiàn)持續(xù)集成、應用的快速交付、應用快速更新與回滾。Docker的鏡像存儲采用分層的形式,不同的 Docker 容器共享一些基礎的文件系統(tǒng)層,同時再加上自己獨有的改動層,大大提高了存儲的效率,通過合理的鏡像構建方式,鏡像所需的存儲空間并不會隨著鏡像的數(shù)量而線性增長。在Docker的官方鏡像倉庫Docker Hub上,我們能找到100,000+的鏡像,經(jīng)鏡像倉庫的統(tǒng)一管理,我們只需要pull其鏡像,然后通過run命令就可以快速搭建起所需的環(huán)境、部署應用。而基于Docker提供的Dockerfile,我們可以在基礎鏡像上自由地構建自己所需的鏡像。

相較于以往的基于虛擬機部署,Docker容器更加輕量化并具備可移植性,并且不需要考慮外部的依賴問題,就像Java “Write once,run anywhere”的特性一樣,JVM屏蔽了不同平臺的差異性,而Docker所提出的 “Build once,Run anywhere,Configure once,Run anything”體現(xiàn)了其更加便捷、部署成本更低的特性,不僅能夠有效屏蔽操作系統(tǒng)之間的差異,對于混合部署又能夠屏蔽其他應用可能出現(xiàn)的影響,間接保證了應用的高可用,提高了資源的利用率。

Docker容器編排與集群管理

當Docker容器逐漸增多,應用的依賴關系變得復雜,依賴需要多個組件時,就可以使用Docker容器的編排。編排是一個廣義的概念,它是指容器調(diào)度、集群管理和可能其他主機供應配置。為此,Docker提供了容器集群快速編排的Compose與Swarm工具。Compose是定義、運行多容器、多服務和Swarm集群配置的應用編排程序(Define application stacks built using multiple containers, services, and swarm configurations.),使用YAML文件來配置應用程序的服務,然后通過命令創(chuàng)建并啟動配置中所有服務,實現(xiàn)快速部署。

當應用被擴展到多臺宿主機,管理每個宿主系統(tǒng)和抽象化底層平臺的復雜性變得更有挑戰(zhàn)。Swarm作為容器集群的管理工具,可以很容易地部署跨主機的容器集群服務,Compose本身不支持跨主機管理容器,因為它的實現(xiàn)中只能連接一個docker client。Swarm把多個主機的docker engine集群抽象成一個虛擬的Docker主機。

在集群中一個應用或者組件發(fā)現(xiàn)其運行環(huán)境以及其它應用或組件的信息通過服務發(fā)現(xiàn)實現(xiàn),通常是key/value存儲,例如Consul、Etcd、ZooKeeper等。Docker1.12及之后的版本已內(nèi)置SwarmKit,這是一個Swarm的升級項目,在SwarmKit中內(nèi)置key/value存儲,通過構建Swarm集群,在上面就可以把任務負載到不同的機器上。Swarm集群中,節(jié)點有兩種角色,manager和worker。manager節(jié)點通過實現(xiàn)Raft一致性算法來管理全局的集群狀態(tài),再配合Compose YML V3的語法可以方便對所有應用的配置管理,高效實現(xiàn)跨主機的容器編排與集群管理。

頂象風控系統(tǒng)的私有部署,除了考慮業(yè)務和用戶數(shù)據(jù)的安全問題,還考慮了基礎設施的依賴和隔離、快速部署交付、更新等,保證所有組件和服務都可快速的彈性擴容,既滿足小范圍的測試與業(yè)務起步階段,也可以動態(tài)擴容適應業(yè)務發(fā)展,實現(xiàn)高QPS的支撐。

Docker容器技術在頂象內(nèi)部的應用

目前Docker容器技術已在頂象內(nèi)部大規(guī)模推行,所有應用均通過Docker容器實現(xiàn)部署、交付與更新。在此列舉幾個簡單的實踐例子:

1、在一個Docker容器中,通常我們只運行一個應用,當使用容器編排時,不同應用的啟動時間不同,同時耗費的時間又會與機器的性能有關,在docker-compose的YML文件中, depends_on, links等參數(shù)可以控制服務的啟動順序,但是實際上并不知道容器內(nèi)的應用是否完成啟動,當一個服務必須要依賴另一個服務時就需要控制它們之間容器啟動的時間間隔,或者在啟動應用的命令中預留等待的時間,也可以對兩個服務分別編排啟動。

2、Compose在鏡像的制作上也很方便,YML中提供了build參數(shù)用于指定Dockerfile的路徑,image參數(shù)指定鏡像的名稱,docker-compose提供了build、push、images等命令可以為所有的應用批量制作鏡像,或指定service名稱,為單個服務制作鏡像。同時YML支持環(huán)境變量,通過Linux export命令設置環(huán)境變量可以動態(tài)地調(diào)整參數(shù),而docker-compose config命令則可以檢查YML文件的正確性、預覽最終的文件內(nèi)容。

3、Docker容器日志輸出的是控制臺的日志,保存在/var/lib/docker/containers下以容器ID命名的目錄中,在大多數(shù)情況下,我們只需要將必要的日志內(nèi)容輸出到文件中,再掛載到宿主機,對此可以屏蔽一些輸出到控制臺的日志以減小磁盤空間的占用,同時docker run提供了參數(shù) --log-opt 可以用于控制日志大小,在Compose中則有l(wèi)ogging max-size相關參數(shù)。

4、Docker提供了bridge、host、overlay、container等網(wǎng)絡模式,在實際的使用中經(jīng)常會有跨主機容器訪問通信的場景,選擇不同的網(wǎng)絡模式、合理分配應用的部署可以提高應用的性能。

5、通過Jenkins搭建持續(xù)集成環(huán)境,自動構建代碼,可以快速把應用打包成鏡像并自動部署,將構建結果發(fā)送到Sonar, 展示單測覆蓋率,代碼基本bug檢測,并把失敗的構建以郵件方式通知相關的開發(fā)人員,對需要發(fā)布的鏡像推送到鏡像倉庫?;贒ocker私有倉庫,應用的發(fā)布更新從倉庫中獲取鏡像分發(fā),對不同版本的容器區(qū)別命名,保留舊版本容器方便及時回滾。

更多業(yè)務安全類的技術分享,請關注頂象官方博客:https://www.dingxiang-inc.com...

文章版權歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/27112.html

相關文章

  • 視頻私有云實戰(zhàn):基于 Docker 構建點播私有云平臺

    摘要:本篇文章將會結合網(wǎng)易云信的實踐經(jīng)驗,以全局概述的方式帶大家認識點播私有化平臺構建的整體架構面貌。基于構建點播私有云平臺在具有以上優(yōu)勢的同時,還具備資源彈性管理監(jiān)控完善部署簡易自動化維護等特性?;跇嫿ㄆ脚_,能夠自由管理創(chuàng)建云主機。 私有云是為一個客戶單獨使用而構建的,因而提供對數(shù)據(jù)、安全性和服務質(zhì)量的最有效控制。前置條件是客戶擁有基礎設施,并可以使用基礎設施在其上部署應用程序。其核心屬...

    MadPecker 評論0 收藏0
  • 視頻私有云實戰(zhàn):基于 Docker 構建點播私有云平臺

    摘要:本篇文章將會結合網(wǎng)易云信的實踐經(jīng)驗,以全局概述的方式帶大家認識點播私有化平臺構建的整體架構面貌。基于構建點播私有云平臺在具有以上優(yōu)勢的同時,還具備資源彈性管理監(jiān)控完善部署簡易自動化維護等特性?;跇嫿ㄆ脚_,能夠自由管理創(chuàng)建云主機。 私有云是為一個客戶單獨使用而構建的,因而提供對數(shù)據(jù)、安全性和服務質(zhì)量的最有效控制。前置條件是客戶擁有基礎設施,并可以使用基礎設施在其上部署應用程序。其核心屬...

    jkyin 評論0 收藏0
  • 曾金龍:迅雷云Docker開發(fā)實踐

    摘要:問能否談一下迅雷云使用的過程其實最初的時候,迅雷團隊對是懷有謹慎的態(tài)度的。三調(diào)度算法是迅雷云定制優(yōu)化的。迅雷在使用這方面一直沒有把數(shù)據(jù)層面交給迅雷云之外的系統(tǒng)。 非商業(yè)轉(zhuǎn)載請注明作譯者、出處,并保留本文的原始鏈接:http://www.ituring.com.cn/article/201256 曾金龍就職于迅雷網(wǎng)絡,是國內(nèi)覆蓋面最廣的迅雷P2P引擎核心研發(fā)成員。他畢業(yè)于中山大...

    iflove 評論0 收藏0
  • 優(yōu)勢+工具+實踐=DevOps&Docker企業(yè)級落地

    摘要:的設計模式的設計模式以持續(xù)集成持續(xù)測試持續(xù)交付和持續(xù)部署為中心,自動化協(xié)作和持續(xù)監(jiān)控是中使用的一些其他設計模式。持續(xù)集成持續(xù)集成是不斷地將源代碼集成到一個新的構建或發(fā)布的過程,源代碼可以在本地存儲中,也可以在或中。 showImg(https://segmentfault.com/img/remote/1460000010452455); 識別二維碼報名活動 8月19日,來自微軟、數(shù)人...

    stormjun 評論0 收藏0

發(fā)表評論

0條評論

andong777

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<