云原生是什么
云原生是什么
云原生(Cloud-Native)是一种应用程序开发和部署方法论,旨在充分利用云计算、容器化和微服务架构等现代技术来构建和运行应用程序。云原生应用程序旨在更好地适应云环境,并具备可伸缩性、弹性、高可用性和自动化等特征。云原生计算基金会(CNCF)指出,基于云原生技术,开发者更易于打造高容错性、便于管理与监测的松耦合系统。
云原生(Cloud-Native)是一种应用程序开发和部署方法论,旨在充分利用云计算、容器化和微服务架构等现代技术来构建和运行应用程序。云原生应用程序旨在更好地适应云环境,并具备可伸缩性、弹性、高可用性和自动化等特征。云原生计算基金会(CNCF)指出,基于云原生技术,开发者更易于打造高容错性、便于管理与监测的松耦合系统。
云原生计算基金会(CNCF)
云原生计算基金会(CNCF)
提到云原生,就需要介绍一下云原生计算基金会(CNCF),这家机构对云原生创新起到了显著作用。CNCF 隶属于 Linux 基金会项目,成立于 2015 年,旨在支持多行业加速容器化技术应用,构建更敏捷的组织架构与云上生产力效能。CNCF 年度报告显示,在 2019 年,生产中 Kubernetes 的使用量增加高达 78%。
提到云原生,就需要介绍一下云原生计算基金会(CNCF),这家机构对云原生创新起到了显著作用。CNCF 隶属于 Linux 基金会项目,成立于 2015 年,旨在支持多行业加速容器化技术应用,构建更敏捷的组织架构与云上生产力效能。CNCF 年度报告显示,在 2019 年,生产中 Kubernetes 的使用量增加高达 78%。
云原生平台 Kubernetes
云原生平台 Kubernetes
云原生计算基金会的开源项目中,Kubernetes(简称 K8s)是支持云原生部署的主流平台。这是当今主流自动部署、扩缩和管理容器化应用程序的开源系统。回溯 K8s 的发展脉络,它是由 Google 设计而成,后被赠予云原生计算基金会(CNCF)。
K8s 的“积木式”结构,表现为将应用程序的组成容器,重组为逻辑单元,有利于高效管理。它浓缩了 Google 15 年运维经验,以及技术社区的最佳实践。举例来看,若某个应用程序出现单体故障时,K8s 将新启一个新实例,将原应用程序进行替换,智能运维能力可见一斑。
云原生架构
云原生架构
事实上,出现云原生平台 Kubernetes 智能化、容器化的架构之前,云原生架构也经历了一段发展历程。当下,云原生架构是指将应用程序和基础设施紧密结合,来更好地满足不断变化业务需求的 IT 技术架构,它属于一种应用云原生技术,进行设计、开发的架构模式。
事实上,出现云原生平台 Kubernetes 智能化、容器化的架构之前,云原生架构也经历了一段发展历程。当下,云原生架构是指将应用程序和基础设施紧密结合,来更好地满足不断变化业务需求的 IT 技术架构,它属于一种应用云原生技术,进行设计、开发的架构模式。
云原生架构能够尽可能地剥离云应用中的非业务代码,聚焦功能性业务,高效打造敏捷、智能云计算服务。本质上,云原生架构也是一种软件架构,核心特性是运行于云环境之中,对微服务进行延伸。这种技术架构形态,能对云计算服务与互联网架构进行一体化升级,助力企业快速迭代创新。整体来看,云原生架构演进之路,历经如下三个阶段:
云原生架构能够尽可能地剥离云应用中的非业务代码,聚焦功能性业务,高效打造敏捷、智能云计算服务。本质上,云原生架构也是一种软件架构,核心特性是运行于云环境之中,对微服务进行延伸。这种技术架构形态,能对云计算服务与互联网架构进行一体化升级,助力企业快速迭代创新。整体来看,云原生架构演进之路,历经如下三个阶段:
在云发挥威力之前,租 IDC 机房,或者自主买硬件搭建机房,是大多数企业构建 IT 基础设施的主流方式。面对种种本地化固有难题,云服务模式应运而生。迁移上云的好处,在于突破了本地化的规模问题,尤其能够助力出海企业实现快速扩容、随时应用云厂商的数据中心资源,按需外扩 IT 资源。
上云后,即是云原生的开始。为缩短发布周期,一改传统单体应用开发的效率瓶颈,便需要展开围绕应用的微服务化改造,来提升全流程的敏捷性。企业可借助弹性与计算与弹性 K8s 两类容器管理平台,进行容器化改造,改造后,集群可依据实时峰值配置资源,进一步节约成本,降低运维成本。
服务器的存在,使得业务相对复杂化。无服务器 (Serverless) 架构即是化繁为简的解决之道,将能够让企业免去管理与维护服务器的过程,专注于业务本身。相比 Fargate,Lambda 托管层次更深入,可托管容器环境,开发者只需构建代码,自动将应用会部署到 Lambda 管理的容器中。
云原生技术
云原生技术
打造完备的 IT 架构,需要综合应用云原生技术(又称“云原生技术栈”),这些技术是指构建 IT 系统的优选技术集合,属于打造云原生应用程序的技术基础。容器、微服务、声明式 API、服务网格、不可变基础设施,是云原生计算基金会(CNCF)列出的云原生架构的重要技术组成模块。
从不同维度上来说,云原生技术具体涵盖云应用定义与开发流程、云应用编排与管理流程、监控与可观测性、云原生的底层技术、云原生工具集与 Serverless 等主要方面。无论是面对公有云、私有云部署,还是面对混合云等动态环境,善用云原生技术,都能够大幅提升开发效率、构建高稳定的技术系统和可弹性扩展的程序应用。
不同技术类别的云原生容器技术,可以相互配合,协同构建和管理现代云原生应用程序。开发者可以根据具体的应用场景和要求来决定。以下是一些常见的云原生容器技术:
打造完备的 IT 架构,需要综合应用云原生技术(又称“云原生技术栈”),这些技术是指构建 IT 系统的优选技术集合,属于打造云原生应用程序的技术基础。容器、微服务、声明式 API、服务网格、不可变基础设施,是云原生计算基金会(CNCF)列出的云原生架构的重要技术组成模块。
从不同维度上来说,云原生技术具体涵盖云应用定义与开发流程、云应用编排与管理流程、监控与可观测性、云原生的底层技术、云原生工具集与 Serverless 等主要方面。无论是面对公有云、私有云部署,还是面对混合云等动态环境,善用云原生技术,都能够大幅提升开发效率、构建高稳定的技术系统和可弹性扩展的程序应用。
不同技术类别的云原生容器技术,可以相互配合,协同构建和管理现代云原生应用程序。开发者可以根据具体的应用场景和要求来决定。以下是一些常见的云原生容器技术:
容器
云原生应用程序中最小的计算单元,即“容器”。Docker 是常用的容器化技术之一。容器可将微服务代码和其他必需文件,打包集中于在云原生系统。基于容器化技术,云原生应用程序便能够与底层操作系统和硬件,保持彼此独立。由此,开发者便拥有了更高的自由度,云原生应用程序可按需部署于本地、云端或或混合云上。
微服务
微小、独立的软件组件,即“微服务”,不同的微服务,都侧重于解决某一个精细化的具体问题。鉴于微服务彼此之间处于一种松散耦合的关系,可实现互联通信,众多微服务,共同组建、运行一体化的完整的云原生软件。在开发者对应用程序进行微调时,可聚焦单个微服务进行处理,更为高效;而在微服务发生故障时,应用程序仍具有连续性。
API
应用程序编程接口,即 API 中文全称,这是将松散耦合的微服务进行整合的云原生技术。在 IT 环境中,API 是连接不同软件程序,交换信息的技术方法。值得注意的是,API 可以支持同步开发者微服务的具体信息,但 API 不是指定实现具体结果的步骤动作。
服务网格
云原生架构中,服务网格是软件层的通信技术,可支持管理不同微服务间的通信路径。赋能开发者提升效率方面,无需编写新代码,开发者即可在服务网格中,加入新功能。
不可变基础设施
“不可变基础设施”是能够保障云原生应用程序托管服务器,在部署前后保持不变的基础设施。如果应用程序面临计算资源不足的处境,便会舍弃原有服务器,寻求高性能服务器的支持。不可变基础设施,可凭借自动化模式,在云原生部署过程中,实现可预测模式。
云原生技术的优点和缺点
云原生技术的优点和缺点
云原生技术提供现代化和高效的方法,来构建和管理应用程序,但它并非适用于每个应用和组织。了解它的优缺点,以便根据具体需求做出明智的决策。
云原生技术提供现代化和高效的方法,来构建和管理应用程序,但它并非适用于每个应用和组织。了解它的优缺点,以便根据具体需求做出明智的决策。
优点
快节奏交付
云原生技术之“快”,源自于开发者无需依靠特定的硬件基础设施,通过 DevOps 实践,即可随时构建可部署的容器化应用程序,进而实现敏捷性倍增的效能。
适配多云时代
云原生有助于跨多个云环境进行工作负载迁移,降低云供应商锁定风险,同时允许多个容器共享相同的操作系统内核,有助于提高资源利用率。
独立且灵活
云原生架构,支持开发者保障操作环境的一致性和可靠性,可以轻松适应不同的应用需求,包括微服务、容器和 Serverless 计算等。
缺点
较为复杂,需要持续学习
由于云原生技术涉及多个组件和工具,学习和实施部署可能较为复杂,存在较长的学习周期。为了充分发挥云原生技术的优势,开发团队需要与时俱进,持续学习新方法。
部署耗时,组件关系多元
使用云原生技术部署应用程序时,涉及处理多类别微服务、容器组件,因此需要有效的管理和编排。同时,在容器化的环境中,容器之间的通信和网络配置,与需要耗费一定精力。
故障不易排除,存在安全风险
鉴于复杂性的存在,云原生应用程序的监控和故障排除可能存在一定困难,需要使用专门的工具和实践。同时高度复杂的架构,也可能导致额外的安全风险。因此容器和微服务,需要考虑额外的安全性保障。
云原生未来趋势
云原生未来趋势
云原生技术是一个不断发展的领域,涵盖了各种技术和方法,以适应现代应用程序开发和部署的需求。组织应密切关注演化趋势,以确保自身应用和基础设施保持现代化。
云原生技术是一个不断发展的领域,涵盖了各种技术和方法,以适应现代应用程序开发和部署的需求。组织应密切关注演化趋势,以确保自身应用和基础设施保持现代化。
多云、混合云部署日渐主流
混合云环境允许组织将工作负载同时部署在云上和本地数据中心之间,以满足合规性、数据保护和性能需求。多云和混合云战略成为了越来越多组织的关注重点。
Serverless 计算,加速编程流程
Serverless 计算是云原生领域的重要趋势之一。它允许开发人员编写函数式代码,而不必担心底层基础设施的管理。云提供商提供自动扩展和管理计算资源的能力,以根据需求执行代码。Amazon Lambda 等平台正是 Serverless 计算的代表服务。
容器编排和管理
Kubernetes 仍然是容器编排和管理的主要平台,但有一些新兴项目和工具,如
Knative、OpenShift 和 Rancher,专注于提供更高级的功能,以简化开发和管理云原生应用。
边缘位置 Kubernetes 比重上升
边缘计算将计算资源推近到数据源和最终用户,以减少延迟和提高性能。边缘计算可用于支持物联网(IoT)应用、实时分析和低延迟的边缘计算任务。越来越多的用户,倾向于将 Kubernetes 部署于边缘位置。弹性化的工作负载,更有助于企业提效数字业务流程。
云原生数据库的企业级应用
在未来,云原生数据库有助于解决了云原生应用对数据库的多维需求。它们包括分布式数据库、多模型数据库、无服务器数据库和数据库即代码等概念,以适应云原生应用的不断发展的动态需求。
云原生自动化和持续集成/持续交付(CI/CD)流程
云原生自动化和持续集成/持续交付(CI/CD)流程
云原生应用程序通常采用自动化和持续集成/持续交付(CI/CD)流程,以加速开发、测试和部署过程,提高质量和可维护性。CI/CD 流程的关键目标是实现快速、可靠的交付,同时确保应用程序的质量和稳定性。不同组织可能会使用不同的工具和流程,根据特定需求来进行调整和优化。以下是云原生自动化和 CI/CD 流程的一般步骤:
云原生应用程序通常采用自动化和持续集成/持续交付(CI/CD)流程,以加速开发、测试和部署过程,提高质量和可维护性。CI/CD 流程的关键目标是实现快速、可靠的交付,同时确保应用程序的质量和稳定性。不同组织可能会使用不同的工具和流程,根据特定需求来进行调整和优化。以下是云原生自动化和 CI/CD 流程的一般步骤:
实现自动化构建与测试
开发者可考虑使用版本控制系统(如 Git)来管理应用程序代码,随后创建自动化的构建流程,以将代码编译成可执行的应用程序。通常涉及使用构建工具(如 Maven 等)来管理依赖项并执行编译过程。实施各种自动化测试(如单元测试、集成测试和端到端测试),有助于确保代码质量和稳定性。
容器化与容器注册
如果用户使用容器化技术(如 Docker),可将应用程序容器化以确保在不同环境中的一致性。将构建的容器映像上传到容器注册表(如 Docker Hub、Amazon ECR 等)以供部署使用。
自动化部署 CI/CD
使用自动化部署工具(如 Kubernetes、Jenkins、GitLab CI/CD、Travis CI 等)来将容器化应用程序部署到测试和生产环境。每当代码库中有新的提交时,设置持续集成工作流程,以自动触发构建、测试和部署。配置持续交付工作流程,以允许新功能或修复在通过测试后立即部署到生产环境。
自动化监控和回滚
集成监控和警报系统,以监视应用程序在生产中的性能和可用性。自动化回滚机制可在出现问题时降级到以前的稳定版本。
环境配置管理,提升安全性
使用基础设施即代码(IaC)工具,如 Terraform 或 Amazon CloudFormation,来定义和管理云基础设施的配置。集成安全性扫描和审计工具,确保应用程序和基础设施符合安全性和合规性标准。
亚马逊云科技云原生技术优势
亚马逊云科技云原生技术优势
容器化弹性扩缩、快速部署
亚马逊云科技的容器管理平台有 Amazon ECS 和 Amazon EKS 两种选择,为了提高业务的灵活性以及快速部署的能力,需要对业务进行微服务化改造,相应的基础设施架构也需要从虚拟机部署改为容器化部署。
无服务器解放运维
亚马逊云科技提供了两种 Serverless 计算服务,一种是 EKS 和 ECS 平台的 Fargate 容器引擎,另一种是 Lambda 平台。通过使用 Fargate, 不需要再预置或者管理服务器,可以非常方便地实现容器的自动扩缩容,不需要关心计算节点的扩缩容,而 Lambda 提供了更深一层的托管,它将容器环境也托管起来,客户只需构建代码即可,应用会自动部署到 Lambda 管理的容器中,这些容器在被调用时会自动按需启动。
欢迎加入亚马逊云科技培训中心
欢迎加入亚马逊云科技培训中心
-
快速上手训练营
-
账单设置与查看
-
动手实操
-
快速上手训练营
-
第一课:亚马逊云科技简介
本课程帮助您初步了解云平台与本地环境的差异,以及亚马逊云科技平台的基础设施和部分核心服务,包括亚马逊云科技平台上的弹性高可用架构,架构设计准则和本地架构迁移上云的基本知识。
亚马逊云科技技术讲师:李锦鸿第二课:存储与数据库服务
您将在本课程中学习到亚马逊云科技上的三个存储服务分别是什么。我们也将在这个模块中为您介绍亚马逊云科技上的关系型数据库服务 Amazon Relational Database Service (RDS)。
亚马逊云科技资深技术讲师:周一川第三课:安全、身份和访问管理
在这个模块,您将学习到保护您在亚马逊云科技上构建的应用的安全相关知识,责任共担模型以及身份和访问管理服务, Identity and Access Management (IAM) 。同时,通过讲师演示,您将学会如何授权给 EC2 实例,允许其访问 S3 上的资源。
亚马逊云科技技术讲师:马仲凯 -
账单设置与查看
-
-
动手实操
-
快速注册账号 畅享 40+ 免费云服务
快速注册账号 畅享 40+ 免费云服务
-
1 进入注册页面
-
2 设置用户名及密码
-
3 填写企业信息
-
4 企业信息验证
-
5 完成手机验证
-
6 选择支持计划
-
1 进入注册页面
-
01填写您注册账号的邮箱点击“继续”01填写您注册账号的邮箱点击“继续”03输入邮箱中收到的验证码点击“继续”03输入邮箱中收到的验证码点击“继续”注:该链接中的内容显示语言 是与您的网页浏览器设置相一致的,您可以根据需要自行调整语言栏。 *图片点击可放大
-
2 设置用户名及密码
-
3 填写企业信息
-
01填写公司联系人姓名全称01填写公司联系人姓名全称02填写公司联系人的联系电话02填写公司联系人的联系电话03填写公司名称*重要! ! !公司名称请务必与您所提供的营业执照公司名称保持一致03填写公司名称*重要! ! !公司名称请务必与您所提供的营业执照公司名称保持一致04填写公司办公地址省份/自治区/直辖市 - 城市 - 区 - 街道门牌号以及楼层信息 - 邮政编码04填写公司办公地址省份/自治区/直辖市 - 城市 - 区 - 街道门牌号以及楼层信息 - 邮政编码06您可以点击查看客户协议您可以点击查看客户协议勾选方框表示您已阅读,并同意客户协议的条款06您可以点击查看客户协议您可以点击查看客户协议勾选方框表示您已阅读,并同意客户协议的条款*图片可点击放大
-
4 企业信息验证
-
01在此上传企业注册执照01在此上传企业注册执照02请填写网络安全负责人的姓名
请注意: 该字段务必与您下方提供的身份证号匹配或与证件上的姓名保持一致
02请填写网络安全负责人的姓名请注意: 该字段务必与您下方提供的身份证号匹配或与证件上的姓名保持一致
03请填写网络安全负责人的联系方式有效的电子邮件地址 - 有效的中国内地 手机号码 - 座机号码(如无座机,请填写正确有效的手机号码)03请填写网络安全负责人的联系方式有效的电子邮件地址 - 有效的中国内地 手机号码 - 座机号码(如无座机,请填写正确有效的手机号码)04在此上传网络安全负责人的身份证件请注意:当您选择证件类型为“身份证”时,您需要填写正确的身份证号码,选择其他证件类型时,您需要上传证件扫描稿
04在此上传网络安全负责人的身份证件请注意:当您选择证件类型为“身份证”时,您需要填写正确的身份证号码,选择其他证件类型时,您需要上传证件扫描稿
*图片可点击放大 -
5 完成手机验证
-
6 选择支持计划