|
238 | 238 |
|
239 | 239 | ——能使用分布式系统管理构建任务。
|
240 | 240 |
|
241 |
| - |
242 |
| - |
243 | 241 | ### 3. 持续集成
|
244 | 242 |
|
245 | 243 | 持续集成是指通过源代码构建软件的流程。
|
246 | 244 |
|
247 | 245 | ##### 应包含以下基本功能:
|
248 | 246 |
|
249 |
| -——xxxx |
| 247 | +持续集成是指通过源代码构建软件的流程。应该包含以下基本功能: |
250 | 248 |
|
251 |
| -——xxxx |
| 249 | +——保存多个构建任务 |
| 250 | + |
| 251 | +——设置代码仓库地址,以及拉取源代码的凭据 |
| 252 | + |
| 253 | +——设置一个或多个构建命令 |
| 254 | + |
| 255 | +——支持多种源代码语言的编译 |
| 256 | + |
| 257 | +——支持多种源代码托管软件 |
| 258 | + |
| 259 | +——设置自动触发条件:定时触发,源代码变更触发 |
| 260 | + |
| 261 | +——构建任务应该含多个执行记录 |
| 262 | + |
| 263 | +——构建执行记录展示记录状态,以及结果 |
| 264 | + |
| 265 | +——构建执行记录展示构建过程产出的日志 |
| 266 | + |
| 267 | +——支持构建命令中执行软件单元测试 |
| 268 | + |
| 269 | +——支持执行静态源代码扫描 |
| 270 | + |
| 271 | +——支持定义构建执行环境 |
252 | 272 |
|
253 | 273 | ##### 可以包含以下高级功能:
|
254 | 274 |
|
255 |
| -——xxxx |
| 275 | +——可以支持提供执行持续集成依赖的服务,例如:数据库服务,缓存服务等 |
256 | 276 |
|
257 |
| -——xxxx |
| 277 | +——构建执行记录中可以保存构建产出物 |
| 278 | + |
| 279 | +——构建执行记录中可以保存构建报告,单元测试报告,测试覆盖率报告 |
| 280 | + |
| 281 | +——可以保存构建产出物到第三方软件 |
| 282 | + |
| 283 | +——可以支持在一个构建任务中多个源代码仓库的 |
| 284 | + |
| 285 | +——可以支持定义构建任务超时时间,并在执行过程不允许 |
| 286 | + |
| 287 | +——支持构建容器镜像,以及推送构建的容器镜像到第三方软件 |
| 288 | + |
| 289 | +——支持源代码缓存 |
| 290 | + |
| 291 | +——支持触发其它构建任务,或者其它第三方软件 |
| 292 | + |
| 293 | +——支持定义执行超时时间 |
| 294 | + |
| 295 | +——建议在高级功能中添加: |
| 296 | + |
| 297 | +——支持源码多分支管理策略的构建场景 |
258 | 298 |
|
| 299 | +——支持动态可伸缩的构建执行环境 |
259 | 300 |
|
| 301 | +——支持构建结果通知(及时消息、邮件等)(10.9) |
260 | 302 |
|
261 | 303 | ### 4. 流水线
|
262 | 304 |
|
263 |
| -流水线是xxxx。 |
| 305 | +流水线是将代码提交到部署上线整个过程中的自动化实现。 |
264 | 306 |
|
265 | 307 | ##### 应包含以下基本功能:
|
266 | 308 |
|
267 |
| -——xxxx |
| 309 | +——支持集成调度代码托管、代码检查、编译构建、部署、测试、发布等任务,应实现提交代码后的端到端的产品自动化交付与发布 |
268 | 310 |
|
269 |
| -——xxxx |
| 311 | +——支持业务流程按需定制,可选择要执行的步骤和顺序 |
270 | 312 |
|
271 |
| -##### 可以包含以下高级功能: |
| 313 | +——支持级联调度与分层分级(是否增加描述1101) |
272 | 314 |
|
273 |
| -——xxxx |
| 315 | +---增加串行并行能力的描述(1101) |
274 | 316 |
|
275 |
| -——xxxx |
| 317 | +——支持按时间计划或代码提交等多种触发方式 |
| 318 | + |
| 319 | +——支持流水线状态可视化,宜清晰呈现价值流动,宜及时准确定位问题 |
276 | 320 |
|
| 321 | +——支持参数配置 |
277 | 322 |
|
| 323 | +++增加质量管理控制,支持多种条件判断 |
| 324 | + |
| 325 | +##### 可以包含以下高级功能: |
| 326 | + |
| 327 | +——支持人工审批 |
278 | 328 |
|
279 | 329 | ### 5. 制品管理
|
| 330 | +专家建议:增加制品版本控制模块;另外是高级功能和基本功能划分的问题。 |
280 | 331 |
|
281 |
| -制品管理是xxxx。 |
| 332 | +制品管理是对软件研发过程中生成的产物的管理,一般作为最终交付物完成发布和交付。 制品即构建过程的输出物,包括软件包,测试报告(存疑,招商银行,是否作为元数据),应用配置文件(是否适合作为制品,应当能够作为元数据1101)等。 比如jar包、zip包、rpm包、docker镜像等。 |
282 | 333 |
|
283 | 334 | ##### 应包含以下基本功能:
|
| 335 | +--(缺少制品添加方式的描述(谐云科技)1101) |
284 | 336 |
|
285 |
| -——xxxx |
| 337 | +——支持至少一种制品类型; |
286 | 338 |
|
287 |
| -——xxxx |
| 339 | +——为制品添加版本信息等元数据信息(元数据信息希望能细化,烽火科技1101); |
| 340 | + |
| 341 | +——使用制品的审计日志; |
| 342 | + |
| 343 | +——基本的权限管理; |
288 | 344 |
|
| 345 | +——代理其他制品库;(不应该作为基本功能,应作为高级功能,一些企业无法实现代理能力,平安银行1101) |
| 346 | + |
| 347 | +——检索制品; |
| 348 | + |
| 349 | +——备份和恢复 |
289 | 350 | ##### 可以包含以下高级功能:
|
290 | 351 |
|
291 |
| -——xxxx |
| 352 | +——支持多种制品类型; |
292 | 353 |
|
293 |
| -——xxxx |
| 354 | +——制品分发支持大规模并发、全球加速;(应当增加对场景的限制1101) |
| 355 | + |
| 356 | +——与持续交付系统高度集成;(描述有欠缺,是否和API一行合并谈集成能力1101) |
| 357 | + |
| 358 | +——基于元数据信息实现制品的安全管控、晋级(晋级描述不明1101) |
| 359 | + |
| 360 | +是否应加入制品的安全熔断机制,当包不安全时快速熔断阻塞依赖(华三1101) |
| 361 | + |
| 362 | +——REST API支持; |
| 363 | + |
| 364 | +——通过关键字、坐标数据、CheckSum等多种方式检索制品 |
| 365 | + |
| 366 | +——基于角色的权限管理 |
| 367 | + |
| 368 | +——基于自定义策略的访问控制 |
| 369 | + |
| 370 | +——制品文件安全扫描 |
| 371 | + |
| 372 | +——分析和查看制品依赖关系 |
294 | 373 |
|
| 374 | +——基于CheckSum的制品去重存储; |
295 | 375 |
|
| 376 | +——自定义制品清理/归档策略(是否应该改为基本功能,平安银行,征求下云产品的建议1101) |
| 377 | + |
| 378 | +--(是否增加配额管理能力作为高级功能1101) |
| 379 | + |
| 380 | +——支持多种存储源,(建议是写支持存储类型,不应出现具体厂商1101) 比如阿里云OSS、AWS的S3等 |
296 | 381 |
|
297 | 382 | ### 6. 部署管理
|
298 | 383 |
|
299 |
| -部署管理是xxxx。 |
| 384 | +专家建议:生产环境的管理还是测试环境?此处是生产管理的,专家建议包含生产环境和测试环境。(增加对测试等各类环境的描述1101) |
| 385 | + |
| 386 | +部署管理是DevOps持续交付中的一个重要环节,它借助自动化工具与统一规范,实现仓库版本到生产环境的自动化部署,提升开发和运维人员快速部署的能力。应该包含以下基本功能: |
300 | 387 |
|
301 | 388 | ##### 应包含以下基本功能:
|
302 | 389 |
|
303 |
| -——xxxx |
| 390 | +----是否应该有 权限管理(1101) |
304 | 391 |
|
305 |
| -——xxxx |
| 392 | +——部署工具应具备批量(海量)并发部署的能力; |
306 | 393 |
|
307 |
| -##### 可以包含以下高级功能: |
| 394 | +——支持灰度、全量(是否是发布管理的概念,而不是部署管理1101)等部署方案的实施,实现对生产环境的平滑升级; |
308 | 395 |
|
309 |
| -——xxxx |
| 396 | +——部署前支持备份上一版本的生产环境,在当前版本出现问题后能支持版本快速回退; |
| 397 | + |
| 398 | +——支持业务配置文件的自动生成与下发以及统一管理; |
| 399 | + |
| 400 | +——当业务架构调整后(存在疑问,mark1101),部署方案(范围较大1101)仅需调整布署节点配置项即可(布署节点指的是什么,京东云1101); |
| 401 | + |
| 402 | +——部署工具与业务架构松耦合,无需业务因布署方案或工具做任何改造; |
| 403 | + |
| 404 | +——部署对象服务器支持windows、linux等主流操作系统; |
| 405 | + |
| 406 | +——部署对象服务器在CMDB集中管理,与部署工具联动实现任意组合集群的版本部署; |
310 | 407 |
|
311 |
| -——xxxx |
312 | 408 |
|
| 409 | +##### 可以包含以下高级功能: |
| 410 | + |
| 411 | +可以包含以下高级功能: |
313 | 412 |
|
| 413 | +——部署工具具备调度编排的能力,能同时对不同功能模块版本实现一次性全流程部署; |
| 414 | + |
| 415 | +——支持上下文传输部署,即上一部署节点的输出能作为下一节点的前置条件或输入参数; |
314 | 416 |
|
315 | 417 | ### 7. 发布管理
|
316 | 418 |
|
317 |
| -发布管理是xxxx。 |
| 419 | +(如何描述对业务影响) 发布管理是指一个应用或多个集成应用程序从测试完成开发测试到生产环境用户可见的完整发布流程(定义混淆,如何和部署区分,华为1101)。 |
318 | 420 |
|
319 | 421 | ##### 应包含以下基本功能:
|
320 | 422 |
|
321 |
| -——xxxx |
| 423 | +——发布计划,规划软件程序的整体发布计划,包含但不限于:谁在何时、何地、怎样、发布了什么。以及对比发布计划和发布状态的能力。 |
322 | 424 |
|
323 |
| -——xxxx |
| 425 | +——发布定义,定义发布流程和审批工作流。 |
| 426 | + |
| 427 | +——发布策略,通过选择进行发布的目标环境、超时时间、暂停点、灰度发布等发布的具体策略,执行对应的发布动作;发布策略包含并不限于一键式发布,零停机发布、灰度发布、金丝雀发布等 |
| 428 | + |
| 429 | +----(与布署管理关联1101) |
| 430 | + |
| 431 | +——发布执行,自动化地执行发布策略,如策略中有暂停点,应验证后继续执行发布 |
| 432 | + |
| 433 | +——发布确认,通过发布规划中软件发布的确认点,进行发布确认,如与预期不一致,可快速回滚到发布前的软件版本 |
324 | 434 |
|
325 | 435 | ##### 可以包含以下高级功能:
|
326 | 436 |
|
327 |
| -——xxxx |
| 437 | +可以包含以下高级功能: |
328 | 438 |
|
329 |
| -——xxxx |
| 439 | +——发布决策,实现个角色的协同,评审决策,控制应用版本向后续环境的流动 |
330 | 440 |
|
| 441 | +——风险评估与质量门禁,提供发布影响分析视图,可快速查看发布产品的发布风险,在关键节点控制版本质量,支持自动质量门禁 |
331 | 442 |
|
| 443 | +——发布度量,发布报告视图,提供发布的状态报告与历史发布数据 |
332 | 444 |
|
333 | 445 | ### 8. 环境管理
|
334 | 446 |
|
335 |
| -环境管理是xxxx。 |
| 447 | +环境管理是一种配置管理活动,确保应用在多个环境之间达到持续交付的目的。 |
336 | 448 |
|
337 | 449 | ##### 应包含以下基本功能:
|
338 | 450 |
|
339 |
| -——xxxx |
| 451 | +——可以定义不同的环境类型(开发、测试、预发布及生产环境); |
340 | 452 |
|
341 |
| -——xxxx |
| 453 | +——可以定义不同的环境依赖资源信息及其配置,比如主机、容器集群、DNS、中间件、其他基础设施服务等等; |
| 454 | + |
| 455 | +——可以根据环境的配置快速生成交付(交付一词不妥1101 ) 环境; |
| 456 | + |
| 457 | +——可以让环境的配置信息存储在构件库中,版本化控制配置信息;(构件库的含义不清,应当澄清) |
| 458 | + |
| 459 | +——可以支持应用运行的环境是静态主机集群或者是动态的容器集群; |
| 460 | + |
| 461 | +——可以支持不同的应用有不同的基础设施及服务依赖; |
| 462 | + |
| 463 | +——可以支持不同的对象分块构建,比如说构建基础设施、构建中间件或者操作系统环境等等; |
| 464 | + |
| 465 | +——可以支持不同的环境采用不同的构建技术,比如说虚拟化、容器等等,但测试环境和生产环境必须类似; |
| 466 | + |
| 467 | +——可以支持环境的配置信息与应用或者项目关联; |
| 468 | + |
| 469 | +——对环境提供监控功能; |
342 | 470 |
|
343 | 471 | ##### 可以包含以下高级功能:
|
344 | 472 |
|
345 |
| -——xxxx |
| 473 | +可以包含以下高级功能: |
346 | 474 |
|
347 |
| -——xxxx |
| 475 | +——提供与不同的配置管理工具对接功能; |
| 476 | + |
| 477 | +——提供与不同制品构件库对接功能,比如说maven仓库和容器仓库artifactory、harbor等等(1101); |
| 478 | + |
| 479 | +——提供开放式的API供外围平台编排调用; |
| 480 | + |
| 481 | +——提供所有环境的变更日志和审计功能; |
348 | 482 |
|
| 483 | +——提供环境配置信息的权限控制; |
349 | 484 |
|
| 485 | +——提供测试验证的工具来验证环境的有效性; |
350 | 486 |
|
351 |
| -### 9. 数据管理 |
| 487 | +### 9. 数据管理(待定) |
352 | 488 |
|
353 | 489 | 数据管理是xxxx。
|
354 | 490 |
|
|
366 | 502 |
|
367 | 503 | ### 10. 应用配置管理
|
368 | 504 |
|
369 |
| -应用配置管理是xxxx。 |
| 505 | +应用配置是指应用启动或动态运行时影响应用行为的配置项,典型例子如数据库连接串(含用户名密码),本地服务线程池数,RPC连接超时时间设置,三方软件LicenseKey,等。应用配置管理,是对应用配置进行集中式管理的系统和方法。采用应用配置管理,可以让配置发布有效解耦程序开发,程序发布等流程,并让程序能动态响应配置的变更,提高DevOps效率。 |
370 | 506 |
|
371 | 507 | ##### 应包含以下基本功能:
|
372 | 508 |
|
373 |
| -——xxxx |
| 509 | +——配置的最小粒度应对应单一配置ID,其内容应不限于KV,Json, XML等格式,用户应能自由配置。 |
374 | 510 |
|
375 |
| -——xxxx |
| 511 | +——配置内容大小应有限制,但是不宜太小,如应超过100KB以上。 |
| 512 | + |
| 513 | +——配置应能基于租户,分组,或其他不同粒度规则进行隔离。 |
| 514 | + |
| 515 | +——对配置的访问应有鉴权,以控制账号对相关配置项的读写权限操作。 |
| 516 | + |
| 517 | +——应提供相应程序接口供应用程序实现读、写配置的功能。 |
| 518 | + |
| 519 | +——应提供相应程序接口供应用程序实现配置订阅的功能,如配置变更,则程序可在短时间内做出响应。 |
| 520 | + |
| 521 | +——应用程序应可以基于各类语言如java, go, node, c++等多语言SDK来操作配置。 |
| 522 | + |
| 523 | +——应用配置管理应能和各类CI/CD工具集成,如github,等。 |
376 | 524 |
|
377 | 525 | ##### 可以包含以下高级功能:
|
378 | 526 |
|
379 |
| -——xxxx |
| 527 | +可以包含以下高级功能: |
| 528 | + |
| 529 | +——配置发布时应支持灰度发布,如根据某类机器的IP或某类机器的Label。 |
| 530 | + |
| 531 | +——应提供配置订阅监控,可查看配置被哪些机器订阅。 |
| 532 | + |
| 533 | +——配置应能区分版本,不同版本之间能一键回滚,以降低配置发错的风险。 |
| 534 | + |
| 535 | +——配置管理应能充分集成各类加密工具,如AWS KMS,Aliyun KMS,Hashcorp Vault,(不应出现具体产品1101)以保证配置安全性。 |
380 | 536 |
|
381 |
| -——xxxx |
| 537 | +——配置管理中心以成为系统单点,如管理中心宕机,应用应能正常运行。(但新配置不能发布) |
0 commit comments