站酷云的思考

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 2022年,站酷建立基础架构部门,将 站酷云 作为公司统一的工程系统、业务系统的权限管理和运维中心;在登录、资源申请、扩缩容等基础技术能力问题上,站酷云 应该屏蔽阿里云的技术细节;如:扩缩容应该可以在 站酷云 上完成,起码也需要给出扩缩容功能的链接,而不需要用户去阿里云上自己寻找扩缩容的方案;但不应该粒度过细,一些业务系统的流程变更等,和 站酷云 解耦开。


2022年,站酷建立基础架构部门,将 站酷云 作为公司统一的工程系统、业务系统的权限管理和运维中心;

以下是对站酷云的思考

在登录、资源申请、扩缩容等基础技术能力问题上,站酷云 应该屏蔽阿里云的技术细节;如:

扩缩容应该可以在 站酷云 上完成,起码也需要给出扩缩容功能的链接,而不需要用户去阿里云上自己寻找扩缩容的方案;

但不应该粒度过细,一些业务系统的流程变更等,和 站酷云 解耦开。

一、账号管理

入职即创建 LDAP 账号。

站酷云 应该与 LDAP 打通。  

o   LDAP 账号的用户名和密码可以用来登录各种内部系统;LDAP 应当提供 SSO(单点登录) 功能。

  • 各种内部系统包括:
  • 企业后台:如站酷后台,海洛后台等;
  • Git 仓库/Artifact 管理系统/CI/CD 等工程资源库;
  • OA 系统;


o   LDAP 账号与阿里云 RAM 账号打通。意味着一个 LDAP 账号对应一个 RAM 账号;

  • 初始的阿里云 RAM 账号拥有最小权限(某些资源如 QuickBI 的只读权限); 如果需要其他的权限,用户可以在 站酷云 上申请开通。
  • 可以针对不同角色(管理人员/工程师/产品经理/数据分析师/运营等),在阿里云上创建不同的用户组,定义不同组的最小权限单元;
  • 定义和实现阿里云工单审批流程;
  • 申请理由,审批节点,申请通过后自动开通;

o   LDAP 账号拥有哪些权限可以被方便地查到。权限申请和赋权功能应该在系统中实现,并且有日志记录;

  • 对企业内部系统的赋权,仅区分用户是否有该平台权限即可。没有平台权限的,内部系统 Owner 可以通过 SSO 查询并拒绝访问(不是踢出登录);拥有平台权限的,内部系统可以定义自己内部的赋权粒度和赋权流程,在平台内部自己实现。但内部系统账号应该和 LDAP 打通。
  • 对阿里云的授权,通过阿里云 openAPI 进行。站酷云 及时通过阿里云 openAPI 拉取用户权限配置并展示即可。考虑到阿里云的权限非常多且不可控地增加,阿里云部分权限可保存一个非结构化的数据。

Public Key 管理功能  

o   用户申请堡垒机及资源

姓名

LDAP 用户名

手机号

邮箱

ssh-key

用户组(业务线)

申请的服务器

工单通过后,自动添加用户及用户组

o   工程师可以在 站酷云 上实现 Public Key 的上传,管理和更新,Key (通过工单手动)同步到堡垒机;

o   用户组可以通过工单增删改申请的服务器

 

o   工程师申请对应的资源权限并成功后,public Key 应该能够进行及时的同步到对应的系统中,自动获得对应的资源;对应地,被取消相关权限后,public key 也无需要从对应系统上清除;

二、工程资源及应用管理

工程资源管理

工程资源标准化

被管理、可使用、可申请的工程资源,应该仅包含云厂商采购名录(以框架协议为准)和公司级的内部系统中的标准资源;    

o   公司级的内部系统指基础研发部发布的、云厂商不提供的服务;例如 gitlab,LDAP,基于成本/技术选型等考量,自己构建的内部云服务;  

o   基础架构与业务研发分离:基础架构只保证基础资源的 SLA 不低于云厂商标定 SLA;搭建在基础资源上的 application,其 SLA 由 application 的 owner 负责;

  • 如:A 申请了两台 ECS 机器,搭建了 redis 集群;则该 redis 集群在基础研发只保证该 ECS 可用,redis 属于搭建在 ECS 上的 application。出现集群增加/减少机器时或者 redis 自身出现问题时,A 需要自己负责处理;
  • 如果 A 申请了「云上 redis 集群」,则该 redis 集群出现延迟增加等问题时,基础架构组应响应对 redis 的运维需求。
  • 如果业务需要采购其他类型的资源,需要经过流程审批,由基础研发部门统一采购;

计费

  • 对于服务使用的资源,计费以 APP 为单位,APP 费用汇总到业务部分;
  • 对于平台型/SaaS 能力型的资源,如 MaxCompute/AI 能力接口调用,如果暂时不能按照部门拆分,则计费到数据智能中心、基础架构部等中台部门;
  • 开发机/测试机,以部门为单位进行申请,计费到对应的部门;

新增工程资源类型

不要求过度配置化,但要求能够迅速响应变更需求。除了在阿里云上接入新的资源类型、内部接入新的系统外,要保持兼容性,能够迅速切换云厂商,直至管理多云上的资源;

应用管理

所有前/后端服务均被抽象为应用(APP);一个应用为一组遵循单一原则的服务,面向用户提供一个独立、完整的功能,并持有一组独立的资源;注意,此处「用户」可以为外部用户也可以为内部用户;

APP 之间存在相互调用关系,即调用链;

层次关系:


·      

APP

  • 一组前/后端服务为一个 APP;它提供了一组可被调用的接口;
  • 一个 APP 从属于一条业务线
  • 一个 APP 持有一组 IaaS 工程资源,如计算资源 ECI/ECS,存储资源云盘,数据库资源 RDS/redis/...,中间件资源 Kafka 等;
  • 对 PaaS 和 SaaS 资源(如接口调用,短信下发等),原则上可以通过 APP 进行划分,如果不能划分,应该统一归口;
  • APP 的切分遵从高内聚、低耦合原则:for a single purpose
  • APP 下包含多个 unit,每个 unit 对应一个前/后端服务;每个 unit 为一个通过 CI/CD 部署的单元;
  • APP 下可以包含除在线服务外,一些定时/离线的调度任务(Task);
  • APP 角色划分为:
  • OwnerAPP 的最终责任人;项目 Owner;
  • MaintainerAPP 的维护者;该 APP 下的核心开发人员;
  • Developer:参与开发,提供部分贡献物;或者是其他团队的协作开发;

 


 

 

Owner

 

Maintainer

 

Developer

 

查看权限:

§  查看 APP 的信息,包括文档、部署、结构、资源等信息;

 

Y

 

Y

 

Y

 

管理权限:删除 APP,并释放所有的资源占用

 

Y

 

N

 

N

 

发布与部署

 

Y

 

Y

 

N

 

新增一种资源

 

Y

 

Y

 

N

 

重启 APP

 

Y

 

Y

 

N

 

资源扩/缩容

 

Y

 

Y

 

Y

 

Unit

  • 每个 unit 对应一个前/后端服务;每个 unit 为一个通过 CI/CD 部署的单元;
  • 每个 unit 包含一组容器单元,每个 unit 的容器单元具有一样的运行环境和一样的代码及配置;
  • 最佳实践为:一个 APP 对应 git 上的一个代码仓库;通过 docker 打包为 POD(但 git 上的一个代码仓库不一定有对应的 APP,例如,base library 对应的是 nexus 上的 artifact,而不是一个 APP),每个 POD 对应一个 unit;
  • 以上两点不做强制要求,「按照业务目标划分代码仓」和「按照技术栈划分代码仓」可以考虑在不同的场景使用。
  • Unit 不需要特定的权限结构;
  • 每个 Unit 对应一种编程语言。我们支持的编程语言包括:Java/ScalaPHPPython(需要在 Unit 上标定编程语言);

Task

  • 一个 Task 为一个离线任务,承担数据处理、自动运维相关的工作;
  • Task 消耗的 IaaS 和 PaaS 资源按照 APP 进行 billing;如 A 服务的定时任务,则由 A 服务承担费用;
  • 任务 1:每天 10 点将数据库中数据同步到离线环境;
  • 任务 2:当出现某个事件时触发数据库重建任务;


APP SHELL

  • 按照统一规范,自动部署的基础组件。包括基础安全组件(例如,每个具有外网访问接口的 APP 都需要部署 WAF 和网络加速、需要进行漏洞扫描),基础架构组件(例如,自动扩缩容、熔断能力、监控与告警等);

监控与告警:

  • 提供面向 APP 和 Unit 的双重资源监控;
  • 支持报警功能:
  • 支持基础报警:资源水位线(coresmemories,存储,数据库等);


三、日志与审计功能

所有用户可以被审计:


o   用户可以在权限中心看到自己所拥有的所有权限;

o   汇报上级可以看到下级所拥有的所有权限;

所有的变更可以被审计:

o   权限变更,记录谁,在什么时间对谁赋予/撤销了权限,并有上下文信息如对应的工单和理由;

o   发布变更:以 APP/Unit 为单位组织,支持汇总统计,如统计一个业务线下当月发布了多少变更;

 

 

相关文章
|
6月前
|
监控 安全 NoSQL
2024年了,还有必要搭建企业网站吗?
在2024年,企业是否仍需建立网站?答案取决于行业。对于快消品/低价行业,网站非必需,但其他行业,网站作为线上流量入口,能展现企业形象和差异化,增强用户粘性,同时也是安全可靠的24小时服务渠道和国际拓展平台。企业网站是对外名片,提升客户信任,且能有效减少宣传成本。然而,网站安全至关重要,包括防止非法插件、服务器端口暴露、弱密码攻击等。为此,企业应利用VSS等服务进行安全检测,并关注设备、数据、内容和行为安全,确保整体安全可控。德迅卫士等主机安全工具可提供实时监控和响应,提升防护能力。安全是持续工作,需定期更新措施。
|
6月前
|
存储 监控 Serverless
如何搭建企业网站应用 已学完
小陈计划使用ACK Serverless搭建WordPress企业网站,向大刘请教核心工作。大刘指出主要涉及三步:1) 创建ACK Serverless集群并准备资源,如数据库和持久存储;2) 部署应用,设置无状态应用和副本数量,使用NAS作为存储,并创建服务和负载均衡;3) 管理集群,包括监控和告警。他们还讨论了如何创建PV和PVC来连接NAS,以及关注容器日志和监控。
|
数据采集 前端开发 算法
外贸网站怎么做站内优化?
答案是:外贸官网的站内优化包括:代码优化,内链优化,结构优化三大类。 内容是王道 一份优质的内容是Google优化的基础。 投入时间和精力来创造独特、有价值的内容,以吸引和保留读者。 记住,内容必须是原创的,并且应该针对您的目标受众。 不断更新新的、有价值的内容也能够帮助提高网站的Google排名。
103 0
外贸网站怎么做站内优化?
|
缓存 编解码 前端开发
我上 B 站了?
事情是这样的,前阵子在 B 站刷到一位文科生自学转行成前端程序员的视频。
我上 B 站了?
|
UED CDN 前端开发
如何提高企业网站的打开速度?
企业网站打开的速度快慢直接决定了网站体验和销售转化的效果,网站首页打开速度有一个“3S原则”,也就是说网站3秒之内打开用户体验为最佳,如果超过这个时间会降低方可对网站的信任感,可以设想一下如果你的网站10秒甚至更长时间才能打开,恐怕访客早已离开,小编今天就来从网站本身出发,来说一说网站加速的几种常见的方法。
1381 0
企业网站SEO的好处有哪些?
想知道SEO的所有好处吗? 这个SEO好处列表会让你大吃一惊。你会感谢你读这篇文章。 每个企业都需要投资搜索引擎优化。 搜索引擎优化是优化您的网站以最大化来自搜索引擎的自然流量的过程。领先的搜索引擎是百度,神马搜索,360搜索和搜狗。
1163 0
|
搜索推荐 SEO
为什么做了企业网站推广却没有效果?
为什么做了企业网站推广却没有效果 网站推广运营是一门技术活,很多企业也深知网站推广的重要性,但是,在采用的推广方式中,很多企业网站的推广手段都是“照葫芦画瓢”,总是以为会潜水就学会了游泳了,其实,随便找了几个网站推广方式,就开始独立运营了,但是却没有实际的效果,这是什么原因呢? 首先是企业过分迷恋SEO优化,把SEO优化奉为“圣经”      虽然SEO在搜索引擎拥有很高的地位,但是,随着移动互联网的崛起,我们发现,搜索引擎和前几年比较,市场占有率早已经呈下降趋势。
992 0