本文主要是介绍至暗时刻的一丝曙光:关于对接银行项目的一些感悟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 更新
- 前言
- 前期准备
- 文档方面
- 环境方面
- 准备各式各样的离线资源包
- 线上环境
- 开发环境
- 中期实施
- 部署
- 驻场开发
- 系统对接
- 后期
- 孤独的开发工程师
更新
2020-08-24更新“后期”小节
前言
首先,这不算是一个技术类的分享,它是我职业生涯以来面临的少数除技术外较为棘手的业务场景,事实上整个项目的实施过程确实充满了曲折,一度让我有些抓狂甚至偶尔产生想要放弃的想法(值得庆幸的是也学到不少东西),故而记录一些开发过程的感悟。
前段时间,公司接到了一个银行的对接项目,一番沟通过后,由我来负责跟进这个项目。
以上是大的背景~
前期准备
嘛~在做之前首先需要了解一些银行的开发背景和需求,大致如下:
- 银行内部使用封闭式的开发模式
- 需要私有化部署
- 需要驻场
- 需要对接行内的各种系统
- 行内6点左右就下班了
做足了功课,那么继续往下推进~~
文档方面
跟行内的架构师讨论项目的部署方案,直观的感受就是,银行可真有钱…一套B类系统(就是非主要系统)。对方要求在两个城市分别构建数据中心,每个数据中心又分为云上云下两套服务集群。项目采用k8s进行部署,撇开配置不谈,一套服务需要的容器大概是15个,每个服务都要配置高可用。最低估算,按照要求光容器就要120个(原谅我没见过世面…)
以上属于口胡…
银行项目对文档要求十分严格,技术方案的文档是由我们这边提供,前前后后改了大半个月,大概改10来版(对,你没看错,这还只是我负责的一份文档),包括但不限于需求概述、现有系统架构和环境、总体架构(物理架构/应用架构/数据架构)、开发技术、网络硬件负载均衡设计、存储与备份设计、高可用设计、运维监控、安全架构等
仿佛回到了2年前疯狂改论文的那段时光~~
编写文档的过程中,真心要吐血,但是也确实学到很多东西,由于很多东西不了解,编写过程中,要及时向这这方面的同事和行内老师及时请教。写完一版要先公司内部过一遍,在交出去。万一某项细节方面公司内部出现分歧就尴尬了。另外类似这种文档,一般要通过正式邮件发送,包括其他一些比较正式的文件都需要走邮件,这样比较符合规范,能够避免一些不必要的麻烦。
环境方面
刚才已经提到过,银行属于封闭式的开发模式,简单来说就是没有外网。最开始了解到这个消息,我心里就是咯噔一下,大呼不妙~
这里还有个前提,如果对方要求你连自己的电脑都不能带的话,那还是赶紧跑路……对于面向Google开发的程序员来说简直是毁灭性的打击。
准备各式各样的离线资源包
在去银行进行部署、开发之前,先把对方行内的系统大致了解清楚后,就可以开始着手准备各式各样的离线资源包了。这里要区分线上环境和开发环境,就拿我这个对接的项目来说,主要是准备python相关的资源和一些前端资源。
线上环境
由于是k8s部署,我们只要准备好镜像包就OK了,包括前端镜像和后端镜像(吐槽一下银行导入资源必须得找专人,几百k/s的资源导入速度也很感人…)
开发环境
就是对方分配给你的开发机,需要搭建本地开发环境,这个要的东西就多了。如果能够自己带电脑的话,当然可以在自己电脑上进行开发。
但是这个开发机不能不管,甚至后面没有他会让你痛不欲生(别问我为什么知道的),因为之后与银行内部系统的对接调试,必须要通过这台机子来完成。
银行给到的机器的开发环境搭建是高优先级!!!
我们要准备的大概有python本体
,一个合适的IDE
,用的顺手的开发工具(大多数情况下只能使用免费的,收费的不让装)
,其他数据库
及中间件(比如redis)
的安装包。因为我很多年不用windows,而银行提供的机子又好死不死的是win8系统,开发环境搭的我人裂开来…
中期实施
部署
这个没什么好说的,需要吐槽下行内提供的容器管理平台超级不好用,以至于后面一直跟银行的老师申请kubectl的终端权限…
驻场开发
由于不能连接外网,开发过程中自然免不了驻场,这个光荣而又艰巨的任务当然是落到了我的头上。
此时你能够与外界沟通的唯一渠道就是手机,不要吝啬流量,开个热点给自己的电脑比什么都好…
开发过程最好是在自己的电脑上,这样效率是最快的,可以选择驻场期间进行对接调试,回公司进行快速开发(前期部分开发是在银行内部进行的,网络环境极差(只有手机流量),而且客场压力山大,与同事的沟通成本大幅增加,开发效率显而易见了,所以之后才考虑换成上面说的开发模式)。
系统对接
由于银行系统只能通过行内网络进行访问,系统对接必须要在开发机上进行,此时就体现出搭建开发机环境的重要性。
对接过程中,有两个比较重要的流程,一个是阅读文档
,一个是沟通
。银行的文档是我目前看到过的最为全面也最为复杂的。从开发的角度看,一篇文档有效信息大概也就20%左右。此时要多多注意快速提炼出需要的部分,其他的扫一眼赶紧过掉,不然读文档就要花掉非常大一部分时间。
银行的项目,大多数时候,你想要一个接口文档,对方却丢给你一份系统的文档,你想调他们的服务还得先熟悉他们的系统,这么蛋疼的事情最好不要自己一个人默默的做,尽量交给银行对接的人来负责(如果有的话,不,没有也得整一个出来)
沟通方面,尽量不要害羞(再次吐槽下银行的聊天软件,各种不好用),明确下沟通方式的优先级
当面聊
> 电话聊
> 微信聊
> 行内软件聊
打字聊天信不信对方可能几个小时都不会回复你一下(这个倒也不是只有银行这样)
另外沟通尽量在6点前进行,晚了银行的老师就该下班了…(匿名羡慕…)
跟自己公司的同事就不要客气了,有问题赶紧甩个电话过去就好。
后期
还处在中期阶段,持续更新中,希望项目能够顺顺利利的进行~^ _ ^~
孤独的开发工程师
20200804更新
太忙导致写文章的热情大大降低,很多想做的事情无限搁置ing…
努力寻找一个华丽的蜕变
开发进行到中后期阶段,本人也已经驻场快2个月了,长期独自驻场的感觉并不好,除开开会以外,其他时候一直是与世隔离的状态(银行这边只有我一个人,其他小伙伴场外援助,呕血…)
行内对接以、环境、资源申请等其他琐事多且漫长,加上行内的老师下班很早(6点之后基本找不到),故而个人的开发状态一直是白天忙银行的对接,晚上7点以后看文档,编写代码。
这是在前中期大部分开发任务都分配给其他同事,分摊了压力的情况下,目前来看,整个开发到测试的流程是撕裂的(行内行外两个世界,网络,系统,文档互相隔离),我这边需要小心翼翼的去维护和协调,这是拖慢工作效率的罪魁祸首
另一个原因是资源不够(指开发),根据行内老师的开发经验,系统对接前期需要投入大量的资源,之后在慢慢撤出,这一点很重要
最要命的是交付时间上卡的非常死,基本是每天车轮碾屁股的感觉。
总的来说,目前公司系统对接银行很吃力,咬牙坚持中~
这篇关于至暗时刻的一丝曙光:关于对接银行项目的一些感悟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!