浅谈普惠金融平台的运维发展与运维自动化实践

  •   2017-03-23/10:55
  • 经过了互联网金融野蛮式生长阶段,从2015年开始规范发展和普惠金融成为中国互联网金融发展的主旋律,2016年初由国务院印发的《推进普惠金融发展规划(2016—2020年)》更成了互联网金融企业奉行的圭臬。从FinTech金融科技的角度来看,普惠金融就是充分利用互联网、云计算、大数据等技术手段,有效降低金融服务的连接、信息和计算成本,进而降低金融门槛,达到人人可参与、人人可用的金融方式。普惠金融的发展不但改变了金融企业传统的IT架构和服务交付方式,对于越来越复杂的IT系统运维也提出了更高的要求,如何确保部署在云端的金融平台和业务的稳定、高效运转,成为IT部门必须直面的一道难题。

    诺亚财富是纽约证券交易所上市的独立财富管理机构,也是中国独立财富管理行业的开创者和领导者。财富派作为诺亚财富集团旗下专为白领、中产精英等高潜力人群打造的高品质财富管理平台,通过贯彻普惠金融(inclusive financial system)的理念,有效、全方位为中国中产阶级提供综合金融服务,致力成为互联网私人银行,全面打造专属于高潜力人群的综合金融服务平台。财富派于2014年6月8日上线,次年3月获得红杉资本的战略注资,截止2016年12月底,财富派已经帮助客户累计管理资产规模已经超过320亿。

    《监控与性能优化》社群有幸邀请到财富派运维总监褚哲敏先生,为我们带来他从业多年以来对互联网金融企业运维发展的一些心得体会,下面就是他的精彩分享:

    大家好,我是来自诺亚财富旗下产品财富派的褚哲敏,主要负责财富派的运维工作,今天有幸能够和大家分享我这些年运维经历中的一点感想,以及跟大家一起探讨下财富派的运维自动化。

    本次分享的主题如下:

    l 运维1.0  运维2.0  运维3.0

    这里的运维1.0,2.0和3.0是本人根据近十年运维过程总结出来的运维3个阶段。

    运维1.0:也叫作脚本时代,大家是否对shell,bat记忆犹新?最早做运维的时候,大家为了减少重复的工作,无论Windows还是Linux都会通过脚本来减少重复工作。日积月累,脚本的数量越来越多,对运维人员的专业要求也越来越高。

     

    为了更好的管理IT系统,逐渐出现了一些运维产品,我们也进入了运维2.0,也就是产品时代。常见的运维监控产品有Nagios,Zabbix;运维管理工具有puppet,saltstack等。运维产品的出现大大提高了运维的效率,同时也降低了一部分运维门槛,即便不懂脚本开发,只要熟悉使用这类运维工具就能快速的上手做运维。

    随着运维产品的增多,运维需要熟悉的产品也越来越多,慢慢进入运维3.0,也就是平台时代。结合ITIL理论,同时融合devops概念,将各个运维产品系统进行集成,运维自动化程度越来越高,运维效率越来越高,运维入门门槛越来越低。

    核心思想:释放运维重复劳动力

    通过运维的三个阶段来看,本人总结最核心的思想就是:释放运维重复劳动力,让运维不再做重复繁琐的工作,运维工作更加高效。而我也一直和团队传达这样的思想,运维要学会“偷懒”,重复的工作要通过工具、平台来完成,释放自己的劳动力!

    财富派运维自动化系统ops

    财富派的运维自动化是2016年Q2开始开发,结合了ITIL的理论,目前完成了发布模块、配置模块、审批模块,正在进行cmdb模块的优化。

    Ø 发布模块:

    解决了开发从提交代码到代码上线的所有过程,并且整个流程运维是不参与的:

    目前发布系统支持:php,node,js,go,c++,python等语言发布;

    开发提交代码到git,随后提交ops审批和发布任务(后续会将审批和发布打通);

    对应测试人员看到相关任务,进行部署测试、预发、上线,在任何一个环节都可以点击回归开发;

    每个操作都会邮件通知相关人员;

    所有发布都有记录,方便日后的进行审计;

    一键回滚,支持历史版本回滚(回滚需运维人员操作);

    SQL发布结合审批工单,自动创建SQL任务,执行SQL;

    Ø 配置模块

    Ops所有项目均可配置;

    产线使用etcd进行配置管理,OPS和etcd进行打通,所有修改在OPS进行,方便日后进行审计(后续会和审批打通,审批通过自动进行相关配置);

    Ø 审批模块

    n 结合安全规范和审计要求,所有变更都必须有审批记录,所以我们开发了审批记录,并且逐步将审批和对应任务进行打通。

    l OPS未来规划:

    CMDB优化的规划,以cmdb为中心,将各个开源软件进行打通(包括,堡垒机,监控系统,OPS,公有云等等);

    结合公有云API,实现快速开机,并且快速部署上线以及后续服务(包括堡垒机,监控,日志分析系统等等);

    组合发布:相信很多公司的业务架构和我们一样非常的复杂,并且存在多种开发语言混用的情况,一个版本发布可能存在PHP、C++、SQL等等组合类型发布,后期我们会在现有单一发布模块上封装组合发布。

    l 统一监控平台(规划)

    大家是否和我们一样,存在共用多套监控系统的情况,每套监控系统的作用还不同,并且存在多个监控系统独立告警,当一个问题出现时,多个告警同时报警的情况?

    我们一共存在三套监控系统:Zabbix,公有云监控和云智慧监控宝。通过Zabbix监控服务器内部性能和应用业务,公有云监控主要监控公有云产品相关运行状态,监控宝主要做网络链路的监控,每套监控系统都有自己的告警,会导致告警量很大,因此我们后期会在平台上实现统一监控告警管理、多条件组合告警,为服务自愈提供监控基础数据。

    金融行业对信息安全的重视程度是最高的,然而安全策略等级越高往往意味着运维效率越低,所以我们更需要不断提高运维自动化率来解决这一矛盾,在自动化运维的道路上前进! 以上是我的一点心得分享,欢迎大家指正,谢谢!

    Q&A

    问:你们的主机是自建还是云服务商的?

    答:混合云,并且是多云厂商。

    问:有没有碰到过不能有效自动化的任务?

    答:目前来说,任务只要细分得当,都是可以自动化,只是自动化的复杂程度不一样。

    问:部署时候针对那些要执行SQL的怎么统一规划?

    答:使用统一模板提交审批,并且提供回滚SQL语句,并且经过2级人员进行审批,在自动发布时系统进行语法校验,随后会进行异步执行,并把结果返回给前端,如果出现错误,立刻邮件短信通知开发和运维。

    问:业务部门的统计需求如何处理?

    答:业务部门的统计需求其实是统计报表功能,更应该在业务报告系统体现。

    问:我们的任务需求总是变动,常常被这个拖了时间,自动化项目也因此而暂停了,不知道您是怎么处理这个问题的?

    答:对于运维任务这个问题,首先说一下我们的团队构成,有一半是运维工程师,一半是运维开发工程师,并且每个运维都需要轮流值班(包括运维开发也需要了解运维日常工作中的需求点)。确实,需求的增加肯定比开发进度快,这其实是项目经理需要考虑的问题,如何进行项目需求优先级设定。比如我刚到公司的时候没有运维开发,所有运维都被大量的发布工作占用了全部工作时间,当时动员大家为了之后有更多时间学习和提高自己的技术,必须立刻进行运维自动化系统的开发,提高发布效率。

    问:你们在安全审计这块是怎么做的?

    答:目前我们每半年会做一次内审,主要是对项目变更,项目权限等方面的审计,所以后来我们做了审批模块,发布模块来让系统记录提供数据!至于安全审计,我们使用开源堡垒机(jumpserver)进行运维人员审计,同时使用一些第三方的安全产品进行数据库,系统等方面审计。

    问:能不能透露下用了哪家第三方产品做系统方面审计?

    答:这个第三方产品比较多,可以去了解一下云安全这块,如果需要在深入了解,可以加我微信。

    问:ops这套系统有做备份容灾方案吗?

    答:本身做了集群化,并且OPS实现了多机房、多云厂商的分布式发布。因为目前我们的业务较为复杂,有2个云厂商机房,一个自建机房(受监管)。

    问:运维跟开发是什么关系?

    答:运维和开发是一个产品生命周期中两个相辅相成的工种,缺一不可。 开发主要是负责产品代码层面架构以及实现,而运维,更偏向于底层基数设施的架构和优化,基础设施主要包括网络,服务器,虚拟化,基础软件等等。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多