开发者社区> 中间件小哥> 正文

我们总结了每个技术团队都会遇到的 4 个难题

简介: 阿里巴巴 2019 年实习生校园招聘已经启动,为此,我们整理了一篇《每个技术团队都会遇到的4个难题》,帮助即将从校园进入公司实习的后端程序员,以实践的视角,看看一个后端技术团队会遇到的一些难题。虽然,技术上的难题远不止于此,但如果能从这篇文章中获得一些职业体感,也许对你的实习面试会有所帮助。
+关注继续查看

阿里巴巴 2019 年实习生校园招聘已经启动,为此,我们整理了一篇《每个技术团队都会遇到的4个难题》,帮助即将从校园进入公司实习的后端程序员,以实践的视角,看看一个后端技术团队会遇到的一些难题。虽然,技术上的难题远不止于此,但如果能从这篇文章中获得一些职业体感,也许对你的实习面试会有所帮助。

参与“测测你的程序员属性”,有机会获得 Cherry 樱桃机械键盘、罗技鼠标等奖品。

- 正文开始 -

从单个应用到多个应用,从百千级别的访问流量到十万、百万级别,从两三个人的创业技术团队到上千人的技术团队矩阵,这些过程中,技术团队都避不开了以下 4 个问题:

  • 如何预测业务峰值时的容量
  • 如何提升业务的稳定性
  • 如何提高业务的监控能力
  • 如何提高开发效率

如何预测业务峰值时的容量

早期的做法是在开发测试环境进行压测,来评估线上容量,但线下环境的机器规模,和线上差距很大,很难通过线下推导线上。根据经验,将采购的机器加入不同的应用里面,这时候就会遇到一个问题: 最大业务峰值容量是多少?

_
这个问题,其实挺难回答的。这个应用多加几台,那个应用少加几台,整体的业务峰值承受能力就会不一样,加减的规则很难通过人的经验来确定,最多只能作为一些辅助判断。另外,核心交易链路的梳理,也是一个体力活,如果依赖人为处理,有可能会漏掉一些看起来不那么重要的”分支”,这是整个容量不确定的地方,可变的因子很多。

比较有效的方式, 是在生产系统部署全链路压测,来验证各个生产环节是否能经受住各类流量的访问,让真实的流量来访问生产环境,实现全方位的真实业务场景模拟,确保各个环节的性能、容量和稳定性均可做到万无一失。

如何提升业务的稳定性

日常的各种运营活动,都有可能带来巨大的流量高峰,除了通过引入全链路压测来验证各个生产环节是否能经受住各类流量的访问, 构建系统的高可用保障能力也很关键,涉及多个组件或模块,例如软负载和配置中心、服务接入和调度编排、消息接收和发送、容器和调度、限流和降级 等。

_
运营一次活动,最大的流量峰值是可以预测的,这就是服务的最大接待能力,比如50万笔的交易创建峰值,那超过的怎么办?这时候,采用限流的方式,被限流的客户在某一段时间内无法进行购物,一旦系统恢复服务能力,就可以继续服务被限流的客户,从而避免因流量超过上限,而影响整个平台的客户。

如何提高业务的监控能力

分布式应用系统在协作性,扩展性和一定的容错性方面,体现出了优势,但是在监控、运维和诊断层面,面临相当大的挑战。

_3

早期,架构师可以画出整个应用系统的交互架构图,随着业务的发展,当拥有大量的应用、微服务和容器,即便整理了一幅交互架构关系图,也会因为应用系统的变更,新需求的实现,整个应用系统的交互又会发生变化,这种变化无处不在,每天都在发生。因此,随着业务量的增加,需要覆盖面广且深的全链路跟踪监控系统 ,来诊断调用链的问题。

越是复杂的业务形态,定位的难度越大,就越需要全方位、360度无死角的监控,因此,建立一个平台化、跨领域和立体化的监控,能极大的缩短业务遇到问题时的恢复时间。

如何提高开发效率

开发效率是一个很广泛的话题。不同的开发岗位,不同的使用场景,会有不一样的开发效率工具。这里,我们介绍几款后端工程师经常会用到的效率工具。

_2

  • 云端部署效率工具:

Cloud Toolkit 是一款 IDE插件,可以帮助开发者更高效地开发、测试、诊断并部署应用。借助这个工具,开发者能够方便地将本地应用一键部署到任意机器,或 ECS、EDAS、Kubernetes,并支持高效执行终端命令和 SQL 等。点此了解详情。

  • MacOS 搜索利器:

MacOS 自带的聚焦搜索(Spotlight),可以将文稿、邮件、应用等整合在一起,通过关键词匹配来进行搜索。Alfred 可以看作是Spotlight的增强版,是计算机依赖者的效率神器,支持添加自定义网络搜索引擎,指定规则精准定位本地文件,以及在命令框内使用计算器、词典等实用工具。

  • 画图效率工具:

系统架构图是为了抽象的表示软件系统的整体轮廓和各个组件之间的相互关系和约束边界,以及软件系统的物理部署和软件系统的演进方向的整体视图。通过架构图,可以让干系人理解、遵循架构决策,就需要把架构信息传递出去。架构图就是一个很好的载体,所谓一图胜千言。点此了解详情。

  • JSON 浏览效率插件

对于 JSON 的数据,如果不编排,格式查看起来会很费劲。JSON-handle 是一款对 JSON 格式的内容进行浏览和编辑,以树形图样式展现 JSON 文档的插件,支持实时编辑。

  • Java 代码规约扫描效率插件

这是一款 Java 代码规约扫描工具,旨在以工具的手段进行代码规约的落地,项目包含三部分:PMD规则实现、IntelliJ IDEA 插件、Eclipse 插件,帮助开发人员在工程研发的多个阶段进行代码规约检查, 降低故障率、提升编码效率和质量。点此了解详情。

当然,除了这些现成的效率工具,提升整个技术团队的开发效率,需要单独开发或改造一些系统,例如团队协作平台、服务化改造等,当你以实习生的身份加入公司后,若有机会参与到这些提升开发效率的项目过程中。由此形成的效率意识,将会影响到你今后的工作习惯和理念。

本文部分内容来源于阿里巴巴中间件资深产品专家丹臣的内部分享《阿里巴巴中间件上云实践》。阿里巴巴中间件的实习生招聘详情,请查看本期推文的第三篇。

互动

扫码参与


H5_1

创意 by 岚杺,插画 by 凌风,前端 by 子林,动画 by 世杰。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
玩转娱乐化时代|淘系互动团队几年的技术沉淀+经验都在这!
在人口红利开始萎缩,各个 App 都开始以娱乐化互动作为重要手段来争夺普通民众的在线时长。因此在诸如互动业务领域内,我们就需要打造核心轻量化、研发速度快、用户体验好的互动技术。它是 Web 技术的一块特定领域,它融合了图形、渲染、动画以及前端工程和软件工程等知识。本文会把这些领域的知识有条理的梳理一遍呈现给大家。
952 0
金三银四话人才——关于技术团队的人才观(下)
公司内部晋升答辩评审,对于公司的人才培养有什么启示?如何平衡好员工专业技术提升和员工对公司价值贡献之间的关系?本文通过作者身边的真实案例,进行探讨。
177 0
江苏民丰 x mPaaS | 县域小银行,技术团队就12人,却找到了数字化转型的秘籍
想参与未来竞争,中小银行积极参与数字化转型已经成为必选项。
1789 0
js中setTimeout和setInterval性能详解总结
在写H5游戏时经常需要使用定时刷新页面实现动画效果,比较常用即setTimeout()以及setInterval() setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式,而setInterval()则是在每隔指定的毫秒数循环调用函数或表达式,直到clearInterval把它清除。
5884 0
阿里云存储团队招聘贴(技术岗位)【2020.07.28更新】
我们相信技术的力量,更相信拥有技术力量的人。 我们期待存储的未来,更期待与你一起创造未来。
2850 0
+关注
中间件小哥
阿里中间件(Aliware)官方账号
1130
文章
52
问答
来源圈子
更多
阿里云中间件主要有包含这么几个: 分布式关系型数据库DRDS_水平拆分 做数据库扩展性的 、消息队列MQ 是做消息的中间件、企业级分布式应用服务EDAS 做分布式服务的、还有一些其他的中间件,比如配置服务、缓存等等。
+ 订阅
相关文档: 全局事务服务GTS 分布式调度任务SchedulerX 云服务总线CSB
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载