云架构师进阶攻略(完整版)-3

简介: 云架构师进阶攻略(完整版)

五、了解数据中心和网络基础知识


云平台当然会部署在数据中心里面,由于数据中心里面的硬件设备也是非常专业的,因而很多地方机房部门和云计算部门是两个部门,但是作为一个云架构师,需要和机房部门进行沟通,因而需要一定的数据中心知识,在数据中心里面,最难搞定的是网络,因而这里面网络知识是重中之重。


下面这个图是一个典型的数据中心图。

           

最外层是Internet Edge,也叫Edge Router,也叫Border Router,它提供数据中心与Internet的连接。


第一层core network,包含很多的core switches


  • Available Zone同Edge router之间通信
  • Available Zone之间的通信提供
  • 提供高可用性连接HA
  • 提供Intrusion Prevention Services
  • 提供Distributed Denial of Service Attack Analysis and Mitigation
  • 提供Tier 1 Load Balancer


第二层也即每个AZ的最上层,我们称为Aggregation layer。


第三层是access layer,就是一个个机架的服务器,用接入交换机连接在一起。


这是一个典型的三层网络结构,也即接入层、汇聚层、核心层三层。


对于数据中心,我写了几篇文章


数据中心长啥样?

高可用性的几个级别

当客户在说要安全的时候,客户在想什么?


除了数据中心以外,哪怕是做应用架构,对于网络的了解也是必须的。


云架构说到底是分布式架构,既然是分布式,就是去中心化的,因而就需要系统之间通过网络进行互通,因而网络是作为大规模系统架构绕不过去的一个坎。


对于网络的基本原理,推荐书籍《计算机网络-严伟与潘爱民译》,《计算机网络:自顶向下方法》。


对于TCP/IP协议栈的了解,推荐书籍《TCP/IP详解》,《The TCP/IP Guide》

对于


对于网络程序设计,推荐书籍《UNIX网络编程》


如果你想了解网络协议栈的实现,推荐书籍《深入理解LINUX网络内幕》


这里还自我推荐一下本人写的极客时间专栏《趣谈网络协议》。


极客时间《趣谈网络协议》:小说一样的网络协议入门课


其中有个综合场景,串起来所有的网络协议。


用双十一的故事串起碎片的网络协议(下)

用双十一的故事串起碎片的网络协议(中)

用双十一的故事串起碎片的网络协议(上)

           

六、基于KVM了解计算虚拟化


当物理机搭建完毕之后,接下来就是基于物理机上面搭建虚拟机了。


没有了解虚拟机的同学,可以在自己的笔记本电脑上用VirtualBox或者Vmware创建虚拟机,你会发现,很容易就能在物理机的操作系统之内再安装多个操作系统,通过这种方式,你可以很方便的在windows办公系统之内安装一个Linux系统。从而保持LInux系统的持续学习。


           

前面讲linux操作系统的时候,说到操作系统,就是整个系统的管家。应用程序要申请资源,都需要通过操作系统的系统调用接口,向操作系统内核申请将CPU,内存,网络,硬盘等资源分配给他。


这时候你会发现,虚拟机也是物理机上的一个普通进程,当虚拟机内部的应用程序申请资源的时候,需要向虚拟机的操作系统请求。然而虚拟机的操作系统自己本身也没有权限操作资源,因而又需要像物理机的操作系统申请资源。这中间要多一次翻译的工作,完成这件事情的称为虚拟化软件。例如上面说的VirtualBox和Vmware都是虚拟化软件。


但是多一层翻译,就多一层性能损耗,如果虚拟机里面的每一个操作都要翻译,都不能直接操作硬件,性能就会差很多,简直没办法用,于是就出现了上图中的硬件辅助虚拟化,也即通过硬件的特殊配置,例如VT-x和VT-d等,让虚拟机里面的操作系统知道,他不是一个原生的操作系统了,是一个虚拟机的操作系统,不能按照原来的模式操作资源了,而是通过特殊的驱动以硬件辅助的方式抄近道操作物理资源。


刚才说的是桌面虚拟化,也就是在你的笔记本电脑上,在数据中心里面,也可以使用Vmware进行虚拟化,但是价格比较贵,如果规模比较大,会采取开源的虚拟化软件qemu-kvm。

           

对于qemu-kvm来说,和上面的原理是一样的,其中qemu的emu是emulator的意思,也即模拟器,就是翻译的意思。KVM是一个可以使用CPU的硬件辅助虚拟化的方式,而网络和存储的,需要通过特殊的virtio的方式,提供高性能的设备虚拟化功能。


要了解虚拟化的基本原理,推荐书籍《系统虚拟化——原理与实现》


要了解KVM,推荐两本书籍《KVM Virtualization Cookbook》和《Mastering KVM Virtualization》。


另外KVM和qemu的官方文档也是必须要看的,还有Redhat的官网很多文章非常值得学习。


对于虚拟化方面,我写了以下的文章。


我是虚拟机内核我困惑?!

Qemu,KVM,Virsh傻傻的分不清

裸用KVM创建虚拟机,体验virtualbox为你做的10件事情

KVM虚拟机镜像那点儿事,qcow2六大功能,内部快照和外部快照有啥区别?

KVM半虚拟化设备virtio及性能调优最佳实践

我的虚拟机挂了!怎么把镜像里面的数据找回来?

不仅Docker有镜像,KVM也有多种方式操作镜像


七、基于Openvswitch了解网络虚拟化


当虚拟机创建出来了,最主要的诉求就是要能上网,他能访问到网上的资源,如果虚拟机里面部署一个网站,也希望别人能够访问到他。


这一方面依赖于qemu-KVM的网络虚拟化,将网络包从虚拟机里面传播到虚拟机外面,这需要物理机内核转换一把,形成虚拟机内部的网卡和虚拟机外部的虚拟网卡。

           

另外一方面就是虚拟机的网络如何能够连接到物理网络里面。物理网络常常称为underlay network,虚拟网络常常称为overlay network,从物理网络到虚拟网络称为网络虚拟化,能非常好的完成这件事情的是一个叫Openvswitch的虚拟交换机软件。

           

Openvswitch会有一个内核驱动,监听物理网卡,可以将物理网卡上收到的包拿进来。虚拟机创建出来的外部的虚拟网卡也可以添加到Openvswitch上,而Openvswitch可以设定各种的网络包处理策略,将网络包在虚拟机和物理机之间进行传递,从而实现了网络虚拟化。

           

对于Openvswitch,我主要是通过官方文档进行研究,写下了这个系列。


Openvswitch的入门篇


通俗说Openvswitch



Openvswitch的操作篇


玩转Openvwitch第一站:Manager和SSL

玩转Openvwitch第二站:Bridge和Controller

玩转Openvwitch第四站:Bridge和Mirror

玩转Openvwitch第五站:Port和VLAN

玩转Openvwitch第六站:Port和Bond

玩转Openvwitch第七站:Port和QoS

玩转Openvswitch第八站:Interface和Tunnel (下)

玩转Openvswitch第八站:Interface和Tunnel (上)

玩转Openvswitch第十站:Flow Table

玩转Openvswitch之综合篇



Openvswitch的代码分析篇


Openvswitch总体架构与代码结构

从Openvswitch代码看网络包的旅程

相关文章
|
8月前
|
机器学习/深度学习 弹性计算 开发工具
【MindStudio训练营第一期]--【新手班】学习笔记①
【MindStudio训练营第一期]--【新手班】学习笔记①
|
12月前
|
存储 运维 Kubernetes
云架构师进阶攻略(完整版)-4
云架构师进阶攻略(完整版)
147 0
|
12月前
|
缓存 监控 Kubernetes
云架构师进阶攻略(完整版)-6
云架构师进阶攻略(完整版)
129 0
|
12月前
|
存储 缓存 人工智能
云架构师进阶攻略(完整版)-1
云架构师进阶攻略(完整版)
231 0
云架构师进阶攻略(完整版)-1
|
12月前
|
运维 架构师 网络协议
云架构师进阶攻略(完整版)-2
云架构师进阶攻略(完整版)
100 0
云架构师进阶攻略(完整版)-2
|
12月前
|
分布式计算 资源调度 搜索推荐
云架构师进阶攻略(完整版)-5
云架构师进阶攻略(完整版)
|
11月前
|
JSON 前端开发 JavaScript
【手把手】JavaWeb 入门级项目实战 -- 文章发布系统 (第十二节)
好的,那么在上一节中呢,评论功能的后台已经写好了,这一节,先把这部分后台代码和前台对接一下。
105 0
|
机器学习/深度学习 SQL 分布式计算
新手入门赛-(o2o)数加平台使用教程(下)|学习笔记
快速学习新手入门赛-(o2o)数加平台使用教程(下)
114 0
|
SQL 机器学习/深度学习 分布式计算
新手入门赛-(o2o)数加平台使用教程(上)|学习笔记
快速学习新手入门赛-(o2o)数加平台使用教程(上)
122 0
|
数据安全/隐私保护
阿里云入门使用
设置阿里云服务器登录密码
65 1
阿里云入门使用