腾讯组织架构整改:中小团队怎样搭建架构?
极客时间编辑部
讲述:杜力大小:4.47M时长:04:53
最近,腾讯宣布成立技术委员会,也代表之前宣布的架构调整终于拉开序幕。那么中小团队要如何搭建自己的团队架构呢?
平时,技术大会上的分享大多都是关于亿级流量、超大型研发团队,虽然值得借鉴,但是由于应用场景与研发资源差异,一般企业并不容易落地。事实上,中小型研发团队在 IT 行业还是占大多数,他们在技术架构方面的问题较多,技术阻碍业务、跟不上业务发展的情况也很常见。
在互联网大厂做技术研发,大多只是一个螺丝钉。而在中小研发团队,则比较容易掌控全局。
本文作者结合近几年的工作经验,摸索出了一套可以直接落地、基于开源、成本低、可快速搭建的框架及架构方案。在这里,小团队也能构建大网站,中小研发团队架构实践更贴近于一般程序员的实际情况,更具有应用参考价值。
在框架篇中,所有的中间件与工具均基于开源,早期也有部分自主研发,比如集中式日志和度量框架,后期为了快速搭建、降低成本、易于维护和扩展,全部改为开源。这样不仅利于个人学习成长、知识重用和职业生涯,也利于团队组建和人才引进。
其中可以用到的工具如下:
1. 集中式缓存 Redis。
虽然看起来简单,但它影响着系统效率、性能、数据一致性。具体包括:缓存时长、缓存失效处理、缓存键、缓存内容及数据结构选择、缓存雪崩处理等。
2. 消息队列 RabbitMQ。
它有着大量的数据堆积能力,然后再可靠地进行异步输出,这是 EDA 事件驱动架构的核心,也是 CQRS 同步数据的关键。没有选择 Kafka 是因为业务系统有对消息高可靠性要求,以及对复杂功能如消息确认 Ack 的要求。
3. 集中式日志 ELK。
它的易用性虽然有所下降,但是它支持海量数据以及与编程语言无关的特征。
4. 任务调度 Job。
这是分布式系统异步和批处理的关键。Job 分为 WinJob 和 HttpJob。WinJob 是操作系统级别定时任务,使用开源框架 Quartz. NET 实现;HttpJob 则是自主研发,采用 URL 可定时调用微服务。
5.HttpJob。
它借助集群巧妙解决 WinJob 单点和发布问题,并集中管理所有调度规则,调度规则有简单规则和 Cron 表达式。
6.Zabbix。
它一般用于系统级别监控,Metrics 则用于业务应用级别监控。业务应用是个黑盒子,通过数据埋点来收集应用的实时状态,然后展示在大屏或看板上。它是报警系统和数字化管理的基础,还可以结合集中式日志来快速定位和查找问题。
7. 微服务框架。
基于开源 ServiceStack 实现,简单易用、性能好,文档自动生成、方便调试。
8. 全文搜索引擎 Solr。
它不仅简单易用性能好,而且支持海量数据高并发,只需要实现系统两边数据的准实时或定时同步即可。
此外,还可以选用分布式协调器 ZooKeeper、ORM 框架、对象映射工具 EmitMapper 和 AutoMapper、发布工具 Jenkins 等。
架构师除了会用工具外,还需要架构设计思想和性能调优技能,具体包括以下内容:
企业总体架构需要在技术、业务、管理之间游刃有余地切换,包括业务架构、应用架构、数据架构和技术架构。
单个项目架构要做到功能需求、用例活动图、领域图、架构分层,核心代码环环相扣。
统一应用分层要做到可大可小、简单易用、支持多种场景。应用系统的本质就是机器,是处理设备,也是一进一出一处理,IPO 方式相对于 DDD 而言更为简单实用。
生产环境偶尔会出现异常,WinDbg 或 GDB 是解决此类问题的利器。
事实上,从死气沉沉到激情活力,企业研发团队要先弄清遇到的问题,然后找到解决之道,包括管理工具、制度和行为措施,并予以贯彻,形成一种习惯,最后总结并归纳成一句话,才能成为公司或团队的执行力。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- 小十七小公司不管是数量级还是业务需要,架构肯定有别于大公司,符合自己的就是最好的
- Zopen点赞
- 鹏😎好文章,正是需要的 作者那句话,路大多数开发者都是中小企业,技术能力有限,说到太好了,大企业真是有数的,可以参考的经验和我们这些小企业真是有落差,希望作者多出这样的作品
收起评论