返回 登录
0

普元微服务架构封闭式开发实战经验

微服务(Microservice)架构目前受欢迎的程度已无需赘述。CSDN之前的文章解释了微服务是如何演变的,又为什么重要?然而微服务架构的迁移不可能一帆风顺,也会面临很多挑战,CSDN将通过已经投入微服务架构的团队的实战经验,探秘微服务架构实践可能遇到的坑以及可行的解决思路,供开发人员参考。本期的实战经验,来自普元研发团队。

普元信息经过为期两个月的封闭式开发,已完成了The Platform数字化企业云平台的最小化可行产品(MVP),并实现了技术架构、开放研发、组织三维度的目标。普元信息CTO焦烈焱接受CSDN记者采访,介绍了普元对微服务架构的认识、普元微服务架构规划,以及本次封闭式开发的任务、挑战和心得。

微服务架构规划

微服务架构是普元所理解的IT精益运营的四大核心工作之一。普元将IT精益运营视为企业数字化转型的必经之路,针对IT精益运营面临的失真的信息传递、未知的技术欠债、过高的隐性成本、缺乏架构升级的支持、隔离在虚拟社会之外等诸多挑战,普元认为需要通过业务、架构、流程、组织(BAPO)四个方面的变革来应对。架构方面,普元确立了基于微服务的云计算架构的策略。

图片描述

实施 IT 精益运营的IT发展战略

微服务架构设计中,普元参考了CloudNative的12原则,以及微服务架构模式与最佳实践,将普元的产品和组件逐步服务化、轻量化,再增加包括微容器、同步异步通信等能力,形成架构参考。

图片描述

普元基于微服务的云计算架构

焦烈焱进一步介绍,普元是按照一个个MVP迭代设计的,每一个MVP的设计过程都是按照下述阶段来推进的:

  1. 发现(发掘)问题,在这个阶段需要收集各渠道的信息反馈,分类整理,形成核心场景流程,分析出其中可提升的活动;
  2. 抽取可自助和自动的能力,在这个阶段需要按微服务的方式对能力进行罗列,导出各能力的前后对比及提升效果;
  3. 划分领域支撑系统,将需要提升的能力分类,参考DDD设计,形成本次需要新建或完善的子系统(微服务);
  4. 全景图与分层架构,基于子系统,形成平台逻辑全貌图,并对平台做领域分层;
  5. 团队分工预研,将团队与领域映射,团队可配合进行前期的设计和预研;
  6. 4+1视图,与传统设计类似,刻画平台的逻辑、物理、运行、开发视图;
  7. 关键设计,部分设计虽然很小,但非常关键,对后续有重要影响,需在总体设计中体现。

总体来说,这种MVP方式的迭代设计会非常快,按普元的经验,大概在3周左右是可以完整的进行一次微服务架构设计。

封闭式开发

从规划可以看到,微服务不仅涉及技术架构,也涉及组织管理的变化。确立了微服务架构,普元进入了封闭式开发的状态。

涉及的业务和技术

  • 涉及的业务包括:配置中心、知识库、元数据、项目管理、告警中心、资产管理、调度中心、持续集成、行为分析和认证中心等。

  • 涉及的技术包括:

    • 前端&终端:React、Redux、Bootstrap、D3、Immutable等;
    • 基础服务端:Spring Boot、RESTEasy、etcd、Nginx、OAuth、Kafka、ELK等;
    • 基础设施端:Kubernetes、Docker、SaltStack、cAdvisor、OpenStack等。

对开源技术的选择,主要基于如下三大原则:

  1. 社区活跃度(是否有良好的生态);
  2. 架构合理性(需适合微服务架构);
  3. 支撑厂商(有大公司或厂商做后台保障)。

重点工作和难点

本次封闭式开发的工作任务包括三个维度:

  1. 技术架构层面:

    • 完成The Platform数字化企业云平台的总体设计、场景验证、关键技术预言;
    • 实现The Platform数字化企业云平台第一个MVP。
  2. 开放研发层面:

    • 完成The Platform数字化企业云平台的产品定义形成与用户沟通的共同语境;
    • 全面展开以研发文档、研发过程、研发技术全面分享与开放的InsideOut计划。
  3. 组织过程:

    • 以利他和客户价值为出发点,形成共有的价值观和工作方式,形成产品研发过程基线;
    • 建立高效组织,形成以黄金圈、MVP、学习型组织为核心驱动力的组织团队。

普元提出了InsideOut产品研发开放计划,通过对普元The Platform数字化企业云平台的研发过程、研发文档、研发技术的全面开放,来形成软件行业的“众筹模式”,让用户从软件的研发设计阶段就深度参与,从而降低技术的转化成本和创新的社会化成本。

普元InsideOut计划将陆续开放约56份会议纪要、73份设计和1000余篇研发日记,并将通过持续举办的约50节公开课,让企业级开发者和技术运营者熟悉和掌握企业级云计算平台从设计到研发以至运营的全过程。

三维度所涉及的内容都比较重要,难点主要体现在:

  1. 从客户价值维度进行产品定义以及总体设计的烧脑过程,一个产品从0-1所经历的纠结与选择;
  2. 千人千面,团队中每个人的知识领域、背景等方面都不一样,如何短时间内达成共识、在一个共同愿景的指引下,碰撞出智慧火花带动团队共同朝前走。

图片描述

普元微服务封闭式开发现场

投入与成效

普元本次封闭式研发总共投入了两个月的时间,团队主要分两批进场。

  • 第一批入场人员,提前一周进场,明确了普元新一代企业云平台的战略定位,梳理场景,讨论如何对接下来的第二批入场团队从思想、认识、理念、架构等方面达成共识。
  • 第二批入场人员,第一周开始集中培训,第二周开始进行各模块概要设计、详细设计,达成共识后,第二个月主要工作就是编码、测试、联调等工作。
  • 除研发资源外,公司其他事业部的同事也会对新一代企业云平台提出意见、建议,并带一些客户、合作伙伴来现场参观、交流。

通过封闭式开发,普元研发团队完成了数字化云平台的MVP版本,并实现了技术架构、开放研发、组织三维度的目标(如前文所述)。焦烈焱表示:如果不通过封闭,新的团队无法再短时间内达成思想、认识、技术架构上的共识,协作与沟通的成本也会比现在要高;在组织过程方面,普元制订了以后整个团队的行为准则,并固化了工作和思维的方式,不通过集中封闭,做到这些的代价会更高。

图片描述

普元微服务封闭式开发现场

封闭式开发的感受

谈到本次封闭式开发的最大感受,焦烈焱总结了如下几点:

  1. 在微服务架构开发中,系统变得越来越复杂,使得系统间服务调用越来越多,开发阶段如何保证大家各自负责的模块或服务的联调顺畅,是与传统开发模式下最大的不同。

  2. 对于微服务中的技术应用,需要注意这些技术的可集成性,同时要求这些技术本身的可靠性、高性能等。

  3. 这次开发过程中,最大的挑战来自于基础设施,因为普元的云计算平台将最终部署在公有云上,公有云的任何问题(稳定性、升级等)都对普元的平台存在影响,比如公有云平台上CoreOS的升级问题、块存储能力的提供等,普元通过定时快照、NFS等技术,以及一些管理手段解决了大部分问题,但仍旧需要找出最佳实践,从开发到运维,更自动化的解决难题。

总结

本文介绍了普元研发团队基于两个月封闭式开发提炼的微服务研发心得,包括架构的设计、业务及技术的选择等内容。普元认为,技术的开放、共享,既符合互联网的核心精神,也是降低技术转型的成本、提高软件交付的效率与质量的有效途径。如果您也有微服务实践的经验或者其他的建议希望分享,请在评论框中留言给我们交流。

评论