Linux運維用到的技術棧

[toc]前端

虛擬化篇

KVM

比較主流的虛擬化技術,不過在運維水平比較差的公司,還能看到在用盜版的VMware產品。若是測試環境規模稍微有點大,能夠考慮使用雲平臺,諸如各類流行的 Stack。若是本身有能力,可使用 libvrit 提供的API,本身寫一個管理平臺也是能夠的。適合內部使用便可,開源的各類 Stack 都比較重,用起來都是有一些成本的。數據庫

Docker

統一了開發及線上環境,適合微服務。編程

公有云

公有云有你用到的全部東西。在一個使用了公有云的公司,那麼徹底能夠不須要運維及測試了,幫助企業快速完成DevOps轉型。公司作Dev,公有云作Ops。
公有云在IaaS、PaaS及SaaS層面都有相應的產品,真正懂你所需,公司能夠根據自身狀況選擇使用合適的產品便可。
安全起見,可使用子帳號進行 API 相關的一些操做。後端

存儲服務

若是數據量比較大,能夠考慮使用開源的分佈式存儲,後面在私有云平臺或Docker或K8S上估計都會用到。緩存

WEB 容器篇

OpenResty

OpenResty 並非一個新的事物,而是 Nginx 與 Lua 的組合。OpenResty 創始人章亦春把 Lua 腳本嵌入了 Nginx,結合 Lua 能夠很靈活的擴展 Nginx 的功能,如實現 WAF 等。並且作的事情遠不止這些。安全

數據庫篇

主要包括關係型數據庫與非關係型數據庫。基本的 SQL 功底仍是要有的。負載均衡

MySQL

號稱世界上最流行的數據庫,用的仍是很是普遍的。看來「最流行」的稱號並非吹的。運維最關注的仍是如何確保數據的安全性及高可用性。框架

運維層面須要作到的是:運維

  • 數據備份
  • 數據恢復
  • 主從同步

關於備份及恢復用到的工具,市面上仍是有不少的。選擇你熟悉的便可。編程語言

PostgreSQL

號稱世界上最早進的數據庫,使用的用戶仍是不少的,不過這些用戶大多在國外,在國內用的不如 MySQL 普遍。若是你以爲沒有合適的數據庫能夠選擇的話,那就選擇 PostgreSQL 吧。

Redis

主流的鍵值存儲數據庫。通常用來作關係型數據庫的緩存。

MongoDB

監控篇

Zabbix

比較著名的開源監控系統,功能強大。若是要定製或二次開發,相對比較困難(須要咱們有C語言(後端)及PHP(前端)的功底),這裏所說的困難是面對運維人員來講的。

Open-Falcon

由小米開源的監控系統,使用Go語言編寫。若是要定製或二次開發則相對容易,支持腳本語言(Bash、Perl、Python等)對其進行擴展或二次開發。而這些腳本語言對運維人員來講並不陌生,但能不能用的熟練就是另一回事了。

顏值高的UI

上述的監控軟件,它們的UI界面不是很Nice,可使用比較流行的Grafana。

ZMON

能夠作監控及指標監控。

Prometheus

應用程序的指標監控。四個黃金指標:

  • 延遲:服務請求所需耗時;例如HTTP請求平均延遲
  • 流量/吞吐:衡量服務容量需求;例如每秒處理HTTP請求數
  • 錯誤:衡量錯誤發生的狀況;例如HTTP 500錯誤數
  • 飽和度:衡量資源使用狀況;例如CPU/內存/磁盤使用量

有了指標監控,再加上服務調用鏈追蹤,效果會更好。

服務鏈調用追蹤

服務鏈調用追蹤解決的問題:

  1. 提供服務之間的調用鏈
  2. 性能及延遲分析
  3. 服務依賴分析
  4. 問題分析

Zipkin

Twitter 推出的服務調用追蹤系統

Jaeger

Uber 推出的服務調用追蹤系統

Skywalking

華爲推出的服務調用追蹤系統

配置管理篇

Ansible

比較輕量級(相對Puppet及SaltStack)的自動化配置管理工具。讓運維告別使用腳本進行循環來完成批量操做的任務,而是真正的使用並行來作操做管理。

編程語言篇

作爲IT界的一員,無論是什麼工種,不會一門編程語言,都很差意思跟別人打招呼。

Python

Python的口號是:"Life is short, use Python."

Golang

Golang具備C的性能及Python的姿態,它的口號是:"Life is short, let's Go."

Lua

OpenResty中須要用到Lua語言,因此掌握一下這門語言也是應該的。

JavaScript

如今無論是什麼職位,總得會點JS吧,否則離全棧仍是有點距離的。若是不會一點,本身想作個頁面,還要找前端同事,多麼不方便。

代碼託管

有了編程語言及相應的開發環境,那就該有一個代碼託管的地方。這裏推薦使用Gitlab做爲公司內部的代碼託管服務,相信不少公司也是這麼選擇的。

開發框架

JAVA 相關框架

涉及到Java開發,就少不了下面的幾個組件:

  1. JDK
  2. MavenAntGradle
  3. Nexus
  4. 代碼託管
  5. 數據庫(關係型數據庫、非關係型數據庫)

Spring全家桶要知道有什麼,及怎麼工做的。如:

  • 服務註冊、發現
  • 負載均衡
  • 熔斷是怎麼回事
  • 配置中心

Spring Boot

Spring Cloud

Python 相關框架

Django

Python 世界中一個大而全的WEB框架。

Flask

Python 世界中一個小而美的WEB框架。

CI/CD

這在平常的工做中,有着很大的比重。若是這一塊作很差,運維將會比較苦逼。市面上的CI/CD工具比較多,選擇也比較多,推薦使用Jenkins或者自研。

運維小工具

平時能夠開發一些小工具,這些小工具能夠幫助本身或開發快速獲取一些信息,如:

  1. 解析 Eureka 的註冊信息,能夠知道本身的服務部署在哪裏及監聽的端口
  2. 從一臺機器上覆制文件到另一臺
  3. 從一個數據庫實例,同步數據到另一個數據庫實例
  4. 還有不少

總結

運維要把基礎型的工做作好以後,就能夠用更多的時間與精力作更有價值的事情了。基礎型的工做主要有:

  1. 持續集成與持續部署
  2. 基礎設施監控
  3. 服務性能監控

上述工做作好以後,就能夠作一些公司內部的運維平臺,方便開發同事進行更高效地開發。

相關文章
相關標籤/搜索