写点什么

云原生应用的 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:04791

评论

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

服务器异常问题排查指南

AiDaddy

trouble shooting 线上问题排查 服务器异常排查 linux 命令

大模型训练中batch的作用

百度开发者中心

人工智能 大模型 深度学历

利用Prompt,高效调教大模型

百度开发者中心

人工智能 大模型 Prompt

音视频FAQ(三):音画不同步

ZEGO即构

CDN 直播 实时音视频 视频编解码 实时互动

低多边形3D建模动画风格纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

5秒成为AI产业顾问、营销BI轻松搭建......一封来自星河社区5周年产业特辑的信

飞桨PaddlePaddle

人工智能 产业生态 星河社区

利用Prompt提升大模型微调性能

百度开发者中心

深度学习 大模型

使用函数计算,数禾如何实现高效的数据处理?

Serverless Devs

云计算 Serverless AIGC

Amazon WorkSpaces 推出 Amazon WorkSpaces Web

亚马逊云科技 (Amazon Web Services)

容器 Amazon WorkSpaces

低多边形建筑3D模型纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理 多边形建模

mac上好用的软件提取工具:Pacifist中文激活版

胖墩儿不胖y

Mac软件 软件提取工具 软件提前

强大的触控板手势增强软件:Multitouch免激活最新

mac大玩家j

触控板增强 触控板管理工具

从ByteHouse网关,看如何进一步提升OLAP引擎性能

字节跳动数据平台

数据库 大数据 云原生 数仓 企业号12月PK榜

低多边形游戏风格3D模型纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

Istio与Kubernetes:资源管理与协同解析

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

如何使用区块链数据构建安全工具

Footprint Analytics

区块链 区块链技术 数据安全

政采云基于 Dubbo 的混合云数据跨网实践

阿里巴巴云原生

阿里云 云原生 dubbo

盛大发布!用友携手35家数智化领先企业推出《用户之友》专著

用友BIP

企业数智化

阿里云 ACR 制品中心 AI/大数据镜像专场上新推荐榜

阿里巴巴云原生

阿里云 容器 云原生

利用大模型训练提升AI性能

百度开发者中心

人工智能 大模型 深度学习、

面试问题总结(一)

xfgg

Java

【EMNLP 2023】面向Stable Diffusion的自动Prompt工程算法BeautifulPrompt

阿里云大数据AI技术

「智造」第12期:浅谈时序数据库的应用及发展

用友BIP

时序数据库

低多边形3D建模石头材质纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

基于Unity3D 低多边形地形模型纹理贴图

3D建模设计

3D渲染 材质贴图 纹理贴图 材质纹理

音视频开发常见问题(四):视频花屏和绿屏

ZEGO即构

实时音视频 直播技术 视频编解码 音视频开发 直播推流

Exploring Advanced WiFi 6 Solutions: QCN6122 vs. QCN6102 with IPQ5018 Platform

wallyslilly

ipq5018 QCN6102 QCN6122

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