银行前端机器的 "跪式服务"。
01 PART
引子
银行前置机一直是个很烦的业务,技术含量不高但是特消耗精力,投入产出比又低导致从业者待遇极低。从业这15年里,印象中遇到过三次以上的银行前置机故障,每次都令人及其痛苦。讲两个大家常见的现实案例:
案例1:某公司内部银行前置机多(百八十台且都是五年以上的老破过保机器)且归属及责任不清(有银行提供的,有自己采购的;历史遗留的 摊子,没有明确哪些工作由那个团队负责),每次前置机故障财务同事紧急催内部运维(理由:我们XX时间要打款,如打不出去后果XX)。运维人员:“这事也不归我管啊,你们财务部自己管找我们干啥“。财务人员:”不找你们找谁,公司就一个运维部,我们又不懂技术。我不管,反正你给我修好“。然后财务老大和运维老大一合计,运维最后还的*协助和背锅连夜搞。
案例2:某公司卖给客户一套私有云平台,客户想把银行前置机放到云平台上。可悲的是云平台不支持usb直通导致虚拟机不识别银行usb-key。客户死缠烂打,销售中间和稀泥,公司架构和研发不支持或者反馈后续版本增加这个功能(后续遥遥无期,客户又觉得你公司不靠谱);迫不得已运维强上背后通过命令行手工绑定临时解决。过几天插usb-key的物理机故障了,银行前置机虚拟机飘到其他宿主机上了,客户又是各种电话和case紧急骚扰,搞的你精疲力尽且客户体验也很糟糕。
今天还有一个同事,同事要把银行前置机放到虚拟机上并做usb直通。聊了半天,反馈:测试环境当前有没有物理机资源,先临时用虚拟机跑起来。最后和同事沟通的结果:技术上可以做,但是运维人员不背锅不担责。
回顾和反思了这些年遇到的前置机问题,总觉得需要做点什么,一劳永逸的解决银行前置机这个烦人的问题;由此引出了这篇技术文章。
02 PART
前期准备工作
A
前置机特点
1)操作系统:清一色windows
2)硬件配置:要求很低(CPU:4core 内存:8-16G 硬盘:100G)
B
相关部门需求分析
1)财务人员的需求:银行前置机7*24可用
2)运维人员的需求:业务及基础设施高可用+降低故障紧急度(故障后无业务催或者有非常大的缓冲时间)
3)公司的需求:降成本提效率
03 PART
解决思路
A
多赢
多赢其实就是相关部门利益的协调和满足。银行前置机涉及到公司、财务、运维多方的利益。充分协调和调度相关部门及领导的支持和配合才是项目成功的关键。
B
运维部门的担当
运维部门的担当其实就是尽最大可能提供优秀的技术方案选型,满足财务需求同时还要满足公司降本增效,另外还要降低自身压力和工作量。
C
财务部门的担当
财务部门的担当其实就是在项目预算上不能太抠,对运维部门给出的优秀的方案要给与支持和敢于支持。
D
客户教育及明确责任
技术部门需要和财务部门充分沟通并明确相关责任,而不是屈服或者跪式服务。告知财务部门当前现状及存在的问题及对应的解决思路和相关责任方,同时提供改进和优化的方案及相关收益。
04 PART
银行前置机相关方案
A
传统物理机方案
点评:成本支出高昂且效率低下,业务、运维、公司三方都无受益且体验极差;此方案为最传统方案。
B
虚拟化方案
点评:成本支出适中且效率高,最大受益公司成本降低;业务受益效率提升;运维不仅无受益还面临技术复杂和运维压力极大的困境;此方案几乎很难推广(运维抗雷背锅)。
C
虚拟化+usbanywhere方案
点评:成本支出最低且效率高,业务、运维、公司三方受益;应该是目前最好的方案。
usbanywhere推荐产品:http://www.remoteusb.com/此产品相对冷门,大部分人应该不清楚(备注:非广告)。
05 PART
额外知识补充(kvm直通usb挂载)
A
定位usb-key路径
usb-key插入前后图片对比
B
vm绑定usb-key配置文件
C
vm绑定usb-key命令及验证
备注:29为vm的id,通过virsh list --all获取
推荐阅读
-
35 岁实现财务*,腾讯程序员手握2300万提前退休?-1000万房产、1000万腾讯股票、加上300万的现金,一共2300万的财产。有网友算了一笔账,假设1000万的房产用于自住,剩下1300万资产按照平均税后20-50万不等进行计算,大约花上26-60年左右的时间才能赚到这笔钱。也就是说,普通人可能奋斗一辈子,才能赚到这笔钱。在很多人还在为中年危机而惶惶不可终日的时候,有的人的35岁,就已经安全着陆,试问哪个打工人不羡慕?但问题是有这样财富积累必然有像样的实力做靠山。没有人可以不劳而获。 看到这里,肯定有人说,那么对于普通人来说,卷可能真就成了唯一的出路。但是卷也有轻松的卷,“偷懒”的卷法,对于程序员而言,刨除掉一时无法改掉的开会传统占用的大部分时间,如何把有限的时间和精力放在真正重要的架构设计、需求设计上,而不是重复的造*,编码、改bug、手动测试。因此在科技改变生活的今天,学会使用AI工具成为程序员们的必备技能。 以全栈式全自动的软件开发工具飞算SoFlu软件机器人为例,作为全球首款面向微服务架构设计和最佳实践的软件机器人,SoFlu软件机器人改变了原来手工编码的作业模式,通过可视化拖拽方式以及参数配置就能实现等同于编写复杂代码的业务逻辑,在设计业务逻辑时就完成了微服务应用开发,做到“业务即图,图即代码”,实现“软件开发,十倍提效”。 而作为飞算SoFlu软件机器人的一个重要组成部分,FuncGPT(慧函数)支持所有类型函数创建。通过自然语言描述Java函数需求,实时生成高质量、高可读性的Java函数代码。生成代码可直接复制到IDEA,或一键导入Java全自动开发工具函数库。 FuncGPT(慧函数)具有五大核心能力: ● 自然语言:通过自然语言即可生成函数,降低软件开发门槛。 ● 秒级函数开发:全自动秒级开发函数,秒级完成,效率千倍提升。 ● 一站式函数开发应用:函数生成即可直接应用,效率、安全有保障。 ● 质量可靠:生成的函数代码符合业界规范、具备良好的可读性,符合最优解。 ● 灵活生成:可以根据开发人员的具体需求生成并支持调整和修改。 以“将文件流转换为File对象”这个需求为例,以下是FuncGPT(慧函数)秒级生成的代码: / 类名:FileConverter // 函数名:convertStreamToFile // 函数功能:将文件流转换为File对象 // POM依赖包:无 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; public class FileConverter { /** * 将文件流转换为File对象 * @param inputStream 文件流 * @param filePath 文件路径 * @param fileName 文件名 * @return 转换后的File对象 * @throws IOException 如果发生I/O异常 */ public static File convertStreamToFile(InputStream inputStream, String filePath, String fileName) throws IOException { File file = new File(filePath + File.separator + fileName); // 创建File对象 try (FileOutputStream outputStream = new FileOutputStream(file)) { // 创建文件输出流 byte buffer = new byte[1024]; int bytesRead; while ((bytesRead = inputStream.read(buffer)) != -1) { // 从文件流读取数据并写入文件 outputStream.write(buffer, 0, bytesRead); } } return file; // 返回转换后的File对象 } } // 函数示例 // 将文件流转换为File对象示例 // 入参:inputStream,文件流 // 入参:filePath,文件路径 // 入参:fileName,文件名 // 出参:file,转换后的File对象 // 调用示例: // InputStream inputStream = new FileInputStream("example.txt"); // String filePath = "C:\\Users\\User\\Documents"; // String fileName = "example.txt"; // File file = FileConverter.convertStreamToFile(inputStream, filePath, fileName); // System.out.println(file.getAbsolutePath); // 输出结果:例如,将文件流转换为File对象后,文件的绝对路径为:C:\Users\User\Documents\example.txt // 则输出结果为:C:\Users\User\Documents\example.txt 通过分析,不难发现以上代码:
-
银行前端机器的 "跪式服务"。
-
2022爱分析视角下的银行数字化服务商全景报告 - 3.11 版块探究分布式数据库