注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)基于Python的DevOps

基于Python的DevOps

基于Python的DevOps

定 價(jià):¥128.00

作 者: [美] 諾亞·吉夫特,[美] 肯尼迪·貝爾曼,[美] 阿爾弗雷多·德薩,[美] 格里格·喬治烏 著,安道 譯
出版社: 中國(guó)電力出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787519864415 出版時(shí)間: 2022-03-01 包裝:
開本: 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  ·Python基礎(chǔ)知識(shí),簡(jiǎn)單介紹語(yǔ)言特性。 ·如何自動(dòng)處理文本,編寫命令行工具和自動(dòng)處理文件系統(tǒng)。 ·Linux實(shí)用程序、包管理、構(gòu)建系統(tǒng)、監(jiān)控、監(jiān)測(cè)和自動(dòng)化測(cè)試。 ·云計(jì)算、IaC、Kubernetes和Serverless。 ·站在DevOps的角度探討機(jī)器學(xué)習(xí)和數(shù)據(jù)工程。 ·構(gòu)建、部署和優(yōu)化一個(gè)機(jī)器學(xué)習(xí)項(xiàng)目。

作者簡(jiǎn)介

  Noah Gift是西北大學(xué)和杜克大學(xué)研究生院數(shù)據(jù)科學(xué)專業(yè)與工程項(xiàng)目的講師和顧問(wèn)。 Kennedy Behrman是一位資深顧問(wèn),專門為初創(chuàng)企業(yè)設(shè)計(jì)和實(shí)施云解決方案。 Alfredo Deza是一位軟件工程師和開源軟件開發(fā)者,他重建了公司的基礎(chǔ)設(shè)施。 Grig Gheorghiu是一名程序員、研究實(shí)驗(yàn)室主任、系統(tǒng)/網(wǎng)絡(luò)/安全架構(gòu)師和軟件測(cè)試工程師。

圖書目錄

目錄
前言 . 1
第1 章 Python DevOps 基礎(chǔ)知識(shí) 11
1.1 安裝和運(yùn)行Python 12
1.1.1 Python shell 12
1.1.2 Jupyter Notebooks13
1.2 過(guò)程式程序設(shè)計(jì) 13
1.2.1 變量 14
1.2.2 基本的數(shù)學(xué)運(yùn)算 15
1.2.3 注釋 15
1.2.4 內(nèi)置函數(shù)16
1.3 執(zhí)行控制 17
1.3.1 if/elif/else .17
1.3.2 for 循環(huán) .18
1.3.3 while 循環(huán) 20
1.4 處理異常 20
1.5 內(nèi)置對(duì)象 21
1.5.1 對(duì)象是什么 .21
1.5.2 對(duì)象的方法和屬性 22
1.5.3 序列 23
1.6 函數(shù) .35
1.6.1 函數(shù)剖析36
1.6.2 函數(shù)是對(duì)象 .37
1.6.3 匿名函數(shù)38
1.7 使用正則表達(dá)式 39
1.7.1 搜索 39
1.7.2 字符集合40
1.7.3 字符類 41
1.7.4 分組 41
1.7.5 具名分組42
1.7.6 查找所有42
1.7.7 查找迭代器 .42
1.7.8 替換 43
1.7.9 編譯 43
1.8 惰性求值 44
1.8.1 生成器 44
1.8.2 生成器推導(dǎo) .45
1.9 更多IPython 功能 .46
1.9.1 在IPython 中運(yùn)行UNIX shell 命令46
1.9.2 使用IPython 的魔法命令 47
1.10 練習(xí)題 .47
第2 章 文件和文件系統(tǒng)自動(dòng)化處理 49
2.1 讀寫文件 49
2.2 使用正則表達(dá)式搜索文本 .59
2.3 處理大型文件 .61
2.4 加密文本 62
2.4.1 哈希和hashlib 63
2.4.2 使用Cryptography 庫(kù)加密 63
2.5 os 模塊 65
2.6 使用os.path 管理文件和目錄 .67
2.7 使用os.walk 遍歷目錄樹 70
2.8 使用pathlib 處理路徑對(duì)象 71
第3 章 使用命令行 . 73
3.1 使用shell 73
3.1.1 使用sys 模塊探知系統(tǒng)信息 73
3.1.2 使用os 模塊處理操作系統(tǒng) .74
3.1.3 使用subprocess 模塊派生進(jìn)程 .75
3.2 編寫命令行工具 77
3.2.1 使用sys.argv .79
3.2.2 使用argparse .81
3.2.3 使用click .85
3.2.4 使用fire 90
3.2.5 實(shí)現(xiàn)插件系統(tǒng) 95
3.3 案例分析:使用命令行工具提速Python 96
3.3.1 使用Numba JIT 編譯器 97
3.3.2 通過(guò)Python CUDA 使用GPU 99
3.3.3 使用Numba 真正多核多線程運(yùn)行Python 代碼 100
3.3.4 k 均值聚類算法 .101
3.4 練習(xí)題 .103
第4 章 Linux 實(shí)用程序 105
4.1 磁盤實(shí)用程序 106
4.1.1 衡量性能106
4.1.2 分區(qū) .108
4.1.3 獲取特定的設(shè)備信息 109
4.2 網(wǎng)絡(luò)實(shí)用程序 111
4.2.1 SSH 隧道 111
4.2.2 使用Apache Benchmark(ab)評(píng)測(cè)HTTP . 112
4.2.3 使用molotov 做負(fù)載測(cè)試 . 113
4.3 CPU 實(shí)用程序 . 116
4.3.1 CPU 實(shí)用程序簡(jiǎn)介 116
4.3.2 使用htop 查看進(jìn)程 . 116
4.4 使用Bash 和ZSH 118
4.4.1 自定義Python shell . 119
4.4.2 遞歸路徑模式匹配 120
4.4.3 搜索和替換確認(rèn)提示 120
4.4.4 刪除Python 臨時(shí)文件 122
4.4.5 列出和篩選進(jìn)程 122
4.4.6 UNIX 時(shí)間戳 123
4.5 Python 與Bash 和ZSH 混合使用 124
4.5.1 隨機(jī)密碼生成器 124
4.5.2 這個(gè)模塊是否存在 125
4.5.3 進(jìn)入模塊所在的目錄 125
4.5.4 把CSV 文件轉(zhuǎn)換成JSON 文件 .126
4.6 Python 單行程序 .127
4.6.1 調(diào)試器 127
4.6.2 這段代碼的運(yùn)行速度有多快 128
4.7 strace .129
4.8 練習(xí)題 .131
4.9 實(shí)操題 .132
第5 章 包管理 133
5.1 打包簡(jiǎn)介 .134
5.1.1 打包的重要性 .134
5.1.2 何時(shí)不需要打包 134
5.2 打包準(zhǔn)則 .135
5.2.1 恰當(dāng)?shù)陌姹咎?hào) .135
5.2.2 更改日志136
5.3 選擇一種策略 137
5.4 打包方案 .138
5.4.1 Python 原生包 138
5.4.2 Debian 包 145
5.4.3 RPM 包 153
5.5 使用systemd 管理服務(wù) 160
5.5.1 長(zhǎng)時(shí)間運(yùn)行的進(jìn)程 161
5.5.2 創(chuàng)建項(xiàng)目161
5.5.3 systemd 單元文件 .163
5.5.4 安裝單元164
5.5.5 處理日志166
5.6 練習(xí)題 .167
5.7 實(shí)操題 .168
第6 章 持續(xù)集成和持續(xù)部署 . 169
6.1 真實(shí)案例分析:把維護(hù)不善的WordPress 網(wǎng)站轉(zhuǎn)換成Hugo 169
6.1.1 設(shè)置Hugo .171
6.1.2 把WordPress 文章轉(zhuǎn)換成Hugo 文章 .172
6.1.3 創(chuàng)建并更新Algolia 索引 174
6.1.4 使用Makefile 編排流程 176
6.1.5 使用AWS CodePipeline 部署 .176
6.2 真實(shí)案例分析:使用Google Cloud Build 把Python 應(yīng)用部署到
Google App Engine 中 178
6.3 真實(shí)案例分析:NFSOPS 185
第7 章 監(jiān)控和日志 187
7.1 構(gòu)建可靠系統(tǒng)的關(guān)鍵概念 187
7.2 不可變的DevOps 原則 188
7.2.1 集中處理日志 .188
7.2.2 案例分析:生產(chǎn)數(shù)據(jù)庫(kù)塞滿硬盤 .189
7.2.3 自建還是購(gòu)買? 190
7.2.4 容錯(cuò) .190
7.3 監(jiān)控 192
7.3.1 Graphite .192
7.3.2 StatsD .192
7.3.3 Prometheus 193
7.4 監(jiān)測(cè)程序 .197
7.4.1 監(jiān)測(cè)程序概述 .197
7.4.2 命名約定200
7.5 日志 201
7.5.1 為什么很難 202
7.5.2 basicconfig 202
7.5.3 深度配置203
7.5.4 常用模式208
7.6 ELK 棧 .209
7.6.1 Logstash .210
7.6.2 Elasticsearch 和Kibana .212
7.7 練習(xí)題 .215
7.8 實(shí)操題 .216
第8 章 pytest 在DevOps 中的應(yīng)用 217
8.1 測(cè)試小鋼炮pytest 217
8.2 pytest 入門 .218
8.2.1 使用pytest 測(cè)試 218
8.2.2 與unittest 的區(qū)別 .220
8.3 pytest 特性 .222
8.3.1 conftest.py 223
8.3.2 出色的assert223
8.3.3 參數(shù)化 225
8.4 固件 226
8.4.1 入門 .227
8.4.2 內(nèi)置固件229
8.5 基礎(chǔ)設(shè)施測(cè)試 231
8.5.1 什么是系統(tǒng)驗(yàn)證 232
8.5.2 Testinfra 簡(jiǎn)介 .233
8.5.3 連接遠(yuǎn)程節(jié)點(diǎn) .233
8.5.4 特性和特殊固件 237
8.5.5 案例 .238
8.6 使用pytest 測(cè)試Jupyter Notebooks 241
8.7 練習(xí)題 .242
8.8 實(shí)操題 .242
第9 章 云計(jì)算 243
9.1 云計(jì)算基礎(chǔ)知識(shí) .244
9.2 云計(jì)算的類型 246
9.3 云服務(wù)的類型 246
9.3.1 IaaS 247
9.3.2 MaaS 251
9.3.3 PaaS .251
9.3.4 Serverless 252
9.3.5 SaaS .255
9.4 IaC .256
9.5 持續(xù)交付 .256
9.6 虛擬化和容器 256
9.6.1 硬件虛擬化 256
9.6.2 SDN .257
9.6.3 SDS .257
9.6.4 容器 .257
9.7 分布式計(jì)算面臨的挑戰(zhàn)和機(jī)遇 258
9.8 云時(shí)代Python 的并發(fā)、性能和進(jìn)程管理 260
9.9 進(jìn)程管理 .261
9.9.1 使用subprocess 管理進(jìn)程 261
9.9.2 使用multiprocessing 庫(kù)解決問(wèn)題 .263
9.9.3 使用Pool() 派生進(jìn)程 264
9.9.4 FaaS 和Serverless 267
9.9.5 使用Numba 提升Python 的性能 267
9.9.6 使用Numba JIT 編譯器 .267
9.9.7 使用高性能服務(wù)器 268
9.10 小結(jié) 269
9.11 練習(xí)題 269
9.12 實(shí)操題 270
第10 章 IaC 271
10.1 基礎(chǔ)設(shè)施自動(dòng)化工具分類 272
10.2 手動(dòng)配置 274
10.3 使用Terraform 自動(dòng)配置基礎(chǔ)設(shè)施 .275
10.3.1 配置S3 bucket .276
10.3.2 使用ACM 配置SSL 證書 .279
10.3.3 配置Amazon CloudFront 分配 280
10.3.4 配置Route 53 DNS 記錄 283
10.3.5 把靜態(tài)文件復(fù)制到S3 中 284
10.3.6 刪除使用Terraform 配置的所有AWS 資源 .285
10.4 使用Pulumi 自動(dòng)配置基礎(chǔ)設(shè)施285
10.4.1 為AWS 新建一個(gè)Pulumi Python 項(xiàng)目 286
10.4.2 為過(guò)渡堆棧創(chuàng)建配置值 291
10.4.3 配置一個(gè)ACM SSL 證書 291
10.4.4 配置Route 53 區(qū)域和DNS 記錄 292
10.4.5 配置一個(gè)CloudFront 分配 .295
10.4.6 為網(wǎng)站的URL 配置一個(gè)Route 53 DNS 記錄 296
10.4.7 創(chuàng)建并部署一個(gè)新堆棧 297
10.5 練習(xí)題 300
第11 章 容器技術(shù):Docker 和Docker Compose 301
11.1 Docker 容器是什么 .302
11.2 創(chuàng)建、構(gòu)建、運(yùn)行及刪除Docker 映像和容器 .302
11.3 把Docker 映像發(fā)布到Docker 注冊(cè)處中 .306
11.4 使用相同的映像在不同的宿主機(jī)中運(yùn)行Docker 容器 308
11.5 使用Docker Compose 運(yùn)行多個(gè)Docker 容器 310
11.6 把Docker Compose 運(yùn)行的服務(wù)移植到新主機(jī)和操作系統(tǒng)中 323
11.7 練習(xí)題 327
第12 章 容器編排:Kubernetes . 329
12.1 Kubernetes 相關(guān)概念簡(jiǎn)述 330
12.2 使用Kompose 根據(jù)docker-compose.yaml 創(chuàng)建Kubernetes 清單 331
12.3 使用minikube 把Kubernetes 清單部署到本地Kubernetes 集群 .333
12.4 在GCP 中使用Pulumi 創(chuàng)建GKE Kubernetes 集群 349
12.5 把Flask 示例應(yīng)用部署到GKE 中 352
12.6 安裝Helm chart Prometheus 和Grafana 359
12.7 銷毀GKE 集群 .364
12.8 練習(xí)題 365
第13 章 Serverless 技術(shù) 367
13.1 把同一個(gè)Python 函數(shù)部署到三大云服務(wù)商中 .370
13.1.1 安裝Serverless 框架 .370
13.1.2 把Python 函數(shù)部署到AWS Lambda 中 .370
13.1.3 把Python 函數(shù)部署到Google Cloud Functions 中 373
13.1.4 把Python 函數(shù)部署到Azure 中 380
13.2 把Python 函數(shù)部署到自托管的FaaS 平臺(tái)中 384
13.2.1 把Python 函數(shù)部署到自托管的PaaS 平臺(tái)的優(yōu)勢(shì) 384
13.2.2 把Python 函數(shù)部署到OpenFaaS 中 .385
13.3 使用AWS CDK 配置DynamoDB 數(shù)據(jù)表、Lambda 函數(shù)和
API 網(wǎng)關(guān)方法 .393
13.4 練習(xí)題 415
第14 章 MLOps 和機(jī)器學(xué)習(xí)工程 417
14.1 機(jī)器學(xué)習(xí)是什么 417
14.1.1 監(jiān)督型機(jī)器學(xué)習(xí) .417
14.1.2 建模 420
14.2 Python 機(jī)器學(xué)習(xí)生態(tài)環(huán)境 423
14.2.1 Python 機(jī)器學(xué)習(xí)框架和生態(tài)系統(tǒng) 423
14.2.2 PyTorch 深度學(xué)習(xí) 424
14.3 機(jī)器學(xué)習(xí)云平臺(tái) 428
14.4 機(jī)器學(xué)習(xí)成熟模型 429
14.4.1 機(jī)器學(xué)習(xí)重點(diǎn)術(shù)語(yǔ) .429
14.4.2 第1 層:?jiǎn)栴}構(gòu)建、范圍界定和問(wèn)題定義 430
14.4.3 第2 層:持續(xù)交付數(shù)據(jù) 431
14.4.4 第3 層:持續(xù)交付凈化數(shù)據(jù) .432
14.4.5 第4 層:持續(xù)交付探索性數(shù)據(jù)分析 434
14.4.6 第5 層:持續(xù)交付傳統(tǒng)機(jī)器學(xué)習(xí)和AutoML 434
14.4.7 第6 層:機(jī)器學(xué)習(xí)運(yùn)作反饋環(huán) 435
14.5 使用Docker 和Kubernetes 部署sklearn Flask 應(yīng)用 435
14.5.1 EDA 440
14.5.2 建模 441
14.5.3 調(diào)整GBM 縮放 442
14.5.4 擬合模型 .443
14.5.5 評(píng)估 444
14.5.6 adhoc_predict 445
14.5.7 JSON 工作流 446
14.5.8 縮放輸入 .446
14.5.9 adhoc_predict 447
14.5.10 縮放輸入 448
14.6 練習(xí)題 448
14.7 實(shí)操題 449
14.8 學(xué)習(xí)評(píng)價(jià) 449
第15 章 數(shù)據(jù)工程 . 451
15.1 小數(shù)據(jù) 452
15.1.1 小數(shù)據(jù)與大數(shù)據(jù) .452
15.1.2 處理小數(shù)據(jù)文件 .452
15.2 寫文件 453
15.3 讀文件 453
15.4 使用生成器流水線逐行讀取和處理 453
15.5 使用YAML .454
15.6 大數(shù)據(jù) 455
15.7 大數(shù)據(jù)工具、組件和平臺(tái) 457
15.7.1 數(shù)據(jù)源 .458
15.7.2 文件系統(tǒng) .458
15.7.3 數(shù)據(jù)存儲(chǔ) .459
15.7.4 實(shí)時(shí)流式采集 460
15.8 案例分析:自制數(shù)據(jù)流水線 461
15.9 Serverless 數(shù)據(jù)工程 462
15.9.1 使用AWS Lambda 處理CloudWatch 事件 463
15.9.2 使用Amazon CloudWatch 日志分析AWS Lambda 463
15.9.3 使用AWS Lambda 填充Amazon Simple Queue Service .464
15.9.4 連接CloudWatch 事件觸發(fā)器 468
15.9.5 創(chuàng)建事件驅(qū)動(dòng)型lambda .469
15.9.6 從AWS Lambda 中讀取Amazon SQS 事件 .470
15.10 小結(jié) .474
15.11 練習(xí)題 .475
15.12 實(shí)操題 .475
第16 章 DevOps 慘痛經(jīng)驗(yàn)和人物訪談 . 477
16.1 產(chǎn)不出電影的電影廠 .478
16.2 推不出游戲的游戲坊 .480
16.3 耗時(shí)60 秒才啟動(dòng)的Python 腳本 .482
16.4 用緩存和智能監(jiān)測(cè)程序澆滅火情 483
16.5 自動(dòng)化會(huì)讓你失業(yè) 484
16.6 DevOps 反模式 .485
16.6.1 反模式:沒有自動(dòng)化構(gòu)建服務(wù)器 485
16.6.2 盲目行事 .486
16.6.3 協(xié)調(diào)難題不可避免 .486
16.6.4 沒有團(tuán)隊(duì)合作 487
16.7 人物訪談 492
16.7.1 Glenn Solomon 492
16.7.2 Andrew Nguyen 493
16.7.3 Gabriella Roman .495
16.7.4 Rigoberto Roche .496
16.7.5 Jonathan LaCour .498
16.7.6 Ville Tuulos 500
16.7.7 Joseph Reis 502
16.7.8 Teijo Holzer 503
16.7.9 Matt Harrison 505
16.7.10 Michael Foord 507
16.8 一些建議 510
16.9 練習(xí)題 511
16.10 挑戰(zhàn)題 . 511
16.11 畢業(yè)項(xiàng)目 511

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)