-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

DevOps和自動化運維實踐

( 簡體 字)
作者:余洪春 著類別:1. -> 程式設計 -> 綜合
譯者:
出版社:機械工業出版社DevOps和自動化運維實踐 3dWoo書號: 50053
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:10/1/2018
頁數:400
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111610021
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

我的系統架構師之路

從2006年接觸Linux系統并從事Linux系統管理員的工作以來,我擔任過Linux系統工程師、項目實施工程師/高級Linux系統工程師、運維架構師,到如今的高級系統開發工程師、系統架構師,這一路走來,我深感開源技術和Linux系統的強大及魅力。

現階段我的職務是高級運維開發工程師(DevOps)、系統架構師,主要工作是負責公司的CDN業務系統的運維自動化及公司APP產品的CI/CD工作及自動化部署工作。CDN系統相對于其他領域而言,海量機器的自動化運維工作是一件比較復雜的事情,關于這項工作,我們可以通過Python自動化配置管理管理工具,例如Ansible和SaltStack來進行二次開發,結合公司的CMDB系統,提供穩定的后端API,方便前端人員或資產人員進行調用,這樣大家都可以利用界面來完成自動化運維工作。至今為止,令我印象最為深刻的還是公司的APP項目,該項目現在全部部署在云平臺(國內云平臺)并且Docker容器化了,從前端到后端包括大數據接口,全部采用容器化的項目方式部署上線,整個自動化流程跟傳統的自動化方式大相徑庭。尤其是現在公司正在使用的Kubernetes,整個架構設計非常復雜,學習成本也是非常高的,但帶來的容器的自動化管理也是非常便利的。目前,無論是國外的AWS、Google還是國內的阿里云和騰訊云等主流公有云均提供Kubernetes的容器服務,可以說Kubernetes在當前容器行業是熱門的,而Docker技術正是Kubernetes的基石,建議大家盡快熟練Docker的使用方法。

撰寫本書的目的

云計算和容器技術是當前的流行技術和發展趨勢,云計算和容器技術的流行對于傳統的運維知識體系其實也是一種沖擊,傳統運維工程師的工作性質也在不斷地發生變化,要掌握很多新的技能和知識。大家經常會在工作中看到DevOps這個詞。DevOps為什么會這么火?這跟最近幾年的云計算和容器技術的快速普及有很大關系 :云計算平臺上(包括Kubernets)的各種資源,從服務器到網絡,再到負載均衡都是由API創建和操作的,這就意味著所有的資源都可以由“軟件定義”,這給各種自動化運維工具提供了一個非常好的基礎環境。而在傳統的互聯網行業,例如筆者目前正在從事的CDN領域,由于機器數量眾多、網絡環境錯綜復雜,也需要由DevOps人員來設計工具,提供后端的自動化運維API,結合公司的CMDB資產管理系統,提供自動化運維功能,簡化運維的操作流程及步驟,提高工作效率。

工作之余,許多讀者朋友們也在向我咨詢工作中的困惑,比如從事系統運維工作3∼5年以后就不知道如何繼續學習和規劃自己的職業生涯了。我想通過此書,跟大家分享一下這么多年的工作經驗和心得(尤其是近幾年流行的DevOps技術),解決大家工作中的困惑。通過此書的項目實踐和線上環境案例,讓大家能迅速了解Linux運維人員的工作職責和方向,迅速進入工作狀態,快速成長,希望大家通過閱讀本書,能夠掌握Linux系統集群和自動化運維及網站架構設計的精髓,輕松而愉快地工作,提升自己的職業技能,這是我非常高興看到的,也是我編寫本書的初衷。

讀者對象

本書的讀者對象如下所示:

系統管理員或系統工程師

中高級運維工程師

運維開發工程師

開發工程師

如何閱讀本書

本書的內容是對實際工作經驗的總結,涉及大量的DevOps及自動化運維知識點和專業術語,建議這方面經驗還不是很豐富的讀者先了解第1章的內容,這章比較基礎,如果大家在學習過程中根據這章的講解進行操作,定會達到事半功倍的效果。

系統管理員和系統工程師們可以通篇閱讀本書,并重點關注第1章、第2章和第4章,其他章節的內容可以選擇性地閱讀,借此來拓寬知識面,確定學習方向。

對于運維工程師而言,除了第3章的內容不要求掌握以外,其他章節的內容均可以做深層次的閱讀、實踐和思考,書中提到的很多自動化案例,讀者可以嘗試結合自己公司的實際情況來進行應用。

對于運維開發工程師來說,上述章節描述的內容都與運維開發工作息息相關,建議大家多花些精力和時間,抱著一切從線上環境去考慮的態度去學習和思考,實踐后多思考一下原理性的內容。

對于開發工程師來說,由于其只需對運維系統知識體系有一個大概的了解,重點可以放在本書的第1∼3章。如果想了解自動化運維相關知識體系,建議熟悉本書的第6∼8章。

大家可以根據自己的職業發展和工作需要選擇不同的閱讀順序和側重點,同時也可以對其他相關的知識點有一定的了解。

致謝

感謝我的家人,她們在生活上對我無微不至的照顧,讓我更有精力和動力去工作和創作。

感覺好友劉天斯、老男孩的支持和鼓勵,閑暇之余和你們一起交流開源技術和發展趨勢,也是一種享受。

感謝朋友曹林華,與我一起花了大量時間調研并且實踐電子商務系統中關于秒殺系統的架構及設計。

感謝機械工業出版社華章公司的編輯楊福川和楊繡國,在你們的信任、支持和幫助下,這本書才能如此順利地出版。

感謝朋友馮松林,感謝他這么多年來對我的信任和支持,在我苦悶的時候陪我聊天,自始至終對我予以支持和信任。

感謝生活中的朋友們—曹江華、何小玲、鄭樺、徐江春、張薇(排名不分順序),工作之余能一起閑聊和打牌,也是非常開心和快樂的事情。

感謝在工作和生活中給予我幫助的所有人,感謝你們,正是因為有了你們,才有了本書的問世。

關于勘誤

盡管我花了大量時間和精力去核對文件和語法,但書中難免還會存在一些錯誤和紕漏,如果大家發現問題,希望可以反饋給我,相關信息可發到我的郵箱 yuhongchun027@gmail.com。盡管我無法保證每一個問題都會有正確的答案,但我肯定會努力回答并且指出一個正確的方向。

如果大家對本書有任何疑問或想進行Linux的技術交流,可以訪問我的個人博客與我交流,博客地址為http://yuhongchun.blog.51cto.com。另外,我在51CTO和CU社區的用戶名均為撫琴煮酒,大家也可以直接通過此用戶名在社區與我交流。



余洪春(撫琴煮酒)

2018年2月于武漢
內容簡介:

隨著云計算、Docker、Kubernetes技術的流行,相信大家經常會聽到“容器云”這個專業詞匯,容器技術的興起,對于傳統的運維知識體系而言也是一種沖擊和挑戰。筆者從事高級DevOps、系統架構師的工作十余年 ,之前主要負責傳統Web運維相關工作,現在轉到了容器云平臺方向。對于運維人員來說,海量主機的運維、容器技術,都是非常具有技術含量和挑戰性的。許多讀者朋友在交流中常會談到從事系統運維工作3~5年以后就不知道如何繼續學習和規劃自己的職業生涯了。筆者希望通過此書,跟大家分享自己的工作經驗和心得,通過自己實現過的實踐案例和線上環境案例,幫助大家迅速了解Linux運維人員的工作職責和方向,迅速進入工作狀態。

本書的內容是對實際工作經驗的總結,涉及大量的DevOps及自動化運維知識點和專業術語,全書共分8章:第1章主要介紹DevOps與自動化運維在運維中的意義和存在的必要性,主要涉及在工作中運用DevOps(包括自動化運維)時應該掌握的知識點、工具和語言以及需要了解的網站系統架構設計和高并發場景的相關知識介紹;第2章介紹生產環境下的Shell腳本,考慮到很多朋友都從事Java開發,所以這部分內容講得比較全面,而且全部Shell腳本均取自線上環境;第3章介紹Python在DevOps與自動化運維中的應用,涉及Python的基礎知識,以及生產環境下的Python腳本;第4章介紹搭建自動化分布式虛擬環境的Vagrant,建議大家熟練掌握,以便測試后面的自動化運維工具;第5章介紹自動化運維工具Farbic,它是基于Python開發的輕量級自動化維工具,是開發者最常用的自動化運維工具之一;第6章介紹了分布式自動化運維工具Ansible,現在自動化運維是運維的流行趨勢,而Ansible正是這方面的翹楚,熟練掌握Ansible能增加職業技能點;第7章介紹了自動化配置管理工具SaltStack,大家可以對比一下它與Ansible的區別,將其靈活地應用于自己的業務中;第8章介紹對自動化運維的后續思考,包括自動化運維系統應該實現的子系統、自動化運維經歷的階段,并且與大家分享了如何使用Docker搭建Jenkins分布式系統。
目錄:

推薦序一
推薦序二
推薦序三
前言
第1章 DevOps與自動化運維的意義 1
1.1 DevOps在企業中存在的意義 1
1.2 為什么企業需要自動化運維 4
1.3 Web編程相關體系知識點 5
1.3.1 為什么要前后端分離 5
1.3.2 什么是RESTful 7
1.3.3  Web后臺認證機制 8
1.3.4 同步和異步、阻塞與非阻塞的區別 10
1.3.5 WebSocket雙工通信 11
1.3.6 了解消息中間件 13
1.3.7 了解負載均衡高可用 18
1.4 從事DevOps工作應該掌握的語言 24
1.5 從事DevOps工作應該掌握的工具 25
1.6 了解網站系統架構設計和高并發場景 26
1.6.1 網站性能評估指標 26
1.6.2 細分五層解說網站架構 26
1.7 了解數據庫集群主從復制的基本原理 34
1.8 Linux服務器的安全防護 37
1.8.1 DDoS攻擊和運營商劫持 37
1.8.2 Linux服務器基礎防護篇 38
1.8.3 Linux服務器高級防護篇 40
1.9 小結 41
第2章 Shell腳本在DevOps下的應用 42
2.1 Shell編程基礎 42
2.1.1 Shell腳本的基本元素 43
2.1.2 Shell基礎正則表達式 43
2.1.3 Shell特殊字符 46
2.1.4 變量和運算符 47
2.2 Shell中的控制流結構 61
2.3 sed的基礎用法及實用舉例 64
2.3.1 sed的基礎語法格式 64
2.3.2 sed的用法舉例說明 69
2.4 awk的基礎用法及實用案例 72
2.5 Shell應用于DevOps開發中應掌握的系統知識點 77
2.6 生產環境下的Shell腳本 85
2.6.1 生產環境下的備份類腳本 86
2.6.2 生產環境下的統計類腳本 89
2.6.3 生產環境下的監控類腳本 92
2.6.4 生產環境下的運維開發類腳本 97
2.7 小結 102
第3章 Python在DevOps與自動化運維中的應用 103
3.1 Python語言的應用領域 103
3.2 選擇Python的原因 105
3.3 Python的版本說明 106
3.4 Python基礎學習工具 106
3.4.1 Python(x,y)簡單介紹 107
3.4.2 IPython詳細介紹 107
3.4.3 Sublime Text3簡單介紹 113
3.5 Python基礎知識進階 120
3.5.1 正則表達式應用 120
3.5.2 Python程序構成 127
3.5.3 Python編碼問題 129
3.5.4 使用Python解析JSON 131
3.5.5 Python異常處理與程序調試 133
3.5.6 Python函數 136
3.5.7 Python面向對象 147
3.5.8 Python多進程 159
3.5.9 Python多線程 161
3.6 Python經常用到的第三方類庫 175
3.7 利用Flask設計后端Restful API 178
3.7.1 DevOps中為什么要使用RESTful API 178
3.7.2 RESTful API項目實戰 182
3.8 工作中的Python腳本分享 184
3.9 小結 191
第4章 Vagrant在DevOps環境中的應用 192
4.1 Vagrant簡單介紹 193
4.2 Vagrant安裝 193
4.3 使用Vagrant配置本地開發環境 195
4.3.1 Vagrant的具體安裝步驟 195
4.3.2  Vagrant配置文件詳解 198
4.3.3 Vagrant常用命令詳解 199
4.4 使用Vagrant搭建DevOps開發環境 200
4.5 使用Vagrant搭建分布式環境 203
4.6 小結 207
第5章 自動化部署管理工具Ansible 208
5.1 YAML介紹 209
5.2 Ansible的安裝和配置 214
5.3 定義主機與組規則(Inventory) 218
5.4 Ansible常用模塊介紹 220
5.5 playbook介紹 235
5.6 Ansible在AWS云平臺中的應用 240
5.7 角色 241
5.8 Jinja2過濾器 248
5.9 Ansible速度優化 252
5.10 利用Ansible API提供自動化運維后端 262
5.10.1 runner API 262
5.10.2 playbook API 265
5.10.3 用Flask封裝Ansible提供自動化運維后端 267
5.11 Ansible 2.2新增功能 273
5.12 小結 280
第6章 自動化配置管理工具SaltStack 281
6.1 Salt的相關知識點介紹 281
6.1.1 Salt的優勢 281
6.1.2 Salt的安裝 282
6.1.3 Salt的工作流程 287
6.1.4 Salt配置文件詳解 288
6.1.5 Salt的命令格式 291
6.2 Salt的常用組件 291
6.2.1 Salt常用的操作目標 291
6.2.2 Salt常用模塊 293
6.2.3 Granis組件 304
6.2.4 pillar組件 308
6.2.5 job管理 311
6.2.6 State介紹 312
6.3 Salt真實案例分享 314
6.3.1 base環境配置 315
6.3.2 prod環境配置 319
6.4 Salt多Master搭建 322
6.5 Salt API介紹 324
6.5.1 Python API介紹 324
6.5.2 Restful API介紹 326
6.6 小結 330
第7章 Docker和Jenkins在DevOps中的應用 331
7.1 Docker的基礎安裝 333
7.2 Docker的三大核心概念 336
7.3 Docker的基本架構 338
7.4 Docker網絡實現原理 340
7.5 利用Dockerfile文件技巧打包Docker鏡像 342
7.6 利用Docker-Compose編排和管理多容器 344
7.6.1 Docker-Compose的基本語法 345
7.6.2 Docker-Compose常用命令 352
7.6.3 使用Docker-Compose運行Python Web項目 354
7.6.4 使用Docker-Compose的過程中遇到的問題 355
7.7 利用Docker搭建Jenkins Master/Slave分布式環境 357
7.7.1 部署Jenkins Master/Slave分布式環境需要解決的問題 358
7.7.2 Jenkins Master/Slave的詳細部署過程 360
7.7.3 Jenkins Master/Slave以集群形式運行任務 363
7.8 實際運行Jenkins時遇到的問題及使用心得 365
7.9 小結 368
第8章 自動化運維的后續思考 369
8.1 自動化運維系統中應該實現的系統 369
8.2 自動化運維經歷的階段 371
8.3 自動化運維的必備技能:定制RPM包 372
8.4 因地制宜地選擇自動化運維方案 374
8.5 小結 375
附錄A GitLab在DevOps工作中的實際應用 376
附錄B 用Gunicorn部署高性能Python WSGI服務器 385
附錄C Supervisor在DevOps工作中的應用 391
附錄D 分布式隊列管理Cerely
簡介 397
序: