站酷云的思考

本文涉及的产品
云数据库 Redis 版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生内存数据库 Tair,内存型 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 为单位组织,支持汇总统计,如统计一个业务线下当月发布了多少变更;

 

 

相关文章
|
4月前
|
监控 安全 NoSQL
2024年了,还有必要搭建企业网站吗?
在2024年,企业是否仍需建立网站?答案取决于行业。对于快消品/低价行业,网站非必需,但其他行业,网站作为线上流量入口,能展现企业形象和差异化,增强用户粘性,同时也是安全可靠的24小时服务渠道和国际拓展平台。企业网站是对外名片,提升客户信任,且能有效减少宣传成本。然而,网站安全至关重要,包括防止非法插件、服务器端口暴露、弱密码攻击等。为此,企业应利用VSS等服务进行安全检测,并关注设备、数据、内容和行为安全,确保整体安全可控。德迅卫士等主机安全工具可提供实时监控和响应,提升防护能力。安全是持续工作,需定期更新措施。
|
4月前
|
存储 监控 Serverless
如何搭建企业网站应用 已学完
小陈计划使用ACK Serverless搭建WordPress企业网站,向大刘请教核心工作。大刘指出主要涉及三步:1) 创建ACK Serverless集群并准备资源,如数据库和持久存储;2) 部署应用,设置无状态应用和副本数量,使用NAS作为存储,并创建服务和负载均衡;3) 管理集群,包括监控和告警。他们还讨论了如何创建PV和PVC来连接NAS,以及关注容器日志和监控。
|
云安全 自然语言处理 关系型数据库
|
缓存 编解码 前端开发
我上 B 站了?
事情是这样的,前阵子在 B 站刷到一位文科生自学转行成前端程序员的视频。
我上 B 站了?
|
Web App开发 移动开发 前端开发
一场站着听完的 D-Day——广州站「前端移动端」专场回顾
一场站着听完的 D-Day——广州站「前端移动端」专场回顾
155 0
一场站着听完的 D-Day——广州站「前端移动端」专场回顾