热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

云原生应用的十个关键属性

云原生(Cloudnative)是用于描述基于容器的云计算环境的专门用语,云原生技术是指开发使用容器

云原生(Cloud native)是用于描述基于容器的云计算环境的专门用语,云原生技术是指开发使用容器打包的服务,部署成微服务形式,在工程方法上实现灵活的DevOps流程,在弹性的基础架构上对持续交付的工作流进行管理。

过去,运维团队是通过手动管理基础资源的分配,云原生应用则是部署在抽象底层计算、存储和原始网络的基础架构上。处理这种新型应用的开发人员和运维人员不会直接与基础架构的公开API打交道,相反,基于基础架构上的中间PaaS层会根据DevOps团队制定的策略进行自动分配资源,这个中间PaaS层相同于一个编排引擎,它是由控制器和调度器等基本组件组成,用来处理资源分配和应用程序的生命周期。

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

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

1.打包为轻量级容器

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

2.使用最佳语言和框架开发

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

3.设计为松散耦合的微服务

属于同一应用程序的服务在应用运行时能够相互发现。它们独立于其他服务而存在。当正确集成时,弹性基础架构和应用程序架构可以通过高效和高性能进行扩展。

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

4.以API为中心进行交互和协作

云原生服务使用轻量级API,这些API基于代表性状态转移(REST),Google的开源远程过程调用(gRPC)或NATS等协议。REST是被用作通过超文本传输​​协议(HTTP)公开API的最终共识。为了提高性能,gRPC通常用于服务之间的内部通信。NATS具有发布/订阅功能,可在应用程序内实现异步通信。

5.以无状态和有状态服务的清晰分离为基础构建

无状态服务应该独立于有状态服务,有数据库持久操作的有态服务应遵循不同的模式,以确保更高的可用性和弹性。

6.与服务器和操作系统依赖关系隔离

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

7.部署在自助服务、弹性云基础架构上

云原生应用程序应部署在虚拟、共享和弹性基础架构上。它们可以与底层基础架构保持一致,以动态方式增长和缩小 - 根据不同的负载调整自身。

通过敏捷DevOps流程进行管理

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

9.自动化功能

云原生应用程序可以高度自动化。它们与将基础设施作为代码的概念相得益彰。实际上,仅需要一定程度的自动化可以简化管理大型和复杂的应用程序。

可定义的、能够实现策略驱动的资源分配

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


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 我们


推荐阅读
  • 提供:ZStack云计算原创2016-12-26张鑫讲师介绍张鑫ZStack总架构师、联合创始人《系统虚拟化》主要作者,曾任职Intel开源软件技术中心 ... [详细]
  • k8s+springboot+Eureka如何平滑上下线服务
    k8s+springboot+Eureka如何平滑上下线服务目录服务平滑上下线-k8s版本目录“上篇介绍了springboot+Euraka服务平滑上下线的方式,有部分小伙伴反馈k ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
  • 寻求更强大的身份和访问管理(IAM)平台的企业正在转向云,并接受身份即服务(IDaaS)的灵活性。要为IAM选择正确的场外解决方案,业务管理人员和IT专业人员必须在实施之前评估安全 ... [详细]
  • TiDB | TiDB在5A级物流企业核心系统的应用与实践
    TiDB在5A级物流企业核心系统的应用与实践前言一、业务背景科捷物流概况神州金库简介二、现状与挑战神州金库现有技术体系业务挑战应对方案三、TiDB解决方案测试迁移收益问题四、说在最 ... [详细]
  • 本文是一位90后程序员分享的职业发展经验,从年薪3w到30w的薪资增长过程。文章回顾了自己的青春时光,包括与朋友一起玩DOTA的回忆,并附上了一段纪念DOTA青春的视频链接。作者还提到了一些与程序员相关的名词和团队,如Pis、蛛丝马迹、B神、LGD、EHOME等。通过分享自己的经验,作者希望能够给其他程序员提供一些职业发展的思路和启示。 ... [详细]
  • 本文介绍了adg架构设置在企业数据治理中的应用。随着信息技术的发展,企业IT系统的快速发展使得数据成为企业业务增长的新动力,但同时也带来了数据冗余、数据难发现、效率低下、资源消耗等问题。本文讨论了企业面临的几类尖锐问题,并提出了解决方案,包括确保库表结构与系统测试版本一致、避免数据冗余、快速定位问题等。此外,本文还探讨了adg架构在大版本升级、上云服务和微服务治理方面的应用。通过本文的介绍,读者可以了解到adg架构设置的重要性及其在企业数据治理中的应用。 ... [详细]
  • Django + Ansible 主机管理(有源码)
    本文给大家介绍如何利用DjangoAnsible进行Web项目管理。Django介绍一个可以使Web开发工作愉快并且高效的Web开发框架,能够以最小的代价构建和维护高 ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • BPM是什么软件?1、BPM是BusinessProcessManagement的简称,译为业务流程管理,它是一种以规范化的构造端到端的卓越业务流程为中心以持续的提高组织业务绩效为 ... [详细]
  • 微信公众号:内核小王子关注可了解更多关于数据库,JVM内核相关的知识;如果你有任何疑问也可以加我pigpdong[^1]jvm一行代码是怎么运行的首先,java代码会被编译成字 ... [详细]
  • 云原生SRE
    序言年底了,没有分手的朋友的赶紧分了,所谓新年新气象,年年不重样。去留无意,望看风卷残云。。。运维不会消失,但 ... [详细]
  • 目前有哪些主流的编程语言呢?1、Java:应用广泛,Android的编程,大部分是用Java;相关岗位:软件工程师,软件架构师和DevOps工程师。2、Python:简单易学,软件 ... [详细]
  • 开发笔记:DevOps Gitlab环境部署
    本文由编程笔记#小编为大家整理,主要介绍了DevOpsGitlab环境部署相关的知识,希望对你有一定的参考价值。DevOps介绍 ... [详细]
author-avatar
The_Fuck_566
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有