/s/1rmwcoesfJfM2IhjV4FCR6A 提取码:34z0
一、云原生的概念
云原生是一种软件架构和部署方法,旨在利用云计算的优势,以更灵活、可扩展和可靠的方式构建和部署应用程序。它主要关注在容器、微服务、自动化和持续交付等方面。
云原生技术是指以云计算作为基础,以平台和工具为依托,以敏捷和可扩展为目标,以用户为中心,以数据为核心的新一代软件架构和发展理念。它以快速迭代、可扩展性、安全性和可持续性为核心,以满足日益增长的业务需求和新的技术挑战。
二、技术特点
容器化部署:使用容器技术(如Docker)进行应用程序打包和部署,实现跨环境的一致性和可移植性。
微服务架构:将应用程序拆分为小型、自治的服务,每个服务专注于特定功能,提高了灵活性和可维护性。
自动化运维:利用自动化工具和平台实现持续集成、持续交付和自动化扩缩容,提高了效率和可靠性。
弹性伸缩:根据应用程序的负载情况自动调整资源,提高了系统的可伸缩性和稳定性
三、云原生产生背景
随着云计算技术的发展,企业上云已成为趋势,越来越多的企业都已将应用部署到了云上。但是应用上云并不意味着就能充分利用云平台的优势。目前,大部分云化的应用,都是基于传统的软件架构来搭建的,然后再移植到云上去运行,和云平台的整合度非常低,主要表现在以下几个方面:
1. 操作系统依赖强
传统应用程序和底层操作系统、硬件、存储和后备服务之间存在紧密的依赖关系,这些依赖关系使得应用程序在跨越云基础设施进行迁移和扩展时非常复杂且有风险。
2. 系统紧耦合
传统的企业应用多采用单体架构,将许多不同的功能模块捆绑在一个部署包中,导致功能模块之间产生不必要的依赖,并导致开发和部署过程中丧失敏捷性,无法独立的部署、发布更新、重启。
3. 手动化扩展
通过手工管理基础设施,包括手工编写管理服务器、网络和存储的配置脚本。在大规模复杂的操作中,操作人员在诊断问题时会很慢,而且无法大规模地实施。手工制作的自动化脚本还有可能将人为错误硬编码到基础设施中。
4. 恢复缓慢
基于虚拟机的基础设施相对于基于微服务的应用程序来说,是缓慢而低效的。因为单个虚拟机启动/关闭的速度很慢,并且在部署应用程序代码之前就会带来巨大的开销。
四、云原生的核心
云原生的四大核心要素便是微服务技术、DevOps、持续交付、容器化。微服务技术使得应用原子化,所有的应用都可以独立的部署、迭代。DevOps使得应用可以快速编译、自动化测试、部署、发布、回滚,让开发和运维一体化。持续交付让应用可以频繁发布、快速交付、快速反馈、降低发布风险。容器使得应用整体开发以容器为基础,形成代码组件复用、资源隔离。
五、云原生的正确打开方式
第一步:你的代码放在云代码平台而非你公司内部私有部署的Git平台上。这就是微软要花大价钱并购Git的原因。这是第一步。为什么要这样做,你接下来就明白了。反正你现在基于云计算、大数据、人工智能、IOT开发具体业务应用的时候,你大量依赖的都是开源平台,就你那点具体业务应用能有多高技术门槛。而且微软接手后的git,对于企业代码的安全保护、备份,比你自己的管理员和运维技术高多了。
第二步:使用云开发平台。这个开发平台可以基于Web浏览器,也可以基于本地VS Code IDE,但云开发平台的核心本质是:你根本不需要在本地安装那么多依赖框架,你在IDE里面写应用,你打开云上Git平台上面的某个源代码文件,import进一个包,然后在IDE里直接调用API,这个云开发平台会自动补全API,你可以保存代码、你可以编译代码、你可以调试代码、你可以运行代码,和你本地一样,但其实是应用运行在云端,应用也是在云端进行打包、安装部署的。
第三步:使用云服务OpenAPI。云计算厂商把所有的云服务都开放出来Open API,你可以在这个云开发平台上直接调用这个云计算厂商的所有Open API开放平台里面的API。这些云服务会自己负责自己的安装部署升级、监控、备份、迁移等等。
通过传统云服务与云开发模式的对比图可以看出传统云需要开发者关注后端服务器,比如数据库、文件存储、负载均衡、异地容灾、网络防护等;而云开发模式弱化了后端和运维的概念,只需要关注业务逻辑,就可以完成微信小程序/小游戏、公众号、Web、移动应用的开发,这样不但大大的降低了应用程序的开发门槛,而且节省了开发者开发部署以及维护的成本。
六、云原生的技术范围
云原生技术包含如下以下方面:
云应用的定义和开发:这个过程包含了应用程序的定义,镜像的创建, 持续集成的配置,以及持续交付(CI/CD), 消息通信,流处理,以及数据库。
云应用的编排和管理:这也是Kubernetes的重点。这个过程包含应用编排,调度,服务发现, 治理方式,远程调用,API网关,以及服务网络。
监测和可观察性:这一部分强调,云应用如何被监控,记录日志, 以及跟踪,以及在云端如何实现破坏性测试。 这也是混沌工程学的概念。
与原生的底层技术:例如容器运行时, 云原生存储技术, 云原生网络技术。
与原生工具包:除了上述核心技术之外,还可以使用许多支持性生态系统或外围工具,例如,该工具包包括流程自动化和配置管理、容器映像存储库、云原生安全技术和基于云的密码管理。
无服务(Serverless)计算: 无服务器是PaaS的一种特殊形式。 它定义了一个更加”极端和抽象“的理论为应用程序编写方法。 结合函数即服务(FaaS)或者”后端即服务BaaS“。 FaaS和BaaS最典型的特征就是“即付即用”按需伸缩。 对于云服务商,无服务器计费也很重要。
有疑问加站长微信联系(非本文作者)
