微宏科技基于 KubeSphere 的微服务架构实践
作者:尹珉,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:
- KubeSphere 屏蔽了 Kubernetes 的复杂性,通过 GUI 来简化集群管理,降低学习成本。
- 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 发布!
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
基于Effect的组件设计 | 京东云技术团队
Effect的概念起源 从输入输出的角度理解Effect https://link.excalidraw.com/p/readonly/KXAy7d2DlnkM8X1yps6L 编程中的Effect起源于函数式编程中纯函数的概念 纯函数是指在相同的输入下,总是产生相同的输出,并且没有任何副作用(side effect)的函数。 副作用是指函数执行过程中对函数外部环境进行的可观察的改变,比如修改全局变量、打印输出、写入文件等。 前端的典型副作用场景是 浏览器环境中在window上注册变量 副作用引入了不确定性,使得程序的行为难以预测和调试。为了处理那些需要进行副作用的操作,函数式编程引入了Effect的抽象概念。 它可以表示诸如读取文件、写入数据库、发送网络请求、DOM渲染等对外部环境产生可观察改变的操作。通过将这些操作包装在Effect中,函数式编程可以更好地控制和管理副作用,使得代码更具可预测性和可维护性。 实际工作中我们也是从React的useEffect开始直接使用Effect的说法 React: useEffect useEffect is a React Hook that...
- 下一篇
实现基于 GitLab 的数据库 CI/CD 最佳实践
数据库变更一直是整个应用发布过程中效率最低、流程最复杂、风险最高的环节,也是 DevOps 流程中最难以攻克的阵地。那我们是否能在具体的 CI/CD 流程中,像处理代码那样处理数据库变更呢? DORA 调研报告 DORA(DevOps Research & Assessment)是一家专注于 DevOps 的研究机构, 在该领域以专业与客观著称。自 2014 年以来,DevOps 调研了全球范围内超过 32,000 名专业人员,并以年度报告的形式对外发布研究成果。DORA 明确指出,将数据库变更纳入应用发布流程将显著提升整体发布效率。 这一结论并不令人意外。问题是,该怎么做? 一个完整的基于 GitLab 的数据库 CI/CD 工作流 通过 Bytebase,我们将实现一个完整的基于 GitLab 的数据库 CI/CD 工作流: 开发者将变更 SQL 脚本提交到代码分支; 触发 Bytebase 提供的 SQL 审核 CI 进行自动化 SQL 审核,并给出修改建议; 修改完成后的 SQL 脚本合并入主分支; 自动触发发布流程,脚本将被推送到 Bytebase 工具中; Byte...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Windows10,CentOS7,CentOS8安装Nodejs环境
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8编译安装MySQL8.0.19
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装