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