天天看點

架構解密:從分布式到微服務

本文是筆者多年來積累和收集的知識技能圖譜,有的是筆者原創總結的最佳實踐,有的是小夥伴們的分享,其中每個秘籍圖譜裡面的内容都是網際網路高并發架構師應該了解和掌握的知識,筆者索性把這些圖譜收集在一起,并且歸類便于查找和學習,希望能夠幫助到每一位想成為架構師或者已經是架構師的小夥伴,這裡我們的标題“史上最全的架構師圖譜”是本文的目标,作者計劃把這篇文章作為一個開放性的文章,如果讀者發現更多的圖譜,請聯系作者本人,我們把更多的圖譜、思維導圖彙集在其一起,最終一定能成為網際網路上“史上最全的架構師圖譜”。

1 、架構師系列

架構解密:從分布式到微服務

架構師圖譜

架構解密:從分布式到微服務

Java架構師圖譜

架構解密:從分布式到微服務

微服務架構秘籍

架構解密:從分布式到微服務

一緻性圖譜

架構解密:從分布式到微服務

網際網路大流量的方法

架構解密:從分布式到微服務

安全秘籍

架構解密:從分布式到微服務

阿裡巴巴常用小架構

架構解密:從分布式到微服務

架構方法論圖譜

架構解密:從分布式到微服務

設計模式秘籍圖譜

2 、Java系列

架構解密:從分布式到微服務

JVM垃圾回圖譜

架構解密:從分布式到微服務

Java并發圖譜

架構解密:從分布式到微服務

Java集合圖譜

架構解密:從分布式到微服務

Java集合類圖

架構解密:從分布式到微服務

Java List類圖

架構解密:從分布式到微服務

Java Map類圖

架構解密:從分布式到微服務

Java Set類圖

3、大資料系列

架構解密:從分布式到微服務

Hadoop技能圖譜

架構解密:從分布式到微服務

大資料技能圖譜

4、雲計算系列

架構解密:從分布式到微服務

雲計算圖譜

架構解密:從分布式到微服務

雲計算技能圖譜

5、其他

架構解密:從分布式到微服務

IOS技能圖譜

架構解密:從分布式到微服務

OpenResty技能圖譜

架構解密:從分布式到微服務

前端技能圖譜

架構解密:從分布式到微服務

容器技能圖譜

架構解密:從分布式到微服務

嵌入式開發技能圖譜

架構解密:從分布式到微服務

開發語言寶典

架構解密:從分布式到微服務

移動端測試圖譜

DevOps 和運維開發

随着開發運維一體化的DevOps運動在國内外蓬勃發展,DevOps相關工具也呈現熱鬧趨勢,在這個言必談如何實施落地引入工具、建設平台的大環境下,我們今天也來盤點一下DevOps相關工具。

先來看一下業界對DevOps工具的各種分類介紹。

一、DevOps應用傳遞工具鍊

ElasticBox是國外一個雲應用管理工具,主要用于實作雲應用生命周期的可視化管理,他們的口号是“Deploy any Application Anywhere – Zero stress,Total control”。

關于DevOps工具,他們整理了一個腦圖:

架構解密:從分布式到微服務

主要從開發、部署、維護三個方面把常用的開源工具做了一個分類:

1、開發

開發類的DevOps工具又分為:

(1) 版本控制和協作,例如Git、SVN等

(2) 建構和測試自動化,例如Ant、Selenium、Jmeter等

(3) 持續內建和傳遞,例如Jenkins、CruiseControl等

2、部署

部署類的DevOps工具分為:

(1) 容器平台,例如Docker等

(2) 配置管理,例如Chef、Puppet、Ansible等

(3) 微服務平台,例如Cloud Foundry、Kubernetes等

(4) 服務開通,例如Puppet、Docker Swarm、Vagrant等

3、維護

維護類的DevOps工具分為兩大類:

(1) 日志,例如logstash等

(2) 監控告警和分析,例如Nagios、Zabbix、Kibana等

從ElasticBox對開源的DevOps工具的分類來看,主要是圍繞着應用從建構到部署、傳遞運維這樣的工具鍊**來分類的。

二、DevOps工具元素周期表

XebiaLabs是國外一家圍繞着企業規模化可靠軟體傳遞自動化做解決方案和工具的廠商,他們的口号是大規模、更快速地自動傳遞:“Get the visibility, automation, and control to deliver software faster and with less risk.”。

關于DevOps工具,他們以元素周期表的展現形式整理了一個圖:

架構解密:從分布式到微服務

圖中按顔色标注不同類型的DevOps工具,包括:

(1)資料庫,例如:Oracle、MySQL、Cassandra等;

(2)持續內建,例如:Jenkins、TeamCity等;

(3)部署,例如:SSH、XLDeploy等;

(4)雲/IaaS、PaaS,例如:Amazon Web Services、Azure等;

(5)業務分析/監控,例如:Splunk、Nagios等;

(6)配置管理,例如:Git、SVN等;

(7)庫管理,例如:Nexus、NuGet等;

(8)配置/服務開通,例如:Chef、Puppet、Ansible、Vagrant等;

(9)釋出管理,例如:XL Release、UrbanCode Release等;

(10)日志,例如:Sumo Logic、Logstash等;

(11)建構,例如:Gradle、Ant、Maven等;

(12)測試,例如:Junit、Cucumber、Selenium、Jmeter、Appium等;

(13)容器化,例如:Docker、Kubernetes、Mesos等;

(14)協作,例如:Jira、Flowdock等;

(15)安全,例如:Snort、CyberArk等。

看起來XebiaLabs的分類更全面,既包括了開源工具也包含商業工具,當然也包括了XebiaLabs自己的工具;但是看起來又有點為了構成元素周期表而一些工具的味道**,例如,個人認為資料庫這類基礎軟體就沒必要跟DevOps扯上了吧?!

另外,XebiaLabs的分類在某些地方與ElasticBox的分類有出入**,例如,ElasticBox把Kubernetes放到部署類,而XebiaLabs把它放到單獨的容器化這個類别,當然,ElasticBox的部署類這個大的類别也是包含了容器化的。

三、基于DevOps能力矩陣的工具分類

既然沒有統一的DevOps工具分類标準,那麼我個人也想從之前歸納總結的DevOps能力矩陣模型的角度,對DevOps相關的工具進行一些分類。

架構解密:從分布式到微服務

Devops憑借其連接配接彌合開發與營運團隊的能力正在各個行業呈現席卷之勢。開發人員和營運人員曆來就是水火不容,無論是在開發、測試還是部署上都有着很大的分歧,隻有Devops才能扭轉這一局面。

我們從DevOps的核心理念可以看出,DevOps強調開發、QA、運維的一體化融合。

架構解密:從分布式到微服務

但是,本質上來看開發、QA、運維又是分屬不同的部門群組織(尤其是傳統企業),有着自己的過程管理方式,主要負責的事情不一樣,所謂“術業有分工”,是以用到的工具也有所不同。**

那下邊我們就嘗試歸納一下開發、QA、運維各自常用的一些工具,并且嘗試從DevOps能力融合的角度分析,哪些工具是三者或兩兩之間可以共用的,并挑選一些典型工具做簡單介紹。

(一)開發類典型DevOps能力融合工具

靈活開發已經成為主流,靈活開發中的核心實踐“持續內建”也逐漸被很多企業推廣應用,Jenkins作為這個領域的開源工具老大哥的位置已經事實上被确立了。

Jenkins通常被用在配置管理和部署代碼上,同時它也能夠與Puppet、Chef和容器技術一起使用,還有自動化的測試,例如Selenium、Jmeter也能被很好地整合到Jenkins持續內建的管道中。

開發人員、QA、測試和運維人員都在用Jenkins就很好地說明了Jenkins在DevOps領域的大好前景。

架構解密:從分布式到微服務

(二)QA類典型DevOps能力融合工具

無論開發還是測試,還是運維,對軟體系統的性能都是非常關注的,是以APM這類上接營運(使用者感覺)與運維(性能監控),下接QA(性能管理)與開發(性能分析)的工具就理所當然地在近幾年開始火爆起來了!

下圖是國外的老牌APM廠商的New Relic,使用New Relic企業可以迅速從多個角度檢視并解決應用中出現的錯誤:

架構解密:從分布式到微服務

New Relic進階産品經理Stevan Arychuk說New Relic可以提升高品質軟體傳遞的速度并同時降低企業所面臨的風險。企業中各團隊的角色和職責有所不同,但是通過多角度的資料分析,各個團隊之間的溝通、協作、交流可以得到加強,最終達到共同合作的目的。

(三)運維類典型DevOps能力融合工具

1**、Automic**

美國員工福利管理公司TASC使用Automic來實作其軟體部署的自動化,應用Automic,号稱可以在下午三點部署而不被别人發現。

架構解密:從分布式到微服務

自動部署是開發的持續內建、測試之後銜接運維上線的一道關鍵工序,應用Automic這類自動化工具能軟體系統的部署和傳遞過程更靈活、穩定高效、高品質地完成。

2、DynaTrace Ruxit

傳統的運維工具大多聚焦在監控類,尤其是基礎設施的監控,例如主機、中間件、資料庫的監控,尤其是伺服器資源層面的監控,對應用層、業務層面的監控偏少,這會導緻針對具體問題的分析,開發、QA、運維之間的共同語言偏少。

Devops的核心就是各個部門之間的協作,除了這個協作的理念之外還需要一種方式來進行溝通。

DynaTraceRuxit的智能檢視功能可以直覺地展示應用和其依賴之間的關系,這樣軟體開發流程中的不同角色之間可以使用Ruxit來進行溝通和自動化的分析。

架構解密:從分布式到微服務

QA 測試腦圖

架構解密:從分布式到微服務

  看不清楚吧?别急!下面會給大家一個清楚的交待,哈哈。

  “軟體測試全景圖”整個思維導圖有9個子產品,分别是:

  · 測試的定義,包括測試标準、原則、曆史等;

  · 測試五大流派,包括傳統測試、靈活測試、探索式測試、SBTM

  · 測試方法:MBT、ReBT、RiBT等等

  · 測試層次和類型:單元測試、內建測試、系統測試、驗收測試等;

  · 測試方式:手工 vs. 自動化的,靜态 vs. 動态,主動的 vs. 被動的

  · 自動化測試(含測試工具),包括其政策、自動化測試架構

  · 測試技術: 面向SOA/微服務測試技術、web測試技術、移動測試技術等;

  · 測試過程:過程模型、過程改進等

  · 測試管理:測試件、缺陷、品質、度量等管理

 

讓我一個一個子產品給大家詳細介紹。

  1.測試的定義

架構解密:從分布式到微服務

  2. 測試流派

架構解密:從分布式到微服務

  3. 測試方法

架構解密:從分布式到微服務

  4. 測試層次和類型

架構解密:從分布式到微服務

     5. 測試方式

架構解密:從分布式到微服務

  6. 自動化測試(含測試工具)

架構解密:從分布式到微服務

  7. 測試技術/8. 測試過程

架構解密:從分布式到微服務

  9. 測試管理

架構解密:從分布式到微服務
出處:簡書

版權申明:内容來源網絡,版權歸原創者所有。除非無法确認,我們都會标明作者及出處,如有侵權煩請告知,我們會立即删除并表示歉意。謝謝。