了解云原生该如何入手?
前言
希望了解云原生的知识。首先弄清楚什么是云原生 ,下面我会详细解释云原生于什么 的概念。此外还帮助大家深入理解这一概念,并规划出一条清晰的学习路径。感兴趣的朋友可以继续阅读下去吧。
如果有什么问题或者写的不对的地方欢迎在评论区讨论~
一、什么是云原生?
简单认识
云原生概念相对直观:从技术角度来看,"云"即为运行于云端的虚拟化服务,而"原生"则特指在云端运行的系统预置功能与组件.这些预置的应用程序能够实现灵活自动调整资源(指的就是根据实际需求动态增减计算资源数量),从而无缝衔接新的计算环境变化,无需运维团队或开发人员进行任何配置。
应用场景
设想一个场景:一个包含商品浏览、购物车和支付模块的电商系统中,每个模块均部署了10000台服务器共计30000台服务器。随着双11即将来临这一重要购物节即将到来之际,在线交易量预计将会激增。面对如此庞大的订单处理需求,在现有的 server 配置下明显负荷过重的情况下该怎么办呢?那么可以采取以下措施将双11活动拆解为
活动前:双11前引导用户浏览商品,并把商品添加到购物车
活动中:双11开始,引导用户直接从购物车下单购买
在[分解]的基础上,在活动周期开始前阶段内(即活动前),由于客户的主要操作集中在获取产品信息并初步考虑购买意向阶段(即进入系统后的主要行为集中于浏览产品页面),因此访问压力则主要集中在商品浏览与购物车模块上;而支付模块的压力相对较小。然而,在这种情况下是否可以把支付模块的一半服务器资源分配给商品浏览与购物车模块使用呢?答案显然是肯定的。反之,在活动期间(即客户完成购买决策并进入收银环节阶段),由于客户的主要操作集中在实际完成购买行为阶段(即进入系统后的主要行为集中于进行具体的操作如填写订单信息、完成支付等),因此购物车和支付模块的压力随之增大;我们可以同样把商品浏览模块的一半服务器资源分配给购物车和支付模块使用以应对这种需求激增的情况。通过这种合理调配的方式,在未增加新的服务器资源的前提下(即利用现有配置实现功能扩展),我们能够有效地应对高并发情况下的系统压力,并保证业务的平稳运行
云原生雏形
在上述场景中若要实现,则需关注几个关键点;这些也即云原生概念的萌芽。
程序主要采取分为几个关键功能区的方式进行设计——其中所体现的核心理念是后来演进为一种称为[微服务](https://www.zhihu.com/search?q=平样桳习&search_source=Entity&hybrid_search_source=Entity&hybrid_search_extra={来源类型:"question" , sourceId: 4699746 " 微服务") 的模式
成套服务器从机房开始建设服务器是一项规模宏大的系统工程,在此情况下最经济的选择是采用——云(基础设施)。
服务器可以灵活调配,并从一万台减少到五千台,并进而演变为其他功能模块的程序——这一现象即源于容器化技术的支持
云原生重定义
通过上述的方式了解到微服务、基础设施以及容器化构成了 cloud-native 的一部分内容。实际上这并非完整的定义,因为 cloud-native 根本上重塑了互联网软件架构的趋势,这个领域迅速而广泛地发展着,不容置疑地讲 cloud-native 正在引发新的技术变革
方法论与原则: 12要素,声明式API
流程规范: DevOps,持续交付,自动化测试,Code Review
软件架构: 微服务,服务网格,无服务
基础设拖: 敏捷基础设施,如K8S、Docker、云服务器、云数据库、云存储等
工具集: Prometheus, Envoy, Jaeger等
云原生概念涉及容器、微服务、无服务、服务网格以及持续交付/集成等关键组件。
容器(Containers): 容器是一种轻量级的技术,在云端快速部署并运行操作系统的同时提供隔离环境
微服务(Microservices): 微软 services 将一个复杂的大型系统划分为若干个功能独立且能够自主运行的子模块,在云端实现基于流量自动调整各子模块服务器数量的功能
**无服务 (Serverless):**无服务并非意味着完全无需 servers 的存在;实际上,并非开发者必须直接管理 servers 的部署和扩展问题。相反地,在这种架构下,默认的角色转移给系统自动化的处理能力,并由业务架构师专注于构建和维护核心业务逻辑。
**服务网格 (Service Mesh): 通过[Service Mesh](https://www.zhihu.com/search?q=�... 网络](Network): 通过网络实现 services之间通信
**持续交付/集成 "持续交付/集成")(DevOps):**通过开发、运维与测试之间的协同工作来实现交付成果的核心理念,这一概念自然也涵盖了相关的一系列工具
Cloud(云计算): 它是由大量 server 构建而成的大规模机房架构的表现形式,在云计算体系中扮演着基础角色;若无 Cloud,则云计算也就失去了其核心意义。
云原生的系统学习之路
接下来深入讲解一下云原生研发工程师(也可称为系统架构工程师)的学习路线。通过这条路线的发展路径,你将具备年收入50万元的专业技术人员资格.

阶段一:Linux操作系统基本功
本阶段的重点是深入进行操作系统实践操作,并全面掌握Linux操作系统应用及其自动化管理方法。
01.Linux 操作系统安装
01.1 CentOS
01.2 Ubuntu
02.Linux 操作系统管理
02.1 命令格式
02.2 命令帮助
02.3 文件及目录管理
02.4 用户及用户组管理
02.5 用户权限管理
02.6 软件管理
02.7 网络管理
03.Linux 操作系统远程管理
03.1 ssh
03.2 scp
03.3 rsync
04.Linux 操作系统服务管理
04.1 文件共享服务 vsftpd nfs
04.2 Web 服务 httpd nginx tomcat
04.3 数据库服务 MySQL
Shell脚本编程链接中包含详细信息
05.1 Shell 脚本编程前置命令
05.2 Shell 介绍
05.3 Shell 脚本介绍
05.4 Shell 脚本格式
05.5 Shell 脚本运行方法
05.6 Shell 脚本条件判断语句
05.7 Shell 脚本循环语句
05.8 Shell [该脚本功能](链接)
05.9 Shell 脚本 Case 语句
05.10 Shell 脚本文件处理三剑
阶段二、计算机网络
计算机网络构成了互联网服务的基础,并以ISO/OSI参考架构指引为基础系统学习计算机网络的工作原理;通过实际操作熟悉并配置计算机网络技术,在企业生产过程中深入理解其应用价值。
01.计算机网络起源
02.OSI 参考模型物理层
03.OSI 参考模型数据链路层
04.OSI 参考模型网络层
05.OSI 参考模型传输层
06. 计 算 机 网 络 数 据 捕 获 工 具 tcpdump & wireshark
阶段三、云原生生态
云原生技术已被公认为企业应用 发布事实标准之一;通过深入学习其相关知识和实践操作经验的积累,能够进一步明确学习的目标。
01.云原生定义
02.云原生发展
03.CNCF 云原生全景图



小总结
云原生动态内容极为丰富,
上文仅作为一个引子,
为各位欲深入探索云原生技术领域的学习者提供了一个切入点。
实际上云原生动态内容远超预期,
可能需要耗费大量时间精力才能完全掌握,
建议大家根据自身兴趣围绕运维方向展开深入研究,
祝愿每一位探索者都能在 cloud-native 领域取得丰硕成果!
