(1)项目介绍:需要修改代码,优化,时间特别紧急,需要紧急发布上线,满足用户的需求
(2)项目背景:疫情去年一月份开始,xx产品半个月内流量爆发,用户量达到了6000多万,流量超过了100倍,春节过后量达到了3亿多,导致数据库撑不住,服务器压力也特别大。本来是做了扩容优化方案,放在春节后进行,突发情况导致需要在很短的时间内解决这一系列问题,而且除了流量扩容的任务,也有需求上的其他任务需要做。
(3)项目重要性:用户量巨大,系统都无法满足需求,用户无法登陆,需要迅速解决,否则会影响用户使用,降低用户体验,造成满意度下降。
(1)系统流量处于爆发阶段,系统压力非常大,无法满足用户需求,需要几天内解决。
(2)流量爆发具有突发性,方案没有经过评估验证,可能很小的一个改动点会影响到用户体验。
(1)流量暴增,数据库肯定撑不住,需要对数据库进行扩容,可以找个更大的数据库,将原有的数据库迁移到新的数据库上,还是不行,继续对数据库进行扩容,迁移。
(2)服务器资源也撑不住,需要对服务器进行扩容,提高响应效率。找运维去对服务器进行扩容。
(3)用户量比较大,资源导致没有了,所以需要修改代码,优化,集中精力和时间找到问题代码,可以优化的代码,对其进行优化,持续迭代。
(4)跟兄弟团队进行沟通,获取一些相关资源,积极寻找与公司任职的相关同事了解项目背景与关键点,持续迭代,提高系统的稳定性和可靠性。
(1)第一天就对数据库进行迁移,凌晨12点就升了一倍,然后迁移到新库,第二天流量还是撑不住,就又升了一倍,接着继续,每天都是通宵处理,把服务器资源,缓存也升了好多倍,到最后面资源都用完了,用户量比较大,资源导致没有了,需要修改代码,优化,时间特别紧急,需要紧急发布上线,同时需要负责基础平台稳定性维护,架构的优化
(2)又做了一个免费义诊,这个产品之前完全没有开发,短时间内需要搭建一套系统,三天就上线了,每天都在通宵,这个项目非常有意义,当时由于疫情,很多人无法出去看病,这个产品也特别有意义,把缓存也做好了,加上去。
(3)系统比较依赖第三方软件XX,大部分都是新的用户,不存在有缓存,对新增的用户做了一个异步的方案,先进入登陆态,用户信息入库是异步的,加上消息队列的缓冲,降低了压力,提高了用户体验,针对存量的用户缓存到cache里面,最终达到的效果不需要依赖DB,把数据库的压力降到最小。
(4)接入服务打通数据,让数据互通,共建一些中台,像数据中台,用户中台。
(5)合作比较保守,数据是隔离的,跟兄弟团队进行沟通,兼容安全的方案,通过前端获取,通过软件XX内部接口转换。
(6)最重要是做好沟通,把用户体验做到第一位,用户只关注体验,不关心这是几个产品,合作必要重要的一点目标是一致的,用户体验第一,加强合作。
(7)临时拉会,讨论技术方案出来,方案没有经过评估验证,可能很小的一个改动点会不会影响到用户体验,边实施边修改,方案尽量与现有能力进行匹配,避免重复功能开发
(8)梳理现有的沉淀能力与可复用模块,召集相关人员进行评估,对现有模块进行筛选,找出需要用到的,将旧有的系统的包转化一下,可以在docker中部署。
(9)尽可能利用其他时间来赶项目,保证项目的准时交付,每天加班到晚上12点,连续好多天进行攻关。
系统撑住了流量突然爆发,系统得到了稳定性维护,架构也更加优化,做的这个事情看到对用户有帮助的,觉得是特别有意义的一个事情。
成为优秀员工需要除了满足基本需求不行,多想一步如何把他做成一个通用的东西,做的时候站在更高的角度出发,曾经有一个项目四月份启动,六月份上线,老项目基于包的,适配docker的运行环境,把系统搭建起来,工作中会遇到一些挑战,做项目时要有全局观,由点到面,对系统架构,系统也要了解。提升自己。
多给自己充电,工作中的业务也是一个学习的机会,多看一些公司课程,很多都是别人实战的经验,可以去作为一个参考,去吸收。保持对技术的热情,工作之余一些零散的时间,关注一些技术的博客,了解有哪些技术,是做什么用的,全局补充一下自己的知识点。可以参加公司的开源治理,工作之余关注一些开源相关的问题,多跟身边人交流,除了开发需求之外,需要具备沟通的能力,主动发现一些问题。最重要的是,可以发给你的好朋友。