DevOps 平台的建立
新东方是一家成立30年的综合性教育集团,由俞敏洪先生创立,但是IT投入并不太早,是近些年才开始加大力度。
在初期,我们面临几点困境,一是烟囱效应和数据孤岛。随着公司体量增大,组织机构增多,就会造成一种现象:每个机构都去创建一套平台,各自专注自己领域,时间久了造成平台之间的割裂,也形成重复与浪费。
虽然有了很多平台和工具,但实际上研发效率并没有得到很好的提升,甚至一些冗长的流程导致效能变得更加困难,这就形成第三点组织熵增问题。
后来经过内部讨论,我们反思了在研发整体集成平台初期有7点任务,分别是资源申请 >> 信息检索 >> 流程操作 >> 业务上线 >> 成本控制和数据安全。
同时,我们也有很多资源,公有云、私有云,还有一些时间久远的资源,我们会通过数据纳管。这些资源都需要下放到业务线上,我们是怎么做业务线分摊的?
我们根据业务和应用形成了相应的服务树。
服务树关联了功能与业务,功能主要是云化资源、上线发布、PaaS 管理、数据平台、安全中心。服务树与人做关联,我们可以对人做细粒度化授权,以实现 action 动作控制或数据控制。
02
DevOps 与数据平台
很多公司都有数据研发组,一方面做DB运维工作,另一方面做数据层面的研发工作。我们想设计一个平台将整个流程串连。实时计算任务平台主要是方便用户创建并选择不同任务(Flink),并将结果打到实时数仓/离线数据湖。
现在一共是7个功能模块,分别是作业开发、管理、监控、系统管理、资源管理和模板管理,这7个功能模块下属有14个功能点。
这里是实时计算平台的任务创建流程,第一是管理员——就是研发或者更高级的用户,他需要对初始任务进行评定。比如 Flink 需提交到 yarn 集群上,我会创建一些提交 yarn 集群队列的配置,这些在初始化就已经弄好了。用户进到平台之后只需要申请 Source 表查询或者 JAR/SQL 任务的创建。
03
DevOps 与安全
安全是企业数据资产的重中之重,新东方的安全建设主要围绕6方面展开。
01
红蓝对抗
前一段时间美的/蔚来受到国际黑客组织机构的勒索,引起了领导的重视,我们也希望通过红蓝对抗检验内部数据安全性,目的是为了保证组织内部最核心数据不被第三方黑客/入侵者拿到。
简单的流程是通过地方校客服钓鱼及边界入侵,最后用测试环境提权到了生产环境,拿到了核心数据一部分。
通过红蓝对抗的教训,如果真的来这么一发,勒索肯定是没跑的,于是我们将地方校与总公司之间的很多专线搭掉了,用 VPN 和双音速去解决安全的链路问题。
02
渗透测试
与红蓝对抗类似,渗透测试主要针对是各个平台,通过第三方给的反馈,目前大概有这么三类漏洞,一是 SQL 注入,二是 XSS/CSV 注入,三是垂直越权。因为平台是基于 Django REST framework 开发的,不涉及 SQL 注入。当然还有一些小接口是涉及垂直越权的,我们也将其一一修复,渗透测试是一种比较好的针对单个平台测试的环节。
03
敏感数据监测
本着对敏感数据不容忍、不产生、不传递的原则,我们需要对各个业务库设置不同的识别规则,定义不同的任务模板,再通过定期的扫描任务来对敏感资产进行数据检测。
04
安全中心
安全中心主要是针对新东方的管理合规及漏洞事件等。
05
APP合规闭环
APP 在发布过程中缺少安全审计,我们希望通过安全左移的方式,在APP上线前给到安全评分,通过逐步迭代应用加固,减少风险,能达到一个更高的评估评分。
06
CA认证&KMS
CA 认证和 KMS 主要是针对自己的平台,安全构件通过自己搭建的 CA 服务器来进行认证,KMS 是用的第三方安全厂商,它是用来做我们的重点的密钥存储,进行一个传输加密这两个方向的。
04
经验总结
降本增效的经验
技术提效思维
近期好文:
“DevOps时代”公众号诚邀广大技术人员投稿