精通Python網路開發

    用Python套件與框架完成網路自動化、監控、雲端和管理

    Collecting
    US$30.91

    內容簡介


    使用Python套件與框架完成網路自動化、監控、雲端和管理


    台灣旅美資深網路技術專家最新實戰指南
    教你用Python點滿網路自動化的技能樹
    涵蓋Docker、Python、GitLab與DevOps技術
    從基礎技能到建構企業級API全面掌握

    適合所有希望拓展技能並追求網路自動化(NetDevOps)的網路工程師!

    ________________________________________


    「本書書名是《精通Python網路開發》,但涵蓋範圍遠遠超出了Python腳本。我僅使用這本書,就足以讓我經驗豐富、精通CLI的網路安全工程師團隊,快速了解網路自動化及其相關知識。簡言之,尋求專注於自動化的網路工程師,可將本書視為網路工程庫的重要補充。」
    --Daniel Luechtefeld -Snowdog 技術和網络首席顧問

    在基礎設施中,網路決定了應用程序部署、維護和服務方式。身為一種強大的程式語言,Python為網路工程師提供了許多工具,讓他們能像過去的系統工程師與程式開發者一樣,探索與操作設備。在《精通Python網路開發》一書中,您將開始一段以Python為基礎的旅程,從傳統的網路工程師轉變為能適應下一代網路的網路開發人員。

    本書針對新的Python特性和DevOps框架進行全面更新。新增了關於Docker容器和Python3 Async IO的章節,每一章也使用最新的函式庫和範例,以確保相容性與對概念的理解。

    從Python的基本概述開始,您將學習與傳統網路設備和支援API的網路設備互動的方法。利用高階Python套件與框架來執行網路自動化任務、監控、管理和強化網路安全,深入研究AWS和Azure雲端服務與運算,使用Git管理程式碼、GitLab實作持續整合,運用基於Python撰寫的測試工具來驗證網路。

    您將學到:
    *使用Python與網路設備互動
    *了解Docker開發與部署的方式
    *使用Python和各種工具獲取網路資訊
    *學習使用ELK執行網路資料分析
    *使用Flask並建置一個高階API與企業內部應用程式互動
    *發現Python3的新Async IO特性與概念
    *探索測試驅動開發的概念並使用PyTest來驅動程式碼測試的覆蓋率
    *了解使用GitLab與網路中的DevOps實例

    作者介紹


    Eric Chou(周君逸)是一位台灣旅美工程師,擁有20多年經驗的資深技術專家。他在Amazon、Azure及其他財星500強公司工作時,曾參與一些業界最大的網絡工作。Eric熱衷於網路自動化、Python、DevOps以及幫助公司建立更好的安全狀態。他除了是《精通Python網路開發》(Packt)的作者之外,也是多本暢銷書籍和高評價線上課程的作者或合著者。Eric也是IP電話和網路領域等多項美國專利的主要發明人或共同發明人。他透過書籍、課程、部落格分享了他對科技的濃厚興趣,並為一些流行的Python開源專案做出許多貢獻。

    目錄


    推薦序
    第四版 繁體中文序
    前言

    Chapter 1:TCP/IP 協定套組與 Python 的回顧
    網際網路概述
    開放式系統互聯(OSI)模型
    主從式模型
    網路協定套組
    Python 語言概述
    總結

    Chapter 2:底層網路設備互動
    使用 CLI 的挑戰
    建立虛擬實驗環境
    Python 虛擬環境
    Python Pexpect 函式庫
    Python Paramiko 函式庫
    Netmiko 函式庫
    Nornir 框架
    總結

    Chapter 3:應用程式介面(API)與意圖驅動網路開發
    基礎設施即程式碼(IaC)
    Cisco API 範例
    Cisco Meraki 控制器
    Python API 與 Juniper Networks 設備互動的方法
    Arista Python API 介面
    VyOS 範例
    其他函式庫
    總結

    Chapter 4:Python 自動化框架 - Ansible
    Ansible - 更具宣告性的框架
    我們的第一個 Ansible 網路範例
    Ansible 的優點
    Ansible 內容集合
    更多的 Ansible 網路範例
    總結

    Chapter 5:面向網路工程師的 Docker 容器
    Docker 概述
    在 Docker 建立 Python 應用程式
    容器聯網
    網路工程領域中的容器
    Docker 與 Kubernates
    總結

    Chapter 6:使用 Python 來實現網路安全
    實驗環境設置
    Python Scapy 工具
    存取列表
    Syslog 搜尋
    其他工具
    進一步學習 Python
    總結

    Chapter 7:使用 Python 來進行網路監控 - 第 1 部分
    實驗環境設置
    簡單網路管理協定(SNMP)
    Python 用於資料視覺化
    將 Python 應用於 Cacti
    總結

    Chapter 8:使用 Python 來執行網路監控 - 第 2 部分
    Graphviz 工具
    流量式監測
    ntop 流量監測
    總結

    Chapter 9:使用 Python 建立網路網頁伺服器
    Python web 框架比較
    Flask 與實驗環境設置
    Flask 的介紹
    網路資源 API
    網路動態操作
    身分驗證與授權
    容器內執行 Flask
    總結

    Chapter 10:Async IO 介紹
    非同步操作概述
    Python asyncio 模組
    Scrapli 專案
    總結

    Chapter 11:AWS 雲端網路開發
    AWS 設置
    AWS 網路概述
    虛擬私有雲
    專用網路連線(Direct Connect)與 VPN
    網路擴充服務
    其他 AWS 網路服務
    總結

    Chapter 12:Azure 雲端網路開發
    Azure 與 AWS 網路服務比較
    Azure 設置說明
    Azure 管理與 API
    Azure 全球基礎設施
    Azure 虛擬網路
    VNet 路由
    Azure 虛擬私有網路(Azure VPN)
    Azure ExpressRoute 服務
    Azure 網路負載平衡器
    其他 Azure 網路服務
    總結

    Chapter 13:利用 Elastic Stack 執行網路資料分析
    Elastic Stack 是什麼?
    實驗環境拓樸
    Elastic Stack 即服務
    第一個端到端範例
    利用 Python client 與 Elasticsearch 互動
    利用 Logstash 進行資料攝取
    利用 Beats 進行資料攝取
    利用 Elasticsearch 進行搜尋
    利用 Kibana 來達到資料視覺化
    總結

    Chapter 14:Git 的使用
    內容管理考量與 Git
    Git 介紹
    設置 Git
    Git 使用範例
    Git 分支操作說明
    利用 Python 操作 Git
    自動組態備份
    使用 Git 進行協作
    總結

    Chapter 15:利用 GitLab 進行持續整合
    傳統的變更管理流程
    持續整合簡介
    安裝 GitLab
    GitLab runner 執行器程式
    第一個 GitLab 範例
    GitLab 網路範例
    總結

    Chapter 16:網路測試驅動開發
    測試驅動開發概述
    拓樸即程式碼
    為網路編寫測試
    pyATS 和 Genie
    結論

    索引

    Content

    • 1-1
      封面頁
    • 1-2
      書名頁
    • 1-3
      推薦序
    • 1-4
      第四版 繁體中文序
    • 1-5
      關於作者
    • 1-6
      關於審校者
    • 1-7
      目錄
    • 1-8
      前言
    • 1-9
      Ch01 TCP/IP 協定套組與Python 的回顧
    • 1-10
      網際網路概述
    • 1-11
      伺服器、主機與網路元件
    • 1-12
      資料中心的崛起
    • 1-13
      開放式系統互聯(OSI)模型
    • 1-14
      主從式模型
    • 1-15
      網路協定套組
    • 1-16
      傳輸控制協定
    • 1-17
      使用者資料包協定
    • 1-18
      網際網路協定
    • 1-19
      Python 語言概述
    • 1-20
      作業系統
    • 1-21
      執行Python 程式
    • 1-22
      Python 內建型別
    • 1-23
      Python 運算子
    • 1-24
      Python 流程控制工具
    • 1-25
      Python 函式
    • 1-26
      Python 類別
    • 1-27
      Python 模組與套件
    • 1-28
      總結
    • 1-29
      Ch02 底層網路設備互動
    • 1-30
      使用CLI 的挑戰
    • 1-31
      建立虛擬實驗環境
    • 1-32
      實體設備
    • 1-33
      虛擬設備
    • 1-34
      Cisco 建模實驗室
    • 1-35
      Cisco DevNet 計畫
    • 1-36
      GNS3 和其他虛擬實驗工具
    • 1-37
      Python 虛擬環境
    • 1-38
      Python Pexpect 函式庫
    • 1-39
      Pexpect 安裝說明
    • 1-40
      Pexpect 概述
    • 1-41
      第一支Pexpect 程式
    • 1-42
      更多的Pexpect 功能
    • 1-43
      Pexpect 與SSH
    • 1-44
      Pexpect 完整範例
    • 1-45
      Python Paramiko 函式庫
    • 1-46
      Paramiko 安裝說明
    • 1-47
      Paramiko 概述
    • 1-48
      第一支Paramiko 程式
    • 1-49
      更多的Paramiko 功能
    • 1-50
      更多Praramiko 範例
    • 1-51
      Netmiko 函式庫
    • 1-52
      Nornir 框架
    • 1-53
      Pexpect 和Paramiko 相比於其他工具的不利之處
    • 1-54
      總結
    • 1-55
      Ch03 應用程式介面(API)與意圖驅動網路開發
    • 1-56
      基礎設施即程式碼(IaC)
    • 1-57
      意圖驅動網路
    • 1-58
      螢幕擷取與API 結構化輸出
    • 1-59
      IaC 的資料建模
    • 1-60
      YANG 與網路組態協定工具(NETCONF)
    • 1-61
      Cisco API 範例
    • 1-62
      Cisco NX-API 介面
    • 1-63
      Cisco YANG 模型
    • 1-64
      Cisco ACI 範例
    • 1-65
      Cisco Meraki 控制器
    • 1-66
      Python API 與Juniper Networks 設備互動的方法
    • 1-67
      Juniper 與網路設定協定工具(NETCONF)
    • 1-68
      面相開發者的Juniper PyEZ 函式庫
    • 1-69
      Arista Python API 介面
    • 1-70
      Arista eAPI 管理
    • 1-71
      Arista Pyeapi 函式庫
    • 1-72
      VyOS 範例
    • 1-73
      其他函式庫
    • 1-74
      總結
    • 1-75
      Ch04 Python 自動化框架─Ansible
    • 1-76
      Ansible─更具宣告性的框架
    • 1-77
      Ansible 版本
    • 1-78
      我們的第一個Ansible 網路範例
    • 1-79
      安裝控制節點
    • 1-80
      實驗環境拓樸
    • 1-81
      Ansible 的優點
    • 1-82
      無代理
    • 1-83
      冪等性
    • 1-84
      簡單與可擴張
    • 1-85
      Ansible 內容集合
    • 1-86
      更多的Ansible 網路範例
    • 1-87
      設備列表檔案巢狀分組
    • 1-88
      Ansible 條件判斷
    • 1-89
      組態變更
    • 1-90
      Ansible 網路fact 變數
    • 1-91
      Ansible 迴圈
    • 1-92
      模板
    • 1-93
      總結
    • 1-94
      Ch05 面向網路工程師的Docker 容器
    • 1-95
      Docker 概述
    • 1-96
      Docker 的優點
    • 1-97
      在Docker 建立Python 應用程式
    • 1-98
      安裝Docker
    • 1-99
      有用的Docker 指令
    • 1-100
      建立hello world 程式
    • 1-101
      建立我們的應用程式
    • 1-102
      分享Docker 映像檔
    • 1-103
      使用Docker-compose 進行容器協作
    • 1-104
      容器聯網
    • 1-105
      容器主機網路
    • 1-106
      客製化橋接網路
    • 1-107
      其他容器網路選項
    • 1-108
      網路工程領域中的容器
    • 1-109
      Containerlab 虛擬網路開發系統
    • 1-110
      Docker 與Kubernates
    • 1-111
      總結
    • 1-112
      Ch06 使用Python 來實現網路安全
    • 1-113
      實驗環境設置
    • 1-114
      Python Scapy 工具
    • 1-115
      安裝Scapy
    • 1-116
      互動範例
    • 1-117
      使用Scapy 抓取封包
    • 1-118
      掃描TCP 連接埠
    • 1-119
      ping 集合
    • 1-120
      一般攻擊
    • 1-121
      Scapy 資源
    • 1-122
      存取列表
    • 1-123
      使用Ansible 實作存取列表
    • 1-124
      媒體存取控制(MAC)存取列表
    • 1-125
      Syslog 搜尋
    • 1-126
      利用正規表示式模組搜尋
    • 1-127
      其他工具
    • 1-128
      私有虛擬區域網路(VLAN)
    • 1-129
      使用Python 設定UFW
    • 1-130
      進一步學習Python
    • 1-131
      總結
    • 1-132
      Ch07 使用Python 來進行網路監控─第1 部分
    • 1-133
      實驗環境設置
    • 1-134
      簡單網路管理協定(SNMP)
    • 1-135
      SNMP 設置
    • 1-136
      PySNMP 函式庫
    • 1-137
      Python 用於資料視覺化
    • 1-138
      Matplotlib 函式庫
    • 1-139
      Pygal 函式庫
    • 1-140
      將Python 應用於Cacti
    • 1-141
      安裝說明
    • 1-142
      使用Python 腳本作為輸入來源
    • 1-143
      總結
    • 1-144
      Ch08 使用Python 來執行網路監控─第2 部分
    • 1-145
      Graphviz 工具
    • 1-146
      實驗環境設置
    • 1-147
      安裝說明
    • 1-148
      Graphviz 範例
    • 1-149
      Python 與Graphviz 範例
    • 1-150
      LLDP 鄰近節點繪圖
    • 1-151
      流量式監測
    • 1-152
      使用Python 解析NetFlow
    • 1-153
      ntop 流量監測
    • 1-154
      ntop 的Python 擴充
    • 1-155
      sFlow 工具
    • 1-156
      總結
    • 1-157
      Ch09 使用Python建立網路網頁伺服器
    • 1-158
      Python web 框架比較
    • 1-159
      Flask 與實驗環境設置
    • 1-160
      Flask 的介紹
    • 1-161
      Flask 版本
    • 1-162
      Flask 範例
    • 1-163
      HTTPie 客戶端工具
    • 1-164
      URL 路由
    • 1-165
      URL 變數
    • 1-166
      URL 生成
    • 1-167
      jsonify 函式回傳
    • 1-168
      網路資源API
    • 1-169
      Flask-SQLAlchemy 模組
    • 1-170
      網路內容API
    • 1-171
      設備API
    • 1-172
      設備ID API
    • 1-173
      網路動態操作
    • 1-174
      非同步操作
    • 1-175
      身分驗證與授權
    • 1-176
      容器內執行Flask
    • 1-177
      總結
    • 1-178
      Ch10 Async IO 介紹
    • 1-179
      非同步操作概述
    • 1-180
      Python 多工處理
    • 1-181
      Python 多執行緒
    • 1-182
      Python asyncio 模組
    • 1-183
      Scrapli 專案
    • 1-184
      Scrapli 範例
    • 1-185
      Scrapli 非同步範例
    • 1-186
      總結
    • 1-187
      Ch11 AWS 雲端網路開發
    • 1-188
      AWS 設置
    • 1-189
      AWS CLI 與Python 軟體開發工具包(SDK)
    • 1-190
      AWS 網路概述
    • 1-191
      虛擬私有雲
    • 1-192
      路由表與路由目標
    • 1-193
      使用CloudFormation 達到自動化
    • 1-194
      安全群組與網路存取控制列表(ACL)
    • 1-195
      彈性IP
    • 1-196
      NAT 閘道
    • 1-197
      專用網路連線(Direct Connect)與VPN
    • 1-198
      虛擬私人網路(VPN)閘道
    • 1-199
      專用網路連線
    • 1-200
      網路擴充服務
    • 1-201
      彈性負載平衡
    • 1-202
      Route 53 網域名稱系統(DNS)服務
    • 1-203
      CloudFront 內容傳遞網路服務
    • 1-204
      其他AWS 網路服務
    • 1-205
      總結
    • 1-206
      Ch12 Azure 雲端網路開發
    • 1-207
      Azure 與AWS 網路服務比較
    • 1-208
      Azure 設置說明
    • 1-209
      Azure 管理與API
    • 1-210
      Azure 服務主體
    • 1-211
      Python 與PowerShell 的比較
    • 1-212
      Azure 全球基礎設施
    • 1-213
      Azure 虛擬網路
    • 1-214
      網際網路存取
    • 1-215
      網路資源創建
    • 1-216
      VNet 服務端點
    • 1-217
      VNet 點對點連線
    • 1-218
      VNet 路由
    • 1-219
      網路安全群組
    • 1-220
      Azure 虛擬私有網路(Azure VPN)
    • 1-221
      Azure ExpressRoute 服務
    • 1-222
      Azure 網路負載平衡器
    • 1-223
      其他Azure 網路服務
    • 1-224
      總結
    • 1-225
      Ch13 利用Elastic Stack 執行網路資料分析
    • 1-226
      Elastic Stack 是什麼?
    • 1-227
      實驗環境拓樸
    • 1-228
      Elastic Stack 即服務
    • 1-229
      第一個端到端範例
    • 1-230
      利用Python client 與Elasticsearch 互動
    • 1-231
      利用Logstash 進行資料攝取
    • 1-232
      利用Beats 進行資料攝取
    • 1-233
      利用Elasticsearch 進行搜尋
    • 1-234
      利用Kibana 來達到資料視覺化
    • 1-235
      總結
    • 1-236
      Ch14 Git 的使用
    • 1-237
      內容管理考量與Git
    • 1-238
      Git 介紹
    • 1-239
      Git 的優勢
    • 1-240
      Git 術語
    • 1-241
      Git 與GitHub
    • 1-242
      設置Git
    • 1-243
      Gitignore 檔案
    • 1-244
      Git 使用範例
    • 1-245
      Git 分支操作說明
    • 1-246
      GitHub 範例
    • 1-247
      利用Python 操作Git
    • 1-248
      GitPython 套件
    • 1-249
      PyGitHub 套件
    • 1-250
      自動組態備份
    • 1-251
      使用Git 進行協作
    • 1-252
      總結
    • 1-253
      Ch15 利用GitLab 進行持續整合
    • 1-254
      傳統的變更管理流程
    • 1-255
      持續整合簡介
    • 1-256
      安裝GitLab
    • 1-257
      GitLab runner 執行器程式
    • 1-258
      第一個GitLab 範例
    • 1-259
      GitLab 網路範例
    • 1-260
      總結
    • 1-261
      Ch16 網路測試驅動開發
    • 1-262
      測試驅動開發概述
    • 1-263
      測試定義
    • 1-264
      拓樸即程式碼
    • 1-265
      XML 解析範例
    • 1-266
      Python 的單元測試模組
    • 1-267
      更多關於Python 測試資訊
    • 1-268
      pytest 範例
    • 1-269
      為網路編寫測試
    • 1-270
      網路連通性測試
    • 1-271
      測試網路延遲
    • 1-272
      安全性測試
    • 1-273
      交易測試
    • 1-274
      網路組態測試
    • 1-275
      Ansible 測試
    • 1-276
      pyATS 和Genie
    • 1-277
      結論
    • 1-278
      索引
    • 1-279
      版權頁
    • 1-280
      封底頁

    FAQ

    您可以透過手機、平板或是電腦登入 HiSKIO 平台,在【我的學習】>【我的書籍】頁面,選擇想看的電子書。

    Recommendations

    Reviews

    | Collecting

    Sales Plans