Open astrisk opened 2 years ago
这几年工作主要在做容器平台和微服务基础设施相关,这次课程很多涉及到架构方面,跟自己的工作内容上还是有很大的匹配度。所以根据课程所学以及工作内容,经验思考进行总结。整体的内容会跨越:容器云平台架构;微服务架构;研发流程和工程能效。
由于最近两年的在公司的项目中运用了容器化和微服务架构以及相关技术。但是在实际项目实施过程中,涉及到多个部门和团队的协作,尽管都是微服务和容器化,但是从整体和技术细节都暴露出很多问题。通过训练营的学习结合自身项目经验,对相关内容进行总结以优化现有技术架构。
公司的主要面向2B的政企客户,而且基本上都是本地化项目。由于不同的客户,在IT基础设施和理念上还是存在不小的差异,有传统的物理机架构,有正在上云的,也有已经 IaaS+PaaS+混合云架构的客户。同时我们项目的非功能需求主要偏向于稳定性,可靠性和安全性,成本其次,基本上不存在高并发。针对这种类型的项目,主要技术架构设计如下图
容器基础设施承载上层容器应用运行,其自身的稳定性,可靠性,安全性,可扩展性直接关系到业务系统的稳定以及客户对业务应用体验。所以在进行平台部署规划时需要遵循以下架构设计原则:
弹性原则
安全原则
高可用原则
可观测性原则
资源隔离原则
成本优化原则
根据如上设计原则, 容器平台架构图如下
由于公司各个团队的技术栈和技术能力存在差异,在一个大项目中集成多个团队的微服务进行整体交付就暴露出来很多问题,无论是研发配合还是运维都比较难受。所以着力进行微服务基础设施统一建设和接入,这样不仅能提升研发效率。
由于项目交付涉及到公司不同团队的产品,各个产品由独立团队进行设计开发。但是组合成解决方案交付时,业务微服务从架构上看存在以下问题:
针对以上问题,对公司不同产品架构进行重构升级,微服务架构优化如下:
面对大规模服务和多团队配合交付大项目,基础设施和工具,技术很重要。但是如何把交付流程结合基础设施进行比较好的结合,简化团队流程,同时倡导DevOps文化,才能让整体的工程效能得到比较好的提升。 这方面主要涉及到以下几个方面:
围绕着项目交付的生命周期,如何把基础设施平台和交付中的各类角色工作进行很好的串联,疏通各个环节流程的同时,尽量简化不必要的流程,让整体流程保持短平快,以适应交付项目的节奏。同时尽可能的让流程能够自动化的,轻量级的串联各类角色,降低整体流程的学习成本。
写了一天时间,还有挺多东西需要细化,后面会继续深入细化。先把作业交了。
毕业设计
这几年工作主要在做容器平台和微服务基础设施相关,这次课程很多涉及到架构方面,跟自己的工作内容上还是有很大的匹配度。所以根据课程所学以及工作内容,经验思考进行总结。整体的内容会跨越:容器云平台架构;微服务架构;研发流程和工程能效。
工作背景
由于最近两年的在公司的项目中运用了容器化和微服务架构以及相关技术。但是在实际项目实施过程中,涉及到多个部门和团队的协作,尽管都是微服务和容器化,但是从整体和技术细节都暴露出很多问题。通过训练营的学习结合自身项目经验,对相关内容进行总结以优化现有技术架构。
技术架构优化
公司的主要面向2B的政企客户,而且基本上都是本地化项目。由于不同的客户,在IT基础设施和理念上还是存在不小的差异,有传统的物理机架构,有正在上云的,也有已经 IaaS+PaaS+混合云架构的客户。同时我们项目的非功能需求主要偏向于稳定性,可靠性和安全性,成本其次,基本上不存在高并发。针对这种类型的项目,主要技术架构设计如下图
容器云基础设施
容器基础设施承载上层容器应用运行,其自身的稳定性,可靠性,安全性,可扩展性直接关系到业务系统的稳定以及客户对业务应用体验。所以在进行平台部署规划时需要遵循以下架构设计原则:
弹性原则
安全原则
高可用原则
可观测性原则
资源隔离原则
成本优化原则
根据如上设计原则, 容器平台架构图如下
微服务架构优化
由于公司各个团队的技术栈和技术能力存在差异,在一个大项目中集成多个团队的微服务进行整体交付就暴露出来很多问题,无论是研发配合还是运维都比较难受。所以着力进行微服务基础设施统一建设和接入,这样不仅能提升研发效率。
业务微服务架构优化
由于项目交付涉及到公司不同团队的产品,各个产品由独立团队进行设计开发。但是组合成解决方案交付时,业务微服务从架构上看存在以下问题:
针对以上问题,对公司不同产品架构进行重构升级,微服务架构优化如下:
研发流程优化
面对大规模服务和多团队配合交付大项目,基础设施和工具,技术很重要。但是如何把交付流程结合基础设施进行比较好的结合,简化团队流程,同时倡导DevOps文化,才能让整体的工程效能得到比较好的提升。 这方面主要涉及到以下几个方面:
围绕着项目交付的生命周期,如何把基础设施平台和交付中的各类角色工作进行很好的串联,疏通各个环节流程的同时,尽量简化不必要的流程,让整体流程保持短平快,以适应交付项目的节奏。同时尽可能的让流程能够自动化的,轻量级的串联各类角色,降低整体流程的学习成本。