Azure DevOps

设计 DevOps 策略

对存储服务的每个请求都必须得到授权,除非该请求是针对可用于公共或签名访问的 Blob 或容器资源

Microsoft Teams 和 Slack 是推荐的敏捷开发多平台通信工具

交货时间:提前衡量从创建工作到完成工作所花费的总时间

燃尽图:专注于特定时间内的剩余工作

Azure DevOps 自动管理用户和组的前提是,手动设置采购许可证

开发过程中的安全检测次序:在抓取请求期间,优先采用威胁模型;持续集成期间,优先使用静态代码分析;持续集成期间,优先使用渗透测试方式

Team Foundation Server 向 Azure 迁移时,首先需要升级到最新的 RTM 版本,其后采用数据库导入服务(TFS Database Import Service)

应用程序映射是 Azure Application Insights 的一部分,用于对性能瓶颈和错误信息进行进一步分析,实现可视化效果

代码审查期间,对代码质量进行审查可以使用 Maven 提供的 PMD(源代码分析器)

使用 DevOps 在本地设备或第三方服务中管理、采集和发布,需要使用自托管代理

Scrum(并列争球),属于敏捷开发的一种,通常周期更长,迭代期内需求不变更

CMMI(能力成熟度模型),对于项目需求、风险和迭代进行管理

将存储库从 GitHub 克隆到 Azure DevOps 过程中,在 Azure 管理端操作导入库

使用 WhiteSource Bolt 在构建过程中进行检测,对开源项目及其许可证进行管理

对企业内部的自定义包管理,可以使用 Azure Artifacts 创建 feed,将包发布在 feed

如包位于需要身份验证的 feed 中,一般采用 Azure Artifacts 凭证提供程序进行自动验证

Azure Artifacts 托管的包对匿名用户提供时,一般为包创建新的 feed

由于技术债务累积,添加新的程序功能所需时间较之预期更长,需要降低代码复杂度

开发分支一般是短期生命周期(Short-lived),类型为 Feature 分支

使用敏捷方法可视化工作流程,一般采用看板方法

敏捷开发方法在冲刺回顾中应该讨论项目执行情况和计划调整的内容,包括三个问题:谁可以做的更好;有什么可以变得更好;接下来我们应该尝试什么

对源代码在 Azure 中,使用第三方工具进行持续集成时,Azure 使用个人访问令牌进行身份验证

一般情况下 Azure Pipelines 使用 OAuth 身份验证协议

在 Github 存储库集成到项目的过程中,使用 Azure Pipelines 身份时,需要使用 Github APP;如使用 OAuth 或者 个人访问令牌,则使用私人 Github 身份

对于自托管的 Linux 代理,一般采用个人访问令牌来注册代理

个人访问令牌(PAT)使您可以直接访问 Azure DevOps 和 Team Foundation Server(TFS),而无需直接使用用户名和密码

构建需要 AD 进行身份验证的应用,首先应当在 AD 中注册应用程序

Python 的默认上游源是 PyPI

git gc --aggressive 清理不必要的文件,优化本地库

git prune --expire now 修剪无法访问的对象

实施 DevOps 开发流程

将虚拟机添加为 Azure 自动化状态配置中的受管节点,使用命令 Registr-AzureRmAutomationDscNode

为避免配置漂移,在对计算节点执行 Registr-AzureRmAutomationDscNode 命令时,应该将 ConfigurationMode 参数的值设置为 ApplyAndAutocorrect

为特定团队设置特定构建策略的库:

  • 创建一个仓库
  • 创建一个 Fork
  • 给 Fork 添加构建策略

为批量节点配置自动化节点:

  • 创建扩展名为.ps1的状态配置(DSC)文件
  • 运行 Import-AzureRmAutomationDscConfiguration 命令将 DSC 文件上传
  • 最后运行 Start-AzureRmAutomationDscCompilationJob 命令编译 DSC 配置

版本控制系统一般用途分类:

  • Git in Azure Repos:使用 Pepilines 管理,部署在云端
  • Github Enterprise:部署在企业设备
  • Bitbucket Cloud

减少基础结构凭据泄漏的可能性,可以采用 Azure 密钥保存库

Octopus Deploy 用于维护依赖关系和打包应用程序

SonarQube/SonarCloud 是一个检查源代码质量的开源平台

Azure DevTest Labs 是一个提供测试环境的扩展

通信组分类:

  • 私人:通过电子邮件邀请
  • 公共:通过公共链接访问
  • 共享:在一定范围内共享的私人组

Jenkins 服务器和 Azure DevOps 通信时,可以使用服务挂钩报告代码推送事件

K8S 部署中,使用 SMB 通信的存储是 azure-file,模拟硬盘通信的存储是 azure-disk,将保密数据作为节点挂载通信的是 azurekeyvault

subversion 是 xcode 提供的一套开发工具

JaCoCo/Cobertura 用于代码覆盖率测试

实施依赖性管理

团队开发者应该具有读者权限,团队领导应该具备所有者权限

发布前对内容进行检查,打开发布管道设置,启用管理门,添加查询项目

开发许可证合规性检查 WhiteSource/Black Duck

分发包的四步流程:

  1. 配置自托管代理
  2. 创建新的 Feed
  3. 发布包
  4. 连接到 Feed 下载包

实施持续集成85

第三方服务器在集成时应声明为服务端点

部署 Azure Pipelines 代理:

  1. 使用管理员服务连接安全角色的账户登录
  2. 创建一个个人令牌
  3. 在 Azure 虚拟机上安装并注册代理

使用自动状态配置管理虚拟机配置的持续一致性:

  1. 分配节点配置
  2. 上传配置到自动状态配置
  3. 编译节点配置
  4. DSC 部署到虚拟机
  5. 检查节点合规性

Gradle/Maven 可以监视代码质量

实施连续交付139

Terraform 和 Yeoman 可用于部署基础结构

实施应用程序基础结构180

在 AKS 中使用容器:

  1. 创建 YAML 配置文件
  2. 执行 kubectl 应用
  3. 执行 helm init

Azure 安全中心会为应用程序的安全性提出建议

在第三方虚拟机上部署所需状态配置 DSC:

  1. 创建 DSC 元配置
  2. 将元配置复制到虚拟机
  3. 将虚拟机添加到节点

在通信组发布 IOS 应用,需要在 Apple Developer 注册设备,同时需要将内部证书 CA 部署到每个设备

IOS 设备的有效证书格式为 .p12

实施连续反馈

Azure Application Insights 用于程序可用性和程序异常检测

配置 Azure Application Insights 进行可用性测试时,需部署 Azure 逻辑应用程序处理电子邮件等通知,该逻辑应用采用 Webhooks 触发器

可使用 Azure Application Insights 对 Web 服务前后端进行检测,获取和管理平均加载时长

智能检测是 Insights 中负责对异常情形进行判断和识别的功能

收集来宾操作系统进程数据,采用 Azure Log Analytics 代理和依赖代理

采用 就绪探测器 对应用程序的就绪可用性进行检测

采用 ServiceNow 的架构,可以使用 ITSM(IT服务管理)

Azure Monitor 日志基于数据资源管理器,使用 Kusto 查询语言管理

捕获和存储遥测数据需使用 Azure 日志分析服务,Insights 仅提供七日内的基准分析

使用自定义脚本部署程序,更新时需要修改自定义脚本扩展配置,上载脚本,并重新部署

将应用程序构建信息使用 Slack App Integration 发布,需要创建 servicehooks 订阅

采用 Azure Boards 管理存储库时,需要先将 Azure Boards 添加到资源库