架构师速成-架构体系
2015-09-05 20:25
447 查看
经过这段时间的反思和整理,终于对架构有了一个较为明确的理解。架构是产品从无到有以及慢慢壮大过程中所需要的全部技术体系总称,架构过程:
配置、编码、测试、运维、监控分析、安全、运营等一系列技术体系的选型、取舍
技术选型基础上进行规划、设计、实现、迭代、制定相关规范
相关技术及规范运用到产品开发的整个过程中,并在产品迭代过程中对架构进行迭代优化
架构不止包含技术的框架,比如有人用了spring就觉得我已经是架构师了,其实架构并不是这么简单。我们以做一个新浪微博类似产品为例,现实应该是这样的:
产品初期,经典的LAMP快速开发实现第一个版本,功能也无比简单就是加好友,发消息,开发人员也只有一个小的队伍。此时的架构就体现为纯的技术选型及实现,包含了
配置:代码通过git管理,暂时无其他
编码:技术选型为LAMP,基于LAMP的开发框架封装,并在开发团队内制定开发规范
测试:技术人员手工测试
运维:手工发布,主备2台,mysql也做主备
监控:暂不需要
安全:发帖过滤、屏蔽
运营:后台删帖
随着用户的暴增以及功能的增加,产品需要迭代,架构也需要迭代。产品功能增强,性能需要优化,开发人员的增加,此时架构就发生了一个较大的变革:
配置:代码通过git管理,要分为多个模块,不同团队开发不同模块
编码:技术选型增加缓存、消息队列、搜索引擎等,框架封装更加复杂,抽象出基础层和服务层。分团队进行代码的维护,制定不同模块之间通信标准。推拉模型也提炼出来。
测试:单元测试+自动化测试
运维:批量自动化发布、回滚、支持灰度发布
监控:增加流量监控,机器监控
安全:发帖过滤、屏蔽,防范其他攻击
运营:后台删帖、大V管理等等
用户和流量再次增加后,产品再次发生变革,架构也再次变革。
配置:代码通过git管理,服务化,每个服务单独一个模块,不同团队开发不同模块
编码:技术选型需要考虑异地容灾,层次继续抽取,服务粒度细化,增加开放api,改进推送架构。
测试:单元测试+自动化测试
运维:批量自动化发布、回滚、支持灰度发布,异地数据同步
监控:增加流量监控,机器监控,增加缓存等监控
安全:发帖过滤、屏蔽,防范其他攻击,开放api权限管理oauth2,防止恶意调用
运营:后台删帖、大V管理等等
从上面的例子可以看出,架构是跟随产品进行迭代的,而且随着产品的越来越复杂,不可避免的需要不断拆分,多团队合作,运维自动化。架构也变成团队的工作,而不是一个架构师就搞定一切了。
阿里发展到现在架构也有些类似,有很多不同团队负责底层设施(中间件)的开发迭代及其架构的革新。业务也有不同的团队负责开发不同的业务模块,这个都使用统一的架构体系。技术保障部门维护统一的自动化运维工具,安全部门维护安全工具。不同部门都有自己的架构师,负责本部分的架构,不过比较遗憾的是没有一个总架构师的角度去推动总体架构演进及各个部门架构的优化。
配置、编码、测试、运维、监控分析、安全、运营等一系列技术体系的选型、取舍
技术选型基础上进行规划、设计、实现、迭代、制定相关规范
相关技术及规范运用到产品开发的整个过程中,并在产品迭代过程中对架构进行迭代优化
架构不止包含技术的框架,比如有人用了spring就觉得我已经是架构师了,其实架构并不是这么简单。我们以做一个新浪微博类似产品为例,现实应该是这样的:
产品初期,经典的LAMP快速开发实现第一个版本,功能也无比简单就是加好友,发消息,开发人员也只有一个小的队伍。此时的架构就体现为纯的技术选型及实现,包含了
配置:代码通过git管理,暂时无其他
编码:技术选型为LAMP,基于LAMP的开发框架封装,并在开发团队内制定开发规范
测试:技术人员手工测试
运维:手工发布,主备2台,mysql也做主备
监控:暂不需要
安全:发帖过滤、屏蔽
运营:后台删帖
随着用户的暴增以及功能的增加,产品需要迭代,架构也需要迭代。产品功能增强,性能需要优化,开发人员的增加,此时架构就发生了一个较大的变革:
配置:代码通过git管理,要分为多个模块,不同团队开发不同模块
编码:技术选型增加缓存、消息队列、搜索引擎等,框架封装更加复杂,抽象出基础层和服务层。分团队进行代码的维护,制定不同模块之间通信标准。推拉模型也提炼出来。
测试:单元测试+自动化测试
运维:批量自动化发布、回滚、支持灰度发布
监控:增加流量监控,机器监控
安全:发帖过滤、屏蔽,防范其他攻击
运营:后台删帖、大V管理等等
用户和流量再次增加后,产品再次发生变革,架构也再次变革。
配置:代码通过git管理,服务化,每个服务单独一个模块,不同团队开发不同模块
编码:技术选型需要考虑异地容灾,层次继续抽取,服务粒度细化,增加开放api,改进推送架构。
测试:单元测试+自动化测试
运维:批量自动化发布、回滚、支持灰度发布,异地数据同步
监控:增加流量监控,机器监控,增加缓存等监控
安全:发帖过滤、屏蔽,防范其他攻击,开放api权限管理oauth2,防止恶意调用
运营:后台删帖、大V管理等等
从上面的例子可以看出,架构是跟随产品进行迭代的,而且随着产品的越来越复杂,不可避免的需要不断拆分,多团队合作,运维自动化。架构也变成团队的工作,而不是一个架构师就搞定一切了。
阿里发展到现在架构也有些类似,有很多不同团队负责底层设施(中间件)的开发迭代及其架构的革新。业务也有不同的团队负责开发不同的业务模块,这个都使用统一的架构体系。技术保障部门维护统一的自动化运维工具,安全部门维护安全工具。不同部门都有自己的架构师,负责本部分的架构,不过比较遗憾的是没有一个总架构师的角度去推动总体架构演进及各个部门架构的优化。
相关文章推荐
- 架构师速成-架构体系
- 构建LNMP网站平台
- CodingLabs - 网站统计中的数据收集原理及实现
- 《实用技巧》——让你的网站变成响应式的3个简单步骤
- 淘宝在数据处理领域的项目及开源产品介绍 | 岭南六少 - 一朵在LAMP架构下挣扎的云
- sharepoint 2016 学习系列篇(7)-如何给网站分配用户访问权限site permission for users
- Gleasy首席架构师薛珂:以开源为基础实现分布式框架及中间件-CSDN.NET
- 简单之美 | 基于Dubbo框架构建分布式服务
- javascript学习资源、网站链接
- sharepoint 2016 学习系列篇(5)-创建一个应用程序网站
- 5大实用方法提升网站流量
- 外网访问本机调试的VS2008 C#网站
- win8.1下IIS网站打不开的问题
- 从Hadoop到Spark的架构实践
- ATS 5.3.0缓存架构
- 一个人的网站开发
- 转载几个网站
- 网站代码优化--SEO人员6应该懂的九组代*码
- 反锯齿渲染--TXAA
- haproxy+keepalived实现高可用集群