微宏科技基于 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 发布!
微宏科技基于 KubeSphere 的微服务架构实践的更多相关文章
- 基于 Docker 的微服务架构实践
本文来自作者 未闻 在 GitChat 分享的{基于 Docker 的微服务架构实践} 前言 基于 Docker 的容器技术是在2015年的时候开始接触的,两年多的时间,作为一名 Docker 的 D ...
- 基于 Spring Cloud 的微服务架构实践指南(下)
show me the code and talk to me,做的出来更要说的明白 本文源码,请点击learnSpringCloud 我是布尔bl,你的支持是我分享的动力! 一.引入 上回 基于 S ...
- 微服务架构实践 - 你只懂docker与spring boot就够了吗?
微服务架构实践 - 你只懂docker与spring boot就够了吗? 作者 浮云发发 已关注 2017.02.27 02:50* 字数 2613 阅读 2583评论 6喜欢 35赞赏 2 微服务并 ...
- 新项目架构从零开始(三)------基于简单ESB的服务架构
这几个月一直在修改架构,所以迟迟没有更新博客. 新的架构是一个基于简单esb的服务架构,主要构成是esb服务注册,wcf服务,MVC项目构成. 首先,我门来看一看解决方案, 1.Common 在Com ...
- 京东基于Spark的风控系统架构实践和技术细节
京东基于Spark的风控系统架构实践和技术细节 时间 2016-06-02 09:36:32 炼数成金 原文 http://www.dataguru.cn/article-9419-1.html ...
- 基于OpenResty和Node.js的微服务架构实践
什么是微服务? 传统的单体服务架构是单独服务包,共享代码与数据,开发成本较高,可维护性.伸缩性较差,技术转型.跨语言配合相对困难.而微服务架构强调一个服务负责一项业务,服务可以单独部署,独立进行技术选 ...
- 基于 Spring Cloud 的微服务架构实践指南(上)
show me the code and talk to me,做的出来更要说的明白 GitHub 项目learnSpringCloud同步收录 我是布尔bl,你的支持是我分享的动力! 一. 引入 上 ...
- 放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结
http://developer.51cto.com/art/201710/554633.htm Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经 ...
- 从 Spring Cloud 开始,聊聊微服务架构实践之路
[编者的话]随着公司业务量的飞速发展,平台面临的挑战已经远远大于业务,需求量不断增加,技术人员数量增加,面临的复杂度也大大增加.在这个背景下,平台的技术架构也完成了从传统的单体应用到微服务化的演进. ...
- 基于AWS的云服务架构最佳实践
ZZ from: http://blog.csdn.net/wireless_com/article/details/43305701 近年来,对于打造高度可扩展的应用程序,软件架构师们挖掘了若干相关 ...
随机推荐
- 【转载】 nohup和&区别
原文地址: https://www.cnblogs.com/xinzaiyuan/p/12097919.html =========================================== ...
- 动手煮面的一次经历,加餐DIY
去年和今年一直是有疫情的,也是如此像我这种在学校呆着的不是在家窝着就是在学校窝着,尤其是到了假期的时候,如果晚回家几天那食堂的伙食就会变得十分的恐怖. 面对这样的伙食也是十分的无奈,虽然也是十分理解当 ...
- 【转载】 xavier,kaiming初始化中的fan_in,fan_out在卷积神经网络是什么意思
原文地址: https://www.cnblogs.com/liuzhan709/p/10092679.html =========================================== ...
- 讲师招募 | Apache DolphinScheduler Meetup诚邀您共建开源!
随着Apache DolphinScheduler在全球范围内的快速发展,我们的用户群体和社区活动也在不断扩大. 为了进一步丰富我们的社区内容,分享更多有价值的知识和经验,我们诚挚地邀请您加入我们,成 ...
- 【故障排查】10分钟解决Quartz重复调度的疑难杂症
我司使用Apache DolphinScheduler作为调度框架很久了,感兴趣的小伙伴可以看看这些干货文章: 因为之前监控到会出现重复的调度的问题,所以此文记录排查重复调度问题的全过程,希望对社区其 ...
- Linux统计文件目录下文件的数目命令
Linux下有三个命令:ls.grep.wc.通过这三个命令的组合可以统计目录下文件及文件夹的个数. 1.ls -l | grep "^-" | wc -l:统计当前目录下文件的个 ...
- 2023 CCPC 女生题解
gym B. 终焉之茧 \(\star\) 显然两个维度分别做 单谷函数,起始点 \(A\) 是一个端点.一个 naive 的想法是三分目标点 \(B\),但交互次数会超.二分关于 \(B\) 对称点 ...
- 用whl文件安装Anaconda中的GDAL
本文介绍在Anaconda环境下,基于.whl文件安装Python中高级地理数据处理库GDAL的方法. 在之前的文章中,我们介绍了基于conda install命令直接联网安装GDAL库的方法 ...
- SimpleRAG:基于WPF与Semantic Kernel实现的一个简单的RAG应用
SimpleRAG介绍 SimpleRAG是基于WPF与Semantic Kernel实现的一个简单的RAG应用,可用于学习与理解如何使用Semantic Kernel构建RAG应用. GitHub地 ...
- C#反射在数据库操作中的应用(反射属性,反射字段)
这几天学习反射的应用,今天把其应用到数据操作中 现记录学习笔记 环境为: 编译器:vs2017 数据库:access 反射类型为:字段 1先在类文件的定义是用哪种数据库,和用字段还是属性来反射 本例是 ...