柯基数据通过 Rainbond 完成云原生改造,实现离线持续交付客户
柯基数据通过 Rainbond 完成云原生改造,实现离线持续交付客户
"云原生让我们在客户的离线环境里交付更自动化了" --柯基数据 刘占峰
关于柯基数据

南京柯基数据科技有限公司成立于 2015 年,提供一站式全生命周期知识图谱构建和运维、智能应用服务,致力于“链接海量数据,从大数据中挖掘智慧“。帮助企 业运用知识图谱技术打造世界领先的认知工作自动化智能引擎。
目前在药企、医疗机构、军工院所、科技情报及出版等领域服务了数十家大客户,积累了丰富的行业知识图谱运用开发经验。典型客户有国防科技大学、中国航空、中国电科等。
柯基数据的云原生之路
大家好,我是南京柯基数据的解决方案架构师刘占峰,云原生技术在交付运维上的优势让我获益匪浅。作为项目合作伙伴,Rainbond 持续助力柯基多套业务系统的快速开发和交付部署。在使用 Rainbond 之前,由于业务迭代周期短,涉及组件多,平台版本更新耗时耗力,服务运维难度大。很多项目中,客户的运维能力储备不足,基于传统的交付和管理方式,客户对于业务运维根本接管不起来,只要风吹草动,必须要我们派工程师到现场解决。针对交付运维存在的问题,各个业务平台开始着手云原生改造。
最开始我们尝试自己搭建公司内部的开发测试环境,过程中遇到的两个小坑。
第一个坑是:环境搭建完成后使用体验却不佳,所有涉及到磁盘读写的操作都显得异常卡顿,集群中的 Etcd 集群日志中不断报告处于 “read_only” 状态,随之而来的是服务器负载的不断飙升。

我们带着怀疑的心情求助了 Rainbond 开源社区,经过多方面的排查,我们把目光落在了磁盘的 IO 性能上。替换了高性能的磁盘之后,我们重新安装了整个开发测试环境,磁盘性能的提升 的确解决了 Etcd 集群时常不工作的问题。
第二个坑是:使用了共享存储的服务却依然处于读写极慢的状态,这着实令在场的所有工程师又开始头大了。确认了硬件性能之后,开始将目光放在操作系统配置参数上面,操作系统内核在不断报告与共享存储有关的错误:

NFS:__nfs4_reclaim_open_state: Lock reclaim failed!指征 nfs client 和 nfs server 之间存在同步差异,差得多了就会开始报警。经过不断摸索,工程师们终于锁定了与 nfs 性能有关的两个系统参数,Linux nfs 客户端对于同时发起的 NFS 请求数量进行了控制,若该参数配置较小会导致 IO 性能较差。
echo "options sunrpc tcp_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.confecho "options sunrpc tcp_max_slot_table_entries=128" >> /etc/modprobe.d/sunrpc.conf