架构师速成-架构体系

经过这段时间的反思和整理,终于对架构有了一个较为明确的理解。架构是产品从无到有以及慢慢壮大过程中所需要的全部技术体系总称,架构过程:

  1. 配置、编码、测试、运维、监控分析、安全、运营等一系列技术体系的选型、取舍
  2. 技术选型基础上进行规划、设计、实现、迭代、制定相关规范
  3. 相关技术及规范运用到产品开发的整个过程中,并在产品迭代过程中对架构进行迭代优化

架构不止包含技术的框架,比如有人用了spring就觉得我已经是架构师了,其实架构并不是这么简单。我们以做一个新浪微博类似产品为例,现实应该是这样的:

  1. 产品初期,经典的LAMP快速开发实现第一个版本,功能也无比简单就是加好友,发消息,开发人员也只有一个小的队伍。此时的架构就体现为纯的技术选型及实现,包含了

    • 配置:代码通过git管理,暂时无其他
    • 编码:技术选型为LAMP,基于LAMP的开发框架封装,并在开发团队内制定开发规范
    • 测试:技术人员手工测试
    • 运维:手工发布,主备2台,mysql也做主备
    • 监控:暂不需要
    • 安全:发帖过滤、屏蔽
    • 运营:后台删帖
  2. 随着用户的暴增以及功能的增加,产品需要迭代,架构也需要迭代。产品功能增强,性能需要优化,开发人员的增加,此时架构就发生了一个较大的变革:
    • 配置:代码通过git管理,要分为多个模块,不同团队开发不同模块
    • 编码:技术选型增加缓存、消息队列、搜索引擎等,框架封装更加复杂,抽象出基础层和服务层。分团队进行代码的维护,制定不同模块之间通信标准。推拉模型也提炼出来。
    • 测试:单元测试+自动化测试
    • 运维:批量自动化发布、回滚、支持灰度发布
    • 监控:增加流量监控,机器监控
    • 安全:发帖过滤、屏蔽,防范其他攻击
    • 运营:后台删帖、大V管理等等
  3. 用户和流量再次增加后,产品再次发生变革,架构也再次变革。
    • 配置:代码通过git管理,服务化,每个服务单独一个模块,不同团队开发不同模块
    • 编码:技术选型需要考虑异地容灾,层次继续抽取,服务粒度细化,增加开放api,改进推送架构。
    • 测试:单元测试+自动化测试
    • 运维:批量自动化发布、回滚、支持灰度发布,异地数据同步
    • 监控:增加流量监控,机器监控,增加缓存等监控
    • 安全:发帖过滤、屏蔽,防范其他攻击,开放api权限管理oauth2,防止恶意调用
    • 运营:后台删帖、大V管理等等

从上面的例子可以看出,架构是跟随产品进行迭代的,而且随着产品的越来越复杂,不可避免的需要不断拆分,多团队合作,运维自动化。架构也变成团队的工作,而不是一个架构师就搞定一切了。

阿里发展到现在架构也有些类似,有很多不同团队负责底层设施(中间件)的开发迭代及其架构的革新。业务也有不同的团队负责开发不同的业务模块,这个都使用统一的架构体系。技术保障部门维护统一的自动化运维工具,安全部门维护安全工具。不同部门都有自己的架构师,负责本部分的架构,不过比较遗憾的是没有一个总架构师的角度去推动总体架构演进及各个部门架构的优化。

时间: 2025-01-09 17:27:10

架构师速成-架构体系的相关文章

架构师速成-架构目标之伸缩性\安全性

为满足伸缩性,所需的架构模式包含: 分布式,这个前面有单独的章节进行了讲解,分布式是互联网时代的主旋律. 负载均衡,前面已经有讲解. 服务拆分,按照业务进行系统服务的拆分并单独部署. 为满足伸缩性,需要的支撑系统: 运维系统: 自动扩容,缩容 监控系统 监控流量,确定何时伸缩 为满足安全性,所需的架构模式包含: 数据加密,密码的加密存储.关键数据的加密传输,才有https. 数据校验,数据传输时,同时传递明文和密文校验数据未被篡改.前端及后端进行数据的有效性校验,比如数字.日期等. 为满足安全性

架构师速成-架构目标之正确性

本系统架构模式: 统一异常 统一异常处理是保证程序正确性的第一步,这是第一个架构模式.具体如何实现,详见前面的文章. 日志 日志也是保证程序正确的一大手段,虽然是在错误出现后,日志才会记录.但是日志是快速确认问题,并分析出隐藏问题的重要手段. 关键点 日志文件按照级别进行区分,将错误和普通调试日志分开 日志文件滚动方式,可以按天及按大小滚动,定时清理 日志级别可以实时调整设置 性能 支撑系统: 测试系统 自动化单元测试,保证基础模块的正确性 自动化功能测试,保证每次代码更新的正确性 监控系统 监

架构师速成-架构的目标

架构的目标为了实现以下特性: 正确性 系统首先需要正确,运行稳定 可用性 软件系统对于用户的商业经营和管理来说极为重要,因此软件系统必须非常可靠,一般99.99%是一个比较基本的要求. 快速开发 互联网目前是一个快鱼吃慢鱼的时代,已经不是大鱼吃小鱼了.因为小鱼在一夜之间就长大了,把大鱼吃掉了.诺基亚就是明证,facebook就是明证. 良好体验 良好的体验对用户的吸引力是巨大的,某迅公司往往是抄一个产品,把用户体验做好,然后原产品就没有然后了. 伸缩性 用户激增的时候,网站可以伸缩来支持用户的增

架构师速成-架构目标之可用性

服务器等,从而共同完成工作任务.各种负载均衡的软硬件有很多,我们可以单独讲解一下. 配置中心,原来单一节点的配置,被类似zookeeper的多节点配置中心取代. 流量控制,流量控制是保证大流量下系统可用性的重要手段,当系统流量不足以支撑所有流量时,只保留合理的流量处理.其他流量直接丢弃,否则系统会被压垮,造成雪崩. 功能降级,另外大流量情况下,有些无关紧要的功能可以暂时降级,后期通过数据补全的方式进行修正,将核心的资源用于最关键的业务.比如双11时,为保证购买可以暂时不考虑推荐,这样省掉推荐资源

架构师速成-目录

天地会总舵,陈近南给了韦小宝一本武功秘笈,韦小宝说:"嗯?这么大一本我看要练个把月啊!" 陈近南说:"这本只不过是绝世武功的目录,那边才是绝世武功的秘笈!" 这就是架构速成的秘笈目录 架构师速成1-前言 架构师速成2-概述 架构师速成2.1-论成功 架构师速成2.2-论成功 架构师速成3-开发者境界 架构师速成4-幼儿园 架构师速成4.1-幼儿园要学会如何学习 架构师速成4.2-幼儿园要学会如何学习 架构师速成4.3-幼儿园要学会查找资料 架构师速成5-小学 架构师

架构师速成2-概述

成为一名合格的架构师,需要经历菜鸟.码农.资深码农.项目经理.技术经理.架构师等一系列的过程.为了让大家通俗易懂,我把整个过程按照大家熟知的上学的顺序排了一下,从幼儿园-小学-中学--一直到博士,至于博士后需要大家自己去实践和想象了.每个过程我都会进行统一的描述: 阶段:例如 幼儿园 需要做的事情:例如 学会一门编程语言 完成任务耗时:例如 2-5个月 升级标准:例如:能写出简单的计算器,接受用户输入的+-x/运算 风险:例如 有人打断 当然在正式开始之前,我还是要提示一下相关的风险: 任何行业

《Microsoft.NET企业级应用架构设计(第2版)》——第1章 今天的架构师和架构 1.1软件架构到底是什么

第1章 今天的架构师和架构 在计算机的最初年代,硬件成本远远大于软件成本.数十年之后,我们发现情况有了根本的变化.整个工业有了显著的进步,而硬件成本也急剧下降.另一方面,软件成本却大幅上升,这主要是因为开发自定义企业软件的复杂性提升了. 这种情况催生了一系列的准则,并以此指导工程师设计这类系统.架构这个术语源自建筑行业,现已普遍用于描述规划.设计和实现软件密集型系统的艺术.当我们两个还是青少年时,<爱是-->这部漫画(http://www.loveiscartoon.com)正值流行.每期漫画

架构师速成1-前言

从事it工作10余年,痛并快乐着. 忠告以下人员远离it: 不能吃苦 耐不住寂寞 想赚大钱 如果你不是上面的人,而且非常想成为架构师话,请继续看下去. 需要3年时间 需要超强自制力 需要极强计划能力 需要吃苦 如果你能满足以上4条,那肯定就可以速成.可能有人会说"3年也算速成,这也太龟速了",我回答你,如果没人系统指导,想成为一个合格的架构师需要10几年甚至更长,我只是帮你少走一些弯路而已.本人成为一个合格的架构师花了10年,而我的2个兄弟只用了3年.如果你更聪明更勤奋,甚至可以缩短到

架构师速成5-小学

很高兴你很快的进入了小学,小学的东西会让你更加的耀眼. 阶段: 小学 学时:2-3个月 升学标准 能自己制定目标及计划,get thing done. 可以轻松制作一个让你身旁人惊叹的ppt 能做一个简单的网站(或者客户端软件),数据能保存到数据库. 实践经验干货来了. 先说ppt吧,这个上一期已经讲了,如果你ppt做到出神入化,基本不需要做架构这么苦逼的事情了.因为你很容易成为老板的心腹,军师,走上人生正道.作为一个苦逼的小学程序员,很羡慕吧.那就再努力学一下,不用多久,你就会升职加薪,当上总