身为程序员,就应该了解微服务的未来发展趋势:云原生应用架构

该用户快成仙了 该用户快成仙了     2023-04-16     655

关键词:

微服务发展趋势

随着Docker技术的普及和Kubernetes在互联网公司的大量部署与使用,微服务架构正在围绕应用如何易于开发交付、减少资源消耗、无侵入治理等方面进行变革和演进。

本篇我们将讲解云原生架构、Service Mesh技术、无服务器架构(Serverless)技术。

云原生应用架构

云原生应用架构的3个特征包括:容器化、微服务、DevOps。

通俗地讲,就是将现代应用基于微服务架构原则(云原生12因子)构建,使用DevOps开发运维一体化的动态管理机制,将微服务自动化部署在私有云或者公有云。

云原生应用架构进阶

Pivotal是云原生应用的提出者,推出了Pivotal Cloud Foundry云原生应用平台和Spring开源微服务框架。

近几年,随着云原生生态的不断发展壮大,Google主导成立的云原生计算基金会对云原生做了重新定义:

云原生技术有利于各组织在公有云、私有云和混合云等新型动态环境中,构建和运行可弹性扩展的应用。

云原生的代表技术包括容器、服务网格、微服务、不可变基础设施和声明式API。

CNCF对云原生的定义从Cloud和Native两个方面进一步阐述。

● 一方面,强调Cloud代表着应用的运行时,运行环境基于私有云、公有云或者混合云等,有别于传统的数据中心机房环境。

● 另一方面,Native应用是适合云环境的微服务程序,这些微服务程序更加适合运行在云端环境。

下面我们从应用、平台、组织流程等不同视角来看云原生应用架构的演进过程,以及云原生架构相比传统应用软件开发模式的组织特征和架构特性,示意图如下:

 从云平台搭建开始

云平台相比传统的IT运维方式具备成本低、弹性、可靠性、便捷性等特性,而这些显而易见的优势都成为企业转型使用云平台的重要因素。

业务微服务化转型

企业进行云原生架构转型的核心动力是快速响应业务的需求和变化。传统的单体架构成为业务发展的羁绊,微服务给应用开发及部署带来了极大的灵活性和可扩展性。

持续的价值交付

持续交付需要基于DevOps方法论,结合持续集成和持续部署(CI/CD)过程完成应用持续的价值交付,从而使业务能从云原生技术架构中得到持续的价值收益。

Java的云原生应用优化

云原生应用围绕性能(Performance)、稳定性(Stability)、安全(Security)、扩展性(Scalability)等特性持续迭代演进。

在企业应用开发领域,使用Spring Boot为代表的开发框架作为云原生应用开发框架,依然处于主流地位,但是同样存在诸多劣势。

我们可以从以下几个方面考虑优化应用性能。

编译速度优化

Spring Boot在2.3.0.M1版本中对默认的编译工具进行了重大更改,使用Gradle而非Maven作为构建项目的主要代码管理工具。SpringBoot团队考虑切换到Gradle的主要原因是减少构建项目所需的时间,提升编译的效率。

相比Maven,Gradle在依赖管理、多模块构建、插件机制等多方面特性都有更加显著的优势。Gradle使用XML方式进行配置,把“约定大于配置”的设计理念进一步发扬光大,最重要的是并行化的编译速度有显著的提升。

镜像瘦身

交付物打包体积的大小直接影响镜像的分发和传输速度,通过对Docker镜像瘦身,可以显著提升构建交付物的效率。

分阶段构建则通过将构建环境和运行环境分离,减少上述构建产生的镜像冗余问题。下面列举了使用两阶段进行打包构建的方式。

 从上述DockerFile可以看到,我们将镜像构建分成两个阶段。

● 构建(Build)阶段依然采用JDK作为基础镜像,并利用Maven进行应用构建。

● 发布镜像阶段,我们采用JRE作为基础镜像,并从“Build”镜像中直接复制出生成的打包文件。在发布镜像阶段,不包含任何编译时的依赖,减少了镜像体积。

提升启动速度

JVM 9引入了AOT编译方式,它会将JVM编译结果保存在SCC中,在后续JVM启动中可以直接重用。与启动时进行的JIT编译相比,从SCC加载预编译的实现要快得多,而且消耗的资源更少,启动时间也得到明显改善。使用方式就是在OpenJDK的启动参数中增加参数配置:

-Xshareclasses开启SCC,-Xquickstart开启AOT。从测试结果来看,使用OpenJDK的SCC和AOT特性启动速度提高了50%;而JVM资源占用也减少了400MB左右。

Java云原生框架探寻

Java云原生框架在社区中出现了一些技术框架的探索,其中比较典型的代表是Quarkus和Micronaut。二者都可以运行在GraalVM上。

GraalVM使AOT编译成为可能,将字节码转换为本地机器代码,从而产生可以本地执行的二进制文件。

本文给大家讲解的内容是微服务发展趋势,云原生应用架构

  1. 下篇文章给大家讲解的内容是微服务发展趋势,Service Mesh技术
  2. 觉得文章不错的朋友可以转发此文关注小编;
  3. 感谢大家的支持!

2021年云原生技术发展现状及未来趋势

...记,管中窥豹,以观2021年云原生技术发展现状及未来一段时间内的趋势。作者|于雨本人有幸担任了2021年GIAC会议云原生 查看详情

运维监控平台未来发展趋势

人工智能我们的架构应该支持数据科学技术和机器学习技术的引入,AIOps技术还在快速发展之中,很多算法和数据方法还在不断变化,应该为这类变化保留足够的灵活性。人工智能技术将逐渐应用于监控系统中,以实现智能化的... 查看详情

快速了解云原生中的微服务应用(内含福利)

【摘要】云原生应用所影响的领域正逐渐从互联网走向非互联网,从传统应用升级走向云原生。当下,云原生技术的成熟正极大地影响着个人、企业乃至整个社会的生产生活方式。“未来的软件一定是生长于云上的”云原... 查看详情

第五期(2022-2023)传统行业云原生技术落地调研报告——金融篇

你想了解的2023最新金融云原生落地发展趋势都在这里! 随着数字化浪潮的来临,云原生技术正在改变着各行各业,通过IT变革驱动业务创新发展,促进企业自身以及产业生态的转型升级。 因此,灵雀云联合云原生技术实... 查看详情

云计算和大数据未来发展趋势分析

...与时代的发展需求相契合,真正的时代大门就会开启。云服务发展趋势云服务的发展趋势将会是:建立公有云生态圈、私有云共推开源、云安全成关键、政府推动和云保险出现。从产业生态来看,公有云服务商构建了以“我”为... 查看详情

springcloud与微服务学习总结(13)——云原生趋势下,微服务的拆分粒度如何把握?

...会。在做微服务的路上,拆分服务是个很热的话题。我们应该按照什么原则将现有的业务进行拆分?是否拆分得越细就越好?接下来一起谈谈服务拆分的策略和坚持的原则。拆分目的是什么?在介绍如何拆分之前,我们需要了解... 查看详情

springcloud与微服务学习总结(13)——云原生趋势下,微服务的拆分粒度如何把握?

...会。在做微服务的路上,拆分服务是个很热的话题。我们应该按照什么原则将现有的业务进行拆分?是否拆分得越细就越好?接下来一起谈谈服务拆分的策略和坚持的原则。拆分目的是什么?在介绍如何拆分之前,我们需要了解... 查看详情

微服务发展趋势

目录云原生网关逐步成型、服务网格回归理性微服务架构分层逐渐清晰微服务技术标准逐步形成数据面SidecarProxy与Proxyless模式的融合服务治理数据面透明化,控制面标准化分布式事务从多样化到标准化多语言解决方案标准化... 查看详情

微服务为什么要用云原生网关

文章目录微服务为什么要用云原生网关微服务(网关)的发展微服务发展大事记微服务网关的变化Kubernetes微服务技术趋势及痛点云原生时代的高要求和可选择精细化运营的需求架构升级的痛点云原生网关的优势云原生网... 查看详情

人工智能未来的发展趋势

要说最近几年最火热的词是什么,那应该就是人工智能了。人工智能的概念早在1956年就提出,经过几十年的发展,才真正地走进人们的生活中,相信大家都能从自己的生活中体验到人工智能为我们带来的便利,而现在,人工智... 查看详情

forrester首席分析师对话阿里云容器服务负责人:容器的未来趋势是什么?

...3、直播嘉宾​Forrester首席分析师JeffreyHammond、阿里云容器服务负责人易立,共同解读容器技术以及容器发展 查看详情

云原生架构总览

...用于公有云和私有云。云原生结合了DevOps、持续交付、微服务和容器的概念。当公司以云原生方式构建和运营应用程序时,它们可以更快地将新想法推向市场并更快地响应客户需求。云原生定义-CNCF当前定义2018年更新后的定... 查看详情

云计算未来的发展趋势

在“互联网+”时代下,云计算代表着未来趋势。云计算的出现并非偶然云计算在政策与市场的需求下高速发展针对政府的大力扶持及企业需求,云计算市场需求日益高涨,逐渐从互联网行业向制造、广电、金融、交通、医疗健... 查看详情

云原生年度回顾与展望|2月16日tf93

Serverless、微服务、FinOps……共同参与2022年度云原生行业回顾,同字节跳动、阿里云、腾讯云工程师探讨云原生发展,一起探讨未来的趋势和技术!2月16日线上会议,欢迎报名!为工程师提供顶级交流平台CCFTF... 查看详情

云计算的下半场:云原生

...业务软件。云本机应用是云架构的自然应用,云本机应用应该能够充分利用云。云计算的下半场:云原生首先,云是为云设计的,不依赖底层基础设施,直接利用云上的资源,基于不变的基础设施、资源和服务编排、声明性API提... 查看详情

云原生架构重要组成部分之微服务(代码片段)

...生概念应世而起,现在火的一塌糊涂。做为新时代的程序员,我们要抓住云原生的浪潮。这篇文章呢大致分为四部分,第一部分简单谈一下什么是云原生,让小伙伴们有个大致了解。第二部分谈一下云原生的组成... 查看详情

云原生大趋势下的容器化技术现状与发展

...性2.编排和数据存储3.监控五、容器化的发展趋势六、云服务产品实例总结粉丝福利前言目前,容器化已经成为云计算领域最新的技术趋势,很多人认为,容器化可创建全新、可扩展的云原生应用程序,实现老旧系... 查看详情

云原生时代,微服务到底应该怎么玩儿?

...例如Istio。那么,在云原生时代,我们的微服务体系到底应该怎么建设和维护呢?Kubernetes良好的应用编排能力,使其成为微服务部署、伸缩、管理的最佳工具。假如是为新增业务做技术选型,建议都直接使用Kubernetes和容器来部... 查看详情