导读:一位阿里云解决方案架构师的自述。
作者 | 陈兵
何为架构师
我是在 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)来阐述自己的诉求,例如对于很多传统行业公司的组织架构抽象类似下图:
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)基于编排工具及可追溯的操作审计大幅降低了客户云上运维的负责度及风险。
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》