理想的互联网服务后台框架的九个要点

理想的互联网服务后台框架的九个要点

对于互联网服务后台团队,开发框架的选择是非常关键的一个问题,多年的海量服务经验和教训使得我们团队深刻的认识到:

  • 要尽早规范团队的开发服务框架,避免到了后期,各种开发语言混杂、各类存储组件充斥、重复编码、每个模块形态不统一、文档缺失、监控瘫痪、人员离职造成大量信息丢失,最后积重难返、痛苦不堪。
  • 没有框架来规范,团队的随意性就太大,合作效率就大打折扣,甚至于内耗、反复的挖坑填坑,系统的成败过于依靠人的意识和水平。
  • 规范,不能靠文档、不能靠劳动纪律、不能靠苦口婆心、不能靠人员意识、不能靠运动式的整顿,要靠技术框架上切实的限制与贴心保护。

如果有机会从0开始定义一个理想的开发框架,需要考虑哪些点?我们觉得主要有如下9个方面:

  1. 同步编码异步执行:兼顾运行效率和编码效率,希望代码写起来是同步和顺序的,而执行的时候是异步的。
  2. IDL/RPC:支持IDL(接口描述语言)和RPC,减少网络协议相关的重复工作,协议有比较好的扩展性;远程调用友好且高效,做到覆盖主要的开发语言。
  3. LB:对服务间的调用选路进行统一的管理,对单机故障和网络波动等常见情况有自动容错,我们简称load balance(LB)。
  4. 存储服务化:这个其实和开发框架关系不太紧密,这里提一下,强调存储应该有统一的组件且由专业的团队运维,就像共有云一样。
  5. 过载保护:框架必须有成熟自带的过载保护机制,不需要业务开发人员关注或者关注很少。
  6. 基础的监控和告警:RPC调用、机器的cpu/网络活动、任务并发度、时延、进程监控和秒起等基础信息,要有上报、统计和告警,不需要业务开发人员关注。
  7. 完整的业务流转呈现:统一日志,在一个地方能够清晰的呈现某次业务处理过程的流转详细情况:经过了哪些模块间调用,调用参数是怎样的,每个模块处理的重要分支和结果是怎样的,最好图形化呈现。支持染色和不同的日志详细级别。

1.中央总控:整个系统的配置和文档等重要信息,例如每个模块有哪些机器,分布在哪些机房、容量冗余情况、模块间调用关系、访问控制的配置动态管理甚至电子流,都希望能统一在一个地方web化的管理起来,并且与运营的系统是直接联系直接生效的。

  1. 云调度:容量的自动调度。例如要进行某个运营活动需要大量的扩容,只需要把设备放进去,就能自动的扩缩容。当某个城市机房故障,能够自动调度容量到其他城市。

基于上面的总结,我们团队开源了一个服务开发运营框架,叫做毫秒服务引擎

毫秒服务引擎(msec, 取英文名Mass Service Engine in Cluster的首字母组合)是腾讯的一个开源框架,集RPC、名字发现服务、负载均衡、业务监控、灰度发布、容量管理、日志管理、key-value存储于一体,目的是提高开发与运营的效率和质量。

毫秒服务引擎的创作冲动和构建经验,来自QQ后台团队超过10年的运营思考。它是一整套解决方案,但也可以拆分的来使用其中的监控、key-value存储单品。

详细可见官网,或在腾讯云服务市场联系我们

典型用户群体

使用毫秒服务引擎,用户可以快速拥有一套具备监控、名字发现服务、负载均衡、灰度发布、配置管理、日志、kv存储等功能的系统化的开发与运营框架,特别适合互联网初创公司。

毫秒服务引擎非常容易搭建和上手,使用它,初学者从零开始开发一个分布式后台demo并运行起来,只需要2个小时。基本上是一个小时完成框架搭建,一个小时完成开发上线。

功能与优势

  1. 模块间访问采用RPC的方式,开发者不用关注网络与报文格式,像写单机程序一样开发分布式服务
  2. 负载自动均衡与容错,对于单机故障、局部网络波动等状况自动应对,服务高可用性
  3. 支持C/C++与java语言,后续还将继续丰富;如果选择C/C++语言,支持协程,兼具开发和运行效率
  4. Web化的管理界面,在web界面完成配置、发布、监控、日志、Key­-value存储集群管理等所有操作
  5. 需要复杂部署的服务器都采用docker镜像的方式安装,使得部署与上手非常容易
  6. 相比使用其他开源组件拼凑起来的解决方案,毫秒服务引擎更加的体系化,对团队的规范更加到位

毫秒服务引擎也提供了微信公众号(msec-engine),欢迎大家关注,参与讨论和反馈。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

安全专家说Android 8.0和iPhone X一样安全,这是真的吗?

Android 这两年的甜点代号越来越腻味,上个月 Android 8.0,以代号 Oreo(奥利奥)的方式问世了,奥利奥感觉比牛轧糖、棉花糖之类的都要甜。可能...

2409
来自专栏程序员互动联盟

为什么黑客那么挣钱,原因就在此

有朋友在群里问黑客编程如何学习?这个题目也是一个可大可小的问题,因为黑客编程没有一个死的界限。不是说到什么级别就算或者不算,同样是属于黑客技术,也有简单和复杂之...

34315
来自专栏FreeBuf

研究人员公开新CPU漏洞Spectre 1.1和Spectre 1.2

近日,两位安全研究人员又披露了两个新的“幽灵级”(Specter-class)安全漏洞,并将这些漏洞命名为“Spectre 1.1”和“Spectre 1.2”...

814
来自专栏花叔的专栏

接口人小程序快速开发--知晓云体验

今天要分享一个好东西,花叔保证不是广告。 话说,有一天,爱范儿的运营经理Angela找到我,说他们做了一个叫“知晓云”的东东,想邀请我来体验一下。 我说好啊,他...

3337
来自专栏嵌入式程序猿

上次小猿帮你,这次KSDK来帮你

自上次发布freeRTOS在K64上移植后,好多猿友说我还是一点也不会移植怎么办,没事,如果是用NXP的片子,那么KSDK这次来帮你,我们曾多次介绍过恩智浦KS...

2725
来自专栏杨建荣的学习笔记

Java和Python的编程对比

因为以前会点Java,现在来看当然是弱爆了。 学习Python的需求非常紧迫,所以我想快速学习掌握Python,有没有什么好的办法可以缩短学习周期。我觉得比较好...

4046
来自专栏程序员互动联盟

【答疑解惑第十一讲】黑客需要哪些编程技术?

存在问题: 黑客一直是好多人的梦想,那我们要从那些方面做起呢? 解决方案: 有朋友在群里问黑客编程如何学习?这个题目也是一个可大可小的问题,因为黑客编程没有一个...

40110
来自专栏无原型不设计

如何设计出一款出色的结账表单

以下内容由Mockplus团队翻译整理,仅供学习交流,Mockplus是更快更简单的原型设计工具。

3636
来自专栏SAP最佳业务实践

从SAP最佳业务实践看企业管理(127)-MM-209外部采购服务

服务提供商需要由第三方提供的服务。 该业务流程从采购订单开始。参考或不参考采购申请,均可创建采购订单。 登记服务条目可确认所执行的服务。发票是参考采购订单登记的...

3366
来自专栏罗超频道

Chrome支持Android应用,浏览器正在成为操作系统?

Google 日前已决定将ARC开放给所有开发者,并且ARC在Chrome OS和Chrome浏览器中均可以运行。ARC全称是App Runtime for C...

3114

扫码关注云+社区