华为云DevOps系列之 —— 持续开发与集成(五)华为云 DevCloud 代码托管服务及 CloudIDE

举报
ruochen 发表于 2021/08/14 14:48:51 2021/08/14
【摘要】 华为云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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。