【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

云原生应用的 10 大关键属性

  • 2020-04-15
  • 本文字数:1855 字

    阅读完需:约 6 分钟

云原生应用的10大关键属性

“云原生(Cloud Native)”是用于描述基于容器的环境的术语。云原生技术被用于开发应用程序,这些应用程序是使用容器打包的服务构建的、被部署为微服务、并通过灵活的 DevOps 流程和持续交付工作流在弹性基础架构上进行管理。



在运维团队手动管理传统应用程序的基础架构资源分配的情况下,云原生应用程序部署在抽象了底层计算、存储和网络原语的基础架构上。处理这种新型应用程序的开发人员和运维人员不直接与基础架构提供商公开的 API 交互。相反的,编排器会根据 DevOps 团队制定的策略自动进行资源分配。控制器和调度程序是编排引擎的基本组件,负责处理资源分配问题和应用程序的生命周期。


像 Kubernetes 这样的云原生平台使用扁平网络,该网络覆盖在云提供商的现有网络拓扑和原语上。类似地,本地存储层通常被抽象出来,以暴露与容器集成的逻辑卷。运维人员可以分配开发人员和资源管理员访问的存储配额和网络策略。基础架构抽象不仅解决了跨云环境的可移植性需求,还让开发人员可以利用新兴模式来构建和部署应用程序。无论基于物理服务器或虚拟机,私有云或公共云的底层基础架构如何,编排管理器都将成为部署目标。


Kubernetes 是一个运行云原生应用程序工作负载的理想平台。它已经成为云的事实上的操作系统,就像 Linux 是底层机器的操作系统一样。只要开发人员在设计和开发软件时,遵循其作为云原生应用程序的微服务的最佳实践,DevOps 团队就能够在 Kubernetes 中打包和部署它们。以下是开发人员在设计云原生应用程序时应牢记的云原生应用程序的 10 个关键属性。



1、打包为轻量级容器:云原生应用程序是打包为轻量级容器的独立自治服务的集合。与虚拟机不同,容器可以快速扩缩容。将扩展单元转移到容器,能够优化基础架构利用率。


2、使用最佳语言和框架开发 :云原生应用程序的每项服务都是使用最适合该功能的语言和框架开发的。云原生应用程序是多语言的,服务会使用各种不同的语言、运行时和框架。例如,开发人员可以构建基于在 Node.js 中开发的 WebSockets 的实时流服务,同时选择 Python 和 Flask 来暴露 API。开发微服务的细粒度方法使它们能够为特定任务选择最佳语言和框架。


3、设计为松耦合的微服务 :属于同一应用程序的服务通过应用程序运行时来发现彼此。它们独立于其他服务而存在。正确集成时,弹性基础架构和应用程序架构可以高效地、以高性能来进行扩展。


松耦合的服务让开发人员可以在处理每个服务时都能够独立于其他服务来工作。通过这种分离,开发人员可以专注于每项服务的核心功能,以提供细粒度的功能。这种方法可以实现整个应用程序的有效生命周期管理,因为每个服务都是独立维护的,并且拥有明确的所有权。


4、以 API 为中心进行交互和协作 :云原生服务使用轻量级 API,这些 API 基于 REST、gRPC 或 NATS 等协议。REST 通常被用作通过 HTTP 公开 API 的最低公分母。为了提高性能,gRPC 通常用于服务之间的内部通信。NATS 具有发布-订阅功能,可在应用程序内实现异步通信。


5、在架构中将无状态和有状态服务清晰分离 :持久耐用的服务通常遵循不同的模式,以确保更高的可用性和弹性。无状态服务和有状态服务是彼此独立存在的。存储会影响容器的使用。我们必须越来越多地在有状态、无状态、微存储环境(这一点有些人可能觉得有争议)等不同语境下考虑持久性这一因素。


6、与服务器和操作系统依赖关系隔离 :云原生应用程序与任何特定操作系统或单个计算机没有关联。它们在更高的抽象级别上运行。唯一的例外是微服务需要某些功能,包括固态驱动器(SSD)和图形处理单元(GPU),这些功能可能由一部分机器专门提供。


7、部署在自服务的弹性云基础架构上 :云原生应用程序部署在虚拟的、共享的和弹性的基础架构上。它们可以与底层基础架构保持一致,以动态增长和缩小——根据不同的负载来自我调节。


8、通过敏捷 DevOps 流程进行管理 :云原生应用程序的每项服务都会经历一个独立的生命周期,通过敏捷的 DevOps 流程进行管理。多个持续集成/持续交付(CI / CD)流水线可以协同工作以部署和管理云原生应用程序。


9、自动化功能 :云原生应用程序可以高度自动化。它们与 Infrastructure as Code 的概念相得益彰。企业需要一定程度的自动化来管理大型和复杂的应用程序。


10、定义的、策略驱动的资源分配 :最后,云原生应用程序与通过一组策略定义的治理模型一致。它们遵循 CPU 和存储配额以及将资源分配给服务的网络策略等策略。例如,在企业方案中,中央 IT 可以定义策略来为每个部门分配资源。每个部门的开发人员和 DevOps 团队都拥有对其资源共享的完全访问权和所有权。


2020-04-15 23:04657

评论

发布
暂无评论
发现更多内容

事项法会计:业财融合落地的基石

用友BIP

业财融合

用友助力中核集团新华发电斩获“IDC未来企业大奖”

用友BIP

企业数智化

打开浏览器,线上玩转C++

庄岩

c++ 在线编程 onlinegdb

软件定义汽车时代,代码质量先行!

安势信息

车联网 代码质量 汽车软件安全 代码质量检测工具

白鸦11周年分享:把有赞做成智能化系统运营商

ToB行业头条

人工智能 | 自然语言处理技术原理介绍

测吧(北京)科技有限公司

测试

iZotope RX 10 for mac(音频修复和增强软件) 10.4.2完美激活版

mac

苹果mac Windows软件 iZotope RX 10 音频修复和增强软件

强大的Kubernetes工具的完整指南

互联网工科生

Kubernetes

监守自盗,如何防范员工窃密?

尚思卓越

网络安全 信息安全

CodeiumAI单元测试生成和覆盖率统计实践

lklmyy

单元测试 pytest AIGC CodiumAI

回归算法全解析!一文读懂机器学习中的回归模型

不在线第一只蜗牛

机器学习 算法 回归算法

DAPP公排互助项目系统开发丨智能合约技术开发

l8l259l3365

[开源]MIT开源协议,前后端分离、后台通配权限管理系统

小狗围观科幻

🚀Flutter应用程序加固的问题及解决方案

雪奈椰子

浩鲸科技:为什么要用雪花ID替代数据库自增ID?

王磊

Java 面试

“大+小模型”赋能油气行业高质量发展

九章云极DataCanvas

ICP通识导读:了解未来区块链

TinTinLand

#区块链# Dfinity

两台电脑如何快速传输几百G文件,这款文件传输软件真快

镭速

大文件传输 传输大文件 文件传输工具

如何有效避免七个常见的身份验证漏洞

这我可不懂

身份验证 网络安全威胁

Ableton Live 12 for Mac(音乐制作工具)v12.0b20中文激活版

iMac小白

JavaScript 的发展史你真的了解吗?

伤感汤姆布利柏

JavaScript 低代码 js

为什么要在项目中使用TypeScript?

树上有只程序猿

typescript

增加外贸订单的实用外贸工具

九凌网络

3D模型渲染太耗电脑性能怎么办?

3D建模设计

3D渲染 GPU渲染 渲染调优 CPU渲染

图像批量处理软件:Retrobatch for mac v2.0.2激活版

iMac小白

用友助力浙江省国贸供应链企业数智化管理水平提升!

用友BIP

企业数智化

NFTScan 正式上线 Starknet NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT\ NFTScan nft工具

数据库安全运维系统厂家在深圳的有哪些?咨询电话多少?

行云管家

数据库 大数据 数据安全 数据库安全 数据安全运维

外贸人必须知道的20个WhatsApp实用技巧

九凌网络

C/C++ Zlib库封装MyZip压缩类

不在线第一只蜗牛

c c++ 开源 编程语言

让人恶心的多线程代码,真心建议你别用!

伤感汤姆布利柏

Java 低代码 多线程代码

云原生应用的10大关键属性_文化 & 方法_Rancher_InfoQ精选文章