发表于2024-12-23
1)网络运维自动化资深专家撰写,8位专家联袂推荐,网络工程师转型必备指南
2)以场景与实践驱动,涵盖NetDevOps理念、常用工具、编程基础、网络运维常用Python模块与网络设备的数据处理等
网络运维自动化资深专家撰写,8位专家联袂推荐,网络工程师转型必备指南。以场景与实践驱动,涵盖NetDevOps理念、常用工具、编程基础、网络运维常用Python模块与网络设备的数据处理等,注重实用性与友好性,全书分为5篇,共计14章内容。
概念篇(第1~2章),阐述NetDevOps是什么、怎么做、技术框架,使读者能清晰了解NetDevOps能给他们带来什么,从何入手,如何开展NetDevOps工作。
基础篇(第3~6章),介绍如何构建NetDevOps的工作环境以及在这些环境中的常用工具,提高读者日常维护工作的效率与准确度。
提高篇(第7~9章),讲解Linux环境编程、Python脚本编程、常用数据结构,学习开发一些在运维或者网络规划中能够使用的关键技能。
实践篇(第10~12章),采用案例的形式,带领读者掌握网络自动化运维、网络设计与规划中应对高频场景的技术与技巧,主要是网络数据的批处理,提高处理效率。
案例篇(第13~14章),通过3个典型案例来巩固提高NetDevOps相关知识和技能,更具体、更实用。
余欣
思科中国资深系统工程师,近20年网络规划设计与运维经验,曾先后就职于瞻博网络、阿里巴巴、京东金融以及博科等公司。有丰富的互联网一线公司的实践经验。擅长大规模运营商级网络、大型园区网以及IDC网络的规划设计与实施。拥有CCIE、JNCIE等认证。
随着通信技术近年来颠覆性的发展和变化,对传统网络技术工程师们的挑战越来越大。作者以传统网工成功转型的亲身经验撰写了本书,它直击传统网络工程师们的痛点,是难得的兼具实用价值和实践意义的"惊艳"之作,令人耳目一新!
--方芳,思科大中华区副总裁兼运营商&媒体广电事业技术部总经理
网络运维和系统运维本不是一个世界。技术栈、操作任务甚至运维价值观都是截然不同的,一直以来泾渭分明,各自精彩。
近年来虚拟网络的发展、SDN的兴起,网络与IT系统逐渐开始跨界融合,而结合部分的故障定位、全局性的问题跟踪和优化成了传统运维的新盲区;云计算规模化的环境下,海量操作变更、复杂的关联定位,对传统人肉运维来说更是不可承受之痛。新的形势下,传统网络运维工程师的自我救赎之路,就是本书所倡导的NetDevOps理念:补齐IT系统技术栈,掌握必要的开发语言,熟悉主流的批量运维工具和基础服务,将自动化运维的理念延伸到网络领域,将研发的思维模式嵌入到传统的网络运维动作中,将网络运维标准化、自动化、智能化。
本书深入浅出展示了NetDevOps的理念、基础知识和*佳实践,值得有意转型的网络工程师深入研究学习。
--林恩华,中国移动苏州研发中心广州支持中心总经理助理
网络运维可视化、自动化和智能化的快速发展背后的本质诉求是能同时兼顾大型互联网公司的巨大网络规模增速和高效高质运维要求,具体又体现在人均运维效率和稳定性指标的极*追求上。每一位互联网企业的网络工程师都恰逢其时,有幸在网络运维领域*领技术发展的潮头并对各行各业中网络技术的发展产生一定的影响。网络运维DevOps就是网络工程师发展的方向,已在大型互联网公司深深扎根、蓬勃发展。余欣在阿里巴巴工作期间经历了网络工程师队伍转型的剧痛,并表现出了优秀的DevOps思路和能力。这本书作为网络DevOps入门指南写得深入浅出,非常符合网络DevOps的实际工作,各种细化的小场景、小步骤非常接地气,同时又富含DevOps的深层思想,我相信对传统网络工程师或初入行的网络工程师来说深具价值,推荐给大家研读学习。
--刘洋,阿里巴巴网络系统事业部总经理
伴随互联网业务的高速发展,网络规模持续快速增长,数量庞大的网络设备产生海量的运营数据,传统的人机交互的运维方式面临巨大的挑战。NetDevOps利用DevOps的理念,推进网络运维的自动化与智能化,给网络运维带来了转机。本书介绍了NetDevOps产生的背景、发展历程,同时系统阐述了NetDevOps的框架体系、工具、软件以及基本的软件编码的知识,是国内难得的一本专业而又全面讲解NetDevOps技术的学习资料和参考手册,相信希望了解NetDevOps的网络同行们,能从本书中找到你们想要的。
--邵华,腾讯网络平台部网络架构中心总监
在软件工程领域中,DevOps已经由一种文化演变成广泛落地的业务思维,将组织内的各个角色更紧密地联系在一起以提高生产力。但是在网络工程领域,受限于网络工程师技术栈及运维管理定势,如何理解NetDevOps思想进而在实际工作中更好地解决运维管理问题和新技术部署带来的挑战,仍存在不小的困难。
很高兴看到余欣用简明的语言和具体的场景将NetDevOps的方法论和实践进行了系统全面的呈现,是网络工程师、网络平台开发工程师不可错过的参考读物。
--宋磊,百度网络运维部技术经理
本书作者是网络行业的资深老兵,在Cisco、Juniper这样的网络设备制造商工作多年,也在阿里巴巴、京东金融的网络部门从事实际运维工作,拥有丰富的经验,亲身经历了IP网络的爆发式增长时代。面对*新的网络自动化运维的趋势,大量的传统运维工作必须转向软件自动化的方式,新的SDN、NFV等理念,也要求网络工程师具备软件编程能力。很多老网工在新的挑战面前,会有些眼花缭乱,不知从何入手。本书分享了作者自身的转型经验及丰富的实际案例,指出了一条切实可行的转型道路,对广大网工有非常好的参考意义。尤其是对没有软件编程基础的网工,由浅入深地介绍了基本的概念和常用的工具,可以让大家少走弯路,节省很多自己去摸索试错的时间和精力。
--王卫,原瞻博网络大中国区总裁
由浅入深,有料清晰!作者结合自身在多家国际网络设备制造商和互联网公司的丰富经验,为读者指明了一条从网工向Net-Dev-Ops结合的转型之路。纯干货!值得一读!
--徐志骏,思科大中国华东区运营商事业部技术总监
本人与作者在Brocade共事期间,我们就意识到让老网工们快速转型SDN工程师是不现实的,因为机器对机器的软件接口(API)不是网工们熟知的。找到一条有实战价值,门槛相对合理,容易启动的"工农结合"的路径就显得格外有吸引力。当前,作为一名新一代云网融合服务商的CTO,团队建设的一个重要挑战和机会就是赋能老网工们,把建设运维实战经验与智慧总结形成清晰套路(算法),与专业码农们紧密配合,迅速实现运维排障经验软件化、自动化。与此同时,给网工们提供现实的发展演进路径,在实战项目中以商业价值目标为导向培养编程思维,接触机器接口,在一个个自动化的小任务中一步步实现自己的想法,获得真实成就感,成为新一代高度软件化的网络工程师、架构师和产品经理。针对这一目标,本书对NetDevOps相关的各个基础技术领域的功能、结构和过程维度的阐述简单直观而又高度实战。实验代码完整,注解清晰,实操容易上手,结果可以立竿见影。对数字化转型大潮中的网工们和相关技术团队的管理者们来说,本书不可不察。
--张宇峰,互联港湾CTO
目录 Contents
本书赞誉
前言
第一篇 概念篇
第1章 NetDevOps理念与要义2
1.1 从SDN开始说起2
1.1.1 OpenFlow打开了新的一扇窗3
1.1.2 简单聊聊SDN控制器4
1.1.3 NFV5
1.1.4 云和SDN6
1.1.5 SD-WAN8
1.2 NetDevOps,你需要知道的事8
1.2.1 什么是NetDevOps8
1.2.2 NetDevOps适用环境9
1.2.3 为什么我们需要NetDevOps10
1.2.4 NetDevOps需要什么样的人10
1.3 小结11
第2章 如何开始NetDevOps12
2.1 文档内容与版本管理12
2.1.1 版本管理的重要性13
2.1.2 需要管理哪些文档 13
2.1.3 如何实施版本管理14
2.1.4 版本管理的工具16
2.2 编程语言的选择17
2.2.1 程序语言的选择17
2.2.2 数据描述语言的选择18
2.3 自动化工具的选择22
2.3.1 Ansible22
2.3.2 Puppet23
2.3.3 Chef23
2.3.4 SaltStack24
2.3.5 如何选择24
2.4 网络设备的编程接口25
2.4.1 网络设备接口的分类25
2.4.2 网络设备编程接口的特征27
2.5 小结29
第二篇 基础篇
第3章 认识命令行工具32
3.1 用screen实现终端的会话管理33
3.1.1 安装screen34
3.1.2 screen基本语法34
3.1.3 screen基本操作35
3.1.4 定制你的screen36
3.1.5 用screen连接串口36
3.1.6 管理screen的日志38
3.1.7 多人共享一个会话38
3.2 用Telnet和SSH管理设备39
3.2.1 Telnet39
3.2.2 SSH介绍40
3.2.3 SSH的基本使用40
3.2.4 利用SSH远程执行命令42
3.2.5 SSH客户端常用配置44
3.2.6 使用密钥登录设备45
3.2.7 使用scp进行文件传输47
3.2.8 利用SSH 端口隧道转发功能48
3.2.9 利用SSH做Socket代理50
3.3 小结50
第4章 Linux下的一些常用工具52
4.1 SNMP53
4.1.1 SNMP简介53
4.1.2 常见设备的SNMP配置54
4.1.3 SNMP工具56
4.2 网络可达性检测工具58
4.2.1 Nmap59
4.2.2 Nping62
4.2.3 iPerf63
4.2.4 Fping64
4.3 MTR65
4.4 其他工具66
4.4.1 watch66
4.4.2 Wget68
4.4.3 CURL68
4.5 小结69
第5章 处理网络设备输出的文本70
5.1 正则表达式基础70
5.1.1 正则表达式到底是什么71
5.1.2 单字符的匹配71
5.1.3 多字符的匹配与次数匹配75
5.1.4 在网络设备上的正则表达式77
5.2 使用grep进行搜索与获取信息78
5.2.1 什么是grep78
5.2.2 命令选项的解释78
5.2.3 匹配控制80
5.2.4 输出结果控制81
5.2.5 输入控制83
5.3 使用awk进行文本处理84
5.3.1 认识一下awk84
5.3.2 awk的执行方式与语法84
5.3.3 截取部分信息85
5.3.4 使用内置变量86
5.3.5 对特定内容进行统计分析86
5.3.6 多文件操作88
5.4 使用sed 进行文本编辑89
5.4.1 什么是sed89
5.4.2 sed语法简介89
5.4.3 删除文件中的指定信息90
5.4.4 在文件中进行查找替换91
5.4.5 在文件中插入内容92
5.5 文本编辑工具vi和vim92
5.5.1 vi和vim简介92
5.5.2 vim编辑器的模式93
5.6 小结97
第6章 常用基础服务搭建99
6.1 Docker基础100
6.1.1 什么是Docker100
6.1.2 Docker的基本概念101
6.1.3 Docker的运行环境104
6.1.4 启动Docker镜像105
6.1.5 构建Docker镜像106
6.2 TFTP服务器110
6.2.1 定制一个TFTP服务镜像111
6.2.2 启动一个TFTP服务器的容器112
6.2.3 服务的检查112
6.3 DNS 服务器113
6.3.1 构建DNS镜像113
6.3.2 启动和配置DNS114
6.3.3 用DNS记录设备的接口与IP的对应关系115
6.4 搭建DHCP服务器118
6.4.1 构建DHCP镜像119
6.4.2 启动和配置DHCP服务120
6.5 小结121
第三篇 提高篇
第7章 Linux编程基础124
7.1 Bash编程基础124
7.2 第一个Bash程序125
7.3 变量126
7.4 数组128
7.4.1 定义数组128
7.4.2 数组取值129
7.4.3 获取数组的长度129
7.4.4 截取数组的内容130
7.4.5 替换元素中的内容130
7.4.6 删除数组中的元素或者数组130
7.5 运算符131
7.5.1 算术运算符131
7.5.2 位运算符132
7.5.3 自增/自减运算136
7.6 测试136
......
前 言 Preface
为什么要写这本书
清晨,我们做的第一件事是什么?睁开眼。睁开眼看手机里的朋友圈是否有更新,昨晚下的单是否已经安排送货,今天的天气是否依旧晴朗。而这些信息的更新都是通过互联网传递到你的手机上。在很多人眼里,手机有电而没有网络是一件非常痛苦的事情。互联网在中国的发展也就是20来年的事,但它已经渗透到了我们工作、学习和生活的方方面面。网络是新时代的基础设施,无论上面有多么丰富多彩的应用软件,它们都离不开网络。这些年,应用软件的迭代速度非常快。而网络在这几十年中却没有发生多大的变化(虽然网络带宽一直在指数级增长)。特别是网络工程师们日常的工作似乎还是和10年前甚至20年前一样。虽然,这几年SDN(Software Defined Networks)在快速发展,但是物理网络仍然没有发生多大的变化。大量的网络工程师还是通过Telnet或SSH登录到网络设备上,然后一条一条地敲击各种各样的命令。应用软件越来越多,应用软件生命周期越来越短。这对网络提出了很多的挑战,网络工程师的工作压力也是直线上升。这几年随着上层应用DevOps思想的发展,网络自动化的需求也在不断提升。那些安分守己的传统网络工程师面临着转型的痛苦。
我是一个和网络打交道20来年的传统网络工程师,但我一直是一个不安分守己且会偷懒的人。早在我大学期间,为了和同寝室的同学一起玩一款叫“红色警戒”的游戏而接触了网络。从两台电脑之间使用串口互联进行对战,到使用同轴电缆后8个同学可以在一个地图中互相厮杀,再到1999年通过双绞线接入互联网。那个时候,几个寝室的双绞线都汇聚到了我们寝室,我不知不觉也成了96级化学系的网络管理员。日常的“工作”就是帮同学看看网络怎么不通了;谁的IP地址又和谁冲突了;如何从其他同学的电脑里复制一些电脑游戏等。活脱脱就是一个小型网吧的工作人员。随着1999年学校寝室接入了互联网,出于对“工作”的热情,我开始用Linux自己搭建一些服务,比如DHCP、DNS、FTP、BBS等。慢慢又干起了系统管理员的“工作”。
在千禧年(2000年)的毕业季,我的第一份工作是在一家大型的纺织公司做系统管理员和DBA。这份工作和化学没有任何的关系。而日常的工作就是帮助新员工开账号,每天备份那些数据库的数据到磁带中。为了减少自己日常的工作就开始写一些自动化的脚本。其实,当时就是为了每天能偷点懒。开一个账号,懒得去点那么多次的鼠标。每天的备份任务,懒得去一个个地核对和比较,而是让脚本自己去核对,自己去比较,然后把检查后的结果发送E-mail给我。
2003年考完CCIE后到一家为中国电信服务的系统集成公司。在这家公司有幸参与了中国电信CN2(ChinaNet2)的建设工作。在网络建设的初期有大量的设备配置需要增加和修改。纯手工的操作让我觉得痛苦不堪,此时又萌生了“偷懒”的思想。我开始用Python、Perl等语言写了一些脚本用于设备配置的生成和修改。当时设备并没有丰富的API接口,大部分都是用Telnet模拟登录来操作设备。
2007年我进入了Juniper工作,在这里接触了更多的网络自动化的内容,也写了很多自动化脚本来操作网络设备。比如,2008年考完JNCIE后,有幸做了一年多的中国区JNCIE考官。JNCIE的考官除了要发卷子外,还需要负责给考生判卷。也是为了“偷点懒”写了一些自己用的脚本提高判卷的效率。2009年开始学习JUNOScript(一种可以运行在JUNOS上的脚本语言),用JUNOScript来实现一些特殊的功能或者对命令进行重新格式化的输出。2010年后由于需要经常参加设备的测试,开始使用Python等语言对JUNOS设备基于NETCONF协议进行操作。
2014年到2016年,我先后在两家互联网公司做网络工程师,负责网络的规划与运维工作。由于互联网公司自身的产品迭代速度很快,对网络的适配性也提出了更多的需求。虽然在互联网公司有很多的程序员,但大部分的程序员对网络和网络设备的理解远逊于网络工程师。这就导致了网络自动化的开发工作比较难推进。因此,我结合自己的编程能力和对网络的理解开始用代码去实现网络自动化的任务。
从2016年到现在,我一直在Cisco工作。在这里我接触到了DevNet(https://developer.cisco.com)。在DevNet的网站上我看到和学习了很多关于基础网络设备的编程知识。在2016年,Cisco发布了思科全数字化网络架构(思科DNA),这个平台不仅提供了实现全数字化的路线图,而且为网络工程师提供了网络自动化和网络安全的途径。这个平台的很多理念和架构为我写这本书提供了很多的帮助。
在这20来年的时间里,我积累了一些使用程序来操作网络设备的经验。一方面是想把这些经验分享给大家;另一方面也是想帮助那些想转型的传统网络工程师。这就是我写这本书的初衷。另外,我还想告诉广大的网络工程师们开发一个小工具用来管理设备其实并没有那么难。对于我这样一个非软件专业的人而言并没有觉得吃力,反而在开发中获得了更多的自信,也偷了“懒”。
最后,希望这本书能给广大的网络工程师在转型过程中带来一些帮助,也希望大家能少走弯路。
本书特色
首先,本书是专门针对网络工程师而写的。书中关于Bash和Python的基本语法部分使用了网络工程师更加熟悉的内容,并且提供了一些网络设备上的运行情况。
其次,本书的重点是如何编写和网络设备相关的代码。因此,在书中提供了很多关于如何处理网络设备输出的文本的例子,以及处理网络 NetDevOps入门与实践 下载 mobi epub pdf txt 电子书 格式
NetDevOps入门与实践 下载 mobi pdf epub txt 电子书 格式 2024
NetDevOps入门与实践 下载 mobi epub pdf 电子书NetDevOps入门与实践 mobi epub pdf txt 电子书 格式下载 2024