华为云用户手册
-
为项目经理配置权限 项目经理不需要配置“代码托管”、“代码检查服务”和“测试计划”配置权限。 在“权限管理”页面,单击左侧“项目经理”,单击“编辑”,为“项目经理”配置权限。 请按照下图,在“通用权限”和“需求管理&缺陷管理”配置权限。 图1 Devops Leader的“通用权限”和“需求管理&缺陷管理”权限 请按照下图,在“流水线”、“编译构建”、“部署”和“制品仓库”配置权限。 图2 Devops Leader的“流水线”、“编译构建”、“部署”和“制品仓库”权限 请按照下图,在“插件市场”配置权限。 图3 Devops Leader的“插件市场”权限 父主题: 实施步骤
-
HE2E DevOps框架简介 HE2E DevOps实施框架是CodeArts结合自身经验与业界先进的实践提出了一套可操作可落地的敏捷开发方法论。 图1 HE2E DevOps实施框架 表1 HE2E DevOps实施框架 阶段 说明 规划和设计 步骤①和②是业务(或者是客户)与技术之间进行产品规划,梳理产品整体脉络,以及进行产品规划实施设计,并控制需求粒度与拆分的过程。 软件开发的本质是为了解决问题,提供用户价值的,而不仅是为了提供功能。影响地图就是用来鉴别用户需求是什么,深层的根因是什么。 用户故事就是目标和需求的载体,以用户的场景来讲故事,便于在客户、业务与开发之间进行信息的传递。在这个过程中,独立的需求条目的堆积,很容易导致只能看到各个需求条目,不能从整个解决方案思考需求。用户故事以用户使用的场景为主线,将大的阶段点,及其细分的活动,以树状的结构进行梳理和展现,既可以看到独立的需求条目,又能够看到整体需求场景。 计划和跟踪 步骤③~⑩是Scrum框架过程,是主要的管理实践。 Scrum定义了一个相对完整的敏捷过程管理的框架。在CodeArts中,将Scrum的框架与团队日常的开发活动融合起来。主要的过程产物包括产品故事列表、迭代故事列表、潜在可交付的产品增量、以及过程中产生的问题列表;核心的团队活动包括迭代计划会议、每日站会、迭代演示会议、迭代回顾会议等会议、以及团队的日常更新。 同时,借鉴Kanban方法中的精益思想,可视化价值流,发现并解决阻塞与瓶颈,加速价值流交付,并加快反馈回路,持续进行改进。 迭代开发 持续交付 从步骤⑪开始,进入到工程实践,也就是通常说的CI/CD过程。 持续交付以代码仓库为基础,除了传统意义的代码资产安全与管控、多人并行开发、版本与基线管理外,也体现了团队的协作与沟通。 代码检查(即静态扫描)、自动化的构建、各阶段的自动化测试、以及自动化部署过程,都被串联在流水线上。 除了代码检查、构建、测试、部署等动态的阶段与活动,还有制品管理、环境管理(包括开发环境、测试环境、准生产环境,以及生产环境等)。 持续交付流水线就是将整个持续交付中,都有哪些阶段,分别运行在什么环境,每个阶段执行什么活动,准入与准出的质量门禁,以及每个阶段的输入与输出的制品进行管理。
-
方案架构 汽车零部件配件电子商城由5个微服务组件构成。 图2 凤凰商城技术架构图 表2 产品构成 微服务组件 说明 Web用户端服务器(对应样例代码中的“Vote”功能) 业务逻辑:用户可以通过浏览器访问此服务的WebUI。当用户在特定商品上单击“Like”时,服务将用户所选择物品的记录保存在Redis缓存中。 技术栈:Python、Flask框架。 应用服务器:Gunicorn。 Web管理端服务器(对应样例代码中的“Result”功能) 业务逻辑:用户可以通过浏览器访问此服务的WebUI,会动态显示用户端UI上用户单击“Like”的统计数据,此数据来自PostgreSQL数据库。 技术栈:Node.js、express框架。 应用服务器:server.js。 后台订单批处理程序(对应样例代码中的“Worker”功能) 业务逻辑:此服务为后台进程,会监控Redis缓存中物品记录,并将新纪录取出并保存在PostgreSQL数据库中,以便管理端UI可以抽取数据进行统计显示。 技术栈:.net core或者Java(此服务提供两种技术栈实现了同样的功能,可根据需要修改配置选择其中一个作为运行时进程)。 订单缓存 业务逻辑:此服务作为用户端UI服务的数据持久化服务存在。 技术栈:Redis。 订单数据库 业务逻辑:此服务作为管理端UI服务的数据源。 技术栈:PostgreSQL。 项目研发过程中涉及到以下成员。 表3 项目角色列表 项目成员 项目角色 工作职责 Sarah 项目管理员 负责项目整体规划、项目团队的组建。 Maggie 项目经理 负责管理项目交付计划。 Chris 开发人员 负责项目代码的开发、编译、部署及验证。 Billy 测试人员 负责编写测试用例并执行。
-
开发助手David编写代码 如图1 在IDE查询待处理的IR需求所示,在IDE输入查询待处理的IR需求。 图1 在IDE查询待处理的IR需求 如图2 David进行代码开发所示,单击“是,处理museverse头像功能需求”,继续单击“批准”,David会继续获取需求的详情。 图2 David进行代码开发 单击“立即开发”,David会继续进行代码开发。 图3 David进行代码开发 如下图,David在右侧持续输出代码开发的内容。 图4 David开发代码的界面 如图5 David完成代码开发界面所示,David开发完代码后,您可以在界面左侧返回代码开发涉及的特性清单。 图5 David完成代码开发界面 如下图,单击“暂不提交”,用户可再检查代码文件。 图6 暂不提交代码文件 如下图,在终端输入命令npm run build:mp-weixin,执行build:mp-weixin脚本。 图7 执行运行脚本的命令 执行上述命令后,即可预览生成的效果。单击头像,上传本地文件,即可上传头像文件,完成头像的自定义功能。 图8 生成预览效果 父主题: 实施步骤
-
开发助手David修复检视意见 如下图所示,用户输入指令“查询待处理的MR”,继续单击“批准”,即可查询待处理的MR。 图1 查询待处理的MR 用户查询出的代码仓库ID后,单击“批准”,即可继续查询MR。 图2 查询待处理的MR 如下图所示,查询到还未合入的合并请求“MR30”。输入“处理MR30的检视意见”,David将会处理5的3条检视意见。 图3 查询还未处理的MR列表 用户根据提示,单击“批准”,即可修改“MR30”的检视意见。如下图所示,右侧将实时展示修改的代码。 图4 修改检视意见 当MR的检视意见修改完成后,输入“是”,可对修改后的代码进行代码检视。 图5 对修改后的代码做代码检视 如下图,在终端输入命令npm run build:mp-weixin,执行build:mp-weixin脚本。 图6 执行运行脚本的命令 执行上述命令后,即可预览生成的效果,头像正常显示。 图7 生成预览效果 预览效果无误,输入“是,提交代码”,可提交修改后的代码。 图8 提交修改后的代码 父主题: 实施步骤
-
通过合并请求合并代码 开发人员Chris在完成代码开发与自测后,提交分支合并请求,项目经理Maggie审核合并请求后完成合入。 Chris提交合并请求。 在代码仓库“phoenix-sample”中选择“合并请求”页签,单击“新建合并请求”。 源分支选择“Feature-Store”,目标分支选择“master”,单击“下一步”。 参照下表编辑合并请求详情。 表2 合并请求配置 配置项 示例 标题 添加门店网络列表。 合并人 单击,在弹框中勾选“Maggie”,单击“确定”。 审核人 单击,在弹框中勾选“Maggie”,单击“确定”。 单击“新建合并请求”完成合并请求的创建。 新建成功,页面中显示合并请求的详情。 Maggie审核合并请求。 进入代码仓库“phoenix-sample”,选择“合并请求”页签,可找到由开发人员Chris创建的合并请求。 单击该请求,查看合并请求详情。 可在页面中留下评审意见。单击审核门禁中“通过”完成审核。 图4 审核门禁 单击“合入”,将分支合入“master”。 提示成功,完成合入。
-
Committer助手Oliver创建MR和检视意见 如下图,输入“@”,唤醒Committer助手Oliver。 图1 唤醒Committer助手Oliver 如下图,输入命令“创建MR”,Oliver会立即启动MR的创建。 图2 创建MR 如下图,修改标题为“用户个人中心添加头像上传功能”,确定其他信息无误,即可单击“确定并继续”。 图3 修改MR信息 如下图,Oliver会创建MR并智能检视代码,提出检视意见。用户可单击“采纳”,接受检视意见,单击“拒绝”,即拒绝检视意见。 图4 Oliver创建MR并检视代码 如下图,用户共接受3条检视意见,并待修复。截止目前,用户即完成了MR创建和代码检视。 图5 接受3条检视意见 父主题: 实施步骤
-
方案优势 扩展CodeArts角色矩阵 本实践基于CodeArts的系统角色矩阵,扩展了当前系统角色不能覆盖的角色,例如,CodeArts当前的系统角色为开发人员,在实际的项目开发过程中,会涉及研发Leader和研发组员的区分。通过本实践,可以丰富当前的系统角色矩阵,并根据不同角色的工作任务,配置角色的权限。 形成权限模板 完成本实践的项目角色和权限配置,可形成项目的权限模板,用户在开发其他项目时,可基于此模板修改项目角色和权限。
-
方案架构 下图为项目的架构图,项目团队下共9个组。 图1 Devops业务角色架构图 上图的架构图中,每个角色的职责和至少应该具备的权限如下表所示。 表1 组织架构图解释 组 角色 职责 需要具备的权限 授权步骤 / 项目经理 负责制定项目的整体计划。 明确各角色的责任与任务,并为角色分配权限。 需要具备项目的编辑权限。 支持对所有角色的成员进行权限分配和设置。 为项目经理配置权限 研发组 研发Leader 负责规划和分配研发任务。 跟踪研发进度,协调资源,解决开发中的技术问题。 参与研发方向的技术决策。 管理代码分支,包括但不限于新增和删除分支。 审核代码,包括但不限于评审代码。 为研发组配置权限 开发人员 基于主分支,执行代码开发任务,包括编码、单元测试、Bug 修复及持续优化。 参与技术方案评审、文档编写及代码审查。 持续优化代码质量与系统性能。 查看代码仓。 新建代码分支。 创建合并请求。 中台组 研发Leader(中台) 负责中台系统的架构设计与开发管理工作。 规划并推动中台能力的复用,构建可跨业务线共享的通用服务。 管理代码分支,包括但不限于新增和删除分支。 审核MR。 查看驾驶舱,包括研发过程数据、任务管理平台。 分配需求。 为中台组配置权限 开发人员(中台) 开发维护中台服务。 保障中台系统的稳定性、扩展性和复用性。 查看代码仓。 新建代码分支。 创建合并请求。 架构组 架构Leader 主导技术架构设计与演进,制定技术规范和开发标准。 负责跨团队架构协同与技术选型。 确保系统的高可用性、可扩展性、性能和安全性的优化。 管理代码仓库,包括但不限于新增和删除分支。 审核MR。 查看驾驶舱,包括研发过程数据、任务管理平台。 分配需求。 为架构组配置权限 系统工程师 参与具体架构设计、技术调研与落地实施。 撰写架构文档、评估系统设计的合理性,并提供技术支持。 查看代码仓。 新建代码分支。 新建合并请求。 测试组 测试经理 负责测试流程的建设和测试资源的协调。 规划测试策略,包括功能、性能和安全等,推动自动化测试的实施。 新建测试计划。 可部署、更新、删除和查看测试用例。 创建、修改和删除思维导图。 ⽣成测试报告。 说明: 测试经理不需要代码仓库的编辑权限,但需要保留保留代码仓的查看权限,进行白盒测试。 为测试组配置权限 测试人员 编写测试用例、执行测试计划、记录缺陷与推动修复。 开发测试脚本与自动化测试工具,保障产品质量。 维护测试用例。 可部署、更新和查看测试用例。 创建、修改和删除思维导图。 说明: 测试经理不需要代码仓库的编辑权限,但需要保留保留代码仓的查看权限,进行白盒测试。 PO组 产品Leader 维护产品特性,对接需求分析工作。 协调产品组员进行任务分发。 维护RR、IR和US等需求的权限。 管理驾驶舱权限、管理版本需求,特性迭代信息。 为PO组配置权限 产品经理 维护产品特性,对接RR和IR分析工作。 协调产品研发同步需求,启动IR和US评审会议。 维护RR、IR和US等需求的权限。 PM组 项管Leader 负责计划制定整体项目、把控进度和组织项目例会。 协调研发、测试、业务等多方资源,推动项目落地。 PM驾驶舱报表权限。 测试计划的维护权限。 为PM组配置权限 项管组员 跟踪项目执行状态,撰写项目文档。 识别项目风险并制定应对策略,保障交付进度。 PM驾驶舱报表权限。 测试计划的维护权限。 大数据组 大数据Leader 负责大数据平台的构建、 数据治理 及数据架构的设计和规划。 确保各项业务的数据需求与平台能力的有效对接,并持续进行优化。 管理代码仓库,包括但不限于新增和删除分支。 审核MR。 查看驾驶舱,包括研发过程数据、任务管理平台。 分配需求。 为大数据组配置权限 大数据产品 负责数据产品的规划与设计,输出具备落地性的数据需求方案。 协助业务部门理解数据能力,推动数据驱动的业务决策。 维护RR、IR和US等需求的权限。 大数据开发 开发数据采集、清洗、建模与服务接口。 维护数仓架构,优化数据处理流程和查询性能。 查看代码仓权限。 新建分支权限。 新建MR。 运维组 运维Leader 负责基础设施运维体系建设,制定运维流程和应急预案。 推动运维自动化,完善监控体系并优化故障响应机制。 需要维护和构建流水线权限。 为运维组配置权限 运维⼈员 实施部署、变更、维护任务,参与运维自动化平台开发。 协助处理服务运行中的各种突发问题。 需要执行流水线的权限。 值班运维 负责日常监控告警处理、系统巡检及突发事件的应急响应。 在值班期间确保系统稳定运行,并及时上报和处理异常情况。 不需要任何CodeArts权限。 DBA组 DBA Leader 负责数据库架构的设计、容量规划以及数据安全策略的制定与实施。 制定数据库标准与审核规范。 由于SQL实现自动化,SQL Leader需要有流水线权限。 为DBA组配置权限 DBA组员 负责数据库运维、备份恢复、SQL优化与故障处理。 协助开发进行数据建模与性能调优。 需要流水线权限。 安全组 安全架构师 设计和实施信息安全架构,确保组织的系统、网络和应用程序的安全性。 识别和评估组织的安全风险,并制定相应的风险缓解策略。 持续监控和改进组织的安全架构,以应对不断变化的安全威胁和技术环境。 查看代码仓权限。 新建分支权限。 新建MR。 为安全组配置权限
-
为测试工程师配置权限 “权限管理”页面,单击“创建角色”。例如下图所示,新增角色“测试工程师”角色。 图6 新增“测试工程师”角色 在“权限管理”页面,单击左侧“测试工程师”,单击“编辑”,为“测试工程师”配置权限。 在复制“测试经理”权限的基础上,仅需要修改“测试计划”权限,其余权限与为测试经理配置权限保持一致,如图7 “测试工程师”的“测试计划”权限所示。 图7 “测试工程师”的“测试计划”权限
-
为测试经理配置权限 进入“权限管理”页面。单击左侧“测试经理”,单击“编辑”,为“测试经理”配置权限。 请按照下图,在“需求管理&缺陷管理”配置权限。 图1 测试经理的“需求管理&缺陷管理”权限 请按照下图,在“代码托管”和“代码检查服务”配置权限。 图2 测试经理的“代码托管”和“检查服务”权限 请按照下图,在“测试计划”配置权限。 图3 测试经理的“测试计划”权限 请按照下图,在“流水线”、“编译构建”和“部署”配置权限。 图4 测试经理的“流水线”、“编译构建”和“部署”权限 请按照下图,在“制品仓库”和“插件市场”配置权限。 图5 测试经理的“制品仓库”和“插件市场”权限
-
预置任务简介 样例项目中预置了以下4个代码检查任务。 表1 预置任务 预置任务 任务说明 phoenix-codecheck-worker 检查Worker功能对应代码的任务。 phoenix-codecheck-result 检查Result功能对应代码的任务。 phoenix-codecheck-vote 检查Vote功能对应代码的任务。 phoenix-sample-javas 检查整个代码仓库对应的JavaScript代码的任务。 本章节以任务“phoenix-codecheck-worker”为例进行讲解。
-
为研发Leader配置权限 进入“权限管理”页面,单击“创建角色”,新增“研发Leader”角色。 单击左侧“研发Leader”,单击“编辑”,为“研发Leader”配置权限。 请按照下图,在“需求管理&缺陷管理”配置权限。 请按照下图,在“代码托管”和“代码检查服务”配置权限。 请按照下图,在“测试计划”配置权限。 请按照下图,在“流水线”、“编译构建”和“部署”配置权限。 请按照下图,在“制品仓库”、“看板”和“插件市场”配置权限。
-
为运维工程师配置权限 “权限管理”页面,单击“创建角色”。例如下图所示,新增角色“运维工程师”角色。 图6 新增“运维工程师”角色 在“权限管理”页面,单击左侧“运维工程师”,单击“编辑”,为“运维工程师”配置权限。 在复制“运维Leader”权限的基础上,请按照步骤4~步骤5,重新适配“流水线”、“编译构建”、“部署”、“制品仓库”和“插件市场”权限,其余权限与“运维Leader”保持一致。 请按照下图,在“流水线”、“编译构建”、“部署”和“制品仓库”配置权限。 图7 运维工程师的“流水线”、“编译构建”、“部署”和“制品仓库”权限 请按照下图,在“插件市场”配置权限。 图8 运维工程师的“插件市场”权限
-
为运维Leader配置权限 用户进入“权限管理”页面,单击“创建角色”。例如下图所示,新增“运维Leader”角色。 图1 运维Leader权限配置页面 在“权限管理”页面,单击左侧“运维Leader”,单击“编辑”,为“运维Leader”配置权限。 请按照下图,在“需求管理&缺陷管理”配置“ipd_缺陷”权限。 图2 运维Leader的“需求管理&缺陷管理”权限 运维Leader不需要配置“代码托管”和“代码检查服务”配置权限。请按照下图,在“测试计划”配置权限。 图3 运维Leader的“测试计划”权限 请按照下图,在“流水线”、“编译构建”和“部署”配置权限。 图4 运维Leader的“流水线”、“编译构建”和“部署”权限 请按照下图,在“制品仓库”和“插件市场”配置权限。 图5 运维Leader的“制品仓库”和“插件市场”权限
-
配置SWR服务 登录SWR控制台。 单击“登录指令”,页面弹框显示登录指令。 其中, “-u”之后的字符串为用户名。 “-p”之后的字符串为密码。 最后的字符串为SWR服务器地址。 图1 登录指令 此处生成的登录指令为临时登录指令,有效期为24小时。如果需要长期有效的登录指令,请参见获取长期有效登录或推拉镜像指令。 单击“创建组织”,在弹框中输入组织名称“phoenix”(如果页面提示“组织已存在”,请自定义其它名称),单击“确定”。 新建成功后,在左侧导航栏中单击“组织管理”,在组织管理页面中显示已创建的组织。 图2 组织管理
-
产品助手Pony新建RR并分解IR 图1 创建RR和分解IR所示,输入“用户个人中心增加自定义头像功能,针对上述需求描述创建RR并分解IR”,单击“继续执行”。 图1 创建RR和分解IR 图2 Pony创建RR并分解IR所示,唤醒产品助手Tony进行需求创建,单击“继续执行”。 图2 Pony创建RR并分解IR 下图所示,Pony会在右侧创建初始需求,输入“补充技术实现”,Pony将继续完善需求的技术实现方案。 图3 修改需求设计稿 如图,单击“编辑”,可修改需求单内容。 图4 修改需求描述的入口 如下图,修改描述后,单击“确认并继续执行”,即可继续进行RR的创建。 图5 修改后的需求描述 如下图所示,如果RR单内容不需要再修改,选择“承接人”,单击“提交”,即可完成RR的创建。 图6 RR单内容确认界面 在完成RR单创建后,对话框输入“继续分解IR”,Pony将继续分解IR,右侧将展示IR的详细内容,单击“继续执行”。 图7 分解IR 如图7 修改“测试要求”和指定“提出人”,右侧需求单内增加测试要求,选择“提出人”,单击“确定”,即可完成IR分解。 图8 修改“测试要求”和指定“提出人” 如图8 查询RR和IR单号所示,输入“继续汇报工作”,即可查询RR单号和IR单号。 图9 查询RR和IR单号 父主题: 实施步骤
-
应用场景 用户可以通过扫描下方小程序,进入三星堆小程序。 图1 三星堆小程序 进入三星堆小程序页面后,用户通过单击,扫描任意博物馆文物,即可解锁文物的卡通形象,通过此方式可增加用户的参观乐趣。 当前,三星堆小程序尚不支持用户上传自定义头像功能。通过CodeArts Doer,我们可以实现这一需求,让每位用户都能上传并使用自己喜爱的头像,通过以下智能开发流程实现此需求: 产品助手Pony新建关于自定义头像的需求RR和分解IR、开发助手David基于IR编写代码、测试助手Cindy为David编写的代码输出测试用例和测试套、Committer助手Oliver智能创建MR和提出检视意见、开发助手David修复检视意见,最终Committer助手Oliver合入MR。
-
操作流程 本文档将按照以下步骤介绍HE2E DevOps实践的操作流程。 图1 实践操作流程图 表1 实践操作流程说明 步骤 说明 实践准备 项目管理员Sarah完成实践开始前的准备工作,包括创建项目、添加项目成员等操作。 管理项目规划 项目管理员Sarah完成项目需求规划、项目经理Maggie完成迭代需求规划。 开发代码 开发人员Chris通过分支来进行代码的编写,包括创建分支、编写并提交代码、提交分支合并请求;项目经理Maggie审核合并请求后完成合入。 检查代码 开发人员Chris对代码进行静态扫描,根据修复建议优化代码,提高代码质量。 构建应用 开发人员Chris构建环境镜像、将代码编译打包成软件包。 部署应用 开发人员Chris将构建好的环境镜像及软件包安装并运行在环境中。本文档提供两种环境的部署方法:CCE与E CS 。 管理项目测试 测试人员Billy为迭代创建测试计划、设计测试用例,并按照计划执行测试用例。 配置流水线 开发人员Chris将代码检查、构建、部署等任务串联成流水线。当代码有更新时,可自动触发流水线,实现持续交付。 释放资源 按需计费的资源会产生持续计费,为了避免不必要的费用产生,完成体验后,建议由项目管理员Sarah释放不再使用的资源。 父主题: 使用CodeArts管理电子商城项目开发流程
-
设置定时执行任务 通过以下设置,可实现构建任务的定时执行。 在任务“phoenix-sample-ci”的详情页,单击“编辑”。 选择“执行计划”页签。 打开“启用定时执行”开关,根据需要选择执行日与执行时间,关闭“代码变化才执行”,保存任务。 本文档中勾选“全选”,执行时间为“12:00”(本文中使用默认时区,可以根据实际需要修改时区)。 图2 配置定时执行 验证配置结果:根据配置时间查看构建任务是否自动执行,本节不再赘述。
-
预置任务简介 样例项目中预置了以下5个构建任务。 表1 预置任务 预置任务 任务说明 phoenix-sample-ci 基本的构建任务。 phoenix-sample-ci-test 构建测试环境可用镜像的任务。 phoenix-sample-ci-worker 构建Worker功能镜像的任务。 phoenix-sample-ci-result 构建Result功能镜像的任务。 phoenix-sample-ci-vote 构建Vote功能镜像的任务。 本章节以任务“phoenix-sample-ci”为例进行讲解,任务内置的步骤及作用如下表所示,用户完成任务的参数配置后即可执行该任务。 表2 构建步骤 构建步骤 说明 制作Vote镜像并推送到SWR仓库 依据文件“vote/Dockerfile”制作Vote功能镜像,并将镜像推送到SWR服务中保存。 制作Result镜像并推送到SWR仓库 依据文件“result/Dockerfile”制作并推送Result功能镜像,并将镜像推送到SWR服务中保存。 使用Maven安装Worker依赖包 使用Maven安装Worker功能所需的依赖。 制作Worker镜像并推送到SWR仓库 依据文件“worker/Dockerfile”制作并推送Worker功能镜像,并将镜像推送到SWR服务中保存。 生成Postgres and Redis Dockerfile 通过shell命令生成文件“Dockerfile”,用以制作Postgres(数据库)和Redis(缓存)镜像。 制作Postgres镜像并推送到SWR仓库 依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Postgres镜像,并将镜像推送到SWR服务中保存。 制作Redis镜像并推送到SWR仓库 依据“生成Postgres and Redis Dockerfile”步骤中所生成的Dockerfile文件制作Redis镜像,并将镜像推送到SWR服务中保存。 替换Docker-Compose部署文件镜像版本 为了将镜像部署到ECS时,能够拉取到正确的镜像,使用shell命令完成以下操作。 使用sed命令,依次将文件“docker-compose-standalone.yml”中的参数替换为构建任务的参数“dockerServer”、“dockerOrg”、“BUILDNUMBER”进行替换。 使用tar命令,将文件“docker-compose-standalone.yml”压缩为“docker-stack.tar.gz”,将部署所需文件进行打包,以便于后续步骤将该文件上传归档。 替换Kubernetes部署文件镜像版本 为了将镜像部署到CCE时,能够拉取到正确的镜像,使用shell命令完成以下操作。 使用sed命令,将目录“kompose”下所有以“deployment”结尾的文件中的参数“docker-server”、“docker-org”,替换为构建任务的参数“dockerServer”、“dockerOrg”。 使用sed命令,依次将文件“result-deployment.yaml”、“vote-deployment.yaml”、“worker-deployment.yaml”中的参数“image-version”用构建任务参数“BUILDNUMBER”进行替换。 上传Kubernetes部署文件到软件发布库 将“替换Kubernetes部署文件镜像版本”步骤中修改后的所有“.yaml”文件上传到软件发布库中归档。 上传docker-compose部署文件到软件发布库 将“替换Docker-Compose部署文件镜像版本”步骤中压缩好的“docker-stack.tar.gz”上传到软件发布库中归档。
-
问题现象 构建失败,报错信息为“制作Docker镜像失败”,报错日志如下。 too many requests toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit request canceled while waiting for connection Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
-
资源规划 完成本实践所需的资源如下。建议在同一个区域内准备资源。本实践中提供了部署至CCE、ECS两种方法,用户可以根据实际部署需求选择准备CCE或ECS。 表1 资源规划 服务名称 用途 资源说明 操作指导 软件开发生产线(CodeArts) 承载项目端到端研发全流程 套餐版本:基础版。 购买人数:5人。 购买时长:1个月。 购买CodeArts 云容器引擎(CCE) 用于部署应用 集群配置:建议选择按需计费。 集群类型:CCE Standard集群。 集群名称:phoenix-cce。 集群版本:建议选择最新版本。 控制节点架构:X86。 容器网络模型:容器隧道网络。 容器网段:自动设置网段。 购买Standard/Turbo集群 节点配置:建议选择按需计费。 节点类型:弹性云服务器-虚拟机。 节点规格:2vCPUs | 8GiB或以上规格。 容器引擎:Docker。 操作系统:公共镜像-EulerOS。 节点IP:自动分配。 弹性公网IP:自动创建。 创建节点 弹性云服务器(ECS) 用于部署应用 建议选择按需计费。 CPU架构:x86计算。 节点规格:2vCPUs | 8GiB或以上规格。 操作系统:公共镜像-Ubuntu 16.04。 绑定弹性IP规格:按带宽计费,5Mbit/s。 云服务器名称:phoenix-ecs。 完成购买后,为ECS的安全组中添加一条协议为“TCP”、端口为“5000-5001”、源地址为“0.0.0.0/0”的入方向规则。 自定义购买ECS 配置安全组规则 父主题: 使用CodeArts管理电子商城项目开发流程
-
在项目创建RR和分解IR 登录CodeArts Doer首页,下拉框选择项目“IPD_SoftWare_Test”,对话框中输入“针对用户个人中心,增加自定义头像功能。帮助创建RR和IR”。 上述命令会触发助手Timmy,单击“继续执行”。 Timmy会将任务移交到Pony,Pony会继续创建RR并分解IR。如下图所示,如果用户认为Tony创建的RR符合预期,可单击左下角的继续执行,如果用户要修改RR单内容,可单击右上角“编辑”并进入修改页面,用户修改好后单击“确认并继续执行”。 用户确定内容后,右侧选择RR需求单的“承接人”,单击“确定并继续”,即可完成RR创建。 创建的RR内容为下图所示。如果用户想要详细化功能描述,可输入指令“细化功能描述,达到200字”。 执行上述命令后,优化后的功能描述如下图所示。继续输入指令“分解IR”。 执行上述指令,根据Pony提示操作,单击“确定并执行”,完成IR分解。
-
CodeArts示例项目 示例项目是指默认预置模板类型的项目,由需求管理预置好一些工作项和流程。选择示例项目新建项目后,会自动生成对应样例模板项目,供用户参考和使用。部分示例项目中预置的示例工作项、代码可供用户直接使用。 表2 CodeArts示例项目 示例项目名称 项目类型 使用场景 DevOps全流程示例项目 Scrum 针对敏捷开发全生命周期、DevOps持续交付的模板,模板内预置了思维导图、并实例化了Scrum工作项(如促销管理、会员管理,订单管理)、代码仓库、代码检查任务、编译构建任务、流水线任务等,实现全流程的研发交付自动化。 客户联合敏捷交付(JAD)项目 看板 针对研发类轻量级敏捷项目的管理,助力初创团队、小型组织任务协作,快速提升工作效率。 客户线索管理项目 看板 针对市场营销类客户线索管理,搭建了科学的营销体系模板,推动客户转化。 招聘管理项目 看板 针对HR类招聘进度管理,覆盖人力管理核心流程,实现科学规范化管理。 团建3+1项目 看板 针对团建类项目的管理,助力团队活动建设。 IPD-系统设备示例项目 IPD系统设备类 针对嵌入式软件场景,其特点为软件持续迭代,硬件平台也在持续演进,比如通信设备、汽车、家电、消费电子等涉及到软硬件复杂产品。 IPD-独立软件示例项目 IPD独立软件类 针对IT应用及平台类软件,硬件标准化或不依赖专有硬件,软件频繁迭代场景,比如ERP软件、CRM、数据库、网管软件等。 IPD-云服务全流程示例项目 IPD自运营软件/云服务类 针对云服务开发、微服务架构、自运营软件场景,比如公有云、互联网应用软件。 鸿蒙应用的一站式开发项目 Scrum 面向全场景的一站式 集成开发环境 ,提供一站式的分布式应用开发平台,支持分布式多端开发、分布式多端调测、多端模拟仿真,提供全方位的质量与安全保障。 【车联网示例项目】TBOX车载设备应用 IPD系统设备类 车联网示例项目的主项目。进行流程管理与原始需求与系统需求维护,同时在此项目中进行车载硬件设备的嵌入式程序开发管理。 【车联网示例项目】车联网云服务 IPD独立软件类 车联网示例项目的子项目。承接云服务开发相关的系统需求,并管理云服务软件程序的开发、测试与交付。
-
CodeArts项目类型 CodeArts支持Scrum、IPD、看板项目流程,并提供了适合对应类型项目需求管理流程的模板。用户可以根据自己的业务场景选择对应模板创建CodeArts项目。 表1 CodeArts项目模板 模板 说明 适用场景 IPD系统设备类 涉及到软硬件配套开发,产品需求相对固定,有相关的行业标准,开发周期长,一般为6~9个月,对产品质量及稳定性要求高,决策点多,多采用瀑布模式。 嵌入式软件场景,其特点为软件持续迭代,硬件平台也在持续演进,比如通信设备、汽车、家电、消费电子等涉及到软硬件复杂产品。 IPD独立软件类 软件可独立部署销售,多采用敏捷开发,客户需求变化频繁、快速规划、敏捷发布,交付周期一般为2~3个月甚至更短。 IT应用及平台类软件,硬件标准化或不依赖专有硬件,软件频繁迭代,比如ERP软件、CRM、数据库、网管软件等。 IPD自运营软件/云服务类 商业决策和需求决策分离,需求决策向下授权。以微服务为作战单元小步快跑,快速规划持续交付,发布频繁,交付周期2~3周左右甚至3~5天,多采用DevOps敏捷模式。 云服务开发,微服务架构,自运营软件场景居多,比如公有云、互联网应用软件。 Scrum Scrum是增量迭代式的软件开发方法,通过最重要的迭代计划会议、每日站会、迭代回顾、验收会议来进行简单高效的管理。 迭代式增量的软件开发。 看板 看板协作是一种业界流行的轻量、灵活和简单的团队协作办法,它将项目的需求、缺陷和任务可视。 任何行业、任何团队、任何角色高效协作。
-
响应示例 状态码:200 执行成功,release collection success { "code" : "LMS.00000000", "message" : "release collection success" } 状态码:400 集合卸载失败 { "code" : "LMS.00003001", "message" : "ErrCollectionNotFound: Collection not found" }
-
响应参数 状态码:200 表2 响应Body参数 参数 参数类型 描述 code String 参数解释: 返回码。参见错误码章节。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 message String 参数解释: 描述信息。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 状态码:400 表3 响应Body参数 参数 参数类型 描述 code String 参数解释: 返回码。参见错误码章节。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。 message String 参数解释: 描述信息。 约束限制: 不涉及。 取值范围: 不涉及。 默认取值: 不涉及。
-
请求参数 表1 请求Body参数 参数 是否必选 参数类型 描述 store_name 是 String 参数解释: 知识仓实例名称,region内唯一。 约束限制: 长度范围为3到63个字符,支持小写字母、数字、中划线(-),第一个字符只能够是小写字母,中划线(-)不得出现在字符串末尾。 取值范围: 不涉及。 默认取值: 不涉及。 collection_name 是 String 参数解释: collection名称。 约束限制: 可包含数字、字母和下划线 ()。资源名称必须以字母或下划线 () 开头。最大长度支持255。 取值范围: 不涉及。 默认取值: 不涉及。
-
响应示例 状态码:200 搜索成功 { "code" : "LMS.00000000", "message" : "search entities success", "data" : { "entities" : [ { "distance" : 0.8106635, "primary_key" : 200, "vector" : [ 22.33, 33.44, 44.55 ], "scalar_name" : "book1" }, { "distance" : 0.75336635, "primary_key" : 300, "vector" : [ 221.33, 331.441, 441.55 ], "scalar_name" : "book2" } ] } } 状态码:400 搜索失败 { "code" : "LMS.00001001", "message" : "ErrInvalidParameter : the input parameter is incorrect." }
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- ...
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333