首页 > 其他分享 >微宏科技基于 KubeSphere 的微服务架构实践

微宏科技基于 KubeSphere 的微服务架构实践

时间:2023-10-11 11:23:24浏览次数:35  
标签:CI 架构 微宏 KubeSphere 平台 DevOps CD 流程

作者:尹珉,KubeSphere Ambassador、contributor,KubeSphere 社区用户委员会杭州站站长。

公司简介

杭州微宏科技有限公司于 2012 年成立,专注于业务流程管理和自动化(BPM&BPA)软件研发和解决方案供应商。创始团队毕业于浙江大学、清华大学、美国 Rice 大学和 University of Texas 等海内外知名高校,曾服务于世界知名软件公司和 500 强企业。

微宏已为超过 1000 家的国内国外大中型企业和政府提供了从流程规划设计、流程运行、流程自动化、流程集成、流程挖掘的全生命周期流程软件产品和解决方案,客户分布于制造、金融、电器电子、医药、服务业、高科技和政府等十多个行业。

微宏科技是国家高新技术企业、浙江省专精特新企业,通过了 ISO9001 质量管理体系认证、CMMI 认证、ISO27001 信息安全管理体系认证。获赛迪“2021 年智能 BPM 领域最佳产品”奖、“2021-2022 业务流程管理&自动化领域优秀产品”奖、中国软件网“2021 年度智能流程平台优秀产品奖”、“2022 应龙杯最佳 BPA 业务流程自动化产品奖、“2022 数字政府建设领军企业”奖,连续 2 年上榜浙江省软件协会“浙江省软件核心竞争力企业(成长型)”榜单。

背景介绍

公司在自建 IDC 机房的物理服务器上搭建了 Kubernetes 集群,并使用 Kuboard 作为集群管理工具。研发环境使用这些集群资源进行开发和测试。而 CI/CD 流水线则通过同样部署在物理服务器上的 Jenkins 来实现代码编译、镜像构建等步骤,最终以手动方式发布服务。

这种模式下存在一些问题:缺乏统一的服务编排和管理,集群和服务之间缺乏联动,CI/CD 流程自动化程度不足,部署发布需要手动操作,日志和监控数据分散,缺少统一可视化平台等。这种传统研发模式已经难以适应企业对敏捷开发和自动化交付的需求。需要进一步融合云原生技术,实现基础设施的智能化和研发流程的端到端自动化。

平台选型

作为 DevOps 运维团队,我们需要提供自助化的综合运维平台。在开源平台选型时,公司考虑到以下两点最终选择了 KubeSphere:

  1. KubeSphere 屏蔽了 Kubernetes 的复杂性,通过 GUI 来简化集群管理,降低学习成本。
  2. KubeSphere 整合并扩展了多种优秀开源项目,如 Prometheus、Jenkins 等,提供了统一的入口,实现了全栈的 DevOps 能力。

相比其他平台,KubeSphere 更好地规避了 Kubernetes 本身的复杂性,也减少了集成各类开源工具的工作量。这使得我们可以更专注于运维自动化与自助化平台建设,而不需要单独管理底层基础架构与服务。因此 KubeSphere 成为我们满足公司需求的最佳选择。

实践过程

硬件资源

研发环境:IDC 机房 40 台虚拟机,自建 K8s+KubeSphere 集群。
生产环境:阿里云 ACK 集群 12 节点。

存储方案

使用 JuiceFS 作为分布式文件层,搭配 MinIO 作为对象存储接入层。

  • JuiceFS:提供分布式高性能文件存储。使用近似原子开源存储引擎如 LevelDB。
  • MinIO:开源对象存储兼容 AWS S3 API,作为 JuiceFS 对象存储接口。

整合方案优点:

  • 简单易用,提供类 S3 对象存储 API。
  • 高性能、弹性,通过 JuiceFS 实现。
  • 低成本,可以使用廉价的云硬盘或 NAS 作为后端存储。

DevOps 持续集成部署

公司以前研发环境中的 CI/CD 主要依靠单节点 Jenkins 实现,存在许多问题:

  • 开发人员频繁更新代码,多环境切换导致构建部署经常出错。
  • Jenkins 资源有限,构建效率较低。

为解决这些问题,我们切换到了 KubeSphere 平台,利用其整合的 DevOps 功能改进了 CI/CD 流程:

  • KubeSphere 提供了可视化流水线编排,简化了复杂流程的搭建。
  • 基于 Kubernetes 的弹性资源,可以动态扩展 Jenkins executor 提升构建效率。
  • 标准化和最佳实践减少了环境配置错误,提升了部署稳定性。

通过 KubeSphere 的 DevOps 解决方案,我们改善了 CI/CD 流程,提升了研发环境的效率和质量。

日志及监控

公司使用自建的 ELK 栈采集日志数据,并使用 KubeSphere 平台内置的 Prometheus 作为监控方案,然后通过 Grafana 来可视化展示监控数据。

使用效果

CI/CD

公司使用 KubeSphere 平台的 DevOps 功能,更好地满足了大规模并发构建流水线的需求。

应用商店

公司在探索云原生过程中,发现使用 Helm 可以标准化地进行应用发布。KubeSphere 天生具备应用商店功能,将 Helm 的能力可视化,大大降低了开发人员的学习成本。

未来规划

目前我们已完成业务的全面容器化,并基于 KubeSphere 平台的能力进行云原生架构的迁移。KubeSphere 为我们提供了 GUI 化的 Kubernetes 集群管理、CI/CD 流水线、服务网格治理等功能,简化了云原生技术的运用。

在平台助力下,我们的研发和运维效率显著提升。我们相信运用 KubeSphere 的云原生平台,必将为公司下一步业务增长提供坚实基础。我们将持续扩展业务场景,丰富平台功能,并探索基于 KubeSphere 的多云和边缘计算等新型架构,为客户带来更出色的产品体验。

本文由博客一文多发平台 OpenWrite 发布!

标签:CI,架构,微宏,KubeSphere,平台,DevOps,CD,流程
From: https://www.cnblogs.com/kubesphere/p/17756600.html

相关文章

  • 《解决方案架构师的修炼之道》阅读目录
    大纲章节 ......
  • 《架构师之路:软件架构之美》第四,五章读书笔记
    第四章:系统可伸缩性的重要性第四章讨论了系统可伸缩性的重要性。在现代软件开发中,可伸缩性是一个关键概念,它涉及到系统在不同负载下的性能表现。以下是一些关键观点:可伸缩性是应对用户增长和数据量增加的关键。一个好的架构应该能够轻松扩展以满足这些需求,而不需要完全重新设......
  • 2023年最全得软件测试工程师 学习知识架构体系
    一、Python编程入门到精通 二、接口自动化项目实战 三、Web自动化项目实战 四、App自动化项目实战 五、一线大厂简历 六、测试开发DevOps体系 七、常用自动化测试工具 八、JMeter性能测试 只有不断超越自己的勇气,才能让梦想破茧而出......
  • 行行AI公开课:风平智能高级业务架构师-段泽鹏《AI数字人场景化应用》
    随着人工智能技术的飞速发展,AI数字人逐渐成为各行各业的“香饽饽”。AI数字人如今已经不再只是企业品牌单纯制造营销噱头博得流量的工具,而是具有品牌理念属性、提供服务体验升级、降本增效等多元的商业价值。AI数字人的使用场景也正在逐渐解锁,逐渐成为一种新颖的企业与用户交互的......
  • 直播预约丨《实时湖仓实践五讲》第二讲:实时湖仓功能架构设计与落地实战
    如今,大规模、高时效、智能化数据处理已是“刚需”,企业需要更强大的数据平台,来应对数据查询、数据处理、数据挖掘、数据展示以及多种计算模型并行的挑战,湖仓一体方案应运而生。《实时湖仓实践五讲》是袋鼠云打造的系列直播活动,将围绕实时湖仓的建设趋势和通用问题,邀请奋战于企业数......
  • 云边端架构国标GB28181视频智能分析平台如何配置EasyGBS语音对讲
    云边端架构内的国标视频智能分析平台EasyGBS在更新到目前的新版本后,已经增加了对海康摄像头的对讲功能的支持。这意味着客户可以通过摄像头与PC端进行语音的对讲沟通,进一步提高了视频监控的交互性和便捷性。但是在配置该功能的时候,需要客户对EasyGBS服务器以及摄像头的配置页......
  • 架构师养成记-mybatis一级缓存,二级缓存
    一级缓存级缓存是MyBatis中的默认提供的缓存的,也就是说,我们在使用ybatis的时候本身就在使用,他是默认开启的,级缓存是sqlsession级别的缓存,只有在一个salSession内的查询才能共享缓存的数据,当我们关闭sqlsession的时候或者执行增删改查的操作的时候,缓存就会被清空 验证......
  • 架构师养成记-springboot自动装配
    @SpringBootApplication 这其中有两个比较容易引起我们注意的地方,一个是@springBoot(onfiguration注解,另一个是@nableAutoConfiguration注解; 进入了AutoConfigurationImportselector,class类,因为谷歌翻译告诉我们,这个是自动配置导入选择器.publicclassAutoConfigu......
  • 阿里云ECS高可用应用架构部署方案
    高可用架构是指计算机系统能够保证无故障持续运行的概率,通常采用百分比的方式来表示系统的高可用性等级,我们在生活中采用高可用概率=可用时间/总时间*100%来计算实现的高可用性等级,要想实现较高的高可用性等级,需要引入系统冗余的理念。7x24 小时不间断的运行并对外提供正常的服务,......
  • 基于 COLA 架构的 Spring Cloud Alibaba(八) Spring Authorization Server
    在前面的篇章中,我们介绍了账户服务、商品服务、订单服务、网关服务的搭建,这些服务统称为资源服务。目前这些资源服务都是未受保护的,访问他们是不需要进行认证授权的,这样毫无安全性可言。这一篇,我们将介绍如何对我们的服务资源进行保护,以及如何使用SpringAuthorizationServer进......