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

系统架构师和软件架构师_我眼中的解决方案架构师

导读:一位阿里云解决方案架构师的自述。作者|陈兵何为架构师我是在2018年加入阿里云,最开始是做一名软件开发工程师。那个时候,我经常和晓龙
222f03e46aeb891cafdc66e70b6d361d.png

导读:一位阿里云解决方案架构师的自述。

作者 | 陈兵

何为架构师

我是在 2018 年加入阿里云,最开始是做一名软件开发工程师。那个时候,我经常和晓龙聚在一起探讨键盘的排列组合、语言的孰优孰劣、各种格子衫的穿法。当有一天龙哥发现我的 Title(岗位头衔)变成了架构师之后,对我的态度骤然冷淡起来,每次我满怀热情地去和他讨论问题,他总是对我却爱理不理。终于有一天我忍不住去拉住从对面走来却假装望天的龙哥这是为什么?原来龙哥觉得我键盘敲得没有他响,快捷键记得没有他全,竟然连 emacs 都不喜欢,只是因为“脱口秀”说得好就成为了架构师,简直太没有天理了。

架构师这个岗位在软件工程师来看是一个很神圣的岗位,也是众多开发人员努力的目标,大家都在幻想有一天全局由自己来把控,整体由自己来设计,做出好作品的召唤是每个开发人员的动力。但就像好作品可以分为许多种类一样,架构师同样也可以分为很多种类。

例如 Gartner 对架构师的分类会从商业、信息和技术(Business, Information and Technical)等维度出发,涉及到的角色是我们常见的,如企业架构师(Enterprise Architect)、解决方案架构师(Solution Architect)。同样也有按照功能分类来定义架构师的角色,从技术角度来看涉及到我们常见熟知的岗位:系统架构师(System Architect)、软件架构师(Software Architect)、数据架构师(Data Architect)、安全架构师(Security Architect)、交付架构师(Delivery Architect)等等。

面对不同客户的真实需求中,其实架构师之间是可以协同合作的,在不同阶段发挥着不同的作用。

《水浒传》中智取生辰纲的桥段很好地展示了不同架构师角色在一个项目中的作用:杨志烈日下带队押送生辰纲经过太行山黄泥岗被晁盖、吴用等人用蒙汉药酒懵倒,晁盖等七人毫发无损地完成了劫走生辰纲不可能的任务。桥段最后的描写“这七人端的是谁?不是别人,原来正是晁盖、吴用、公孙胜、刘唐、三阮等七个人。却才那个挑酒的汉子,便是白日鼠白胜。却怎地用药?原来挑上冈子时,两桶都是好酒。七个人先吃了一桶,刘唐揭起桶盖,又兜了半瓢吃,故意要他们看着,只是叫人死心搭地。次后吴用去松林里取出药来,抖在瓢里,只做赶来饶他酒吃,把瓢去兜时,药已搅在酒里,假意兜半瓢吃,那白胜劈手夺来,倾在桶里,这个便是计策。那计较都是吴用主张,这个唤作“智取生辰纲”。

这段描写清楚地描述了整个“项目中”的角色,系统(企业)架构师晁盖,公孙胜完成了整个组织团队的搭建后,解决方案架构师吴用设计了整套计策(方案),由交付架构师白胜,刘唐等将这个方案进行完美实施达到了目标。

所以,龙哥作为一名合格资深的开发人员,他想要成为的架构师其实是技术架构师分类中的软件架构师,而我的架构师 title 其实是解决方案架构师,两者在职责分配和日常工作重点上都有比较大的区分,相信龙哥看过这篇文章之后又可以同我一起愉快地讨论格子衫的穿法了。

随着云计算的概念越来越普遍被接受,解决方案架构师(Solution Architect)或者细分的云计算解决方案架构师(Cloud Architect)越来越多地出现在大家的视野中,那到底何为解决方案架构师?为什么会有这类岗位的出现?具体职责是什么?如何在真正项目中起到作用的?接下来的讨论都是据此展开。

何为解决方案架构师

解决方案架构师(SA)的角色往往出现在为客户提供复杂的产品组合的公司当中,比如为客户提供各类服务器产品组合的 HP、Dell,为运营商提供从接入网到核心网组合的电信设备商 Ericsson、HUAWEI,到现在提供各类产品组合的云计算供应商阿里云、AWS 等等。这类公司的客户所面临的问题都不止一种解法,如何在折衷和协调之中选择出最优的答案或者最合适的答案,就是解决方案架构师(SA)的职责所在。

解决方案架构师(SA)最常见的工作是输出各类设计方案,虽然客户的场景和行业各有不同,但面对千变万化的需求和场景下的方案依然可以遵循一定的规范。

A solution fulfills a mission.
方案当有明确的目标。

解决方案架构师的出现是为了帮助客户达成一定的目标或者解决一定的问题,所以每个方案的设计都应该在基于明确需求下进行。过去常见的场景是我们有相应的产品或解决方案,然后将已经成型的产品及方案售卖给潜在的客户,但随着敏捷,弹性,云计算等越来越流行,很多时候解决方案架构师会同客户共同面对一个问题及场景,然后根据这个场景共创一类解决方案。

在云计算的场景下共创类的方案优势被进一步放大,相较于过去 IT 提供商的单一维度,云计算服务商可以提供基于各类用户场景下组合方案,同时结合众多云计算生态可以将方案定制化变成一种常态模式。

Architecting often involves making tradeoffs.
架构师应该站在不同的角度。

面对一个复杂组织的客户不同的部门一定都会站在各自的角度同解决方案架构师(SA)来阐述自己的诉求,例如对于很多传统行业公司的组织架构抽象类似下图:

daa5c5b2eacdec1b0894b029c6c59c79.png
Figure 1 组织抽象示意

不同的业务部门会产生相应的需求,需求会首先由业务 IT 团队转化成相应的技术需求,然后技术需求会由相应 IT 团队或者供应商来承接,最后向基础 IT 团队申请相应的 IT 资源,最后这类资源会由基础 IT 资源通过资源池来进行提供。

解决方案架构师面对此类客户不同团队提供的需求重点会有很大不同,面对客户的基础 IT 团队方案的侧重点是可快速部署,资源可清晰划分,有已用的运维方法。面对客户的业务IT团队提供的方案要用成熟的方案或者联合生态的方案直面需求,同时平衡费用、性能及使用习惯。

通过上面的例子可以看出,解决方案架构师要具备理解客户组织,业务及系统构成,在平衡各方利益的前提下制定最适合客户方案的能力。

Solution is an ongoing activity.
方案是过程而非结果。

最好的方案一定是持续优化出来而非一次性设计的结果。例如各种客户在做云计算改造的场景中往往会选择一种最小化的方式进行尝试,然后逐步在将自己的核心系统迁移上云。随着配套的组织结构适应了云上的各种变化之后往往会进行整套系统的云原生改造,进而开始基于数据的平台数据化及智能化,整个过程会涉及到各方面利益权衡取舍一定是渐进的方式。而在整个过程设计中的最重要产出物往往是各种架构图,为了适应未来演进的架构图和作画有异曲同工之妙,在特定的场景下要做好留白,给未来场景留下想象的空间。

从上面抛砖引玉的几点可以看出,解决方案架构师(SA)对技术及业务广度的优先级要大于深度,对多项技能的综合掌握程度要求很高。在许多场景下对解决方案架构师(SA)最大的考验是判断能力,综合多方因素的情况下如何做出基于当前场景下做出最优解的判断是解决方案架构师最重要的职责。接下来我会选取一些真实客户合作的片段来展示解决方案架构师如何工作。

以一个酒店娱乐行业的领军企业为例,在数字化转型的大背景下,这家企业正在积极使用各类新技术来帮助自身加速转型。但在实践过程中遇到了一些挑战,比如业务面临安全挑战风险非常大,安全引发的系统不稳定及引发后链路服务带来较差的客户体验;体验及安全问题对运维团队带来巨大挑战。

在与企业负责人多次沟通相关解决方案和产品策略后,我们发现,这个客户面临的并非是单一的系统问题引发的技术挑战,而是一系列系统问题最终造成了对他客户的体验及满意度产生了问题。于是,我们达成合作,决定将整个项目的立项基于解决用户体验提升上而非单关注一的安全问题。

整套系统的设计基于了阿里云上对 Anti-Bot、Anti-DDoS 等安全方案进行延展,使用了实人认证,风险识别等业务层手段解决了客户信任的问题,进而通过云安全中心和阿里云上 IT 治理的最佳实践帮助客户大幅减少运维操作中的人为及不可控因素。

这个方案给客户带来了非常明显的业务价值:

(1)基于阿里云上的 Anti-Bot、Anti-DDoS 等安全产品的应用解决了因为安全引发的系统稳定性问题。

(2)通过实人认证及风险识别等业务安全方案帮助客户大幅减少针对业务欺诈行为。

(3)通过移动推送,短信服务等服务增加了对其终端客户的体验提升。

(4)基于编排工具及可追溯的操作审计大幅降低了客户云上运维的负责度及风险。

442475d68b03bf199e1f954fbc7f0359.png
Figure 2 架构图抽象示意

解决方案架构师的价值

在云计算被广泛接受的今天,整个市场对云计算及其相关行业的解决方案架构师(SA)提出了更多的要求,如何平衡左手边多达几百款可以提供的产品组合和右手边客户千变万化的需求是每个新时代解决方案架构师面对的问题。但同时技术和业务双重的需求也给了每个处在云计算时代架构师巨大的机会,各行各业对数字化转型人才的最重要部分都是对技术和业务双重的理解。所以新的时代背景下这个已经存在已久的岗位面临着新的定义和注解,而这份增添新色的机会和荣誉一定都属于置身赛场的解决方案架构师们。

参考资料:

《Systems and software engineering — Architecture description》

《Gartner: Analyzing the Role and Skills of the Cloud Architect》

《Beautiful Architecture》

《阿里巴巴 Java 开发手册》

《AWS_Well-Architected_Framework》

《The Process of Software Architecting》



推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 云原生应用最佳开发实践之十二原则(12factor)
    目录简介一、基准代码二、依赖三、配置四、后端配置五、构建、发布、运行六、进程七、端口绑定八、并发九、易处理十、开发与线上环境等价十一、日志十二、进程管理当 ... [详细]
author-avatar
几米小八_198
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有