当前位置: 首页 > wzjs >正文

网站的基本知识做面包有关电影网站

网站的基本知识,做面包有关电影网站,桂林公司网站搭建,html5导航网站源码文章目录 项目地址一、Azure Boards1.1 Scrum 结构1. 创建Epic2. 创建features3. 添加items4. 总结 二、Pipeline2.1 流程1. Feature分支开发2. PR合并到dev分支3. CI/CD 部署到 Dev 环境(自动)4. 发布准备5. 提交生产版本(合并到 main 并打 …

文章目录

  • 项目地址
  • 一、Azure Boards
    • 1.1 Scrum 结构
      • 1. 创建Epic
      • 2. 创建features
      • 3. 添加items
      • 4. 总结
  • 二、Pipeline
    • 2.1 流程
      • 1. Feature分支开发
      • 2. PR合并到dev分支
      • 3. CI/CD 部署到 Dev 环境(自动)
      • 4. 发布准备
      • 5. 提交生产版本(合并到 main 并打 Tag)
      • 6. 部署到生产环境(CD)
      • 7. 总结
    • 2.2 一个完整的aks部署


项目地址

  • 教程作者:
  • 教程地址:
  • 代码仓库地址:
  • 所用到的框架和插件:
dbt 
airflow

一、Azure Boards

1.1 Scrum 结构

在这里插入图片描述

1. 创建Epic

  • Epic是核心业务模块名称,例如,用户管理,商品和类目管理,支付系统,后台管理,消息和通知服务
    在这里插入图片描述

2. 创建features

  • 添加feauture,需要关联Epic,feature主要是Epic下的功能,例如,在Epic是用户管理模块下,feature是 用户注册和登录,身份和权限认证,用户资料管理,用户角色管理
Epic: 用户与账户管理
├── Feature: 用户注册与登录
├── Feature: 用户资料管理
├── Feature: 地址管理
├── Feature: 权限与角色管理
├── Feature: 通知偏好设置
├── Feature: 第三方登录(可选)
├── Feature: 登录日志与安全审计
└── Feature: 实名认证(可选)

在这里插入图片描述

3. 添加items

  1. 添加一个feature下的items,这里举例feature是用户注册和登录功能
    在这里插入图片描述
  2. 添加最小的item这里是创建用户注册的api功能 ,并且将该item连接到他的父类Feature下

在这里插入图片描述
3. 创建一个tasks, 在上面的页面下,添加新的links,为Child,例如创建用户注册api需要的table,需要的controller等

在这里插入图片描述
4. 创建多个tasks在一个item下

在这里插入图片描述

4. 总结

以上的任务一般是Devops团队或者Leader用来创建,作为开发只需要关注,Work Items下分配给自己的任务

在这里插入图片描述

二、Pipeline

2.1 流程

[Feature 分支开发]↓
[Pull Request ➜ develop 分支]↓ (自动 CI: 构建 + 单测 + 静态分析)
[合并 develop ➜ Dev 环境自动部署]↓
[功能验收后 ➜ 创建 release 分支]↓ (CI: 全流程 + 安全扫描 + E2E测试)
[合并 release ➜ main + tag ➜ 触发生产部署]↓
[生产环境部署 + 审批 + 蓝绿发布 + 监控]

1. Feature分支开发

  1. 从dev分支拉去代码到本地
  2. 进行本地开发和测试
  3. 完成后提交代码远程feature分支

2. PR合并到dev分支

  1. 创建pull request
  2. Review 通过后合并
  3. 自动触发CI:
    ①恢复依赖(dotnet restore/npm install)
    ②编译环境(dotnet build/npm run build)
    ③单元测试
    ④SonarQube 分析

3. CI/CD 部署到 Dev 环境(自动)

  1. YAML pipeline 检测到 develop 分支更新,自动触发
    ①构建发布包
    ②可选 Docker 镜像构建并推送 ACR
    ③部署至 Azure Dev 环境(App Service 或 AKS Dev 命名空间)
    ④环境变量通过 Azure Key Vault 注入

4. 发布准备

  1. 功能开发完成后,从 develop 创建 release 分支
  2. 触发完整 CI 流程:
    ①单元测试
    ②静态分析(Sonar)
    ③安全漏洞扫描(Snyk, CodeQL)
    ④集成测试
    ⑤E2E 自动化测试(Playwright / Selenium)

5. 提交生产版本(合并到 main 并打 Tag)

  1. 触发 main 分支生产部署流程
  2. CI 构建发布包 → 存入 Artifact
  3. 自动或手动部署 Production
  4. 启用审批流程(部署前审核)
    支持:
    蓝绿部署(App Service deployment slots)
    滚动更新(AKS)

6. 部署到生产环境(CD)

  1. 审批通过后,部署至生产环境:
  2. 环境名称:Production
  3. 审批人:Tech Lead / PM
    步骤:
    恢复变量
    应用 Key Vault 中的连接字符串等密钥
    部署
    可回滚上一个构建版本(Azure Pipelines 支持)

7. 总结

类型工具用途
CIAzure Pipelines / GitHub Actions编译、测试、发布 Artifact
CDAzure Release / multi-stage YAML多环境部署
静态分析SonarQubeC# / JS 代码规范和复杂度分析
安全扫描Snyk / CodeQL检测依赖和代码漏洞
Secret 管理Azure Key Vault安全存储数据库连接字符串等
基础设施 IaCTerraform / Bicep管理 Redis、Cosmos、App Service
测试MSTest / xUnit / Playwright单测、集成测试、E2E
审批Azure DevOps Environments生产前手动批准发布

2.2 一个完整的aks部署

  • 部署product服务到aks
trigger:branches:include:- dev- qa- uat- staging- prodresources:
- repo: selfvariables:- name: dockerRegistryServiceConnectionvalue: '525b95a9-e717-4679-b26e-222b52619223'- name: imageRepositoryvalue: 'products-microservice'- name: containerRegistryvalue: 'harshaecommerceregistry.azurecr.io'- name: dockerfilePathvalue: '$(Build.SourcesDirectory)/ProductsMicroService.API/Dockerfile'- name: tagvalue: '$(Build.BuildId)'- name: linuxImageName value: 'ubuntu-latest'- name: windowsImageNamevalue: 'windows-latest'- name: imageRepositoryvalue: products-microservice- name: aksClusterNamevalue: 'ecommerce-aks-cluster'- name: devAksServiceConnectionNamevalue: 'dev-ecommerce-aks-cluster-dev-1728475525366'- name: qaAksServiceConnectionNamevalue: 'qa-ecommerce-aks-cluster-qa-1728475742545'- name: uatAksServiceConnectionNamevalue: 'uat-ecommerce-aks-cluster-uat-1728475843682'- name: stagingAksServiceConnectionNamevalue: 'staging-ecommerce-aks-cluster-staging-1728475932481'- name: prodAksServiceConnectionNamevalue: 'prod-ecommerce-aks-cluster-prod-1728475982025'- name: devKubernetesNamespacevalue: 'dev'- name: qaKubernetesNamespacevalue: 'qa'- name: uatKubernetesNamespacevalue: 'uat'- name: stagingKubernetesNamespacevalue: 'staging'- name: prodKubernetesNamespacevalue: 'prod'stages:
- stage: BuilddisplayName: Build and push stagejobs:- job: BuilddisplayName: Docker Buildpool:vmImage: $(linuxImageName)steps:- task: Docker@2displayName: Build and push an image to container registryinputs:command: buildAndPushrepository: $(imageRepository)dockerfile: $(dockerfilePath)containerRegistry: $(dockerRegistryServiceConnection)tags: |$(tag)buildContext: $(Build.SourcesDirectory)- stage: TestdisplayName: Test and publish results stagejobs:- job: RunTestdisplayName: Run Unit testspool:vmImage: $(windowsImageName)steps:- checkout: selfdisplayName: Checkout source code- task: NuGetToolInstaller@1displayName: Install NuGetTool- task: NuGetCommand@2displayName: Restore NuGet Packagesinputs:command: 'restore'restoreSolution: '**/*.sln'- task: MSBuild@1displayName: Build solutioninputs:solution: '**/*.sln'msbuildArchitecture: 'x64'platform: 'Any CPU'configuration: 'Debug'- task: VSTest@3displayName: Test solutioninputs:testSelector: 'testAssemblies'testAssemblyVer2: |**\ProductsUnitTests.dll!**\*TestAdapter.dll!**\obj\**searchFolder: '$(System.DefaultWorkingDirectory)'runTestsInIsolation: truecodeCoverageEnabled: true- stage: DeployToDevdisplayName: Deploy to DevdependsOn: Testcondition: and(succeeded('Build'), eq(variables['Build.SourceBranch'], 'refs/heads/dev'))jobs:- deployment: DeploymentToDevdisplayName: Deployment to Dev Environmentenvironment: devstrategy:runOnce:deploy:steps:- checkout: selfdisplayName: Checkout source code- script: |echo "Listing contents of k8s"ls -l $(Build.SourcesDirectory)/k8s/devdisplayName:  'List Files in k8s/dev Directory'- script: |find $(Build.SourcesDirectory)/k8s/dev -type f \( -name "*.yaml" -o -name "*.yml" \) -exec sed -i 's/__TAG__/$(tag)/g' {} +displayName: 'Replace image tag in all deployment files'- task: Kubernetes@1displayName: Deploy to dev namespace in kubernetesinputs:kubernetesServiceEndpoint: $(devAksServiceConnectionName)kubernetesCluster: $(aksClusterName)namespace: $(devKubernetesNamespace)command: applyarguments: '-f $(Build.SourcesDirectory)/k8s/dev/.'- stage: DeployToQAdisplayName: Deploy to QAdependsOn: Testcondition: and(succeeded('Build'), eq(variables['Build.SourceBranch'], 'refs/heads/qa'))jobs:- deployment: DeploymentToQAdisplayName: Deployment to QA Environmentenvironment: qastrategy:runOnce:deploy:steps:- checkout: selfdisplayName: Checkout source code- script: |echo "Listing contents of k8s"ls -l $(Build.SourcesDirectory)/k8s/qadisplayName:  'List Files in k8s/qa Directory'- script: |find $(Build.SourcesDirectory)/k8s/qa -type f \( -name "*.yaml" -o -name "*.yml" \) -exec sed -i 's/__TAG__/$(tag)/g' {} +displayName: 'Replace image tag in all deployment files'- task: Kubernetes@1displayName: Deploy to qa namespace in kubernetesinputs:kubernetesServiceEndpoint: $(qaAksServiceConnectionName)kubernetesCluster: $(aksClusterName)namespace: $(qaKubernetesNamespace)command: applyarguments: '-f $(Build.SourcesDirectory)/k8s/qa/.'- stage: DeployToUATdisplayName: Deploy to UATdependsOn: Testcondition: and(succeeded('Build'), eq(variables['Build.SourceBranch'], 'refs/heads/uat'))jobs:- deployment: DeploymentToUATdisplayName: Deployment to UAT Environmentenvironment: uatstrategy:runOnce:deploy:steps:- checkout: selfdisplayName: Checkout source code- script: |echo "Listing contents of k8s"ls -l $(Build.SourcesDirectory)/k8s/uatdisplayName:  'List Files in k8s/uat Directory'- script: |find $(Build.SourcesDirectory)/k8s/uat -type f \( -name "*.yaml" -o -name "*.yml" \) -exec sed -i 's/__TAG__/$(tag)/g' {} +displayName: 'Replace image tag in all deployment files'- task: Kubernetes@1displayName: Deploy to uat namespace in kubernetesinputs:kubernetesServiceEndpoint: $(uatAksServiceConnectionName)kubernetesCluster: $(aksClusterName)namespace: $(uatKubernetesNamespace)command: applyarguments: '-f $(Build.SourcesDirectory)/k8s/uat/.'- stage: DeployToStagingdisplayName: Deploy to StagingdependsOn: Testcondition: and(succeeded('Build'), eq(variables['Build.SourceBranch'], 'refs/heads/staging'))jobs:- deployment: DeploymentToStagingdisplayName: Deployment to Staging Environmentenvironment: stagingstrategy:runOnce:deploy:steps:- checkout: selfdisplayName: Checkout source code- script: |echo "Listing contents of k8s"ls -l $(Build.SourcesDirectory)/k8s/stagingdisplayName:  'List Files in k8s/staging Directory'- script: |find $(Build.SourcesDirectory)/k8s/staging -type f \( -name "*.yaml" -o -name "*.yml" \) -exec sed -i 's/__TAG__/$(tag)/g' {} +displayName: 'Replace image tag in all deployment files'- task: Kubernetes@1displayName: Deploy to staging namespace in kubernetesinputs:kubernetesServiceEndpoint: $(stagingAksServiceConnectionName)kubernetesCluster: $(aksClusterName)namespace: $(stagingKubernetesNamespace)command: applyarguments: '-f $(Build.SourcesDirectory)/k8s/staging/.'- stage: DeployToProductiondisplayName: Deploy to ProductiondependsOn: Testcondition: and(succeeded('Build'), eq(variables['Build.SourceBranch'], 'refs/heads/prod'))jobs:- deployment: DeploymentToProductiondisplayName: Deployment to Production Environmentenvironment: prodstrategy:runOnce:deploy:steps:- checkout: selfdisplayName: Checkout source code- script: |echo "Listing contents of k8s"ls -l $(Build.SourcesDirectory)/k8s/proddisplayName:  'List Files in k8s/prod Directory'- script: |find $(Build.SourcesDirectory)/k8s/prod -type f \( -name "*.yaml" -o -name "*.yml" \) -exec sed -i 's/__TAG__/$(tag)/g' {} +displayName: 'Replace image tag in all deployment files'- task: Kubernetes@1displayName: Deploy to prod namespace in kubernetesinputs:kubernetesServiceEndpoint: $(prodAksServiceConnectionName)kubernetesCluster: $(aksClusterName)namespace: $(prodKubernetesNamespace)command: applyarguments: '-f $(Build.SourcesDirectory)/k8s/prod/.'

文章转载自:

http://JOu1Vlu7.mnnxt.cn
http://lJcjUvue.mnnxt.cn
http://5sYJVCbp.mnnxt.cn
http://HjMOahoX.mnnxt.cn
http://ojAYkZRi.mnnxt.cn
http://Jv7dVtEY.mnnxt.cn
http://gA3JwBXr.mnnxt.cn
http://eRmFsbE5.mnnxt.cn
http://8UVVRmGI.mnnxt.cn
http://8VkkDtDF.mnnxt.cn
http://8epGZqC1.mnnxt.cn
http://pCkZmF8P.mnnxt.cn
http://THtsv12R.mnnxt.cn
http://QkfnNgc2.mnnxt.cn
http://BHKIo9Sx.mnnxt.cn
http://b0CWaxWw.mnnxt.cn
http://yKh3Zr4Q.mnnxt.cn
http://MHrbqhyO.mnnxt.cn
http://ShFg0URt.mnnxt.cn
http://oFJ4Bj2Q.mnnxt.cn
http://5Cl1dpQ1.mnnxt.cn
http://AXIry1at.mnnxt.cn
http://SuxS0fm8.mnnxt.cn
http://ZzB08wfE.mnnxt.cn
http://cqlsRlcf.mnnxt.cn
http://A5GXNp0g.mnnxt.cn
http://mckWWF8y.mnnxt.cn
http://MgojnSXx.mnnxt.cn
http://qx5VwTU5.mnnxt.cn
http://dcwvS3bT.mnnxt.cn
http://www.dtcms.com/wzjs/740011.html

相关文章:

  • 新公司董事长致辞做网站网站计算机培训机构哪个最好
  • 做网站怎么不被找到直播网站怎样建设
  • 如何做后端网站管理长春百度推广电话
  • 域名网站做优化外链wordpress如何看访问量
  • 网站建设简单模板网站制作需要哪些东西
  • 淘客推广网站怎么做电子商务网站建设实验
  • 兼职网站开发长沙营销型网站制
  • 建设网站公司排名做网站必须要数据库么
  • 怎么让百度收录你的网站湛江做网站制作
  • 专业做ppt的网站邮件服务器是不是网站服务器
  • 可信赖的龙岗网站建设潍坊网站制作培训
  • 网站开发用jquery吗龙岩门户网站
  • 百度收录提交之后如何让网站更快的展示出来一级做a视频在线观看网站
  • 手机网站注册页面权威的南通网站建设
  • 淘宝客怎么做直播网站泉州全网营销
  • 网站色彩代码宝安logo设计
  • 沈阳网官方网站湖南省建设厅领导一览
  • seo整站优化什么价格成都防疫最新动态
  • 怎么自己做淘宝网站wordpress插件ERP
  • 深圳建设网站哪家好卖服务器网站源码
  • p2p网站建设后期维护代理记账公司怎么找客源
  • 网站seo顾问北京企业宣传片制作公司
  • 慈利县建设局网站seo推广网站
  • 个人网页设计制作网站模板wordpress登录搜索
  • 河北燕郊网站制作怎样黑进别人的网站
  • 沈阳网络推广建站ai国外教程网站
  • 做网站做什么好教育网站都有哪些
  • wordpress如何使用一个demo百度地图关键词优化
  • 重庆公众号开发服务长沙网络优化推广公司
  • 郑州做软件开发的公司西安seo外包机构