云原生架构系列——概念及原理

1 云计算发展进程

图片来自《开课吧》

  • 2000年:sun公司研发出了高性能服务器,用于支撑企业的关键业务
  • 2001年:假设一个公司购买了一台8核16G的服务器,但开发的应用可能只需要4核8G,剩余的资源可以提供给其他的应用使用,但这样会出现一个问题,如果两个应用是两个团队开发的,那么这两个团队能够互相看到对方的应用代码,这就好比两个住在同一间屋子里的人,他们的生活隐私是互相透明的,但如果一个应用独占这台服务器,又会导致资源的浪费。为了解决这些问题,IBM研发出了VMware,虚拟机的好处就是可以实现资源隔离,弹性扩缩容,能充分发挥硬件资源。
  • 2006年:Amazon公司提出了IaaS(Infrastructure as a Service),基础实施即服务。就是把硬件资源,比如服务器、DNS、存储等通过虚拟化技术抽象成服务给企业用。企业不需要再建立机房,把应用部署在公有云上即可。
  • 2009年:HEROKU公司提出了PaaS(Platform as a Service),平台即服务。就是对IaaS进行了一层封装,提供了一些基础软件应用,比如阿里云上的MySQL、Redis等。
  • 2010年:随着云上的虚拟机不断的增多,管理起来非常复杂,此时出现了OpenStack,实现了对虚拟机的可视化管理。
  • 2013年:虚拟机的弊端是非常占用资源,需要安装客体机,所以docker应运而生,更轻量化的虚拟化技术。
  • 2015年:云原生诞生

2 何为云原生

云原生就是将上云所需要的技术标准化、规范化,降低上云的门槛。如果把云资源比作电力资源、业务系统比作用电的终端设备,那么云原生就相当于供电系统。电可以通过火力发电、风力发电、光伏发电等产生,产生的电都由统一的供电系统进行传输,这样用电设备只需要配备一个标准的插头就可以很方便的即插即用的使用电。同样的,云原生也是为了业务系统能够即插即用的使用云资源。
IaaS上云
IaaS上云就是把应用直接部署在云主机上,目前应用上云基本都是采用的这种方式,只有像阿里这种大厂实现了PaaS上云。这种方式上云对于开发人员来说不仅需要开发业务代码,还要做以下事情:

  • 搭建数据库
  • 搭建中间件(如:Redis、kafka等)
  • 搭建应用监控
  • ……

对于运维人员来说需要:

  • 考虑为每个服务分配资源
  • 及时为服务扩缩容
  • 服务宕机要能及时恢复
  • 实现不停机更新
  • ……

在这里插入图片描述
PaaS上云
PaaS上云可以让研发人员只关注业务需求的开发,对于与业务无关的通用技术都交由云平台来管理,如业务上有需要能直接拿来使用,比如云数据库、云Redis等。PaaS上云是云原生的实现方式,云原生的目的是屏蔽一切与业务无关的通用技术及资源,让研发人员把更多的精力放在业务本身上,使开发出来的应用自诞生开始就完全在云环境中生长,它所依赖的通用技术及资源都来自云环境。
说的通俗一点,就是软件上云,自动化上云,无需人工去搭建云主机上的环境。
在这里插入图片描述
比如在运维方面,云原生可以实现自动化运维,资源分配、服务宕机重启、服务扩容等都可以实现自动化,无需人员干预。下面是通过k8s来实现的简单的架构图。
在这里插入图片描述
每个服务都部署在容器里,通过k8s进行编排管理。

### 关于云原生架构论文的撰写指导 撰写一篇关于云原生架构的论文需要从理论基础、技术实现、案例分析等多个角度展开。以下是针对此类主题的一些具体建议和框架: #### 一、论文结构设计 1. **引言** 论文中应清晰介绍云原生架构概念和发展背景,强调其在现代软件开发中的重要地位[^1]。可以提及当前云计算的趋势以及企业向数字化转型的需求如何推动了云原生技术的发展。 2. **核心技术原理** 阐述云原生架构的关键组成部分和技术特性,包括但不限于微服务架构的设计理念、容器化技术的应用(如Docker)、编排工具的作用(Kubernetes),还有服务网格的功能等[^2]。这部分需详细介绍这些技术是如何共同作用来提升系统的灵活性、可伸缩性和可靠性。 3. **设计原则解读** 对照所提供的资料,重点解释四个核心设计原则——服务化、弹性、可观测性与韧性及自动化的含义及其对企业级应用的实际影响: - *服务化*: 将应用程序分解成独立的小型服务单元以便单独开发维护; - *弹性*: 实现资源动态分配满足不同负载条件下的性能需求; - *可观测性与韧性*: 提供全面监控手段并增强系统面对故障时恢复能力; - *自动化*: 减少人为干预提高效率降低成本. 4. **实践案例分享** 结合实际项目经验或者公开的成功案例说明如何利用上述提到的各项技术和原则解决特定场景下遇到的问题。比如某个电商平台通过引入云原生解决方案显著提升了订单处理速度和服务稳定性的同时降低了运营成本[^2]. 5. **挑战与未来展望** 探讨目前实施云原生架构可能面临的困难之处, 如团队技能不足、迁移过程复杂度高等,并对未来发展趋势做出预测。 #### 二、代码实例展示 为了更直观地理解某些概念,在适当位置加入一些简单的代码片段可以帮助读者更好地掌握相关内容。例如下面展示了如何创建一个基本的服务发现机制: ```yaml apiVersion: v1 kind: Service metadata: name: my-service spec: selector: app: MyApp ports: - protocol: TCP port: 80 targetPort: 9376 ``` 此 YAML 文件定义了一个 Kubernetes 中的服务对象 `my-service` ,它会将流量转发到标签匹配为 `{app=MyApp}` 的 Pod 上运行的应用程序端口 9376 处理请求。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值