一次技术中台升级记录

由于历史原因,我们有两套技术架构:
基于SpringBoot1.X的老框架、老技术中台、老数据中台。
基于SpringBoot2.X的新框架、新技术中台、新数据中台。

老技术中台研发的时候,整个生产环境都是我们自己搭建的,很多功能需要自研。
到了新技术中台时,已经迁移到了集团的云上,之前设计的很多功能也就用不到了。
而且,随着时间的推移,老中台人员都去参与了其他项目,长期处于支持维护状态,无论研发、运维还是安全同事,都感到压力山大。
由于云端环境时不时会做调整,运维同学都不敢轻易重启老中台服务,怕一重启,就再也起不来了。
安全扫描策略也不断升级,扫描出来的问题一次比一次多,很快就千疮百孔了,但大家也只能缝缝补补。

之前由于业务压力异常巨大,大家一直在忙着做各种新的业务功能,虽然一直想升级,但一直没有狠下心来。
到了今年四季度,遇到了几次生产事故后,大家痛定思痛,决定还是干吧,把老中台下掉。

整体步骤大体如下:
1、找了两位对老技术中台比较熟悉的同事,对全部服务进行了梳理
2、各技术团队,也对老中台的依赖关系重新进行了梳理
3、大家坐下来,对服务进行了分类
A、对于网关类服务,按领域拆分
B、对于调用中转类服务,已经不符合当前要求,改为K8S的微服务直连
C、先看调用量小的服务;没有调用量的服务及接口,尽早下线
D、其余调用量很少的服务,与业务方沟通,能下线下线,不能下线合并等待下线
E、新老技术中台都有的服务,新中台进行适配,下线老中台服务
F、老中台有,新中台没有的中台类服务,功能迁移,下线老中台服务
G、非中台类服务,拆分到业务系统,下线老中台服务
H、其余服务,一事一议
4、对新老平台都保持的数据,进行数据治理,统一数据标准
5、在服务迁移改造的过程中,要求按新框架规范,将服务升级到SpringBoot2
6、由于没有业务上的直接收益,所以整个改造周期排了很久,各团队根据实际情况,在每次迭代中把工作量消化掉
7、及时与测试同学沟通,确保每次测试覆盖到
8、与运维同学沟通,服务全部升级完成后,切换nacos到最新版本(之前受限于SpringBoot1,无法升级nacos)
9、这样框架、技术中台就升级完毕了,后面每半年升级一次框架就可以了
10、数据中台的小伙伴,因形势所迫,直接抛弃了原有技术栈和工具,拥抱了新技术栈,最后技术债务居然是最小的。

任务已排期,各团队都表示坚决支持。但你以为这样就能顺利推进吗?我感觉比较难哦。
过半年,再续写一下,推进情况究竟如何,敬请期待。

秒杀及大促系统关键点

一、电商秒杀场景
0、尽早做好各相关团队的沟通,做好活动动员工作
1、搭建单独的秒杀系统,与核心交易系统隔离
2、做好静态资源缓存:浏览器、CDN、服务器缓存
3、通过JS,动态下发大促页面,大促抢单URL到秒杀时刻后才能下发
4、网关随机刷掉大部分用户,小部分进入到服务器,每台服务器只处理前N条数据,后续用户秒杀失败
5、redis分布式锁确保不会超卖
6、秒杀成功后,请求发送至核心交易系统
7、做URL验证,防止刷单
8、网关控制同IP流量,屏蔽部分云服务器IP段,防止部分刷单行为
9、提前做好性能测试及压力测试

二、电商大促场景:
0、尽早做好各相关团队的沟通,做好活动动员工作
1、业务上分时段大促,不同商品分流,缓解服务器甚至快递小哥压力
2、做好静态资源缓存:浏览器、CDN、服务器缓存
3、根据过往流量、商品浏览量、购物车商品数量,估算大促流量
4、做好扩容和运维保障工作:服务器、带宽、数据库根据预测流量,进行弹性扩容,而且要有一定比例的富余量
5、大促商品信息提前加载redis缓存
6、引入MQ,异步处理订单,消除业务峰值
7、做好PlanB,限流、降级、熔断,保证核心业务稳定
8、网关控制同IP流量,屏蔽部分云服务器IP段,防止部分刷单行为
9、提前做好性能测试及压力测试

打车软件功能拆解

一个打车软件,基本需要以下功能:

一、乘客:
1、行程管理:乘客叫车、行程取消、历史行程查看
2、乘客上车引导
3、乘客与驾驶员聊天功能
4、乘客与驾驶员虚拟电话沟通功能
5、行驶轨迹展示、规划行驶路线展示
6、目的地修改
7、乘客支付
8、打赏功能
9、驾驶员评价功能
10、投诉功能
11、消息通知
12、紧急联系人,一键报警,行程分享

二、驾驶员:
1、车辆开始接单,车辆停止接单
2、车辆实时位置信息推送
3、抢单、订单查看、订单取消
4、车辆到达确认
5、驾驶员与乘客聊天功能
6、驾驶员与乘客虚拟电话沟通功能
7、乘客上车确认,开始计费
8、结束计费
9、乘客评价功能
10、收入查看、提现
11、申诉
12、消息通知

三、平台:
1、地理信息系统与车辆网格划分
按GeoHash将城市划分为多个网格,收到车辆位置后,将车辆更新到各个网格;
2、平台派单
根据乘客起始地点,在乘客所属网格,就近派单;
考虑用户习惯,价格、车况等;
不能让乘客长久等待,适时给驾驶员奖励;
给同一驾驶员单子要有好有坏;
不同驾驶员要雨露均沾,不能造成饥饿状态;
不同业务要用派单或抢单模式;
3、行驶路线规划
4、等待时长预估
5、计费规则设置、计费功能
6、车辆位置采集,车辆轨迹记录
7、车辆在线时长统计,车辆收入及行程数统计
8、发票管理、行程单管理
9、客服系统,客诉处理,工单系统对接
10、消息通知:
短信、微信、APP
11、信用系统:
乘客信用
驾驶员信用
黑名单
车辆信息审核
驾驶员信息审核
12、标签系统:
乘客标签及画像,个人乘车偏好
车辆标签及画像
驾驶员标签及画像
13、行驶安全:
驾驶员疲劳管理;
防疫信息管理;
行程录音取证分析;
AI自动分析异常情况,识别争吵、车辆路径偏离,车辆长期不移动等情况;
紧急情况处理,安全人员及警方及时介入,通知乘客安全联络人;
14、基础数据管理
用户、权限、角色、组织、城市、车辆管理、驾驶员管理
15、外部对接API
订单接收,订单确认或取消,行程推送,行程状态同步,计费推送,费用结算

四、业务扩展:
1、市场营销:卡券管理、优惠活动
2、增值业务:保险售卖、加油卡售卖
3、在专车之外,可以开展出租车、顺风车、拼车、预约用车、代驾、企业用户等业务
4、入口从APP扩展到公众号、小程序、其他打车平台、电话

Boss与Leader

Boss Leader
驱动员工 指导员工
制造恐惧 制造热情
面对错误,喜欢使用人事惩罚手段 面对错误,喜欢寻找解决问题的技术或管理方法
只知道怎么做 展示怎么做
用人 发展人
从团队收割成绩 给予团队成绩
喜欢命令和控制 喜欢沟通和写作
喜欢说,“给我上” 喜欢说,“跟我上”

转自http://coolshell.cn/。

一对一会谈:清单对对碰



一对一会谈:清单对对碰

有关如何组织一对一会谈(即管理者与员工定期进行的面谈),比尔·坎贝尔曾经向我们推荐过一种比较独特的方法。管理者应当把最想在会谈中涉及的5件事写出来,员工也应该列一份这样的单子。把两张不同清单拿出来后,单子上十有八九会有几个条目是重复的。对于所有的一对一会谈而言,双方共同的目标都是为了解决问题,如果管理者和员工不能独立找出最需要两人共同解决的问题,那么摆在两人面前的问题就更不可忽视了。

除此之外,比尔还为我们推荐了一个好用的一对一会谈大纲,让我们在应用中受益匪浅。
1.工作表现
a.可以是销售数据
b.可以是产品交付情况或有关产品的重大进展
c.可以是消费者的意见或产品质量
d.可以是预算数目

2.与同事之间的关系(这对企业成员的团结一致非常关键)
a.产品人员和工程人员的关系
b.市场人员和产品人员的关系
c.销售人员和工程人员的关系

3.领导与管理
a.你有没有对你的人员起到指导和帮助的作用?
b.你有没有把“害群之马”清除出团队?
c.你有没有在人才招聘上下功夫?
d.你能否激励员工做出创举?

4.创新(最佳实践)
a.你是否一直在进步,是否一直思考着如何才能变得越来越好?
b.你是否经常对新的技术、新的产品及新的方案进行思考和评估?
c.你是否将业界或世界上最顶尖的人或企业作为对比标杆?

为何产品要聚焦用户

聚焦用户,赚钱便水到渠成。如果你的用户不是你的客户,而你的客户又不认同你“聚焦用户”的观念,那么就很难做到这一点。

谷歌于2012年收购摩托罗拉,而乔纳森最先参加的摩托罗拉会议之一,就是一场长达3个小时的产品评估会。

会上,摩托罗拉的经理把公司每一款机型的特征和功能展示了一遍。他们反复提及客户需求,实际上却与手机用户的真正需求相去甚远,因此他们的话乔纳森大多并不赞同。

在会后午餐时,一位摩托罗拉的高管告诉乔纳森,在摩托罗拉,“客户”所指的并不是手机使用者,而是指公司真正的客户,也就是威瑞森通信(Verizon)以及AT&T公司等手机运营商。

这些运营商并没有时时聚焦用户。摩托罗拉的焦点也没有放在用户身上,而是对准了合作伙伴。

而摩托罗拉的结果,你懂的。

为何技术人员要懂业务



为何技术人员要懂业务
By NEOHOPE

公司是脚,业务是穿鞋的场景,技术是鞋子。

先考虑技术,再考虑业务,往往会导致削足适履,让你怎么穿都别扭;
不考虑技术,只考虑业务,会导致打赤脚或穿草鞋,让你天天肉痛。
两者一起考虑,才能找到合适你的跑鞋、登山靴或轮滑。

不懂业务的技术人员,很难设计出一双适合用户的好鞋子;
不懂技术的业务人员,至少知道用户要一双什么样的鞋子。
所以,你不懂业务,技术再牛,也要听懂业务的。

一句话,除非你是搞理论研究或专业分工的,否则,脱离了业务说技术都在是耍流氓,脱离了业务谈架构同样是在耍流氓,脱离了业务天天扯一堆前沿名词就是大流氓。

工作笔记001

Hansen的工作笔记001

最近,根据工作安排的调整,参与了部分售前支持工作,发现了工作上的一些不足之处:
1、个人对公司产品的理解不够深入,对用户的最关心的痛点理解过于肤浅,对行业态势了解滞后,对竞争对手了解太少。
2、公司产品的相关文档太少,苦了售前、实施各位大哥大姐。
3、沟通时,技术性仍然太强。回想起来,用户、售前和销售人员居然表示可以理解,也太难为他们了。后面要做到,对方不懂技术,也可以讲明白。
4、有时候,过于急躁,看到自己写的“戒骄 戒躁 戒懒”的便利贴,还是脸红了一下。

改进措施:
1、多学习。就像前面和杨荣聊的,人懒了,放弃学习了,也就掉队了。你做软件,做不到35,除了自己谁也别怪,只能怪自己。
2、多沟通,多讨论。沟通和讨论,是一个很好的可以帮自己系统梳理思路的好方式,关键是不累心。
3、知识组成要多元化。团队成长到一定阶段,即需要专精人才,也需要综合性人才。要及时找到适合自己的路子。但即使你走专精的道路,也要让自己的知识构成多元化一些,才不至于闭门造车。
4、搭建了OpenKM,替代了没人用的Wiki。希望可以发挥一些作用。感谢陈燕婷的大力支持。
5、要逼着各位产品经理、技术经理补充缺失的文档。相信对他们也有很多好处。
6、加强个人非技术的沟通技巧,文档写的要让非开发人员可以读懂。

《凤凰项目》之布伦特



《凤凰项目》之布伦特
By NEOHOPE

《凤凰项目》是一本介绍DevOps的书,书中有一个叫做布伦特的人,他个人能力很强,工作超级努力,对公司的各种IT环境了如指掌,做事情超级靠谱,大家都喜欢找他合作,有了问题也会第一时间想到他,就是一个公司的英雄人物。

但问题是,长期的工作模式,导致了IT部门几乎所有重要事情都需要布伦特参与才能成功,于是可怜的布伦特天天加班,而且无论如何都完不成堆积如山的任务,最终造成了大量的任务积压,IT部门被各种投诉。

同时,由于工作压力,布伦特更加没有时间写文档,做事情只好走捷径,甚至会直接变更一些数据流程,最后很多环境只有他清楚,很多事情只有他可以做,就是一个恶性循环。

新上任的比尔将布伦特识别为IT生产环境中的约束点,并对此采取了对策:

1、告知布伦特,拒绝除凤凰项目以外的任何项目,如有疑问直接找布伦特的领导沟通,并与CEO取得了共识。让请求需要通过层层过滤才能达到布伦特,从而保证了布伦特可以将精力放到最重要的项目中,让布伦特去做该做的事情“偿还技术债务,保证系统的稳定性、安全性、可扩展性、可维护性、可操作性、持续性”,而不是“修理打印机,升级电脑,连接网络”;

2、对所有积压的任务,进行区分,所有不需要布伦特参与的变更都可以根据优先级执行,所有需要布伦特的项目都需要等待凤凰项目,从侧面引导大家使用其他资源,并在此确保好钢用在刀刃上;

3、在其他部门领导绕过流程,直接为布伦特安排其他工作时,直接抽丫的;

4、围绕布伦特,组建了一个资深小组,学习布伦特的工作经验,并形成文档,将布伦特的经验传授过所有人,将布伦特从各种复杂繁琐的事情中解放出来;

5、最后,将布伦特整理的各种脚本,做成自动化发布软件,最终解放了生产力;

最终结果是,一开始大家承受了很大的压力,但经过一段时间后,大大提升了工作效率。并发起了独角兽和独角鲸项目,取得了成功。

我们周围的布伦特是谁?我们有好好保护他吗?我们有找人帮他把经验变成团队的经验吗?我们如何帮他提升到一个新的水平?

呆伯特法则


呆伯特法则
By 斯科特·亚当斯

呆伯特法则:意指1990年代一个讽刺意味的观察,认为公司倾向有于把工作能力最差的员工提升到管理层,以把他们能对公司造成的损害减至最低。“呆伯特法则”是彼得法则的变化。彼得法则指在阶层式组织或企业中,人会因其工作出色,而被擢升到他往往不能胜任的高级职位,相反变成组织的障碍物(冗员)及负资产。


职场百态
By 斯科特·亚当斯

一些事没人做,
一些人没事做。
没事的人盯着做事的人,
议论做事的人做的事,
使做事的人做不成事、做不好事。

于是,
老板夸奖没事的人,
因为他看到事做不成。

于是,
老板训诫做事的人,
因为他做不成事。

一些没事的人总是没事做,
一些做事的人总有做不完的事。
一些没事的人滋事闹事,
使做事的人不得不做更多的事。

结果,
好事变坏事,
小事变大事,
简单的事变复杂的事。

然后公司开始出事,
为了解决这些事,
老板开始要求不做事的人做些事,

这些人才做一点点事,
就到处说他做了全天下最难的事,
也有人啥事也不做,
只会说这是一件不可能成功的事。

最后,
做事的人还是不得不接下这些没人做的事,
公司得救了,
不做事的人就说:
那还不是他们在开头做了许多事,
公司完蛋了,
他们也会说:
我早说过那是不可能成功的事。

最后全公司的人都不做事,
反正不做事也不会出事,
多做事反而会惹事。

阿拉伯谚语:
“你若不想做一件事,可以找到一万种借口。
你若想做一件事情,终会找到一个方法。”