当前位置:网站首页>在企业的降本增效诉求下,Cube如何助力科盾业务容器化“一步到位”?
在企业的降本增效诉求下,Cube如何助力科盾业务容器化“一步到位”?
2020-11-09 11:32:00 【osc_e45irv7l】
以Docker为代表的容器技术缩短了企业应用从开发、构建到发布、运行的整个生命周期。Gartner推测到2022年将会有75%的全球化企业将在生产中使用容器化的应用(当前约为30%)。由于Docker往往难以独立支撑起大规模容器化部署,因此诞生了Kubernetes等容器编排工具,解决了大规模容器的组织和管理难题。
但事实上,Kubernetes的使用体系还是非常复杂的,对于企业的开发运维人员而言,需要具备一定的网络、存储、系统等方面的技术能力。同时在Kubernetes 集群的部署过程中,也需要面临多节点集群搭建维护、网络和存储的选择配置等难题。上述问题是企业在大规模应用的容器化部署和容器编排中不可避免的,科盾亦面临同样的困境。
科盾为什么选择容器化?
深圳市科盾科技有限公司(下文简称科盾)是全国领先的互联网大数据服务商,是一家专注于网络空间治理领域科研及应用开发的国家高新技术企业,致力于为网安、网信、政府及大中型企业提供大数据互联网舆情监测、网络情报挖掘和企业商情监测等服务,以便及时、精准、全面掌握互联网舆情信息,快速化解舆情危机。同时全面获取网络情报线索和市场竞争情报,为政府机构打击网络违法犯罪、企业提高市场竞争力提供高科技利器。
舆情分析的数据来源几乎覆盖所有互联网平台的公开信息,包括常见的资讯网站和社交媒体、自媒体、短视频等平台。因此构建一套完整精准的舆情监测系统,不仅需要强大的数据采集能力,还需要具备强大的数据分析、价值挖掘能力,给底层的IT架构带来巨大的技术挑战。
在实现微服务及容器化部署之前,科盾是直接将应用部署在服务器上的,开发运维人员花费大量时间在开发、测试和生产环境的配置上,还要解决日常出现的网络、日志、监控等问题。随着公司业务的扩展,整个系统越来越庞杂,且依赖复杂、数据没有隔离、逻辑重复,于是科盾将其业务进行了微服务架构的改造。
科盾采用了 SpringCloud 微服务体系及 Eureka 服务注册中心,将整体业务架构分为任务调度、数据采集、数据存储、数据处理等多个环节,其整体业务架构图如下:
任务调度系统根据注册的数据采集节点信息,调度有效的采集目标给数据采集节点,数据采集节点根据算法对目标处理后,将数据结果传输根据其内容类型,传输给基于 MySQL、MongoDB、HBase、Elasticsearch、对象存储等服务的存储队列,再由处理链进行数据清洗、资源文件拆分下载、模型预测、各个子系统业务标签、数据推送服务等。
在微服务阶段,随着应用数量的增加,一次发布往往涉及了多个应用,这对团队的自动化运维水平提出了更高的要求。于是,团队开始对应用进行容器化改造。各个模块打包封装成镜像,就可以在任意平台上运行,轻松实现业务的迁移和扩展;无需重复配置环境,配合Gitlab就可以非常方便的进行持续交付和部署,还可以对应用之间进行隔离。
Cube比容器更快更轻
需购买固定资源规格的主机,成本投入比较高;
只能通过主机进行挂载,操作繁琐;
只支持单一IP,绑定额外的IP十分繁琐;
遇到故障时需要额外安装控制调度系统进行重启;
只能通过namespace和cgroup进行弱隔离;
需要使用docker命令进行创建,学习成本较高。
通过UCloud容器实例Cube,用户只需要提供打包好的容器镜像,即可实现在数秒之内,实现批量部署容器化应用,而不需要预先购买主机或K8S集群,并且只需为容器实际运行消耗的资源付费。
此外Cube还具备以下优势:
网络上使用 UCloud VPC网络进行内网服务,与 UCloud 其他云产品打通;
存储直接使用云盘进行挂载使用,读写性能高,操作便捷;
Cube控制调度系统为容器自动重启,自愈能力强;
UCloud海量资源支撑,超大集群避免单一节点故障;
使用Firecracker虚拟化技术实现虚拟机级别的强隔离。
基于Cube的优势,科盾已将其数据采集节点迁移到了Cube,日志收集方案由原来的宿主机本地映射存取,改为发送到Kafka队列。由于容器化应用的特质,科盾无需对业务进行改造,直接采用原有镜像即可在 Cube 上部署应用,实现平滑迁移。而 Kafka 的应用,也提升了日志收集、管理的效率。
Cube 帮助科盾实现了业务的快速回滚和横向扩展。后续,科盾计划引入K8S集群,并将更多数据处理链等上的服务迁移至Cube。
总结
版权声明
本文为[osc_e45irv7l]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4392508/blog/4709136
边栏推荐
- “微服务”技术另一个可能更合适的名字
- Source code analysis of ThinkPHP framework execution process
- Unemployment log, November 5
- [QT] subclass qthread to realize multithreading
- 理解 OC 中 RunLoop
- Commodity management system -- integrate warehouse services and obtain warehouse list
- jsliang 求职系列 - 08 - 手写 Promise
- For and for... In, for each and map and for of
- Android rights
- 程序员的十年之痒
猜你喜欢
How to do thread dump analysis in Windows Environment
程序员的十年之痒
Initial installation of linx7.5
libssl对CentOS登录的影响
从实践谈 Ruby 语法上的几个设计不一致带来的问题。
SHOW PROFILE分析SQL语句性能开销
百亿级数据分表后怎么分页查询?
Mac terminal oh my Zsh + solarized configuration
How to query by page after 10 billion level data is divided into tables?
实现商品CRUD操作
随机推荐
[Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解
After SQL group query, get the first n records of each group
百亿级数据分表后怎么分页查询?
ThinkPHP门面源码解析
结合阿里云 FC 谈谈我对 FaaS 的理解
El table dynamic header
Method of creating flat panel simulator by Android studio
手写Koa.js源码
For and for... In, for each and map and for of
Windows环境下如何进行线程Dump分析
Principle analysis and performance tuning of elasticsearch
Ten year itch of programmer
手写数字图片识别-卷积神经网络
Commodity management system -- implementation of local preservation of new commodities
SQL语句实现水仙花数求取
linx7.5 初始安装
EasyNTS上云网关设备在雪亮工程项目中的实战应用
Understanding task and async await
VisualStudio(Mac)安装过程笔记
An attempt to read or write to protected memory occurred using the CopyMemory API. This usually indicates that other memory is corrupted.