隨着公司業務的不斷迅速增加,使得管理複雜的IT基礎設施需求變得更爲艱難。解決應對這一複雜變幻的挑戰的最佳方法是讓開發團隊和運維團隊緊密協做,實現靈活應對。擁有一個DevOps專家團隊能夠實如今最少時間服務中斷的狀況下實現IT基礎設施的動態伸縮。linux
DevOps團隊執行各類任務, 如:docker
若是不使用正確的工具集來執行這些任務將會是一件即費時又費錢的事。某些DevOps工具須要巨大的投資, 而有一些卻很容易獲取,由於它們是開源。你能夠進行一個簡單的成本效益分析, 而後選擇一組工具, 幫助你解決當前應用場景下遇到的問題。shell
如下是7個頂級DevOps工具,將完全改變DevOps的將來。瀏覽器
容器能幫助結合應用程序及其依賴項封裝到一個包中,所以開發人員和系統管理員能夠放心的將應用程序運行在任何linux系統上,而無需擔憂系統環境和配置存在差別化。安全
近幾年,一個名叫DOCER的新容器技術得到了業界的青睞,許多DevOps專家和公司都在嘗試加快使用這一技術的步伐。許多公司正計劃着將他們的應用程序部署方式從虛擬機/物理服務器(VMs/Servers)切換爲容器化的部署方式。性能優化
使用Docker技術使你可以用容器化的技術建立、部署和運行應用程序。Docker和虛擬機(VM)有些類似,但有所不一樣,Docker依賴於Linux內核來和主機進行資源隔離。Docker使用命名空間,cgroup,LXC等內核功能實現容器資源和主機資源的隔離,從而提升了應用的性能、減小了應用的大小。服務器
Docker的日益普及歸因於這一事實,一些領先的組織在早期採用了這項技術,這裏有一些有趣的數據描述了Docker的快速普及狀況。微信
下面是使用Docker的一些利好:網絡
咱們全部的應用都有一個基礎的docker image,在很短的時間裏,咱們能夠很快地將它們部署到開發/staging/生產環境中,並對這些images進行更新和維護。Docker幫助咱們在多個docker容器裏對資源進行分配和簡單隔離,改善了咱們的構建管道,並讓咱們在構建自身過程當中運行完整的合理性測試。微信開發
這裏有一些有趣的數據描述了Jenkins的使用普及狀況。
Jenkins容許咱們使用其龐大的插件庫進行自定製,因此咱們使用它來進行完整的構建和部署。在Jenkins的幫助下,咱們實現了自動化加載測試環境。Jenkins從GIT版本中拉取最新的提交版本後,自動加載測試環境並執行加載測試。咱們也使用Jenkins來實現一鍵按需性能測試環境的搭建。
New Relic是一個很是著名的應用程序性能監測工具。它能獲取應用程序關鍵性的性能數據,如應用程序加載時間。使用New Relic你能夠監視你的應用程序在世界各地的響應時間以及一些核心的應用組件如關鍵事務、自定義錯誤記錄、外部服務調用和可伸縮性/負載分析等。
下面是使用New Relic提供的一些監測解決方案:
New Relic是應用性能監控市場的領導者,它能指出你應用程序中真正的痛點。
在過去的十年來,雲計算愈來愈被大幅地採用。雲服務再也不是一個簡單的存儲和檢索服務,而是一個運行完整的業務關鍵程序的有用技術。隨着雲計算的發展,大大增長了基礎設施和環境的複雜性,經過手動更新來管理整個應用程序堆棧和基礎設施變得再也不可行。做爲一個自動化(配置管理工具)平臺, Ansible容許你持續不斷地定義,創建和維護複雜的雲基礎設施。
下面是使用Ansible的一些利好:
Ansible容許咱們集中管理全部的變化。咱們也使用Ansible在EC2實例羣上安裝和更新軟件包,如apt-get update,docker, 漏洞檢測(shellshock 和 heartbleed)等。
儘管在配置管理領域,Chef和Puppet一樣是市場領先者,SaltStack在各大領先的DevOps組織中仍是迅速取得了一席之地。SaltStack使用Python開發, 它基於推式方法如推送配置文件到客戶端。SaltStack須要經過主服務器和代理部署到目標服務器進行通訊和控制,它使用ZeroMQ通信層, 這使得它相對比其餘的配置管理工具更快。
下面是使用SaltStack的一些利好以及應用場景:
咱們發如今服務器和雲平臺上有大量的可用數據。Splunk是一個能夠從這些海量數據中獲取洞見的數據平臺。Splunk讓你緊密關注一般被忽略的數據。Splunk提供的洞見幫助企業分析數據提供決策,從而提升生產力和盈利能力。Splunk在一個可搜索的數據中心捕獲、索引和關聯實時數據,並由今生成圖表,報告、警報、可視化信息。
下面是使用SaltStack的一些利好以及應用場景:
Kubernetes是一個開源的docker編排工具,它是一個輕量級、多重雲、可擴展和自愈平臺。它可幫助你即時擴展你的應用程序、發佈推出新的功能、優化硬件使用資源。Kubernetes是Google於2014年啓動的一個項目。
下面是使用Kubernetes的一些關鍵特性:
Kubernetes幫助咱們減小QA/Prod環境上的支出,由於它使咱們可以更好地利用現有的資源。Kubernetes加速構建和部署次數從每週30增加到55。Kubernetes提供開箱即用的部署特性(如滾動更新),咱們能夠作零停機生產環境部署。
在過去的幾年裏,docker被大幅度地使用,下面是一些關鍵統計數據,顯示最近被使用的容器聯排工具的基本狀況。
隨着愈來愈多的公司組織把他們的開發和運營團隊緊密結合,使用上述工具,將能幫你更有效地提升產品的交付管道。基於用例場景以及功能特性等,你能夠很容易地選擇最適合你的DevOps工具。在Welldum Studio, 咱們會根據用戶的使用場景和用例選用上述合適的工具。經過這種方式,咱們顯著地減小花費在平常操做任務的時間。咱們曾在一個項目上經過使用Kubernetes在docker部署微服務的架構模式將部署時間從20分鐘減小爲3分鐘;咱們也使用New Relic來監測應用程序的瓶頸。
David, CTO of Welldum Studio
David有10多年豐富的互聯網開發和架構經驗,曾就任於騰訊無線產品部,負責手機網遊的開發工做;後赴美加入硅谷某大型互聯網門戶網站任全棧工程師,負責網站的總體架構、性能優化以及數據挖掘等工做。歡迎添加做者微信進行技術探討和交流。
Welldum Studio成立於2014年,核心團隊來自硅谷、BAT、清華大學和中科院,咱們提供全棧式技術開發服務。咱們的服務範圍包括UX/UI設計、網站開發、App開發、微信開發、遊戲開發、大數據挖掘和大規模分佈式高負載併發系統的設計開發以及性能優化等。咱們的官網是 http://www.wlelldum.com, 歡迎諮詢交流。
注:本文是Welldum Studio(http://www.welldum.com)的原創文章,版權全部,轉載請註明文章的出處。