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

2023-11-15

DevOps系列之 —— DevOps概览(一)软件产业和交付模式发展趋势
DevOps系列之 —— DevOps概览(二)新型软件技术及交付模式
DevOps系列之 —— DevOps概览(三)DevCloud HE2E DevOps 框架及其主要服务
DevOps系列之 —— 持续规划与设计(一)敏捷项目管理理念与方法实践
DevOps系列之 —— 持续规划与设计(二)规划与设计
DevOps系列之 —— 持续规划与设计(三)敏捷项目管理的方法【Kanban 与 Scrum】
DevOps系列之 —— 持续规划与设计(四)敏捷需求管理【用户故事 & 敏捷估算】
DevOps系列之 —— 持续规划与设计(五)团队与协作
DevOps系列之 —— 持续规划与设计(六)华为敏捷项目管理企业实践
DevOps系列之 —— 持续开发与集成(一)持续集成理念、方法及实践
DevOps系列之 —— 持续开发与集成(二)代码托管与分支策略(Git Flow、GitHub Flow & GitLab Flow)
DevOps系列之 —— 持续开发与集成(三)Git 基本概念及主要操作
DevOps系列之 —— 持续开发与集成(四)代码提交及代码评审
 
DevOps 系列文章,持续更新中 ~~~

华为云 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教程、前端、数据库等),大家回复相应关键词即可获取网盘视频链接,感谢大家的关注

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

随机推荐

  • Matlab - Solidworks 机器人建模(3)如何把URDF文件导入到Matlab

    文章目录 0 前言 1 URDF 转化成 rigidbody tree格式 2 URDF 导入到 simulink 有了urdf文件之后 在matlab里面可以有这两种导入选择 urdf 转化成 rigidbody tree urdf 转化
  • 基础算法【算法习题及模板】上

    目录 排序 快速排序 归并排序 二分 高精度 高精度加法 高精度减法 高精度乘法 高精度除法 排序 快速排序 给定你一个长度为n的整数数列 请你使用快速排序对这个数列按照从小到大进行排序 并将排好序的数列按顺序输出 输入格式 输入共两行 第
  • Linux 查看或统计网卡流量的几种方式【全】

    在工作中 我们经常需要查看服务器的实时网卡流量 通常 我们会通过这几种方式查看Linux服务器的实时网卡流量 目录 1 sar 2 proc net dev 3 ifstat 4 iftop 5 nload 6 iptraf ng 7 ne
  • 我国网民上网最爱干三件事:娱乐聊天看新闻

    中国互联网信息中心 CNNIC 今日发布第24次中国互联网发展状况统计报告 报告显示 我国网民上网最干的三件事分别是 娱乐 聊天 看新闻 报告称 我网民在网络娱乐 信息获取和交流沟通类网络应用上使用率较高 除论坛 BBS外 这三类网络应用在
  • 27条好赚钱副业的途径:自己也能不用上班月入2万+!

    前言 最近我的知乎号也是越做越好了 很多读者私聊我有没有副业可以做 自己平常除本职的工作之外 也会去做一些其他事情 写公众号 搞搞小视频 偶尔还接点小私活 平常还收了几个小徒弟 然而知乎上很多非相关互联网的也给我咨询了好的 不得不说自己还需
  • 基于孪生网络的单目标跟踪持续汇总

    基于Siamese Network的单目标跟踪持续汇总 Visual Object Tracking 从SiamFC开始 涌现了一大批基于孪生神经网络 Siamese Network 的跟踪算法 其中包括多目标跟踪和单目标跟踪 本文将以Si
  • 51单片机用三种方法实现流水灯(超详细)

    51单片机用三种方法实现流水灯 一 数组流水灯 二 移位函数流水灯 三 移位运算符流水灯 一 数组流水灯 定义一组数组分别对应点亮LED1 7 然后利用for循环赋值给p2从而实现流水灯 include
  • 微信用户的 openid 可能会在以下几种情况下发生变化

    微信用户的 openid 可能会在以下几种情况下发生变化 1 用户重新安装微信应用后 会获得一个新的 openid 2 用户在同一设备上切换微信账号后 该设备上存储的 openid 会刷新 3 微信用户设置了 清除缓存 后 也会获得新的 o
  • 项目2-年收入判断

    文章目录 项目2 年收入判断 友情提示 项目描述 数据集介绍 项目要求 数据准备 环境配置 安装 Logistic回归 数据准备 一些有用的函数 梯度与损失 模型训练 绘制损失和精度曲线 预测测试标签 多变量生成模型 数据准备 平均值和协方
  • 概率图模型(PGM):贝叶斯网(Bayesian network)初探

    1 从贝叶斯方法 思想 说起 我对世界的看法随世界变化而随时变化 用一句话概括贝叶斯方法创始人Thomas Bayes的观点就是 任何时候 我对世界总有一个主观的先验判断 但是这个判断会随着世界的真实变化而随机修正 我对世界永远保持开放的态
  • 三层交换机配置OSPF动态路由

    一 建立拓扑图 二 配置主机IP地址 网关 主机号 IP地址 网关 PC 0 192 168 10 101 192 168 10 1 PC 1 192 168 20 101 192 168 20 1 PC 2 192 168 30 101
  • 在IDEA中建好了一个Maven项目后,启动Tomcat,IDEA控制台输出乱码问题的改善

    前言 当我们在IDEA中新建一个Maven项目后 启动Tcomcat访问指定网页时 在IDEA控制台的output窗口会出现中文乱码的情况 对一些人来说 这样看起来很不舒服 为什么会出现这个问题呢 怎样解决这个问题呢 原因 Tomcat的配
  • gorm操作数据库

    gorm官方学习链接 操作总结 func deploy DeploymentConf Get application server instance string error err DB Table DEPLOYTABLENAME Whe
  • ubuntu18.04安装mosquitto及使用

    1 安装 sudo apt add repository ppa mosquitto dev mosquitto ppa sudo apt get update sudo apt get install mosquitto sudo apt
  • Android |双锁单例模式中使用Context如何避免内存泄露的 Warning 提示

    文章目录 问题 解决方法 拓展 问题 在Android开发中 经常会将工具类以单例模式的方法实现 而工具类中又总不可避免的用到 Context 例如 public class MySingleton private static volat
  • 博客积分规则

    博客积分是CSDN对用户努力的认可和奖励 也是衡量博客水平的重要标准 博客等级也将由博客积分唯一决定 积分规则具体如下 1 每发布一篇原创或者翻译文章 可获得10分 2 每发布一篇转载文章 可获得2分 3 博主的文章每被评论一次 可获得1分
  • 软件测试/测试开发

    公众号搜索 TestingStudio 霍格沃兹的干货都很硬核 测试管理平台是贯穿测试整个生命周期的工具集合 它主要解决的是测试过程中团队协作的问题 在整个测试过程中 需要对测试用例 Bug 代码 持续集成等等进行管理 下面分别从这四个方面
  • C/C++编译器配置——MinGW下载安装

    一 前言 由于重装Win11系统 所有配置环境需要重装 对于C C 编译器MinGW配置做一个简单记录 VS code等软件只提供编辑器 不提供编译器 因此windows系统上的C C 编译器需要通过安装MinGW实现 二 安装过程 在Mi
  • 怎么开发企业微信小程序?

    企业微信小程序是一种基于微信平台的小程序 主要用于企业内部管理和沟通 开发企业微信小程序可以帮助企业提高工作效率和协同能力 同时也能够提升企业形象和品牌价值 本文将介绍如何使用小程序制作工具来开发企业微信小程序 一 了解企业微信小程序的优势
  • DevOps系列之 —— 持续开发与集成(五)华为云 DevCloud 代码托管服务及 CloudIDE

    DevOps系列之 DevOps概览 一 软件产业和交付模式发展趋势 DevOps系列之 DevOps概览 二 新型软件技术及交付模式 DevOps系列之 DevOps概览 三 DevCloud HE2E DevOps 框架及其主要服务 D