資深系統(tǒng)運維專家撰寫,知名運維專家聯(lián)袂推薦,注重方法和思路,將枯燥的操作上升到設(shè)計和建模高度。本書站在IT基礎(chǔ)架構(gòu)視角,分析數(shù)據(jù)中心選型與規(guī)劃、管理流程設(shè)計與實施、基礎(chǔ)服務(wù)構(gòu)建、系統(tǒng)運維實務(wù)處理、職業(yè)發(fā)展探討等,大致可劃分為六部分,16章。
第1章,談?wù)劰P者心中的IT基礎(chǔ)架構(gòu)標準、寫作初衷和本書特點等。
數(shù)據(jù)中心篇(第2~5章),綜合介紹數(shù)據(jù)中心、網(wǎng)絡(luò)、系統(tǒng)等多個技術(shù)領(lǐng)域的主題。筆者曾親手規(guī)劃、建設(shè)多個同城數(shù)據(jù)中心,經(jīng)驗豐富,難有雷同之作。
管理流程篇(第6章),管理流程是基礎(chǔ)架構(gòu)中重要的核心組件,剖析CMDB、Workflow的設(shè)計原則與注意事項,簡潔而不簡單。
基礎(chǔ)服務(wù)篇(第7~11章),基于多機房和海量節(jié)點,分享如何去構(gòu)建DNS、NTP、文件共享、配置管理等一整套服務(wù)的方法,事半功倍。
系統(tǒng)運維篇(第12~15章),與日常運維管理的工作相關(guān),諸如硬件故障處理與維修、安全、性能較準、Shell程序等,臨危不亂。
第16章,聊聊系統(tǒng)運維工程師應(yīng)該具備的素養(yǎng),如何提升自己。
本書穿插13個有趣的運維小故事,讀累了在這里喘口氣,里面蘊藏著很多收獲呢。
1)資深系統(tǒng)運維專家撰寫,知名運維專家聯(lián)袂推薦,注重方法和思路,將枯燥的操作上升到設(shè)計和建模高度
2)站在IT基礎(chǔ)架構(gòu)視角,分析數(shù)據(jù)中心選型與規(guī)劃、管理流程設(shè)計與實施、基礎(chǔ)服務(wù)構(gòu)建、系統(tǒng)運維實務(wù)處理、職業(yè)發(fā)展探討等
前言
2015年,國務(wù)院政府工作報告中提出制定互聯(lián)網(wǎng) 的行動計劃。在這個大背景時代的推動下,越來越多的傳統(tǒng)行業(yè)面臨著與云計算、大數(shù)據(jù)等熱門技術(shù)相結(jié)合的發(fā)展趨勢。在漫長的轉(zhuǎn)型過程中,傳統(tǒng)企業(yè)的IT部門面臨著基礎(chǔ)架構(gòu)變革的嚴峻考驗,運維團隊不可避免地遇到了很多棘手的難題。例如,管理模式如何由集中式向分布式轉(zhuǎn)型,小型機到x86的演變,海量運維模式的挑戰(zhàn),以及知識結(jié)構(gòu)與運維思路的轉(zhuǎn)變,等等。這些都是目前傳統(tǒng)行業(yè)IT部門領(lǐng)導者所面臨的主要問題。
隨著電商的流行,也有很多非IT領(lǐng)域的成功企業(yè)正在醞釀著自己的O2O市場,希望借助互聯(lián)網(wǎng)完成第二次創(chuàng)業(yè)。他們遇到的最大問題就是對互聯(lián)網(wǎng)的認知完全是一片空白。要實現(xiàn)從無到有的原始積累,會有很多挑戰(zhàn)在等著他們。
為什么要寫這本書
基于上述這些問題,我們策劃了這套IT基礎(chǔ)架構(gòu)叢書。作為這個系列的第一部作品,我個人的壓力還是蠻大的。當機械工業(yè)出版社華章公司的高婧雅編輯和我約稿時,自己竟然一時有些不知所措。算起來,我從事系統(tǒng)運維的工作已滿十個秋冬。說來慚愧,我覺得自己并沒有什么拿得出手的成績。不論是實踐還是基礎(chǔ),市面上這方面的書已經(jīng)非常多了。那么,以什么作為出發(fā)點是合適的呢?最終,我還是從《運維前線》這本書中獲得了啟發(fā)。2017年3月,由云技術(shù)社區(qū)創(chuàng)始人肖力發(fā)起并策劃的《運維前線》成功出版,讓我感受到了同行們樂于分享的熱情,同時也看到了廣大讀者對實用、落地的技術(shù)方案的渴求與肯定。于是,我產(chǎn)生了一個新的想法:在《運維前線》主打?qū)嵱玫幕A(chǔ)之上,圍繞著我所擅長的系統(tǒng)運維方向,寫一部《運維前線》的系統(tǒng)版。
本書特色
不管怎么說,技術(shù)是一個很枯燥的東西。我自己在學習的過程中也深有體會。拗口的描述、復雜的邏輯是很多技術(shù)文檔的通病。也許這樣的表達形式是嚴謹?shù),但它并不親民。我認為,一本好書不但要有深度,更要帶領(lǐng)讀者一同到達才行。這個深度就像西游記中的水簾洞,如果只有你自己進去了,卻把讀者晾在一邊,那真是太糟糕了。如果一本書洋洋灑灑幾十萬字,讀者看完后沒有任何收獲,那我寧愿不去寫它。因此,打比方和舉例子是我在全書中用得最多的寫作手法。通俗易懂,是我在技術(shù)分享時所秉持的一貫態(tài)度。我希望消除掉一切阻礙的門檻,讓每一位讀者朋友都能夠從本書中獲得些許的幫助。
選擇撰寫本書是有著特別的意義的。既然是實踐,我們首先要保證技術(shù)的實用性。但從定位上講,它又不同于以往的實踐類書籍。書中講述的所有內(nèi)容都是筆者正在或者曾經(jīng)使用過的,并將一些經(jīng)驗和觀點融在其中。寫這本書,也算是對我多年工作經(jīng)驗的一種總結(jié),了卻自己的一樁心愿吧。
讀者對象
說到這本書的定位,我想它對絕大多數(shù)從事系統(tǒng)運維的工作者都是有益的。本書需要一點點Linux和網(wǎng)絡(luò)的基礎(chǔ)知識作為鋪墊,除此之外再無其他要求。對于工作3~5年的朋友們,我知道你們已經(jīng)厭倦了基本的系統(tǒng)管理,但你們也許有點兒迷茫,不知道下一步該如何進階。對于那些傳統(tǒng)行業(yè)面臨IT基礎(chǔ)架構(gòu)轉(zhuǎn)型的系統(tǒng)運維團隊,你們可能在系統(tǒng)管理方面經(jīng)驗豐富,但是對大規(guī)模、分布式x86平臺的系統(tǒng)運維卻感到陌生。還有那些剛剛到創(chuàng)業(yè)公司的中生代技術(shù)人,你們可能在工作中會遇到更多新的挑戰(zhàn)。我想,選擇這本書對你們來說是再適合不過的了。當然,如果你早已是這方面的行家里手,也不妨來讀讀本書。我的一些經(jīng)驗也許能幫到你,我的一些經(jīng)歷也許能讓你感同身受,我的一些觀點也許能讓你會心一笑,只當是我與你之間的一次未曾謀面的技術(shù)交流好了。
如何閱讀本書
本書從內(nèi)容上大致分為六大部分,共計16章內(nèi)容。
第一部分(第1章),筆者對心中的IT基礎(chǔ)架構(gòu)標準、本書的寫作初衷和特點等做了闡述。
第二部分是數(shù)據(jù)中心篇(第2~5章)。這是一個綜合了數(shù)據(jù)中心、網(wǎng)絡(luò)、系統(tǒng)等眾多技術(shù)領(lǐng)域的主題。我作為一個經(jīng)歷過創(chuàng)業(yè)公司的老員工,對此深有體會。從無到有,我親手規(guī)劃、建設(shè)了多個同城的數(shù)據(jù)中心,后續(xù)又和兩位牛人學習了很多相關(guān)的知識。該篇也許真的非?缃纾蚁朐谒兄v解系統(tǒng)技術(shù)的書籍里,難有雷同之作。作為一名真正的SE,只懂操作系統(tǒng)是不合格的。所以,我認為這個跨界還是值得的。
第三部分是管理流程篇(第6章)。這是一個特殊的篇章,因為它特殊到只有一章。如果能夠進一步展開,這個主題其實完全可以獨立成書。管理流程是基礎(chǔ)架構(gòu)中最為重要的核心組件。我想沒有人會反駁這個觀點,除非他所運維的節(jié)點數(shù)量還不夠多。
第四部分是基礎(chǔ)服務(wù)篇(第7~11章)。本篇內(nèi)容基于多機房和海量節(jié)點,介紹了如何去構(gòu)建DNS、NTP、文件共享、配置管理等一整套服務(wù)的方法。
第五部分是系統(tǒng)運維篇(第12~15章)。這部分內(nèi)容主要和日常運維管理的工作相關(guān)。例如,硬件故障處理與維修、安全、性能校準、Shell程序等。如果要做推薦,我會更傾向于數(shù)字證書那一章。因為那是我剛?cè)胄袝r的專業(yè)方向,和數(shù)字證書打了這么多年的交道,寫這一篇時也算是一種情懷吧。
第六部分(第16章),這部分介紹系統(tǒng)運維工程師應(yīng)該具備的素養(yǎng),以及如何提升自己等內(nèi)容。
此外,這本書中還有13個有趣的運維小故事。它們很像登山時的休息點,如果你讀累了,可以在這里歇歇腳,喘口氣。其實,故事里面也蘊藏著很多收獲呢。
不過,這還不是本書全部的內(nèi)容。既然我受到了《運維前線》的啟發(fā),為了表示敬意,我也繼承了《運維前線》一書的設(shè)計形式。最后一章,藏著一個有趣的彩蛋,等待著讀者朋友們?nèi)グl(fā)現(xiàn)。好了,我想我說得已經(jīng)夠多的了,我們在書中相見吧。
勘誤和支持
由于筆者的水平有限,編寫時間倉促,書中難免會出現(xiàn)一些錯誤或者不準確的地方,懇請讀者批評指正。如有任何反饋與想法,請你發(fā)送電子郵件到itarch@qq.com。真誠地期待能夠得到你的反饋,在技術(shù)之路上互勉共進。
致謝
在寫作這本書時,我得到了很多朋友的幫助。例如我的同事張望和徐鐵軍兩位大牛。張望是網(wǎng)絡(luò)方面的專家,鐵軍則有著多年的IDC管理經(jīng)驗。撰寫數(shù)據(jù)中心篇章時,關(guān)于一些技術(shù)問題的求證,兩位給予了我很多的支持與幫助。能和你們在一起工作真好,謝謝兩位。
感謝云技術(shù)社區(qū)的北極熊,熊總在各大社區(qū)中不遺余力地幫忙推廣本書,做了很多無私的工作。感謝我的那些新老朋友們,在我成書之時,他們幫我撰寫書評,給了我很多的鼓勵與支持。謝謝你們的幫助與肯定。
此外,在這里我還要特別感謝兩位老師。一位是云技術(shù)社區(qū)的肖力,另一位是機械工業(yè)出版社華章公司的高婧雅老師。兩位老師是指引我走上寫作道路的領(lǐng)航人,雖然都只有一面之緣,但他們卻給我提供了很多的幫助和支持。2015年,我加入了力哥發(fā)起的《運維前線》的寫作團隊。也正是通過這次寫作得到了婧雅編輯的肯定,進而才有了這部書稿的成文。力哥在百忙之中親自為我作序,婧雅為我的寫作提供了很多有價值的指導意見?梢哉f,沒有兩位就沒有這部書的出版。謝謝所有支持我、關(guān)心我、幫助我的朋友們,感激之情溢于言表,謝謝大家!
謹以此書獻給廣大熱愛技術(shù)的朋友們!
趙旻
趙旻,獲得RHCA/RHCSS/MCITP認證,十年以上互聯(lián)網(wǎng)金融、電信、政府等多領(lǐng)域背景的從業(yè)資歷,曾參與中國國家電子政務(wù)多項重點工程的安全信任體系的建設(shè)工作,為中國移動、中國航空等大型企業(yè)提供技術(shù)支持。熟悉x86平臺基礎(chǔ)架構(gòu)系統(tǒng)的建設(shè)、管理及運維工作,并醉心于運維產(chǎn)品的設(shè)計與體驗。樂于在工作實踐中分析問題、總結(jié)經(jīng)驗,具有持續(xù)優(yōu)化的能力,屬于主動管理型的工作者。
資深面試官,產(chǎn)品設(shè)計評論人,《運維前線》聯(lián)合作者,現(xiàn)專注于管理學、產(chǎn)品設(shè)計、基礎(chǔ)架構(gòu)運維等領(lǐng)域。
目 錄
本書贊譽
序
前言
第1章 混沌初開1
1.1 我眼中的基礎(chǔ)架構(gòu)1
1.2 寫一本怎樣的書3
1.2.1 英文書的傷痛4
1.2.2 有話直說這就是我的忍道4
1.2.3 當行家說人話5
1.3 本書聲明6
第2章 如何選擇優(yōu)質(zhì)的數(shù)據(jù)中心7
2.1 概述7
2.2 空間環(huán)境評估9
2.2.1 地質(zhì)環(huán)境9
2.2.2 空間結(jié)構(gòu)10
2.3 基礎(chǔ)設(shè)施評估13
2.3.1 電氣系統(tǒng)13
2.3.2 空調(diào)系統(tǒng)17
2.3.3 消防系統(tǒng)21
2.3.4 弱電與綜合布線系統(tǒng)22
2.4 網(wǎng)絡(luò)建設(shè)評估23
2.5 服務(wù)保障評估23
2.6 本章小結(jié)24
第3章 數(shù)據(jù)中心的規(guī)劃設(shè)計工作26
3.1 需求的不確定性29
3.2 如何避免變化打亂規(guī)劃30
3.2.1 采購資源預(yù)留30
3.2.2 數(shù)據(jù)中心機柜區(qū)域的規(guī)劃與布局31
3.2.3 規(guī)劃布局案例33
3.3 規(guī)劃設(shè)計心得35
3.4 本章小結(jié)41
第4章 網(wǎng)絡(luò)規(guī)劃細節(jié)對系統(tǒng)運維的影響42
4.1 案例復盤44
4.2 事情為什么弄得一團糟48
4.3 網(wǎng)絡(luò)空間資源的規(guī)劃50
4.3.1 PoD容量的計算方法50
4.3.2 地址空間的規(guī)劃51
4.3.3 VLAN的規(guī)劃52
4.4 網(wǎng)卡綁定54
4.4.1 網(wǎng)卡綁定模式的選擇54
4.4.2 網(wǎng)卡綁定的實現(xiàn)57
4.5 本章小結(jié)58
第5章 服務(wù)器硬件選型59
5.1 如何選擇合適的硬件配置59
5.1.1 選型的總體原則60
5.1.2 選型中值得注意的地方60
5.2 怎樣的一款服務(wù)器產(chǎn)品才算是優(yōu)秀的62
5.2.1 帶外管理有多重要63
5.2.2 異構(gòu)平臺融合能力63
5.2.3 完善的信息數(shù)據(jù)展示65
5.2.4 軟硬件環(huán)境兼容性66
5.2.5 用戶體驗67
5.3 產(chǎn)品測試那些事兒69
5.3.1 測試前的準備工作69
5.3.2 部署系統(tǒng)測試70
5.3.3 產(chǎn)品功能性測試70
5.3.4 能耗測試71
5.3.5 CPU性能測試81
5.3.6 內(nèi)存性能測試82
5.3.7 磁盤性能測試83
5.3.8 網(wǎng)絡(luò)性能測試87
5.3.9 測試后的收尾工作90
5.4 本章小結(jié)91
第6章 構(gòu)建CMDB與Work-flow92
6.1 誰拖了運維的后腿93
6.2 定海神針CMDB94
6.2.1 CMDB是一切運維的基石95
6.2.2 是什么毀了CMDB97
6.2.3 如何定義你的需求98
6.2.4 如何定義表結(jié)構(gòu)99
6.2.5 設(shè)計思想原則103
6.3 多面嬌娃Workflow106
6.3.1 一份周報中竟然80%的工作量都是在溝通106
6.3.2 Workflow能干什么107
6.3.3 Workflow是實例化的規(guī)范107
6.3.4 Workflow是領(lǐng)航員108
6.3.5 Workflow設(shè)計中的常見問題109
6.4 本章小結(jié)113
第7章 構(gòu)建IaaS平臺系統(tǒng)115
7.1 高效交付解決方案如何選型117
7.2 服務(wù)器設(shè)置詳解119
7.2.1 IPMI121
7.2.2 racadmin121
7.2.3 SMASH CLP123
7.3 Cobbler部署系統(tǒng)詳解124
7.3.1 理解Cobbler架構(gòu)124
7.3.2 Cobbler的安裝配置125
7.3.3 命名規(guī)范128
7.3.4 創(chuàng)建資源目錄130
7.3.5 創(chuàng)建Cobbler部署模板與實例131
7.3.6 Cobbler里面出現(xiàn)的坑133
7.4 IaaS系統(tǒng)的設(shè)計要點136
7.4.1 交付工作流程定義136
7.4.2 Portal模塊與各組件之間的調(diào)用關(guān)系137
7.5 制作KVM虛擬機模板139
7.5.1 虛擬機網(wǎng)絡(luò)環(huán)境部署140
7.5.2 創(chuàng)建虛擬機鏡像模板142
7.5.3 虛擬機克隆143
7.5.4 虛擬機設(shè)備調(diào)整144
7.5.5 VPC的支持145
7.6 本章小結(jié)149
第8章 構(gòu)建域名解析服務(wù)150
8.1 寫在前面的話150
8.2 首先做好一個傳統(tǒng)的DNS管理員151
8.3 Anycast DNS在多數(shù)據(jù)中心中的應(yīng)用171
8.3.1 什么是Anycast171
8.3.2 如何構(gòu)建DNS over Any-cast171
8.3.3 如何實施Anycast DNS172
8.3.4 如何守護quagga進程177
8.3.5 BGP在Anycast中的應(yīng)用178
8.4 HTTP DNS180
8.4.1 傳統(tǒng)DNS的缺陷180
8.4.2 HTTP DNS的優(yōu)勢181
8.4.3 HTTP DNS長什么樣181
8.4.4 HTTP DNS會取代傳統(tǒng)的DNS嗎182
8.5 本章小結(jié)183
第9章 時間同步系統(tǒng)184
9.1 概述184
9.1.1 如何實現(xiàn)時間同步184
9.1.2 GPS衛(wèi)星系統(tǒng)授時原理185
9.1.3 PTP186
9.1.4 為何要選用硬件時間源服務(wù)器187
9.1.5 如何選擇硬件時間源服務(wù)器188
9.2 ntpd191
9.2.1 ntpd初始化191
9.2.2 ntpd配置文件192
9.2.3 使用ntpq查詢時間同步的狀態(tài)193
9.3 chronyd197
9.3.1 chronyd的優(yōu)勢197
9.3.2 chronyd配置文件197
9.3.3 使用key限制客戶端訪問198
9.3.4 跟蹤時間同步過程199
9.3.5 檢查時間同步狀態(tài)199
9.4 如何處理閏秒200
9.4.1 閏秒是什么200
9.4.2 閏秒的危害201
9.4.3 前輩們是怎么解決閏秒的202
9.4.4 晦澀難懂的術(shù)語202
9.4.5 怎么解決閏秒問題204
9.5 本章小結(jié)207
第10章 配置管理209
10.1 本章目的209
10.2 expect與Parallel SSH210
10.2.1 expect210
10.2.2 Parallel SSH213
10.2.3 SSH的通病214
10.3 Ansible218
10.3.1 創(chuàng)建Host Inventory218
10.3.2 如何自動添加節(jié)點218
10.3.3 組織主機節(jié)點219
10.3.4 Ad-Hoc221
10.3.5 Playbook225
10.3.6 關(guān)于優(yōu)化231
10.4 Puppet232
10.4.1 Puppet快跑232
10.4.2 初探Puppet234
10.4.3 使用Apache Passenger替換WEBRick239
10.4.4 Mutil-Master & Mutil-CAServer241
10.4.5 排障241
10.5 SaltStack244
10.5.1 配置Minion244
10.5.2 管理Salt Key244
10.5.3 組織主機節(jié)點245
10.5.4 模塊的調(diào)用245
10.5.5 Mutil-Masters247
10.5.6 級聯(lián)248
10.5.7 SLS249
10.5.8 Grain250
10.5.9 Pillar254
10.5.10 排障255
10.6 我們真的能抗住海量節(jié)點嗎259
10.6.1 集合編隊260
10.6.2 匯報戰(zhàn)況260
10.6.3 不必過度依賴模塊260
10.7 解決方案的選擇261
10.8 本章小結(jié)265
第11章 文件共享服務(wù)266
11.1 構(gòu)建WebDAV服務(wù)266
11.1.1 基本構(gòu)建266
11.1.2 WebDAV on HTTPS270
11.2 構(gòu)建NFS服務(wù)272
11.2.1 NFS v4的新特性272
11.2.2 NFS常見問題處理273
11.2.3 NFS高可用方案277
11.2.4 NFS Cluster實施條件278
11.2.5 NFS Cluster的實施280
11.2.6 NFS Cluster故障排錯287
11.3 構(gòu)建SFTP服務(wù)288
11.3.1 Chroot SFTP和公鑰訪問的必要性288
11.3.2 構(gòu)建Chroot SFTP289
11.3.3 SFTP容災(zāi)方案294
11.4 本章小結(jié)297
第12章 硬件故障告警與維修298
12.1 硬件故障的特點299
12.2 硬件故障告警300
12.2.1 告警方式300
12.2.2 事件類型和告警級別301
12.3 硬件故障分析302
12.3.1 常用分析手段302
12.3.2 常見故障錯誤分析306
12.4 傳統(tǒng)維修的問題312
12.5 報修系統(tǒng)的需求定義313
12.5.1 故障申報環(huán)節(jié)的設(shè)計需求315
12.5.2 審批通告環(huán)節(jié)的設(shè)計需求316
12.5.3 提交報修環(huán)節(jié)的設(shè)計需求316
12.5.4 設(shè)備維修環(huán)節(jié)的設(shè)計需求318
12.5.5 數(shù)據(jù)查詢統(tǒng)計的設(shè)計需求318
12.6 本章小結(jié)319
第13章 主機系統(tǒng)信息安全基礎(chǔ)320
13.1 系統(tǒng)安全加固的基本要求320
13.2 關(guān)于安全配置的反思324
13.2.1 慎用賬戶鎖定325
13.2.2 密碼的煩惱325
13.2.3 sudo的意義326
13.3 sudo over LDAP的實現(xiàn)327
13.3.1 服務(wù)端配置327
13.3.2 客戶端配置329
13.3.3 關(guān)于LDAP超時和連接數(shù)限制的問題330
13.4 密碼學與數(shù)字證書330
13.4.1 密碼學技術(shù)331
13.4.2 數(shù)據(jù)加密與數(shù)字簽名334
13.4.3 公鑰加密體系的安全性論述336
13.4.4 數(shù)字證書是什么337
13.4.5 數(shù)字證書是怎么產(chǎn)生的337
13.4.6 數(shù)字證書是怎么驗證的338
13.5 人為因素340
13.5.1 運維紅線340
13.5.2 安全操作341
13.5.3 運維工作中的常見問題342
13.6 本章小結(jié)344
第14章 性能校準345
14.1 隊列理論346
14.2 CPU348
14.2.1 來自內(nèi)核態(tài)的資源消耗348
14.2.2 用戶態(tài)資源占用率高353
14.2.3 Cache與內(nèi)存的三種映射關(guān)系356
14.2.4 CPU調(diào)度算法357
14.2.5 進程運行在哪個核心上359
14.2.6 strace的妙用360
14.3 內(nèi)存361
14.3.1 NUMA362
14.3.2 Cache和Buffer364
14.3.3 虛擬地址空間365
14.3.4 大頁366
14.3.5 內(nèi)存分配366
14.3.6 內(nèi)存回收368
14.3.7 內(nèi)存超配了怎么辦369
14.3.8 為什么會產(chǎn)生OOM370
14.4 存儲372
14.4.1 磁盤調(diào)度算法372
14.4.2 I/O調(diào)度算法373
14.4.3 日志模式375
14.4.4 其他因素376
14.5 網(wǎng)絡(luò)378
14.5.1 Jumbo Frames379
14.5.2 BDP379
14.5.3 qperf380
14.5.4 其他380
14.6 本章小結(jié)381
第15章 Shell編程382
15.1 參數(shù)傳遞383
15.1.1 shift383
15.1.2 eval385
15.1.3 getopt387
15.1.4 函數(shù)傳參390
15.1.5 返回值391
15.2 文本處理三劍客393
15.2.1 grep394
15.2.2 sed396
15.2.3 awk397
15.3 字符處理401
15.3.1 字符的轉(zhuǎn)義401
15.3.2 字符串截取403
15.4 數(shù)組404
15.5 算來算去406
15.5.1 比較406
15.5.2 字符串計算407
15.5.3 精度與長度408
15.5.4 進制轉(zhuǎn)換408
15.6 表面文章409
15.7 典型案例410
15.8 本章小結(jié)416
第16章 修行之路417
16.1 系統(tǒng)工程師的自我修養(yǎng)417
16.1.1 工程師與管理員418
16.1.2 系統(tǒng)工程師的三顆心419
16.1.3 匠人精神420
16.2 未來時代422
16.2.1 前方高能出現(xiàn)怪獸AlphaGo422
16.2.2 從現(xiàn)在開始就要改變自己424
16.2.3 開啟你的管理模式425
16.3 寫在最后的話427