华为云DevOps系列之 —— 持续开发与集成(五)华为云 DevCloud 代码托管服务及 CloudIDE
【摘要】 华为云DevOps系列之 —— 持续开发与集成(五)华为云 DevCloud 代码托管服务及 CloudIDE
华为云 DevCloud 代码托管服务及 CloudIDE
华为云 DevCloud 代码托管服务
CodeHub 的安全优势
- 代码托管服务也叫 CodeHub,是云端的代码仓库
- CodeHub 的安全优势有两个层面
- DevCloud 层级
- CodeHub 层级
DevCloud 层级
- 访问控制
- 公有云采用
租户+用户+用户组+角色
统一模型对权限进行控制,DevCloud在管理面按照本模型进行控制,在业务面基于角色权限模型进行控制,确保每个租户/用户只能访问已授权的资源
- 公有云采用
- 鉴权
- 基于 IAM 进行认证,认证通过后,以返回的 Token 进行访问 DevCloud 服务
- 基于角色与权限的细粒度授权
- 不同的角色,在不同的服务中,根据不同的资源,可以有不同的操作权限
细粒度模型,通俗的讲就是将业务模型中的对象加以细分,从而得到更科学合理的对象模型,直观的说就是划分出很多对象
- 不可抵赖性
- 基于 IAM Token 机制,所有操作都必须带有 Token,租户身份无法伪造
- 数据保密性
- 数据传输采用 HTTPS 、SSH 等安全协议
- 对于敏感信息,进行加密存储
- 通讯安全
- 使用 HTTPS、SSH 安全协议
- 数据完整性
- 关键信息均保存在内部数据库中
- 可用性
- 各个服务都是集群方式
- 隐私
- DevCloud 不涉及到租户及用户的隐私
CodeHub 层级
- 基于角色与权限的细粒度授权
- 提供针对代码访问的,更加细粒度的授权模型
- 不可抵赖性
- 提供代码仓库的完整访问日志
- 数据加密
- 用户的代码在 CodeHub 中,是以加密方式存储的
CodeHub 的关键流程
创建代码仓库
- 在代码托管的仓库列表页面,点击新建仓库
- 分为代码托管服务的总列表,与某一个项目下的代码仓库列表
- 未创建项目前,无法创建仓库 —— 代码仓库一定要从属于某个项目
代码仓库的模式
- 有三种新建仓库的模式
- 普通新建 —— 空白仓库
- 基于模板创建仓库:内置上百种模板仓库,同时支持用户分享模板
- 导入外部仓库:支持导入外部的 Git 仓库和 SVN 仓库
代码仓库的角色与成员
- 管理员可以从成员列表进入,管理代码仓库的成员,对应到研发环节的各个成员
上传代码到服务器
- 支持 SSH / HTTPS 协议
- CodeHub 支持通过 SSH 协议与 HTTPS 协议,读写代码仓库
- 基本上所有主流的 Git 客户端,都支持这两种协议
- 支持 WebHook
- 在代码仓库发生变动时,可以主动的通知用户配置的 Hooks 服务器
- 支持 IP 白名单设置
- 在 IP 白名单范围内的仓库访问才是允许的,除此之外其他 IP 发起的访问一律被拒绝
确定开发规范
- 在仓库配置中设置开发规范
- 设定默认分支:master
- 确定保护分支:master 与 develop
- 确定分支的命名规范
- Features / abc 【特性描述】
- hotfix / 115 【问题单日期】
- 确定版本的命名规范,并用这个规范来打标签
- 确定团队内部统一的 Commite 规范
- 确定合并请求的参与者,职责
CodeHub 开发流程
- 开发人员下载代码
- 创建工作分支
- 提交代码
- 创建合并请求
- 邀请团队成员,参与代码评审
- 仓库管理员,审视后台合入代码
开发进展情况
- 查看关联工作项,便于了解本次提交具体对应哪个功能
- 查看提交历史
- 查看仓库统计
- 通过语言、提交频率等多个维度呈现的图形化统计功能
CodeHub 权限管理
- 仓库的可见性,代码仓库,有三种可见范围
- 私有:仓库仅对仓库成员可见,仓库成员可访问仓库或者提交代码
- 公开只读:仓库对所有访客公开只读,但不出现在仓库列表及搜索中
- 公开示例模板:仓库公开只读,且出现在华为开发者中心,并成为全站都能使用的代码模板
- 角色与权限介绍
- 仓库管理员可执行:浏览类、开发类、仓库管理类操作
- 开发人员可执行:浏览类,开发类操作
- 浏览者只能浏览各种信息,包括代码、成员列表和统计信息,操作日志除外
- 成员管理建议
- 从管理安全的角度,我议用户,执行最小授权原则,只在必要时,授予有限的人员,当前工作所必须的权限
- 定期检查小组成员列表与成员权限,确保已经与项目无关的人员能及时退出
- 部署密钥的作用是自动化构建时拉取代码,不要将部署密钥用于个人获取代码
CodeHub 分支管理
- 保护分支
- 通过设置保护分支,能够确保分支代码安全,并阻止强行推送代码,删除分支等操作
- 一般将
master
分支设置为保护分支 - 如果严格执行 Git-Flow,则应增加一个
Develop
分支,也设置为保护分支
- 开发分支
- 固定接受合入代码的分支,可以设置进阶的开发分支规则
- 自动合入代码,在小规模团队,简单项目中适用,能够大大的提升效率。复杂项目需慎用
- 自动关闭代码,在代码质量有严格要求的团队适用
- 特性分支与 BugFix 分支
- 基于Git-Flow工作流,除了Master、Develop 和 Release 分支之外,会有多条短时间存在的特性分支和 BugFix 分支
- 在开发完成,代码被后合入后,这些分支应该被删除
- 分支的命名是团队内部协商的结果,需要有明确的约定规范
- 标签策略
- 标识阶段性的成果,关键在于版本的命名规范
CodeHub 代码评审
- 角色划分
- 一次代码评审( Code Review ),包含提交者、合并者与评审者的固定角色,其他团队成员,也可以围观和评论
- 提交者发起代码的合并请求,并设置合并者与评审者(可多位人员)
- 评审者和合并者可以给这个合并请求评分,或发出评论
- 合并者可以根据代码质量与自动化检查的结果,确定是否合入代码
- 打分机制
- 代码仓库可以设置任一合并请求的最低合入得分,通过设置合理的分值,可以促进团队内,更多的成员,参与代码的评审
- 管理员可以+2 或-2 分,普通的成员,可以+1分或-1分
- 团队内的所有成员,都可以参与评分,提交者也可以邀请更多的人来参与打分
CodeHub 关键特性
- Git 代码仓库
- SSH/HTTPS协议支持
- 分支与标签支持
- 代码提交历史
- 仓库网络
- WebHook
- 安全特性
- 成员权限管理
- 保护分支与开发分支管理
- 消息通知机制
- 安全白名单
- 操作日志
- 其他特色功能
- Code Review
- 在线编辑
- 统计图表
- 基于模板创建仓库
- 导入 Git / SVN 仓库
华为云 CloudIDE
概述
- CloudIDE 是 DevCloud 的云端开发环境服务,向开发者提供按需配置、快速获取的工作空间(包含编辑器和运行环境),支持完成环境配置、代码阅读、编写代码、构建、测试、运行、调试、预览等操作,并支持对接多种代码仓库
CloudIDE 特性列表
特性 | 描述 |
---|---|
云化和轻量化 | 依托华为云的计算和存储资源,实现云化开发环境供给,通过浏览器访问就可完成开发全过程,实现移动办公 |
快速按需容器化 | 用户工作空间基于全容器技术,极短时间即可按用户所需配置(计算和存储)启动并提供服务,用后随时释放 |
多语言和技术栈 | 支持40多种语言的语法高亮,支持Java 等语言的语法补齐,支持7种预置技术栈,无需复杂配置环境即可就位 |
试图风格可切换 | 提供亮色和暗色两种视觉风格,编辑器提供多种视图布局,还支持满屏编辑和边栏收缩 |
后端环境可配置 | 提供页面终端(WebTerminal)直接访问后端容器环境,以命令行设置变量、处理文件和配置其他环境因素 |
构建运行和测试 | 提供命令管理器以支持构建(Build)和运行(run),对Java 等语言还支持断点调试 |
可对接三方服务 | 处理对 Git 仓库(DevCloud代码仓库或Github等)的支持,还提供对接第三方服务(即通过外网通道对接其他开放服务)的能力 |
企业化权限管控 | 提供基于黑白名单的访问控制能力,为企业租户提供掌控子用户行为的管理面 |
CloudIDE 服务概述
- CloudIDE:定义一种新的在线编程体验
- 传统的代码编辑器是轻量级,以编辑体验为中心,支持多语言高亮显示,并且可以快速访问文件
- 本地化IED功能强大(比如eclipse,idea),通常支持代码编辑,项目系统,调试,自动化构建等
- WebIDE则继承了双方的优点
- CloudIDE:运行在云端的轻量级集成开发环境
- CloudIDE服务特性
- 按需获取,轻量,极速
- 支持主流编程语言
- 打通开发态和运行态
- 丰富的插件生态
- 支持华为鲲鹏原生
CloudIDE 产品特性
- 开发者可以通过开发桌面,智能终端,移动设备访问华为云cloudIDE,同时cloudIDE可以连通华为云其他应用:kunpeng,DevCloud, Modelarts等
服务集成
对接 CodeHub
- 在DevCloud的很多应用中,如CodeHub 我们可以直接用CloudIDE打开代码文件
对接 Classroom
- 在classroom应用中,学生可以直接在编程作业中进入CloudIDE,直接编写代码,省去了本地搭建研发环境的精力
方案集成(集成华为云 ModelArts SDK 样例)
Modelarts是华为云AI学习平台
- 将代码上传至DevCloud的CodeHub,然后以代码为
基础创建CloudIDE实例,并加载modelarts sdk,修改配置文件后,即可调用Modelarts应用进行模型训练了
最后,欢迎大家关注我的个人微信公众号 『小小猿若尘』,获取更多IT技术、干货知识、热点资讯。同时,我在公众号中分享了精心整理的一些视频资料(包括 Python全栈教程、AI教程、前端、数据库等),大家回复相应关键词即可获取网盘视频链接,感谢大家的关注😊
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)