网络化:DevOps 工程的必要基础(Networking: The Essential Foundation for DevOps Engineering)

李升伟 编译

理解网络化基础知识

你是否曾想过是什么真正让卓越的DevOps工程师与众人区别开来?答案是网络化。是的,对网络的基本理解不仅仅是有帮助的——它是绝对必要的。在当今以微服务、容器和分布式系统为主宰的互联互通世界中,对网络原理的深入了解是必不可少的。

在深入探讨DevOps特定网络的技術深度之前,让我分享一下为什么这种知识在我们的领域中变得不可或缺。以下是在DevOps中,为什么网络知识至关重要的几个关键原因:

基础设施管理:DevOps工程师需要设计、部署和维护支持现代云和混合应用的网络安全架构。
故障排除:当复杂系统中出现问题时,了解网络连接性、协议和路由对于快速诊断和解决至关重要。
安全实施:DevOps专业人员必须实施适当的网络安全控制措施,包括防火墙、VPN和适当的子网隔离。
CI/CD管道配置:确保您的构建和部署管道具有适当的网络连接性和安全性。

在深入探讨针对DevOps的网络之前,我发现掌握基础知识至关重要。让我解释一下我已理解的几个关键组件和概念:

核心硬件组件:

集线器(Hubs):硬件式网络设备,将数据传输到所有与之相连的设备上,无论目标接收者是谁
交换机(Switches):智能式网络设备,使用MAC地址将数据传输到特定的设备上,比集线器更有效率
适配器(Adapters):用于将设备连接到网络并将数据在设备和网络上进行转换
以太网(Ethernet):局域网中最标准的有线数据传输方法
介质-电缆或WAP(无线接入点):通过物理电缆或无线介质传输数据;无线接入点是一种允许其他设备通过WiFi连接的设备;无线保真度)

基本网络概念:

数据:通过网络传输的信息使各种应用程序和服务能够使用
节点(Nodes):网络的终端设备,如计算机、服务器、打印机等
帧(Frames):存在于OSI模型的数据链路层的 数据包 ,包含寻址和信息校验信息
客户端(Client):请求资源的计算机、设备或软件
服务器(Server):向客户端提供资源的计算机或设备
对等体(Peer):作为客户端或服务器运行的装置,在不使用集中式服务器的情况下共享资源 (常见于P2P网络上)
IP地址:分配给网络上设备的唯一数值标识符 (以下将进一步解释)
MAC地址:永久分配给网卡的网络接口硬件地址 (稍后详细说明)
防火墙:(Firewalls)规则集合用于保护并监控设备和/或网络上传入和传出的流量
内部网:(Intranet)组织内部的内部网中 devices 可以访问共享资源
外部网:(Extranet)受控的网络允许授权的外部用户访问组织的内部网

有了这些基础知识在手,我已经确定了八个关键的网络概念是每个 DevOps 工程师都应该彻底理解的:

八个关键的 DevOps 网络支柱

1. 开放系统互连(OSI)模型

我了解到 OSI 模型解释了计算机如何通过七个不同的层次进行通信:
物理层:通过集线器、交换机、适配器、以太网和电缆等物理媒体传输原始比特流
数据链路层:使用包含路径信息、通过MAC地址传递的源/目标信息、有效载荷数据和错误校验信息的帧来管理网络设备之间的数据包传输
网络层:确定数据应遵循的最佳路径
传输层:使用TCP和UDP等协议处理数据传输
会话层:维护设备之间的连接,处理身份验证和权限
表示层:准备应用程序可以使用的数据格式
应用层:使各种应用程序和服务能够使用数据

2. 协议:网络的“语言”

协议是管理网络通信的基本规则集合。以下是一些协议类型:
TCP(传输控制协议):在发送数据之前与目标设备建立可靠连接,确保所有内容都能正确到达。这是大多数Web应用的基础。

UDP(用户数据报协议):这是一种无连接协议,它遵循“发射并忘记”的方法。虽然不如TCP可靠,但它提供了更低的延迟——非常适合游戏和流媒体服务(如Netflix、Twitch)。

IP(互联网协议):为设备分配唯一地址,实现互联网连通性。理解IPv4(32位,四位十进制格式由点分隔)和IPv6(128位,十六进制格式由冒号分隔)对我的工作至关重要。

3. 端口:“应用程序通信的门道”

端口作为通信端点允许设备在不同服务之间发送和接收数据。如果你正在阅读这篇文章,你是否曾想过为什么我们可以一次性启动多个前端、后端和数据库名字空间的端口?比如说我们在本地机器上有五个React.js前端项目,并从package.json中运行dev脚本’npm run dev’——第一个端口将是localhost:3000,第二个将是localhost:3001……一直到localhost:3004。这里我们有端口3000, 3001, 3002, 3003, 3004在我们的系统中无缝地发送和接收数据。然后如果我们想启动一个带有端口30的后端项目,它将给出“端口已占用”的错误提示,然后可能使用可用的端口或你作为用户将分配一个未使用的端口号,比如3005。

一些关键的标准端口号包括:

  • FTP:文件传输协议 - 20;SFTP - 安全文件传输协议 - 21(用于安全文件传输)
  • SSH:安全外壳 -22(用于安全远程访问)
  • SMTP:简单邮件传输协议 - 25(用于电子邮件传输)
  • DNS:域名系统 -53;(AWS将其服务命名为Route 53就是这个原因吧 😄)
  • HTTP:超文本传送协议 - 80(标准Web流量)
  • HTTPS:超文本传送安全套接字层的缩写形式 -443 (安全的Web流量)

4. 路由器:“交通指挥官”

路由器连接网络设备并管理它们之间的数据传输。它们使用路由表执行路由操作——这些是存储在路由器中的专用数据库包含路径信息、源/目标信息和最佳的数据旅行路线。

5. 域名系统(DNS):“让互联网人性化”

DNS将人类可读的域名(如google.com)转换为机器可读的IP地址。对于人类来说很难记住像192.168.1.1 (IPv4) 或2001:0db8:85a3:0000:0000:8a2e:0370:7334 (IPv6)这样复杂的IP格式,这使得DNS对可用性至关重要。

DNS还提供了诸如缓存(更快响应时间)和要求重定向等附加功能。DevOps工程师需要深入理解DNS系统记录类型A, AAAA, CName, DName, NS, MX记录:

  • A记录(A Record):将域名映射到IPv4地址
  • AAAA记录(AAAA Record):将域名映射到IPv6地址
  • CNAME记录(CNAME Record):从一个域创建别名指向另一个域;例如myweb.com会重定向到web.com。
  • DNAME记录(DNAME Record):将一个域的所有子域重定向到另一个域
  • NS记录(NS Record):指定域的主权名称服务器
  • MX记录(MX Record):指导电子邮件流向适当的邮件服务器

6. 子网划分:“高效组织IP空间”

我了解到子网划分是将较大的IP地址块划分为更小、更易于管理的段落的做法这改善了网络的组织安全性性能这些都是DevOps基础设施管理的关键方面。

7. 虚拟专用网络(VPN):“保护连接”

VPN为互联网连接创建安全的隧道加密了在服务器中传递的数据这项技术在DevOps工程中至关重要例如与分布在全球各地的团队一起工作时需要安全访问敏感资源。

8. 必要的网络工具

我每天依赖的诊断工具有:

  • ipconfig (Windows) 和 ifconfig (Linux),用于查看网络接口配置
  • netstat 用于检查网络连接和路由表
  • ping 用于测试基本连通性
  • curl 用于通过URL转移数据
  • nslookup 用于查询DNS服务器

综合起来看

理解这些网络概念不仅扩展了我的知识——它改变了我的DevOps工程方法,每个组件都与其它组件相互关联共同构成了现代云基础设施运行的基础。

原文链接:https://dev.to/noruwa/networking-the-essential-foundation-for-devops-engineering-14d1

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/79437.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基本知识 —— 缺省参数·函数重载·引用

C基本知识 —— 缺省参数函数重载引用 1. 缺省参数2. 函数重载3. 引用3.1 引用的基础知识3.2 引用的作用3.3 const 引用3.4 指针与引用的关系 1. 缺省参数 什么是缺省参数?缺省参数是声明或定义函数时为函数的参数指定一个缺省值。在调用该函数的时候,如…

Rust 官方文档:人话版翻译指南

鉴于大部分翻译文档都不太会说人话,本专栏主要内容为 rust 程序设计语言、rust 参考手册、std 库 等官方文档的中译中。

FlySecAgent:——MCP全自动AI Agent的实战利器

最近,出于对人工智能在网络安全领域应用潜力的浓厚兴趣,我利用闲暇时间进行了深入研究,并成功开发了一款小型轻量化的AI Agent安全客户端FlySecAgent。 什么是 FlySecAgent? 这是一个基于大语言模型和MCP(Model-Contr…

实战项目5(08)

目录 任务场景一 【r1配置】 【r2配置】 【r3配置】 ​​​​​​​任务场景二 【r1配置】 【r2配置】 ​​​​​​​任务场景一 按照下图完成网络拓扑搭建和配置 任务要求: 通过在路由器R1、R2和R3上配置静态路由,实现网络中各终端PC能够正常…

基于Kubernetes的Apache Pulsar云原生架构解析与集群部署指南(下)

文章目录 k8s安装部署Pulsar集群前期准备版本要求 安装 Pulsar Helm chart管理pulsarClustersBrokersTopic k8s安装部署Pulsar集群 前期准备 版本要求 Kubernetes 集群,版本 1.14 或更高版本Helm v3(3.0.2 或更高版本)数据持久化&#xff…

C35-数组和函数开发初见

一 数组作为函数的参数 用于传递数组中的某一个元素→意义不大 数组名当做函数实际参数 示例 代码 #include <stdio.h>//封装函数PrintArr void PrintArr(int arr[3]){int i;for(i0;i<3;i){printf("%d ",arr[i]);}putchar(\n);}//主函数 int main() { …

【小沐学GIS】基于C++绘制二维瓦片地图2D Map(QT、OpenGL、GIS)

&#x1f37a;三维数字地球系列相关文章如下&#x1f37a;&#xff1a;1【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;OpenGL、glfw、glut&#xff09;第一期2【小沐学GIS】基于C绘制三维数字地球Earth&#xff08;OpenGL、glfw、glut、GIS&#xff09;第二期3【小沐学…

idea左侧项目资源管理器不见了处理

使用idea误触导致&#xff0c;侧边栏和功能栏没了&#xff0c;如何打开&#xff1f; 1.打开文件&#xff08;File&#xff09; 2. 打开设置&#xff08;Settings&#xff09; 3.选择Appearance&Behavior--->Appearance划到最下面&#xff0c;开启显示工具栏和左侧并排布…

[Java实战]Spring Boot 静态资源配置(十三)

[Java实战]Spring Boot 静态资源配置&#xff08;十三&#xff09; 引言 静态资源&#xff08;如 HTML、CSS、JavaScript、图片等&#xff09;是 Web 应用的基石。Spring Boot 通过自动化配置简化了静态资源管理&#xff0c;但面对复杂场景&#xff08;如多模块项目、CDN 集成…

多模态大语言模型arxiv论文略读(六十九)

Prompt-Aware Adapter: Towards Learning Adaptive Visual Tokens for Multimodal Large Language Models ➡️ 论文标题&#xff1a;Prompt-Aware Adapter: Towards Learning Adaptive Visual Tokens for Multimodal Large Language Models ➡️ 论文作者&#xff1a;Yue Zha…

Python 基础语法与数据类型(七) - 函数的定义与调用 (def, return)

文章目录 为什么要使用函数&#xff1f;函数的定义 (def)函数的调用函数参数 (Parameters vs Arguments)返回值 (return)变量作用域 (简要了解)总结练习题练习题答案 **创作不易&#xff0c;请大家点赞加收藏&#xff0c;关注我&#xff0c;持续更新教程&#xff01;** 到目前为…

华为配置篇-RSTP/MSTP实验

MSTP 一、简介二、常用命令总结三、实验 一、简介 RSTP&#xff08;快速生成树协议&#xff09;​ RSTP&#xff08;Rapid Spanning Tree Protocol&#xff09;是 STP 的改进版本&#xff0c;基于 ​​IEEE 802.1w 标准​​&#xff0c;核心目标是解决传统 STP 收敛速度慢的问…

Docker Compose 完全指南:从入门到生产实践

Docker Compose 完全指南&#xff1a;从入门到生产实践 1. Docker Compose 简介与核心价值 Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。通过一个 YAML 文件来配置应用的服务&#xff0c;只需简单命令就能创建和启动所有服务。 核心优势&#xff1a;…

Linux 离线安装 Docker 和 Docker Compose 最新版 的完整指南

一、准备工作 1. 下载安装包​&#xff08;需在有网络的机器操作&#xff09;&#xff1a; Docker 引擎&#xff1a;从官方仓库下载最新二进制包 wget https://download.docker.com/linux/static/stable/x86_64/docker-24.0.6.tgz​Docker Compose&#xff1a;下载最新二进制…

CSS: 选择器与三大特性

标签选择器 标签选择器就是选择一些HTML的不同标签&#xff0c;由于它们的标签需求不同&#xff0c;所以CSS需要设置标签去选择它们&#xff0c;为满足它们的需求给予对应的属性 基础选择器 标签选择器 <!DOCTYPE html> <head><title>HOME</title>…

鸿蒙跨平台开发教程之Uniapp布局基础

前两天的文章内容对uniapp开发鸿蒙应用做了一些详细的介绍&#xff0c;包括配置开发环境和项目结构目录解读&#xff0c;今天我们正式开始写代码。 入门新的开发语言往往从Hello World开始&#xff0c;Uniapp的初始化项目中已经写好了一个简单的demo&#xff0c;这里就不再赘述…

JavaSE核心知识点02面向对象编程02-08(异常处理)

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 JavaSE核心知识点02面向对象编程02-08&#…

【JVM-GC调优】

一、预备知识 掌握GC相关的VM参数&#xff0c;会基本的空间调整掌握相关工具明白一点&#xff1a;调优跟应用、环境有关&#xff0c;没有放之四海而皆准的法则 二、调优领域 内存锁竞争cpu占用io 三、确定目标 【低延迟】&#xff1a;CMS、G1&#xff08;低延迟、高吞吐&a…

基于单片机的电子法频率计

一、电子计数法测频率原理 通过门控控制闸门开关&#xff0c;闸门时间T自己设定&#xff0c;计数器计数脉冲个数N&#xff08;也就是待测信号&#xff09;&#xff0c;N个脉冲的时间间隔为δt,倒数即为信号的频率f,由此 δtT/N fN/T——信号频率 根据公式&#xff0c;如果考虑…

【C/C++】跟我一起学_C++同步机制效率对比与优化策略

文章目录 C同步机制效率对比与优化策略1 效率对比2 核心同步机制详解与适用场景3 性能优化建议4 场景对比表5 总结 C同步机制效率对比与优化策略 多线程编程中&#xff0c;同步机制的选择直接影响程序性能与资源利用率。 主流同步方式: 互斥锁原子操作读写锁条件变量无锁数据…