云服务器内容精选

  • 原理介绍 作业流(Workflow)是对作业流程及其各操作步骤之间业务规则的抽象、概括描述。作业流提供了一种很好的工程化的方式来解决业务问题,使得业务抽象、流程格式化、易维护和易拓展,实现一定程度的业务可视化。 下面将介绍两种开发模式的作业流。 分支开发模式:是采用直接 clone 源项目中心仓的方式,由新建分支向目标分支发起合并请求提交代码,让任何一个开发者都可以方便的向开源项目贡献代码。该模式没有代码评审的机制,开发者之间的协作与交流少而不顺畅,因此多适用于小团队开发。对于较大的团队,建议使用 fork 开发模式。 Fork开发模式:是一种社交编程,是利用群体的智慧来进行合作编程的一种工作模式,采用派生/合并请求的方式,让任何一个开发者都可以方便地向开源项目贡献代码。这也是一种优秀的代码评审机制,使开发者之间的交流与协作更加顺畅而灵活,开发工作更加高效。
  • 基本概念 项目管理员 项目管理员,通常项目创建者默认为本项目的项目管理员。 项目管理员拥有在本项目下的所有权限,且权限不得被移除或修改。对于项目下哪些成员可以对其他项目下其他成员进行权限管理配置,由DevUC控制。按照当前功能,项目创建者(同时也是项目管理员)可以赋予项目下其他成员进行权限管理的权限(DevUC的能力,子服务不感知)。 仓库所有者(仓库创建者) 项目成员被赋予新建仓库的权限,当该成员创建仓库后,会被标记为仓库所有者,同时享有该仓库最大的权限。 仓库管理员 仓库所有者、项目管理员、父代码组所有者均为仓库管理员。 代码组管理员 代码组所有者、项目管理员、父代码组所有者均为代码组管理员。
  • 日志 ● 云日志 云日志服务(Log Tank Service)提供一站式日志采集、秒级搜索、海量存储、结构化处理、转储和可视化图表等功能,满足应用运维、网络日志可视化分析等保合规和运营分析等应用场景。 出于分析问题的目的,CodeArts Repo将系统运行的日志实时记录到LTS,并保存3天。 基于服务器、数据库等的日志进行监控,对触发监控规则的日志信息通过短信和邮件进行告警,确保现网故障和隐患能第一时间被发现并进行有效处理,保证用户的业务正常运转,做到问题的及时发现和处理,减少对用户业务的影响。
  • 数据保护技术 CodeArts Repo通过多种手段保护数据安全。 数据保护手段 简要说明 详细介绍 传输加密(HTTPS) 通过在云端对托管在CodeArts Repo的代码库进行落盘加密,可以有效避免数据拥有者之外的人接触到用户的明文数据,避免数据在云端发生泄露。同时,代码加密过程对用户完全透明,用户可以使用任意官方Git端来访问CodeArts Repo上的代码仓库。 - 密钥管理 通过SSH密钥和部署密钥管理,确保请求发起是请求发起方,让用户只能浏览被授权的数据,保证数据安全。 关于SSH密钥详细介绍及获取方式,请参见SSH密钥。 git-crypt加密传输与存储 git-crypt是一款第三方开源软件,可以用于对Git仓库中的文件进行透明化的加密和解密。 其可对指定文件、指定文件类型等进行加密存储,开发者可以将加密文件(如机密信息或敏感数据)与可共享的代码存储在同一个仓库中,并如同普通仓库一样被拉取和推送,只有持有对应文件密钥的人才能查看到加密文件的内容,但并不会限制参与者对非加密文件读写。关于git-crypt加密传输与存储详细介绍及获取方式,请参见git-crypt加密。 敏感数据匿名和高价值 数据加密 CodeArts Repo在利用统一、准确的数据支撑应用程序和服务的同时充分保障了数据安全性和隐私性。 日志和数据库中无可避免有一些敏感数据,包含但不限于密钥,账号信息等等。为防止敏感数据泄露造成安全问题,CodeArts Repo先把这些数据进行匿名或者加密处理,其原理是哈希函数,是对一段信息产生信息摘要,以防止被篡改。 防DDOS工具 DDoS高防(Anti-DDoS)是防护DDoS攻击的工具。当您的互联网服务器遭受大流量的DDos攻击时,DDoS高防可以保护其应用服务持续可用。 DDoS高防支持通过DNS解析和IP直接指向两种引流方式,实现网站 域名 和业务端口的接入防护。根据您在DDoS高防中为业务配置的转发规则,DDoS高防将业务的DNS域名解析或业务IP指向DDoS高防实例IP或CNAME地址进行引流。 来自公网的访问流量都将优先经过高防机房,恶意攻击流量将在高防流量清洗中心进行清洗过滤,正常的访问流量通过端口协议转发的方式返回给源站服务器,从而保障源站服务器的稳定访问。 流量限制 流量限制可以用来限制用户在给定时间内HTTP请求的数量,流量限制用来保护上游应用服务器不被同时太多用户请求所压垮。 CodeArts Repo的主要使用Nginx流控和APIGW流控。Nginx的流量限制使用漏桶算法,该算法在通讯和分组交换计算机网络中广泛使用,用以处理带宽有限时的突发情况。APIGW流控可限制单位时间内API的被调用次数,保护后端服务,提供持续稳定的服务。 容灾备份 容灾备份不仅保证数据不丢失,还要保证在服务器宕机后接管服务器的业务,保证业务连续性。保障用户可以不间断的使用应用服务,让用户的服务请求能够持续运行,保证信息系统提供的服务完整、可靠、一致。 - Hash分片存储 Hash分片存储,即通过数据分片提高隐私性和私密性,就是按照一定的规则,将数据集划分成相互独立正交的数据子集。然后数据被随机分散到多个节点中,没有任何一个节点可以访问完整的数据,它们只包含数据的某一部分。 - 水印 为防止未经授权拍照、截图或其他手段随意传播公司核心资产,可以开启水印设置。 关于水印的详细设置方法,请参见设置水印设置水印设置水印。 备份 仓库备份操作保障代码安全,防止他人误删除,分为两种备份形式。 将仓库备份到华为云的其它区域。 将仓库备份到您本地计算机。 关于备份仓库的详细操作方法,请参见备份仓库备份仓库备份仓库。 父主题: 安全
  • 访问控制 IAM 权限管理 权限管理是基于角色与权限的细粒度授权,即根据不同角色的工作需要分配不同的操作权限,用户只可访问被授权资源。 CodeArts Repo中的角色有产品经理、测试经理、运维经理、系统工程师、Committer、开发人员、测试人员、参与者、浏览者和自定义角色。 IP白名单控制 IP白名单是对IP范围开设的白名单,通过设置IP白名单能极大增强您的仓库的安全性。 只有在IP白名单范围内的IP才可以访问仓库。除此之外其他IP发起的访问将被拒绝。 IP白名单包括租户级IP白名单和仓库级IP白名单,并可配置优先级。 关于IP白名单的详细配置方法,请参见配置IP白名单。 锁定仓库 为防止任何人破坏即将发布版本的代码仓库,管理员可以锁定仓库,在锁定仓库后,任何人都无法向任何分支提交代码(包括管理员本人)。 关于锁定仓库的详细操作方法,请参见锁定仓库锁定仓库锁定仓库。 保护分支管理 分支保护,可防止分支被其他人提交或误删。 保证分支的安全性,允许开发人员使用合并请求合入代码。 阻止管理者以外的人推送代码。 阻止任何人强行推送到此分支。 阻止任何人删除此分支。 关于保护分支的详细配置方法,请参见配置保护分支配置保护分支配置保护分支。 运维SOD 为规范开发、测试、发布上线全流程运维脚本(包含脚本开发、代码检视、手动测试、集成验收、发布审核、脚本上线、版本管理等),推行和加强标准化作业的管理,保证流程合规、安全合规、质量合规。 防护墙和VPC隔离 CodeArts Repo通过防护墙和VPC隔离支持租户间网络和资源隔离。
  • 身份认证 无论通过管理控制台或API接口访问CodeArts Repo,CodeArts Repo使用 统一身份认证 服务IAM进行认证鉴权。 CodeArts Repo支持两种认证方式: Token认证:通过Token认证调用请求。 AK/SK认证:通过AK(Access Key ID)/SK(Secret Access Key)加密调用请求。推荐使用AK/SK认证,其安全性比Token认证要高。 关于认证鉴权的详细介绍及获取方式,请参见认证鉴权认证鉴权认证鉴权。
  • 责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的 云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 安全性是华为云与您的共同责任,如图1所示。 华为云:负责云服务自身的安全,提供安全的云。华为云的安全责任在于保障其所提供的 IaaS、PaaS 和 SaaS 类云服务自身的安全,涵盖华为云数据中心的物理环境设施和运行其上的基础服务、平台服务、应用服务等。这不仅包括华为云基础设施和各项云服务技术的安全功能和性能本身,也包括运维运营安全,以及更广义的安全合规遵从。 租户:负责云服务内部的安全,安全地使用云。华为云租户的安全责任在于对使用的 IaaS、PaaS 和 SaaS 类云服务内部的安全以及对租户定制配置进行安全有效的管理,包括但不限于虚拟网络、 虚拟主机 和访客虚拟机的操作系统,虚拟防火墙、API 网关和高级安全服务,各项云服务,租户数据,以及身份账号和密钥管理等方面的安全配置。 《华为云安全白皮书》详细介绍华为云安全性的构建思路与措施,包括云安全战略、责任共担模型、合规与隐私、安全组织与人员、基础设施安全、租户服务与租户安全、工程安全、运维运营安全、生态安全。 图1 华为云安全责任共担模型 父主题: 安全
  • 产品优势 统一代码仓平台 MR开发模式: 即合并请求模式,是业界主流的开发模式,以提交MR(PR)为主,类似GitLab MR/GitHub PR工作流。 极致安全 从传输安全、精细化权限管控、安全策略、存储加密、备份恢复、代码安全检测、安全审计等多维度构筑安全防御机制,提供极致韧性和安全的代码托管能力,代码核心资产安全无忧 内置规范 将代码库配置管理、分支开发规范、代码Review规范、Committer工程实践等多种标准规范和实践内置于其中,帮您建立标准、规范、高效的代码开发流程。 高效协同 提供基于Git的多种开发协作模式,同时支持分支开发模式和Fork社交编程开发模式,支持业界Git-Flow、GitHub-Flow、GitLab-Flow等常用分支开发模型,既适合中小企业灵活开发模式,也支持中大型企业的复杂开发协作模式。 代码高质量 多层级、细粒度代码上库质量门禁。 集成代码规范检查、安全检查、代码重复率和圈复杂度检查等自动化检测,保障代码高质量。 多形式代码检视,提升代码质量、传递技术经验。 一站式DevSecOps 与CodeArts Req、CI/CD等无缝衔接,提供一站式DevSecOps软件开发工具链。
  • 什么是代码托管(CodeArts Repo) 代码托管(CodeArts Repo)是面向软件开发者的基于Git的在线 代码托管服务 ,是具备安全管控、成员/权限管理、分支保护/合并、在线编辑、统计服务等功能的云端代码仓库,旨在解决软件开发者在跨地域协同、多分支并发、代码版本管理、安全性等方面的问题。 在线代码阅读、修改、提交,随时随地开发,不受地域限制。 在线分支管理,包含分支新建、切换、合并,实现多分支并行开发,效率高。 分支保护,可防止分支被其他人提交或误删。 IP白名单地域控制和支持HTTPS传输,拦截不合法的代码下载,确保数据传输安全性。 支持重置密码,解决用户忘记密码的问题。
  • 代码托管的工作模式 代码托管(CodeArts Repo)采用Git Flow作为基础工作模式。 Git-Flow提供了一组建议,通过严格执行这些建议的规则,帮助中小型研发团队,能够更好的规范自己的开发工作。 并行开发:各个特性与修复bug,可以并行。 团队协作:多人开发过程中,大家都能够理解其他人的当前工作。 灵活调整:通过Hotfix分支,支持各种紧急修复的情况。 master分支:最为稳定,功能比较完整,随时可发布的代码。 develop分支:用于平时开发的主分支,并一直存在,永远是功能最新最全的分支,包含所有要发布到下一个release的代码,主要用于合并其他分支。 feature分支:用于开发新的功能的分支,一旦开发完成,通过测试,合并回develop分支进入下一个release。 release分支:用于发布准备的专门分支。 hotfix分支:用于修复线上代码的bug 。 所有feature分支从develop分支拉取。 所有hotfix分支从master分支拉取。 所有在master分支上的提交都打上tag ,方便回滚。 只要有合并到master分支的操作,都需要和develop分支合并下,保证同步。 master分支和develop分支是主要分支,主要分支每种类型只能有一个,派生分支每个类型可以同时存在多个。
  • 升级CodeArts Repo的SSH功能 代码托管服务SSH功能下线部分不安全的加密算法。 当前KEX (Key Exchange)和MAC(消息验证码)不再支持以下算法。 KEX (Key Exchange)不支持算法如下: diffie-hellman-group18-sha512 diffie-hellman-group-exchange-sha1 diffie-hellman-group-exchange-sha256 MAC(消息验证码)不支持算法如下: hmac-md5 hmac-md5-96 hmac-sha1-etm@openssh.com hmac-sha1-96-etm@openssh.com hmac-md5-etm@openssh.com hmac-md5-96-etm@openssh.com umac-64@openssh.com umac-128@openssh.com 升级您的的代码提交工具至最新版本(如:git bash,eclipse,idea等),新版本默认使用更为安全的算法。 如有疑问请联系技术支持工程师。 父主题: 认证鉴权问题
  • 解决方案 方案一:通过项目代码托管设置-成员同步 开启后,自动同步所选角色项目成员至代码组及仓库(项目成员有变动时触发),项目经理不依赖开关始终同步,可单击刷新按钮触发一次全量同步。 方案二:通过成员组进行成员管理。 操作步骤如下: 在项目里定义成员组。 通过代码组对仓库进行分层管理,代码组下建仓库。 将项目的成员组添加到代码组后,项目里的成员组有成员新加入/离开,就会自动同步到仓库。实现成员一键添加到所有代码仓里的述求。
  • 处理方法 查看远程仓库名称及路径的相关信息,删除错误的远程仓库名称,再重新添加新的远程仓库。执行如下命令: 查看远程仓库的详细信息,可看到代码仓库的名称,关联地址。 git remote -v 删除错误的origin仓库。 git remote remove origin 重新添加远程代码仓库地址。 git remote add origin 重新提交代码文件到远程代码仓库的master主干。 git push -u origin master
  • 解决方案 Clone个人空间里的Fork仓库到本地。 git clone https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/Roger/TestService.git cd TestService 增加远程原始仓(主库仓)到本地(可以用 git remote -v 命令查看远程仓列表) git remote -v 如果没有远程原始仓,则需要增加: git remote -v origin https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/Roger/TestService.git (fetch) origin https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/Roger/TestService.git (push) 查看确认远程仓列表。 git remote -v origin https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/Roger/TestService.git (fetch) origin https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/Roger/TestService.git (push) main https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/AlphaGo/TestService.git (fetch) main https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/AlphaGo/TestService.git (push) 获取原始仓(主库仓)的branch分支最新代码到本地,合并两个版本的代码。 git pull main master 把合并后的最新代码同步到fork仓上。 git push origin master
  • 问题现象 在CodeArts Repo上可以将主库代码仓Fork到个人其它项目下,此功能有助于协同开发,但在使用Fork模式开发时,可能会遇到问题:当主库(源项目)更新后,Fork库并不会一起更新,需要自己手动更新。 您可以通过如下操作将主库代码同步到个人Fork出来的派生库。 例如: 主仓地址: https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/AlphaGo/TestService.git Fork仓地址: https://test.com/f2e22eeb1b8c43cfb764765f5e3ff039/Roger/TestService.git 分支名:master