阿里技术:为什么说应用架构需要分类思维?

7、python基础:错误和异常 文章目录前言一、句法错误二、异常三、处理异常四、触发异常五、异常链python官方文档链接python官方标准库链接 前言 余生平,怎一个懒字了得。 一、句法错误 句法错误又称解析错误,是学习 Python 时最常见的错误: >>> while True print('Hello world') File "<stdin>", line 1 while True print('Hello world') ^ SyntaxErro 阅读详情

导读:如何定义架构?应用架构的要素有哪些?什么是应用架构中的分类思维?开源应用架构COLA的作者张建飞介绍他在COLA架构设计中的一些思想经验,分享他的应用架构之道。

模块(Module)、组件(Component)、包(Package),这些概念对于我们技术同学并不陌生,但并不是所有人都能理解其要义。

深入理解之后,我才发现,其背后的深意是分类思维。而这种分类也是应用架构的核心所在,通过不同粒度、不同层次的分类,把复杂的软件系统实现控制在可以被理解、被维护的程度。否则,对于动则上100万行代码的软件,人类根本没有办法理解和维护。

试想一个极端情况,假如没有这些概念协助我们分类,我们把所有业务逻辑都写在一个类里面,会是什么样的结果呢?我们很多的“非人类”系统,正是因为没有进行合理的分类造成的。

早期,我不喜欢JavaScript的一个重要原因,正是因为其缺少像Java中package和jar的概念,导致代码的组织形式比较松散、随意。这个问题直到ES6、React才得到比较好的解决,在此之前,前端工程师不得不依靠seaJS,requireJS这些框架来做模块化、组件化的事情。

至此,你可能有疑问,分类有什么魔力?怎么就成了应用架构的核心了呢?客官别着急,由我细细道来。

1、分类的重要性

所谓分类,就是依据一定的标准对给定的事物进行组别的划分。我们人类天生就有分类的本能,例如,当我们观察下面这张图的时候。

无论是谁,乍一看到上面的六个黑点,都会认为共有两组墨点,每组三个。造成这种印象的原因主要是,人类大脑会自动将发现的所有事物以某种持续组织起来。基本上,大脑会认为同时发生的任何事物之间都存在某种关联,并且会将这些事物按某种逻辑模式组织起来。

之所以我们大脑有这样的本能,是因为人一次能够理解的思想或概念的数量是有限的。正如乔治米勒在他的论文《奇妙的数字7》中提出的。人类大脑的短期记忆无法一次容纳7个以上的记忆项目。所以,当信息量过大时,唯有归类分组才能帮助我们去理解和处理问题。

其实,自古及今,人类一直在做着归类/分类,早在春秋时期,《战国策》中就提出过“物以类聚,人以群分”的概念。

在互联网行业,我们会对客户进行分类,然后针对不同的客户进行分层运营,也是这个道理。

平常我们所说的分析和综合的背后,其实就是分类能力。分析是在一个类里面找差异性,综合是在不同事物中找联系、找共同性,而这个共同性相当于分类的维度。

分类思维的能力,直接体现的就是看透事物本质的能力。

2、应用架构中的分类思维

概念定义

在讨论架构之前,我们先来明确一下Module、Component和Package这几个概念。

因为这些概念一直以来存在不小的歧义。通过Stack Overflow上几十篇询问这些概念差异的提问,以及五花八门的回答就能可见一斑。

在一篇Stack Overflow的帖子[1]中,我们看到这样的回答:

The terms are similar. I generally think of a "module" as being larger than a "component". A component is a single part, usually relatively small in scope, possibly general-purpose.

然而,另一篇Stack Overflow的帖子[2],却有着不同的答案:

There is no criteria to measure which one is greater than the other. One component can contain list of modules, and one module also can contain many components.

在《实现领域驱动设计》一书中,作者有这样的描述:

If you are using Java or C#, you are already familiar with Modules, though you know them by another name. Java calls them packages. C# calls them namespaces.

然而,在AngularJS的设计文档[3]中,它对Module和Component是这样定义的:

The module can be considered as a collection of components, Each component can use other components. One of many modules combines up to make an Application.

通过比较,结合我自己的认知,我更赞同AngularJS里面的定义,即Module是比Component更大的概念。比如在Maven中,Module是组成Application的第一级层次,而Component的粒度一般比Module要小,多个Component会组成一个Module。

因此,在进一步探讨之前,我特意对这些概念做如下定义:

  • 应用(Application):应用系统,有多个Module组成,用方框表示。

  • 模块(Module):一个Module是有一组Component构成,用正方体表示。

  • 组件(Component):表示一个可以独立提供某方面功能的物件,用UML的组件图表示。

  • 包(Package):Package相对比较tricky,它是一种组织形式,和粒度不是一个维度的,也就是说,一个Component可以包含多个Package,一个Package也可以包含多个Component。

基于上面的定义,他们的表示法(Notation)是这样的:

应用架构的要素

关于架构的定义有很多,我最喜欢,也是最简洁的定义是:

即架构是一种结构,是由物件(Components)+ 物件之间的关系 + 指导原则组成的。

应用架构也是如此,从大的层面来说,企业级应用都逃不过如下图所示的三层结构,即前端、后端和数据库。

对于后端开发来说,应用层是我们的主战场,也是整个系统最复杂的部分(当然,前端也不简单),所有的业务逻辑都汇聚在此。所以,对于应用层,我们需要进行进一步拆分,而不仅仅是在这里写业务逻辑就完事了。

对应用层的进一步分层,就形成了COLA所提倡的四层结构,对应到Maven中,就是有4个Module,编译打包之后会有4个Jar。一个典型的应用,其Module呈现出如下的结构:

   

<modules>
        <module>cloudstore-adapter</module> <!--Adapter 层--> 
        <module>cloudstore-app</module>  <!--App 层--> 
        <module>cloudstore-domain</module>  <!--Domain 层--> 
        <module>cloudstore-infrastructure</module>  <!--Infra 层--> 
        <module>cloudstore-client</module>  <!--RPC SDK--> 
        <module>start</module>  <!--SpringBoot启动--> 
</modules>

当业务变得复杂时,这种分层结构自然比没有分层要好。这也是COLA一直致力要去解决的问题——控制复杂度。

从COLA 1.0的事无巨细,到COLA 3.0的化繁为简。我渐渐明白,COLA作为应用架构,其核心不是去提供功能,而是提供基模(Archetype)。

在1.0的时候,COLA提供了Interceptor能力,提供了Event Bus能力,提供了扩展点能力。一个是我认为大家“需要”这些,另一个是感觉NB的框架就应该面面俱到,没有几个高级功能都不好意思开源。事实证明,我犯了一个惯性错误——过度设计。Interceptor完全可以用AOP替代,内部事件和扩展点很少被用到。所以在COLA 3.0的时候,果断的去掉了这些“鸡肋”,只保留了扩展点功能。

回归到架构的本质,COLA的核心应该是规定应用的结构和规范,即应用架构基模(Archetype)。而不是去纠结那些锦上添花的功能。

升级到COLA 3.1

实际上,这样的回归工作,COLA 3.0已经做的差不多了。在这次3.1的升级中,除了进一步去除了Event Bus的功能之外,最重要的就是重新规范了分包策略,和扩充了原来控制层(Controller)的职责。

分包策略调整

分层是一种在功能维度上的横向切分,即每一层都有自己的职责。

  • Adapter层:路由用户request + 适配response。

  • App层:接收请求,联合domain层一起做业务处理。

  • Domain层:领域模型 + 领域能力。

  • Infrastructure层:技术细节(DB,Search,RPC..) + 防腐(Anti-corruption)。

分层处理没有问题,只是这种功能划分,会带来一个问题,即领域维度的内聚性会收到影响。当一个application只负责一个领域的时候没有问题。然而,当一个application包含多个业务领域的时候,这种内聚性缺失的弊端就比较明显了。

更好的分包策略是按领域划分,而不是按功能。因为,领域更内聚,功能是为领域服务的,应该归属于领域。

然而,不巧的是,在COLA应用架构里面,我们要综合横向功能维度的划分,和纵向领域维度的划分,两个都很好,两个都想要。怎么办?我们可以采用物理划分和逻辑划分相结合的办法。

横向上,我们用Module做有层次划分,属于物理划分。纵向上,通过Package来进行逻辑划分。最后,形成一个如下的结构:

按照这个思想去分包,在工程中,Module下的顶层package不再是功能,而是领域:

按照领域的分包策略至少会带来两个好处:

  • 系统的可理解性和可维护性更好,用白话说,就是找东西更好找了。

  • 方便以后的拆分,比如下单域(Order)变得越来越复杂,需要拆出去,我们只需要把Order下面的东西迁移到一个新应用就好了。

用Adatper代替Controller

Controller这个名字主要是来自于MVC,因为是MVC,所以自带了Web应用的烙印。然而,随着mobile的兴起,现在很少有应用仅仅只支持Web端,通常的标配是Web,Mobile,WAP三端都要支持。

在这样的背景下,狭义的控制层已经不能满足需求了,因为在这一层,不仅仅要做路由转发,还要做多端适配,类似于六边形架构中的Driving Adapter的角色。鉴于此,我们使用适配层(Adapter)替换掉了Controller,一方面,是为了呼应六边形架构;另一方面,的确也是需要做多端适配。

基于这样的变化,我重构了COLA Archetype,把Adapter作为一个层次凸显出来。实际上,Infrastructure也是适配器,是对技术实现的适配(或者叫解耦),比如,我需要数据来帮助构造Domain Entity,但是我不care这个数据是来自于DB、RPC还是Search,或者说,我可以在这些技术实现中进行自由切换,而不影响我Domain层和App层的稳定性。

改造后的COLA在架构风格,模块、组件以及分包策略上都会有所调整,具体变化请参考下面两张图。

COLA架构图:

COLA3.1

COLA组件关系图:

更多关于COLA 3.1.0的信息,可以访问:

https://github.com/alibaba/COLA 。

3、组织架构中的分类思维

这么重要的思维能力,其应用肯定不仅仅局限于架构设计的范畴。开篇已经说过了,分类是我们人类的本能,是分析和综合问题的重要手段。

生产关系决定生产力,好的组织结构会助力业务发展,反之,则会拖业务的后退。因此,大公司的CEO每年都会花很多时间在组织设计上,这也是为什么,在大厂,每年我们都会看到不小的组织调整。

看到一篇文章《苹果公司的组织架构是怎样的》[4],里面介绍了苹果成功和其优秀的组织架构有关系。如下图所示,传统企业偏向于业务型组织,而高科技企业偏向于职能型组织。

有没有感觉苹果的组织架构,和我们的COLA思想是一样的:),物理上,按照职能划分;逻辑上,按照业务和产品划分。

苹果这样的组织设计,是因为它是技术和创新驱动的公司,协作成本不是最大的问题,缺少专业性(技术不行),缺少创新才是攸关生死的大问题。所以他宁肯牺牲协同效率,也要确保专业性,也就是说,做摄像头的只做摄像头,做iOS的只做iOS,技术leader直接向CEO汇报,可以决定产品的发展方向。因为他们在这个领域更专业。

很早以前,史蒂夫·乔布斯就有这样的观点:苹果公司的经理们应该是他们管理领域的专家。在 1984 年的一次采访中,他说:

我们在苹果经历了那个阶段,当时我们出去想,哦,我们要成为一家大公司,让我们雇佣专业的管理人员。我们出去雇了一群专业的管理人员。一点也不管用……他们知道如何管理,但他们在专业方面什么都不知道。如果你是一个伟大的人,为什么你想为一个你什么都学不到的人工作?你知道什么是有趣的吗?你知道谁是最好的经理吗?他们是伟大的个人贡献者,他们从来都不想成为一名管理者,但却决定自己必须成为,因为没有其他人能够出色地完成工作。

说实话,看完这篇文章,我很感慨,一方面是佩服乔布斯的洞见能力,另一方面也为我们这个行业感到唏嘘,业务技术也是技术啊,却没有一个像样的培育发展技术的环境和土壤。

如今,业务技术Leader还有多少是专注在技术上呢,俨然都变成了业务Leader。如果技术Leader都变成了纯管理者,那么谁去关心技术,谁去关心代码,谁去关心工程师的成长呢?

4、分类学是科学也是艺术

最后,我还是要中庸一下,分类很重要,但同时也很难,带有一定的主观性。就像比尔.布莱森在《万物简史》里说的:

分类学有时候被描述成一门科学,有时候被描述成一种艺术,但实际上那是一个战场。即使到了今天,那个体系比许多人认为的还要混乱。以描述生物基本结构的门的划分为例。许多生物学家坚持认为总数30个门,但有的认为20来个门,而爱德华在《生命的多样性》一书里提出的数字高达令人吃惊的89门。

我们观察事物的视角不同,对问题的认知程度不同,得出来的分类也会不同。就拿COLA来说,直到现在的3.1版本,我个人认为其分层和分包的方式才相对比较合理。然而,很有可能在后期的迭代中,分类方式又会改变。

组织架构的分类方式也是一样,按照业务和职能划分,都可以。关键看其分类是否匹配你组织的特性,没有最好的分类,只有最合适的。

除了本文分享的分类思维,更多的思维能力还可以参看这本书:《代码精进之路:从码农到工匠》。这是一本为专业程序员而写的书,主要分为技艺、思想和实践三个部分,详细介绍了编程技巧和方法论、抽象能力、分治思想、常见的应用架构模式,以及COLA架构的设计原理。希望能够帮助广大程序员培养良好的编程习惯和思维。

相关链接

[1]https://softwareengineering.stackexchange.com/questions/178927/is-there-a-difference-between-a-component-and-a-module

[2]https://stackoverflow.com/questions/2702816/module-vs-component-design

[3]https://medium.com/swlh/angular-component-vs-module-b8c7347c604e

[4]http://www.techweb.com.cn/cloud/2020-10-27/2808376.shtml


写在最后

这篇文章从四个方面聊了分类思维和其中的内核原理,案例丰富,从大的层面来讲,用正确的分类去看待问题,是解决问题最重要的方法和原则,希望今天的文章对你有收获,我们明天见!

欢迎加我微信,与我朋友圈互吹,公众号对话框回复 W,获取。

-------

以往热文推荐:

年底了,怎么和领导提加薪?

视频号首次直播:关于职业规划那些事!


更多精彩,关注我公众号,一起学习、成长

▲ 长按关注军哥手记,一起学习、成长

035-安全开发-JavaEE应用&原生反序列化&重写方法&链条分析&触发类&类加载 小迪安全2023笔记 阅读详情

相关推荐

一次说全COLA应用架构

1,原版COLA 4.0:应用架构的最佳实践_cola实战_程序员万万的博客-优快云博客2,不知道什么的版本COLA 架构_mob649e815da088的技术博客_51CTO博客3,另外一种不知道什么的版本COLA架构 入门-阿里云开发者社区关于定义确实各说各的,我们可以忽略,只要关注一个本质就好了,那就是大家都提到的分层简单来说,就是专一职责,专业的Layer做专业的事儿,解耦,避免臃肿。给 COLA 做减法:应用架构中的“弯弯绕设计”-阿里云开发者社区没有最佳,只有适合。如无必要,勿增实体!

东皋长歌的专栏 1722

应用架构COLA 3.1:分类思维

模块(Module)、组件(Component)、包(Package),这些概念对于我们技术同学并不陌生,但并不是所有人都能理解其要义。 深入理解之后,我才发现,其背后的深意是分类思维。而这种分类也是应用架构的核心所在,通过不同粒度、不同层次的分类,把复杂的软件系统实现控制在可以被理解、被维护的程度。否则,对于动则上100万行代码的软件,人类根本没有办法理解和维护。 试想一个极端情况,假如没有这些概念协助我们分类,我们把所有业务逻辑都写在一个类里面,会是什么样的结果呢?我们很多的“非人类”系统,正是因为没有

我的新书《代码精进之路:从码农到工匠》 1万+

音视频从入门到精通——指数哥伦布码原理

在计算机中,一般数字的编码都为二进制,但是由于以相等长度来记录不同数字,因此会出现很多的。

mirana的专栏 1383

原生开发什么意思_编程领域的“原生”一词是什么意思?

“原生”一般想说明的是程序直接编译成单独的可执行文件(机器码)在本机的操作系统层面(用的是本机线程,可以直接访问本机硬件)执行,而不是编译成字节码在虚拟机上执行(Java),或者解释型编程语言直接有虚拟机解释执行( JavaScript)。编译成原生程序有执行速度的优势(没有任何中间层解释的负担),缺点就是不能跨平台(不同的平台可以指不同的操作系统,也可以指底层硬件架构比如不同的CPU架构指令集)...

weixin_35995565的博客 5530

万象RK3506-EG1800网关使用说明

摘要:HD-RK3506-EG1800是一款高性能工业物联网边缘计算网关,支持Buildroot和Ubuntu双系统。文档详细介绍了网关的网络配置(包括ETH0/ETH1的静态IP设置、WiFi连接)、时钟同步、HSL软件安装配置(含开机自启动服务)、系统日志优化以及刷机操作指南(Loader/Maskrom模式)。特别提供了基于lighttpd的网页管理方案,通过HTML界面实现网络参数可视化配置,包含身份验证、实时状态显示和表单提交功能。网关默认ETH0固定IP为192.168.1.10,提供完整的CL

tian_jiangnan的博客 177

网络安全学习路线是怎样的?

为什么要学习安全? 近几年网络安全事件层出不穷,相信大家哪怕没遇到过,但也听过不少了吧。如服务器遭受入侵被黑,用户帐号被盗;被钓鱼、勒索病毒等,这些一旦发生,对企业而言都是不小的打击。因此,网络安全不容忽视,同时随着时代的不断发展,公司对于运维及网络工程师要求也越来越严格。未来越来越吃香的一定是技能方向广的复合型人才。网络安全可以说是一条非常好的发展道路。 今年两会期间,全国政协委员,360集团创始人、董事长周鸿祎提交了关于网络安全行业特殊人才的提案,为广大白帽子人员争取更好...

网安技术分享 8704

应用架构COLA 2.0

很多同学不止一次和我反馈,我们的系统很混乱,主要表现在: 应用的层次结构混乱:不知道应用应该如何分层、应该包含哪些组件、组件之间的关系是什么; 缺少规范的指导和约束:新加一段业务逻辑不知道放在什么地方(哪个类,哪个包)、应该起什么名字比较合适? 解决这些问题,正是我创建COLA的初心之一——试图探索一套切实可行的应用架构规范,这个规范不是高高在上的纸上谈兵,而是可以复制、可以理解、可以落地、可...

我的新书《代码精进之路:从码农到工匠》 8万+

如何在STM32上5分钟搞定nanopb协议传输?附完整代码示例

本文提供了在STM32微控制器上快速集成nanopb协议传输的实战指南。通过详细的步骤,从.proto文件定义、代码生成到STM32CubeIDE项目移植,帮助开发者利用nanopb这一轻量级Protocol Buffers C语言实现,在5分钟内构建高效、跨平台的嵌入式设备通信框架,并附有完整的代码示例。

jwt8token的博客 839

为什么说应用架构需要分类思维?

阿里妹导读:如何定义架构?应用架构的要素有哪些?什么是应用架构中的分类思维?开源应用架构COLA的作者张建飞介绍他在COLA架构设计中的一些思想经验,分享他的应用架构之道。模块(Modu...

我的新书《代码精进之路:从码农到工匠》 3639

IEDA激活码失效?教你5分钟快速续期的方法

本文针对IEDA激活码失效问题,提供了一套从快速应急到深度排查的完整解决方案。文章不仅详解了5分钟快速续期与清理缓存等应急方法,更深入剖析了授权机制、离线激活流程,并指导如何构建可持续的授权管理策略,帮助开发者彻底解决激活困扰,确保开发环境稳定。

a0b1c2d3的专栏 274

RK3588开发笔记-ES8311音频芯片调试记录

本篇博客主要记录如何在RK3588平台试ES8311音频芯片的过程。这包括硬件连接、内核配置、驱动程序调试和测试步骤。通过以上步骤,我们成功在RK3588平台上调试了ES8311音频芯片。这包括硬件连接、内核配置、设备树配置、驱动加载以及音频测试。希望这篇调试记录能为其他开发者提供一些帮助。如果你有任何问题或建议,欢迎留言讨上调论。

flypig has a dream! 3164

阿里架构师不讲武德,坦言道为什么应用架构需要分类思维?

模块(Module)、组件(Component)、包(Package),这些概念对于我们技术同学并不陌生,但并不是所有人都能理解其要义。 深入理解之后,我才发现,其背后的深意是分类思维。而这种分类也是应用架构的核心所在,通过不同粒度、不同层次的分类,把复杂的软件系统实现控制在可以被理解、被维护的程度。否则,对于动则上100万行代码的软件,人类根本没有办法理解和维护。 试想一个极端情况,假如没有这些概念协助我们分类,我们把所有业务逻辑都写在一个类里面,会是什么样的结果呢?我们很多的“非人类”系统,正是因为

QAQFyl的博客 220

基于物联网技术设计的微型消防小车控制系统(STM32+ESP8266局域网)(181)

基于物联网技术的小微型消防车控制系统。通过远程控制功能,用户能够灵活操作消防车的行驶,方便快速抵达火灾现场。环境感知功能实时采集烟雾浓度、温湿度信息,为灭火决策提供科学依据。火源定位功能采用自动和手动两种模式,准确迅速地定位火源,并通过报警提示用户。灭火功能则根据火源定位结果,自动或手动启动干粉灭火器进行高效灭火。这些功能的结合实现了对小型火灾的全面应对,提升了消防效率与安全性,减少了火灾带来的损失。通过本项目的设计与实现,为消防领域提供了一种创新且实用的解决方案。

3082

阿里架构师不讲武德,坦白告诉你为什么应用架构需要分类思维?

实际上,Infrastructure也是适配器,是对技术实现的适配(或者叫解耦),比如,我需要数据来帮助构造Domain Entity,但是我不care这个数据是来自于DB、RPC还是Search,或者说,我可以在这些技术实现中进行自由切换,而不影响我Domain层和App层的稳定性。说实话,看完这篇文章,我很感慨,一方面是佩服乔布斯的洞见能力,另一方面也为我们这个行业感到唏嘘,业务技术也是技术啊,却没有一个像样的培育发展技术的环境和土壤。

2401_84002482的博客 405

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

从淘汰边缘到阿里资深前端技术专家,他总结了 8 点

简介: 思维方式直接决定了一个人在工作上的效能和产出。经验是个人对过往项目的总结和处理方式优化。今天的文章来自于阿里工程师梓骞,从大学第一次接触动态网页到现在的资深前端技术专家,他分享了那些人生中的“大事”,让我们看到他是如何一步步转变思维方式,积累经验,升级打怪。 作者 | 梓骞 大家好,我在阿里的花名叫梓骞,现在负责业务平台的体验技术部,主营业务是阿里业务中台体系的多端解决方案,同时...

阿里云开发者 1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

应用架构的核心使命是什么?阿里高级技术专家这样说

阿里妹导读:什么是架构?关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。如果,硬是要给一个概述,阿里巴巴高级技术专家张建飞认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。今天,张建飞来谈谈应用架构的核心使命是什么,是否与你想得一样?往下看,一起寻找答案。 架构 架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某...

阿里云云栖号 2062

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

为什么说真正的高手都有窄门思维?

在《圣经:新约马太福音》中,耶稣对众人说,“你们要进窄门”。因为引到灭亡,那门是宽的,路是大的,进去的人也多;引到永生,那门是窄的,路是小的,找着的人也少。升学的路是一道“窄门”,每一次考...

Oner.wv的专栏 2542

阿里云——高可用应用架构

哈喽大家好,本文是阿里云高可用应用架构学习,本课程重点阐述了云服务器ECS的高可用部署方案,包含了弹性公网IP和负载均衡的概念及操作,通过本课程的学习将了解在平时工作中,如何利用负载均衡和多台云服务器组建高可用应用架构,并通过弹性公网IP的方式对外提供稳定的互联网接入,使得网站更加稳定的同时可以接受更多人访问,掌握在阿里云上构建企业级大流量网站场景的方法。高可用架构是指计算机系统能够保证无故障持续运行的概率,通常采用百分比的方式来表示系统的高可用性等级,我们在生活中采用。

yj11290301的博客 7880

阿里巴巴发布Marco 01:链式思维与MCTS技术

# 阿里巴巴发布新语言模型Marco 01,引入链式思维和蒙特卡洛树搜索技术阿里巴巴的机器学习团队发布了一款名为Marco 01的新语言模型,旨在重现OpenAI的O1模型。该模型采用链式思维和蒙特卡洛树搜索(MCTS)技术,以提高模型的推理能力和输出质量。模型基于QEN27B,并以较低的计算成本在Alama平台上发布。模型背景: Marco 01是由阿里巴巴机器学习团队开发的新模型,旨在重现OpenAI的O1模型。与阿里巴巴已有的Qwen模型相比,Marco 01属于研究型模型。

xiaoganbuaiuk的博客 1188

应用架构的核心使命是什么?阿里高级技术专家如是说

导读:什么是架构?关于架构这个概念很难给出一个明确的定义,也没有一个标准的定义。如果,硬是要给一个概述,阿里巴巴高级技术专家张建飞认为架构就是对系统中的实体以及实体之间的关系所进行的抽象描述。今天,张建飞来谈谈应用架构的核心使命是什么,是否与你想得一样?往下看,一起寻找答案。 架构 架构始于建筑,是因为人类发展(原始人自给自足住在树上,也就不需要架构),分工协作的需要,将目标系统按某个原...

一个天秤座的架构师 2万+

为什么阿里P8、P9技术大牛反复强调“结构化思维”?

点击上方“朱小厮的博客”,选择“设为星标”后台回复”1024“获取公众号专属1024GB资料来源:rrd.me/fKXtu"结构化思维”对于技术人员 Coding 能力的升级至关...

朱小厮的博客 1467
上一篇: 阿里技术:如何快速排查线上故障?
下一篇: 抽奖送书!一次50本!刺激!
军哥手记
军哥手记 业界专家认证 业界专家认证
博客等级 码龄21年 661粉丝 608原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值