论文部分内容阅读
一个小型电商项目的接口数在300-500个,大型项目接口数量可达到上千个。对于一个成熟的互联网企业,仅其业务线就有几十条,每条业务线还会有数量若干的项目,在企业层面,它的接口数量是百万级别的。这些接口本身是一种无形的财产,而且业务所包含的接口是有生命周期的,所以加强接口层面的管理,对整个公司产品的设计、开发、测试、运维效率提升有十分大的意义。在这种背景下,本文针对国内外接口平台的现有状况,结合企业具体情况,提出将私有云和接口平台相融合的优化设想。在明确私有云技术特点,及其具体实现方法Docker技术的基础上,从功能需求和非功能需求两个方面对基于私有云的接口平台进行分析,并且对比了企业内部类似平台与服务,考虑到各种场景与使用习惯,归纳总结后形成接口平台6大功能,即配置管理功能、接口管理功能、Mock数据功能、执行计划功能、统计报告功能、容灾备份功能。接口平台在企业内部定位是统一的通用类工具,用户通过拉取镜像使用接口平台,针对灵巧、便捷的开发语言及丰富的数据处理插件的需求,使用Python作为主要的开发语言;针对轻量级框架,以镜像方式被用户拉取,使用Django框架,并用Docker进行部署;对于前后台分离的开发模式,引入Dj angoRES TFramework;针对文档性参数、内容和结构灵活多变的数据,本系统选择采用MongoDB,并把数据库操作部分作为Django的Model层抽离,借助MongoEngine实现。在明确系统架构的基础上,本文探讨私有云的虚拟化技术、容器化技术,指出了在开发与测试运维阶段的痛点,并介绍了基于Docker的接口平台私有云部署方案。基于Docker的私有云,本质是一整套以Docker为核心的,代码托管、自动构建、私有镜像托管、容器创建、动态负载的工作流。在接口平台的开发与测试环境,使用Docker Compose部署HAproxy和Nginx并进行负载均衡;在生产环境,使用Docker Swarm Ingress,借助LVS低成本高效率地进行负载均衡,并用Docker Stack进行线上热修复,Gitlab-CI进行持续集成,这样开发与生产环境之间,利用容器技术作为桥梁,完成开发运维一体化(DevOps)从概念到实施的完美结合。最后,本文统计了接口平台投入生产后的收益和效果,并接入企业具体业务项目进行测试,验证方案设计、系统效果、业务需求。