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

基于Python的DevOps

基于Python的DevOps

定 價:¥128.00

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

ISBN: 9787519864415 出版時間: 2022-03-01 包裝:
開本: 頁數(shù): 字數(shù):  

內(nèi)容簡介

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

作者簡介

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

圖書目錄

目錄
前言 . 1
第1 章 Python DevOps 基礎(chǔ)知識 11
1.1 安裝和運行Python 12
1.1.1 Python shell 12
1.1.2 Jupyter Notebooks13
1.2 過程式程序設(shè)計 13
1.2.1 變量 14
1.2.2 基本的數(shù)學(xué)運算 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)置對象 21
1.5.1 對象是什么 .21
1.5.2 對象的方法和屬性 22
1.5.3 序列 23
1.6 函數(shù) .35
1.6.1 函數(shù)剖析36
1.6.2 函數(shù)是對象 .37
1.6.3 匿名函數(shù)38
1.7 使用正則表達式 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 中運行UNIX shell 命令46
1.9.2 使用IPython 的魔法命令 47
1.10 練習(xí)題 .47
第2 章 文件和文件系統(tǒng)自動化處理 49
2.1 讀寫文件 49
2.2 使用正則表達式搜索文本 .59
2.3 處理大型文件 .61
2.4 加密文本 62
2.4.1 哈希和hashlib 63
2.4.2 使用Cryptography 庫加密 63
2.5 os 模塊 65
2.6 使用os.path 管理文件和目錄 .67
2.7 使用os.walk 遍歷目錄樹 70
2.8 使用pathlib 處理路徑對象 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 模塊派生進程 .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 實現(xiàn)插件系統(tǒng) 95
3.3 案例分析:使用命令行工具提速Python 96
3.3.1 使用Numba JIT 編譯器 97
3.3.2 通過Python CUDA 使用GPU 99
3.3.3 使用Numba 真正多核多線程運行Python 代碼 100
3.3.4 k 均值聚類算法 .101
3.4 練習(xí)題 .103
第4 章 Linux 實用程序 105
4.1 磁盤實用程序 106
4.1.1 衡量性能106
4.1.2 分區(qū) .108
4.1.3 獲取特定的設(shè)備信息 109
4.2 網(wǎng)絡(luò)實用程序 111
4.2.1 SSH 隧道 111
4.2.2 使用Apache Benchmark(ab)評測HTTP . 112
4.2.3 使用molotov 做負載測試 . 113
4.3 CPU 實用程序 . 116
4.3.1 CPU 實用程序簡介 116
4.3.2 使用htop 查看進程 . 116
4.4 使用Bash 和ZSH 118
4.4.1 自定義Python shell . 119
4.4.2 遞歸路徑模式匹配 120
4.4.3 搜索和替換確認提示 120
4.4.4 刪除Python 臨時文件 122
4.4.5 列出和篩選進程 122
4.4.6 UNIX 時間戳 123
4.5 Python 與Bash 和ZSH 混合使用 124
4.5.1 隨機密碼生成器 124
4.5.2 這個模塊是否存在 125
4.5.3 進入模塊所在的目錄 125
4.5.4 把CSV 文件轉(zhuǎn)換成JSON 文件 .126
4.6 Python 單行程序 .127
4.6.1 調(diào)試器 127
4.6.2 這段代碼的運行速度有多快 128
4.7 strace .129
4.8 練習(xí)題 .131
4.9 實操題 .132
第5 章 包管理 133
5.1 打包簡介 .134
5.1.1 打包的重要性 .134
5.1.2 何時不需要打包 134
5.2 打包準則 .135
5.2.1 恰當?shù)陌姹咎?.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 長時間運行的進程 161
5.5.2 創(chuàng)建項目161
5.5.3 systemd 單元文件 .163
5.5.4 安裝單元164
5.5.5 處理日志166
5.6 練習(xí)題 .167
5.7 實操題 .168
第6 章 持續(xù)集成和持續(xù)部署 . 169
6.1 真實案例分析:把維護不善的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 真實案例分析:使用Google Cloud Build 把Python 應(yīng)用部署到
Google App Engine 中 178
6.3 真實案例分析: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ù)庫塞滿硬盤 .189
7.2.3 自建還是購買? 190
7.2.4 容錯 .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)測程序 .197
7.4.1 監(jiān)測程序概述 .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 實操題 .216
第8 章 pytest 在DevOps 中的應(yīng)用 217
8.1 測試小鋼炮pytest 217
8.2 pytest 入門 .218
8.2.1 使用pytest 測試 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è)施測試 231
8.5.1 什么是系統(tǒng)驗證 232
8.5.2 Testinfra 簡介 .233
8.5.3 連接遠程節(jié)點 .233
8.5.4 特性和特殊固件 237
8.5.5 案例 .238
8.6 使用pytest 測試Jupyter Notebooks 241
8.7 練習(xí)題 .242
8.8 實操題 .242
第9 章 云計算 243
9.1 云計算基礎(chǔ)知識 .244
9.2 云計算的類型 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 分布式計算面臨的挑戰(zhàn)和機遇 258
9.8 云時代Python 的并發(fā)、性能和進程管理 260
9.9 進程管理 .261
9.9.1 使用subprocess 管理進程 261
9.9.2 使用multiprocessing 庫解決問題 .263
9.9.3 使用Pool() 派生進程 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 實操題 270
第10 章 IaC 271
10.1 基礎(chǔ)設(shè)施自動化工具分類 272
10.2 手動配置 274
10.3 使用Terraform 自動配置基礎(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 自動配置基礎(chǔ)設(shè)施285
10.4.1 為AWS 新建一個Pulumi Python 項目 286
10.4.2 為過渡堆棧創(chuàng)建配置值 291
10.4.3 配置一個ACM SSL 證書 291
10.4.4 配置Route 53 區(qū)域和DNS 記錄 292
10.4.5 配置一個CloudFront 分配 .295
10.4.6 為網(wǎng)站的URL 配置一個Route 53 DNS 記錄 296
10.4.7 創(chuàng)建并部署一個新堆棧 297
10.5 練習(xí)題 300
第11 章 容器技術(shù):Docker 和Docker Compose 301
11.1 Docker 容器是什么 .302
11.2 創(chuàng)建、構(gòu)建、運行及刪除Docker 映像和容器 .302
11.3 把Docker 映像發(fā)布到Docker 注冊處中 .306
11.4 使用相同的映像在不同的宿主機中運行Docker 容器 308
11.5 使用Docker Compose 運行多個Docker 容器 310
11.6 把Docker Compose 運行的服務(wù)移植到新主機和操作系統(tǒng)中 323
11.7 練習(xí)題 327
第12 章 容器編排:Kubernetes . 329
12.1 Kubernetes 相關(guā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 把同一個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 平臺中 384
13.2.1 把Python 函數(shù)部署到自托管的PaaS 平臺的優(yōu)勢 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 和機器學(xué)習(xí)工程 417
14.1 機器學(xué)習(xí)是什么 417
14.1.1 監(jiān)督型機器學(xué)習(xí) .417
14.1.2 建模 420
14.2 Python 機器學(xué)習(xí)生態(tài)環(huán)境 423
14.2.1 Python 機器學(xué)習(xí)框架和生態(tài)系統(tǒng) 423
14.2.2 PyTorch 深度學(xué)習(xí) 424
14.3 機器學(xué)習(xí)云平臺 428
14.4 機器學(xué)習(xí)成熟模型 429
14.4.1 機器學(xué)習(xí)重點術(shù)語 .429
14.4.2 第1 層:問題構(gòu)建、范圍界定和問題定義 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)機器學(xué)習(xí)和AutoML 434
14.4.7 第6 層:機器學(xué)習(xí)運作反饋環(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 評估 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 實操題 449
14.8 學(xué)習(xí)評價 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ù)工具、組件和平臺 457
15.7.1 數(shù)據(jù)源 .458
15.7.2 文件系統(tǒng) .458
15.7.3 數(shù)據(jù)存儲 .459
15.7.4 實時流式采集 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ū)動型lambda .469
15.9.6 從AWS Lambda 中讀取Amazon SQS 事件 .470
15.10 小結(jié) .474
15.11 練習(xí)題 .475
15.12 實操題 .475
第16 章 DevOps 慘痛經(jīng)驗和人物訪談 . 477
16.1 產(chǎn)不出電影的電影廠 .478
16.2 推不出游戲的游戲坊 .480
16.3 耗時60 秒才啟動的Python 腳本 .482
16.4 用緩存和智能監(jiān)測程序澆滅火情 483
16.5 自動化會讓你失業(yè) 484
16.6 DevOps 反模式 .485
16.6.1 反模式:沒有自動化構(gòu)建服務(wù)器 485
16.6.2 盲目行事 .486
16.6.3 協(xié)調(diào)難題不可避免 .486
16.6.4 沒有團隊合作 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è)項目 511

本目錄推薦

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