配置管理 订阅
配置管理(Configuration Management,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。 展开全文
配置管理(Configuration Management,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。
信息
外文名
Configuration Management
用    于
软件开发
中文名
配置管理
解    释
通过技术对软件产品进行控制
配置管理简介
配置管理过程是对处于不断演化、完善过程中的软件产品的管理过程。一致性、可追溯性,使产品极大程度地与用户需求相吻合。它通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。 [1]  早在七十年代初期加利福利亚大学的Leon Presser教授就撰写了一篇论文,提出控制变更和配置的概念,之后在1975年,他成立了一家名为SoftTool的公司,开发了自己的配置管理工具:CCC,这也是最早的配置管理工具之一。之后,随着软件开发规模的逐渐增大,越来越多的公司和团队意识到了软件配置管理的重要性,而相应的软件配置管理工具也如雨后春笋一般,纷纷涌现,比较有代表性的有:Marc Rochkind的SCCS(Source Code Control System)和Walter Tichy的RCS(Revision Control System),这两种工具对日后的配置管理工具的发展做出了重大的贡献,目前绝大多数广泛使用的配置管理工具基本上都是基于这两者的设计思想和体系架构。配置管理在软件开发过程和项目管理过程中的作用随着软件系统的日益复杂化和用户需求、软件更新的频繁化,配置管理逐渐成为软件生命周期中的重要控制过程,在软件开发过程中扮演着越来越来重要的角色。一个好的配置管理过程能覆盖软件开发和维护的各个方面,同时对软件开发过程的宏观管理,即项目管理,也有重要的支持作用。良好的配置管理能使软件开发过程有更好的可预测性,使软件系统具有可重复性,使用户和主管部门用软件质量和开发小组有更强的信心。软件配置管理的最终目标是管理软件产品。由于软件产品是在用户不断变化的需求驱动下不断变化,为了保证对产品有效地进行控制和追踪,配置管理过程不能仅仅对静态的、成形的产品进行管理,而必须对动态的、成长的产品进行管理。由此可见,配置管理同软件开发过程紧密相关。配置管理必须紧扣软件开发过程的各个环节:管理用户所提出的需求,监控其实施,确保用户需求最终落实到产品的各个版本中去,并在产品发行和用户支持等方面提供帮助,响应用户新的需求,推动新的开发周期。通过配置管理过程的控制,用户对软件产品的需求如同普通产品的订单一样,遵循一个严格的流程,经过一条受控的生产流水线,最后形成产品,发售给相应用户。从另一个角度看,在产品开发的不同阶段通常有不同的任务,由不同的角色担当,各个角色职责明确,泾渭分明,但同时又前后衔接,相互协调。好的配置管理过程有助于规范各个角色的行为,同时又为角色之间的任务传递提供无缝的接合,使整个开发团队像是一个交响乐队一样和谐而又错杂地行进。正因为配置管理过程直接连接产品开发过程、开发人员和最终产品,这些都是项目主管人员所关注的重点,因此配置管理系统在软件项目管理中也起着重要作用。配置管理过程演化出的控制、报告功能可帮助项目经理更好地了解项目的进度、开发人员的负荷、工作效率和产品质量状况、交付日期等信息。同时配置管理过程所规范的工作流程和明确的分工有利于管理者应付开发人员流动的困境,使新的成员可以快速实现任务交接,尽量减少因人员流动而造成的损失。
收起全文
精华内容
下载资源
问答
  • 配置管理
    千次阅读
    2019-09-18 05:23:37

    配置管理员岗位职责

    一、配置经理的基本技能与资格

    资格:

    • 能够重视配置管理工作;
    • 能够按规范实施配置管理工作;
    • 积极支持部门的配置管理方面的工作;
    • 能够积极支持与帮助其他人员;
    • 为部门的配置管理能力的提高贡献力量;
    • 熟悉公司配置流程以及其他相关的流程;
    • 为增进项目管理,对于项目内的困难和关键问题,能够及时反映到部门;

    ### 基本技能:

    • 能够独立规划项目的配置管理工作;
    • 熟练掌握配置管理的相关概念;
    • 能够了解配置的相关工具,熟练使用技术工程部配置所使用的工具;
    • 具有基本的与人沟通的技巧;
    • 能够了解项目管理过程中的主要环节;
    • 初步了解项目管理过程中的质量保证的各个方面;
    • 了解部分系统和应用工具,如数据库ORACLE,前台开发工具DEPHI等;

    ## 二、 配置经理的职责

     作为一名配置人员,配置经理的职责就是能够与质量人员、测试人员等共同保证项目的质量。如:作为质量保证的成员之一,能够为整个技术工程部规范化管理的推进作贡献,如宣传规范化管理的知识,陈述规范化管理的利弊等;能够在项目进行的整个生命过程中,不断的与项目经理、QA、SCCB及项目成员进行配置管理规范化的沟通,为项目配置管理的规范化作出努力.

    ### 具体表现为:

    • 项目进行初期或首次进入项目中时,能够首先与项目经理、QA、SCCB及项目成员就项目的未来配置管理工作进行沟通,取得项目经理、QA、SCCB及项目全体成员对配置工作的认可与支持;
    • 积极了解项目情况,项目各阶段的进展,为更好的进行配置管理作努力;
    • 熟练并充分的利用配置管理工具的各方面的功能,提高配置管理的效率;
    • 为项目控制好版本,保证项目各阶段所使用的版本正确;
    • 及时发现项目问题,把问题及时反馈给项目经理、QA或SCCB,并积极协助解决;
    • 与项目内其他组成员,如开发组、测试组等协调工作,并能够很好的沟通;
    • 能够在项目中不断总结、分析,为项目内配置管理工作的进一步优化作贡献;
    • 项目进行中或结束后,能够总结并编写配置管理过程中的案例;

    三、 配置经理的工作内容

    项目计划阶段:

    在项目计划阶段,是配置管理工作前期准备的重要阶段,配置经理的工作主要有以下几方面的内容:

    1、 制定配置管理计划

     对于项目工程部在项目立项前期指派配置管理人员的项目,在项目立项初期,配置经理要与项目经理协商,制定配置管理的计划,规划未来的配置管理工作。配置管理计划的约束条件:

    • 配置管理的规划必须以项目开展的工作为基础,参考工作说明书。
    • 配置管理计划的编写必须以公司的流程为模版,与工作说明书和质量保证计划相一致;
    • 配置管理计划能够指导未来的配置管理工作,配置管理工作必须以配置管理计划为基准;
    • 配置管理计划必须经过最终的评审通过,才能够成立;

    如配置管理计划不能满足未来配置管理工作的需要,可以再增加配置管理工作计划作为配置管理计划的辅助,指导未来的配置管理工作;

    2、 规范配置管理环境

    配置管理计划制定结束后,配置管理人员要依据计划实施配置管理的前期工作。首先必须规范配置管理的环境,实现项目组内的专机专用,与项目经理协商,开发用机、测试用机、配置用机的情况,并最终生成配置管理环境维护清单,便于后期对环境的维护;

    3、 建立配置库

    配置库作为项目组内成员今后工作的平台,前期的详细准备是非常重要的。配置库建立的准则:

    • 依据配置管理计划中的定义建立配置库;
    • 与项目经理协商配置库人员使用的权限规定与配置库工作区间的划分,保证个人工作区间的隔离;

    4、 与项目负责人讨论变更控制的实施

     与项目SCCB讨论项目中变更控制实施的措施,指定出相应的变更控制流程。在变更控制流程中应注意变更过程中责任到人,不同变更情况的处理方式,具体操作可参见《变更控制流程制定指导书》。

    5、 配置培训

     配置培训作为与项目成员沟通配置管理内容的一个主要渠道,配置经理应与项目经理协商在项目开始初期进行。培训内容包括:

    • 配置管理的基本概念;
    • 项目中配置管理工具的使用;
    • 项目中配置管理的相关流程;
    • 配置库的使用及规范等;

    6、 生成计划基线,并发布基线

     在项目的立项材料经过正式评审通过,宣布项目立项后,配置经理要整理项目的立项材料,正式生成计划基线,并标识基线,保证基线存放于基线库中。

     基线的发布通过配置状态报告来实现。

    项目执行阶段:

     项目执行阶段,配置工作真正深入到了项目中,工作主要表现为:

    1、 维护配置库

    • 配置库维护包括维护配置库结构、日常权限的设置、帐户的增加与删除、工作区维护、配置库备份等;
    • 维护时要注意:对配置库的备份要与配置机分开,以确保安全性;
    • 配置库中帐户的管理要注意定期维护,避免帐户不断增加,出现垃圾帐户的问题;
    • 工作区的维护要注意结构清晰、明了,工作区隔离;
    • 监督项目组成员使用配置库问题,避免工作脱离配置库平台和配置项长期被CHECK OUT的问题等;

    2、 进行版本控制

    版本控制是配置管理的另一项主要内容,包括文档版本的控制和代码版本的控制。版本控制中注意的问题:

    • 版本标识明确、清晰;
    • 在配置库中,有效利用标签;
    • 注意保证版本的历史在线和可以回溯;
    • 注意每一次的开发以基线版本为基础和基准;
    • 注意版本的受控性,保证测试的版本的受控;
    • 每一次新的基线版本的生成,要及时发布;

    3、 协助生成项目进行过程中的各种基线

    项目执行过程中生成各种基线,包括需求基线、设计基线、代码基线等,基线的正式生成要经过评审通过才有效。

    配置经理协助项目经理组织评审。在评审之前首先要进行物理审计,审计后填写物理审计报告,然后传递给QA进行过程审计。物理审计报告作为配置项存放在配置库中。

    评审通过后,正式生成基线,配置经理负责整理并标识基线,然后把基线存放在基线库中,通过配置状态报告来发布基线。

    在代码基线生成时,注意维护源代码清单。

    4、 与测试人员协作

    配置经理注意与测试人员的沟通,保证与测试组配置管理协接的无误。测试组与配置组沟通的两个主要问题是:测试配置项的管理问题和版本的传递问题。

    配置经理要与测试经理、项目经理沟通有关测试配置项的管理问题与版本的传递问题。测试配置项可以单独管理,也可以与其他配置项一起存放与一个配置库中,这要根据项目的大小和配置库的增长趋势来决定,建议大型项目在有条件的情况下单独存放,单独管理测试案例、测试数据等;

    版本的传递指开发组产生出代码,经配置组编译执行生成执行文件并进行版本标识后,传递给测试组进行测试的过程。在此过程中注意的问题是:配置组与开发、测试组的接口的唯一,保证测试版本的正确性。

    5、 与QA协作

    配置经理负责向QA及项目经理反映项目进行过程中的不规范问题,并与QA与项目经理沟通,解决问题。

    6、 发布配置状态报告

    配置经理在项目进行过程中,要及时发布配置状态报告。发布配置状态报告有两种方式:时间驱动和事件驱动。基线生成时、重要配置象产生时,都要发布配置状态报告;定期发布配置状态报告以向全体成员通报项目现阶段的进展情况,注意全体成员要包含QA。

    7、 优化配置管理活动

    在配置管理过程中,随项目的进展和工作的开展情况,配置经理要适时的调整配置管理的活动。如整理配置库、优化配置流程等。但是必须注意,任何变动和更改必须经过项目经理的同意;更改后要通过配置状态报告发布;变动和更改的配置项要有相应的变更说明。

    如配置工作需要调整时,需升级配置管理计划,必须确保工作与计划的一致性;

    8、 维护项目环境

    在项目进行过程中,注意维护项目的环境,包括配置环境、测试环境、开发环境等。环境的变更要体现在配置管理环境维护清单中。环境的变化要通过配置状态报告发布出去。

    9、 协助项目组完成变更管理

    配置组有责任协助项目组完成变更控制的管理,并维护变更管理过程记录。变更执行过程中出现的问题,可以向项目经理和QA甚至SCCB反映。变更执行结束,要发布配置状态报告,报告变更的情况

    10、 参加项目组的会议

    为使配置管理工作对项目切实可行和有意义,配置管理人员除主动积极了解项目情况外,要参加项目组的例行会议,了解项目的总体情况,以及项目的下一步工作规划,以便配置管理及时作出反馈

    11、 参加项目工程部的活动

    配置经理要积极参加项目工程部组织的各种配置活动,如配置经理述职等;

    项目结项:

    项目结项时,配置管理人员主要是协助项目经理整理结项材料,对项目配置管理工作进行总结、整理,编写配置管理案例、进行配置工作述职等。如项目配置项需要入产品库,则按产品库规范整理产品配置项。

    在编写案例时要注意总结项目配置管理工作进行过程中的得失以及经验教训。案例总结和述职的进行都要在项目工程部内进行。

    更多相关内容
  • 软件配置管理

    千次阅读 2020-11-17 13:25:52
    3,软件配置管理是一种标识、组织和控制修改的技术,软件配置管理应用于整个软件工程过程 4,SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更 5,从某种角度讲,SCM的目的是...

    第一章

    1,软件配置管理用于控制变化

    2,软件配置管理(Software Configuration Management, SCM)是指一套管理软件开发和维护过程中所产生的各种中间软件产品的方法和规则,它是控制软件系统演变的学科。

    3,软件配置管理是一种标识、组织和控制修改的技术,软件配置管理应用于整个软件工程过程

    4,SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更

    5,从某种角度讲,SCM的目的是使错误降为最小并最有效地提高生产效率。

    6,软件配置管理定义:

    软件配置管理是贯穿于整个软件过程中的保护性活动,它被设计用来:

    (1) 标识变化;(2) 控制变化;(3) 保证变化被适当的发现;(4) 向其他可能有兴趣的人员报告变化

    7,配置管理是否有成效取决于三个要素:人、规范、工具。

    8,软件配置是一个软件产品在生存期各个阶段的不同形式(记录特定信息的不同媒体)和不同版本的程序、文档及相关数据的集合,或者说是配置项的集合

    9,软件配置是一个集合,该集合中的每一个元素称为该软件产品软件配置中的一个配置项(Software Configuration Item,SCI)。

    10,常见的软件配置项:需求规格说明书、设计规格说明书、源代码、测试计划、测试用例、用户手册等

    11,基线(Baseline)是指一个(或一组)配置项在项目生命周期的不同时间点上通过正式评审而进入正式受控的一种状态。基线是软件生命周期中各开发阶段的一个特定点,它的作用是把开发各阶段工作的划分更加明确化,使本来连续的工作在这些点上断开,以便于检查与肯定阶段成果

    12,基线是已经正式通过复审和批准的某规约和产品,它因此可作为进一步开发的基础,并且只能通过正式的变化控制过程来改变。基线通常标志开发过程一个阶段的结束(里程碑)。

    13,里程碑(Milestone)是检查点 (Check Point),检查点不一定是里程碑,因为检查点还可以是时间、计划和事件

    14,功能基线:所规定的对待开发软件系统的规格说明

    15,指派基线:又称为分配基线,指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明,指派基线是最初批准的指派配置标识。

    16,产品基线:指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明,产品基线是最初批准的产品配置标识

     

    17,软件配置控制委员会(Software Configuration Control Board, SCCB)负责管理软件配置项变更的组织。

    具体责任如下:

    评估变更;批准变更请求;在生命周期内规范变更申请流程;对变更进行反馈;与项目管理层沟通

    18,软件配置管理是在贯穿整个软件生命周期中建立和维护项目产品的完整性。它的基本目标包括:

    • 目标 1: 软件配置管理的各项工作是有计划进行的。

    • 目标 2: 被选择的项目产品得到识别,控制并且可以被相关人员获取。

    • 目标 3: 已识别出的项目产品的更改得到控制。

    • 目标 4: 使相关组别和个人及时了解软件基准的状态和内容。

    第二章

    1,软件配置管理角色

    PM: 项目经理;CCB: 配置控制委员会;CMO: 配置管理员;SIO: 系统集成员;DEV: 开发人员

    2,项目经理(Project Manager,PM)

    根据软件配置控制委员会的建议批准配置管理的各项活动并控制它们的进程。

    职责:制定和修改项目的组织结构和配置管理策略;批准、发布配置管理计划;

    决定项目起始基线和开发里程碑;接受并审阅配置控制委员会的报告。

    配置控制委员会(Configuration Control Board,CCB)

    负责指导和控制配置管理的各项具体活动的进行,为项目经理的决策提供建议。

    职责:定制开发子系统;定制访问控制;制定常用策略;建立、更改基线的设置,审核变更申请;根据配置管理员的报告决定相应的对策。

    配置管理员(Configuration Management Officer,CMO)

    根据配置管理计划执行各项管理任务,定期向CCB提交报告并列席CCB的例会。

    职责:软件配置管理工具的日常管理与维护;提交配置管理计划;各配置项的管理与维护;执行版本控制和变更控制方案;完成配置审计并提交报告;对开发人员进行相关的培训;识别软件开发过程中存在的问题并拟定解决方案。

    系统集成员(System Integration Officer,SIO)

    系统集成员负责生成和管理项目的内部和外部发布版本。

    职责:集成修改;构建系统;完成对版本的日常维护;建立外部发布版本。

    开发人员(Developer,DEV)

    开发人员的职责就是根据组织内确定的软件配置管理计划和相关规定,按照软件配置管理工具的使用模型来完成开发任务。

    34,软件配置管理过程包括7项基本活动:

    (1) 制定配置管理计划;(2) 识别和标志配置项;(3) 搭建配置管理环境;(4) 配置项的版本控制;(5) 基线变更管理;(6) 配置审核;(7) 配置状态统计

    5,制定配置管理计划

     

    • 配置管理计划的主要内容:

    配置管理组织及其职责;配置管理工具和配置库的组织结构;配置项标志和基线定义;

    变更管理流程;配置审核和配置状态统计

     

    6,识别和标志配置项:

    (1)为每一个配置项分配唯一的标志;建立配置项间的对应关系

    (2)两类配置项:

    • 基本配置项:软件开发者在项目开发过程中所创建的基本工作单元。

    • 集成配置项:一个集成配置项是基本配置项或其它集成配置项的集合。

    7,搭建配置管理环境

    配置管理环境是用于进行软件配置管理的系统环境,其中最重要的是配置管理库,简称配置库

    配置库存储配置项 (SCI)、修改请求、变化记录等,并提供对库中所存储文件的版本控制

    一般需采用配置管理工具来建立配置库。

     

    8,配置项的版本控制

    • 配置库的检入检出和版本控制机制解决了软件开发中的两个重要问题

      • 访问控制:保证具有相应权限的人员才能修改配置项。

      • 并行控制:保证不同人员同时对某配置项进行的修改不会互相覆盖。

    • 对配置项的修改(不同版本间的差别)应被记录下来。

      更动者(姓名及其身份);更动日期和时间;被更动SCI(名及其版本号);

      更动内容及其位置;更动原因;受此更动影响的诸SCI名表。

    • 软件产品版本编号方法

      • 数字顺序型版本编号

      普通版本编号

      • x.y.z,x为主版本号,y为特征版本号,z为缺陷修复版本号,如V3.10.16。

      • 主版本号的增加表示提供给客户的主要产品功能的增强。

      • 特征版本号的增加表示产品新增了一些特征或做了一些重要修改。

      • 缺陷修复版本号的增加表示在软件产品上做了一些缺陷修复工作。

      α和β版本编号

      • 在普通版本编号后面增加一个大写字符A或者B来分别表示α版本或β版本。例如1.2.4A或1.2.4B。

      • 如果存在多次的α发布和β发布,可在A或B后面添加一个数字来说明发布的次数,例如:1.2.5A1,1.3.0B2。

      α测试是由公司内部的用户在模拟实际操作环境下进行的测试。

      β测试是由软件的多个用户在实际使用环境下进行的测试。

      • 属性版本编号

        把版本的重要属性反映在标识中。可以包括的属性有:客户名、开发语言、开发状态、硬件平台、生成日期等。例如: J2SDK.v.l.2.2:10/31/2000-18:00,native threads, jit-122

        • 包含的信息丰富,方便了查询和管理,版本间的关系易于保持,但由于太复杂,一般只用于软件组织内部的管理

       

    9,基线变更管理

     

     

    • 变更批准或拒绝

    根据评估结果对变更作出决策:

    直接实现变更;挂起或延迟变更;拒绝变更

    对于批准的变更,要确定其实现进度:

    立即实现变更;在特定的日期实现变更;在软件另外的版本中实现

    • 变更实现

    10,配置审核

    配置管理活动审核:确保所有配置管理活动符合已批准的软件配置管理规程

    基线审核:审核基线配置项的完整性和一致性,从而保证基线配置项可被正确地构造。

    11,配置状态统计和报告

    变更请求的数量。变更管理活动的执行情况。

    配置管理系统存储量的变化。配置管理系统和SCCB在运作中发生异常的次数

    第三章

    1,CMM/CMMI将软件配置管理的活动分为6个方面,每个方面又再进行了细分

    SCM过程管理;软件配置标识;软件配置控制;软件配置状态统计;软件配置审计;软件发布管理和交付

    2,在CMM和CMMI中,将配置管理的目的定义为"建立和维护产品的完整性",

    3,配置完整性(对标准的理解)

    • 产品完整性:项目提交的工作成果是"产品集合完整、子产品正确"的

    • 产品集合完整:产品包含的子产品(配置项)是完整的

    • 子产品正确:子产品(配置项)达到了需求要求,满足标准、规程的要求

    4,三库管理:三库的概念源自CMM/CMMI,即开发库、受控库和产品库。配置项在三库之间迁移,一级比一级的控制更严格。

    5,软件开发组日常的工作在开发库中开展,当工作达到里程碑时,再迁移到受控库,在受控库中经过更严格的测试后,再上升到产品库,最后发布。

    6,在实践中,三库常常被实现为物理上的三库,而不是通过逻辑的方式来实现,三库物理隔离带来的最大问题是配置项失去了历史可追溯性

    7,实现三库的指导思想应该是逻辑上独立,物理上在一起,通过权限与流程的控制来实现配置项在不同库之间的流转,以及相应角色的人员对相应库的访问。

    1. CMM2在配置管理方面主要针对于实现部分;CMM3将配置管理扩展到需求、规格说明、设计和工具

    2. SCM意义

    记录软件产品的演化过程;

    确保软件开发者在软件生命周期中的各个阶段都能得到精确的产品配置;

    最终保证软件产品的完整性、一致性、追朔性、可控性;。

    10,每个基线都将接受配置管理的严格控制,对其的修改将严格按照变更控制要求的过程进行,在一个软件开发阶段结束时,上一个基线加上增加和修改的基线内容形成下一个基线,这就是"基线管理"的过程

    11,建立基线的好处:重现性;可追踪性;版本隔离。

    基线管理的步骤:

    (1) 在开发前确定基线的"配置";(2) 基线批准前,根据"配置"检查配置项是否齐备;

    (3) 对各个配置项,确认其版本的正确性;(4) 对每个配置项建立基线标志;

    (5) 基线变更管理;(6) 基线的各类报告和审计信息。

    12,变更管理的流程:

    (获得)提出变更请求;由CCB审核并决定是否批准;

    为(被接受)修改请求分配人员,提取SCI,进行修改;

    提交修改后的SCI,并测试(或者评审);重建软件的适当版本;

    复审(审计)所有SCI的变化;发布新版本。

    ---可以通过两种表格来帮助发现受到变更影响的内容,一种是《需求跟踪表》,一种是《配置项依赖关系表》

     

    13,配置库管理

    (1)设置配置库(即文件夹设置)和设置版本的分支

    (2)为每个配置项从建立开始就划分成3个不同的分支:私有分支、集成分支、公共(主干)分支

    私有分支(开发人员的私有开发空间):开发人员

    集成分支(开发团队的公共空间):由系统集成员及相关指定人员负责:所有涉及多人协调的开发工作(如集成测试等)都必须工作在这一空间中。该开发团队拥有对该集成分支的读写权限,而其他成员只有只读权限。

    公共(主干)分支(整个软件开发组织的公共空间):系统集成员:各个开发小组在现阶段的任务完成后,将可以发布的版本归并到该分支上,对组织内的全体软件人员开放只读权限

     

    上面定义的3类工作空间(分支)由配置管理员统一管理

     

    (3)按配置项类型分类建库和按任务建库。

    (4)配置库的日常工作:对配置库的定期备份;清除无用的文件和版本;检测并改进配置库的性能等

     

    14,配置审计:主要作用是作为变更控制的补充手段,来确保某一变更需求已被切实实现

    记录了谁修改了这个工件,什么时候做的修改,为什么原因做出这个改动,以及修改了哪些地方。 (Who、When、Why、What)

    • 同时配置审计工作该应当说明如下信息:

    (1) 变更要求被完成,并且对附加的修改已经执行了 (2) 采用了正确的正式验证手段

    (3) 遵循了标准的要求 (4) 变更的4W信息被完整记录,并和相关配置项关联

    • 配置审计有两种:

    • PCA (Physics Configuration Audit)-----非配置管理人员

    主要是检查版本是否正确一致。(1) 配置项是否齐备;(2) 版本是否齐全,由非配置管理人员来进行。

    • FCA (Function Configuration Audit) -----CMO

    检查配置项是否完整,各种过程文档是否齐备、正确、与需求是否一致,归结为两点,即完全和齐备。

    15,配置审计

    • When:软件交付或release时;每个阶段结束时;对于维护性项目,周期性地进行

    • Who:非本项目组成员;其他项目中的配置控制者;内部审计者;SCM小组

    • 配置审计步骤(How-审计流程)

    • (1) 由项目经理决定何时进行配置审计工作(识别配置审计的时间[PM])

    • (2) 质量保证组或项目组的配置管理组制定该项目的配置审计人员(指派审计者[QA/Audit Group])

    • (3) 项目经理和配置审计员决定审计范围(定义审计范围[PM&Auditors])

    • (4) 配置审计员准备配置审计检查单(准备配置审计Checklist[Auditor])

    • (5) 配置审计员安排时间审计文档和记录,审计活动可能涉及到:项目范围,配置项的入库(check in)及出库(check out),评审记录,配置项的变更历史,测试记录,文件的命名,变更请求和版本的编号等

    (通过评审(Review)、文档记录进行审计[Auditor])

    • (6) 配置审计员在审计中发现不一致现象,并作记录(识别不符合项[Auditor])

    • (7) 由项目经理负责消除不一致现象(关闭不符合项[PM])

    • (8) 配置审计员验证所有发现的不一致现象确已得到解决(验证[Auditor])

     

    16,配置状态报告就是根据配置项操作的记录来向管理者报告软件开发活动的进展情况

    应该是定期进行,并尽量通过CASE工具自动生成,用数据库中的客观数据来真实的反映各配置项的情况。

    应着重反映当前基线配置项的状态,以作为对开发进度报告的参照

     

    17,软件配置管理最佳实践:

    统一标识配置项并存入安全的配置管理系统;控制和审计配置项的变更;合理组织配置项;

    在项目的里程碑建立相应的基线;记录和跟踪变更请求;过程驱动的软件配置管理;

    维护稳定而一致的工作空间;支持并行开发;尽早和持续集成;

    确保有能力重现软件的构建过程;把握好工具、流程和人员三者之间的关系;善用模式和反模式;

    18,模式可以指导我们如何成功应用前人的实践,避免犯前人犯过的错误,提高SCM的实施成功率。

    反模式是指那些在特定情况下不应该采取的策略和方式。

     

    第4章

    1,软件配置管理计划: 人员及职责;配置管理软硬件资源;配置项计划;基线计划;配置库备份计划

    2,配置库管理报告: 基本信息;项目成员的操作权限;配置项记录;基线记录;配置库备份记录;配置项交付记录;配置库重要操作日志

    3,配置项变更控制报告: 变更申请;审批变更申请;变更配置项;结束变更

    4,配置状态报告 (Configuration Status Report)目的:有效记录和报告管理配置所需要的信息,及时、准确地给出软件配置项的当前状态,供相关人员了解,以加强配置管理工作

    • 内容

      • 各份变更请示概要:变更请求号、日期、申请人、状态、估计工作量、实际工作量、发行版本、变更结束日期

      • 基线库状态:库标识、至某日预计库内配置项数、实际配置项数

      • 发行信息:发行版本、计划发行时间、实际发行日期、说明

      • 备份信息:备份日期、介质、备份存放位置

      • 配置管理工具状态

      • 配置管理培训状态

    5,配置审计目的:验证配置项信息与配置标识(需求、标准、流程…)的一致性,4"W"

    配置审计报告内容:配置项状态统计;基线库基线统计;变更统计;审计中发现的主要问题

    第5章

    1,配置管理模式分类: 描述工作区结构的模式 描述码线结构的模式

    2,码线(codeline)--源代码文件与组成某个软件组件的其他人工制品(配置项)随着时间而变更的进展过程。

    码线包含沿着一条路径发展的各个配置项的每个版本

    3,与码线有关的模式:主线; 活动开发线; 码线策略; 私用版本; 版本线; 版本预备线; 任务分支4,与工作区有关的模式: 私有工作区;储存库; 私有系统构造; 集成构造; 第三方码线;任务级提; 冒烟测试; 单元测试; 回归测试

    1. 主线——问题: 如何使当前活动码线的数目保持在容易管理的水平,避免项目的版本树长得太宽太密?如何使合并的开销减至最小?

      解决方案:简化分支模型:开发单个产品版本时,在主线上进行开发。分支时,先考虑总体战略,然后再创建分支

    6,分支是组织文件版本和显示版本历史的手段,是隔离变更的强有力机制。

    7,主线既要使码线的并发性达到最大,又要使推迟集成可能造成的问题减至最小

    8,私有工作区——问题: 如何跟上不断变化的码线并取得进展,而不会为环境变化而分心?

    • 解决方案:以隔离工作的方法控制变更 (Isolate your work to change control)

    1. 储存库——问题:如何获得填充新工作区的正确组件的正确版本11,

    2. 冒烟测试(Smoke Test)如何知道系统在你变更后仍能工作?

    描述的是在将代码更改嵌入到产品的源树中之前对这些更改进行验证的过程;

    是确定和修复软件缺陷的最经济有效的方法;缺点在于覆盖面很有限。执行者是开发人员或版本编译人员

    12,每次构造都必须进行冒烟测试,以显而易见的方式验证应用未被损坏。

    13,单元测试((Unit Test)):如何测试模块经你变更后是否仍能像预期一样工作

    14,回归测试((Regression Test)):如何确保现有的代码没有因你进行其他改进而变得更糟?

    15,每日构建 (Daily Build)

    就是把一个软件项目的所有的最新的代码从配置库中取出,然后从头进行编译、链接和运行。通常由工具自动完成(构建自动化)。

    daily build 的另一个重要功能就是验证软件中各模块关系是否正确,也可称为"每日集成"。

     

    第9章

    1,版本库(Repository):按照一定格式存储了所有数据,包括文件和目录

    经过授权的客户端可以连接到版本库,读写库中的文件

    版本库和普通文件服务器的不同:版本库会记录每一次的更改

    2,版本控制系统的核心任务:协作编辑和数据共享

    3,拷贝-合并模型假定文件是可以通过上下文合并的。通常情况下,文本文件(例如源代码以及用纯文本,HTML,TXT等格式保存的文档)因为其内部结构直观可知,容易理解上下文,所以用拷贝-合并方案较好。而二进制文件(例如用Microsoft Word格式说,PDF等格式保存的文档及图片,声音,可执行文件,库等)内部结构复杂,且不容易理解更改处的上下文,采用锁定-解锁方案较好

    4,Subversion主要采用拷贝-修改-合并模型,配合锁定-修改-解锁模型管理数据的共享

    5,工作拷贝(Working Copy)是本地机器的一个普通的目录,是私有工作区

    6,修订版本(Revision):每当一次提交完成后,版本库的文件系统就进入了一个新的状态,叫做一次修订(Revision)。在版本库中,最新的一个修订版本称为HEAD

    7,CheckOut:从版本库中取出某个目录的拷贝到本机上某个目录的操作

    例:svn co svn://192.168.0.1/svnrepos/skizcorp/trunk

    -r 1452 会检出1452版,如果存在的话;-N:不递归(仅针对顶层目录),否则目录递归(默认,常用)

    8,Update:把版本库的修改同步到本地

    • 例1:up    直接把工作拷贝更新到最新版(HEAD版)

    • 例2:up -r 2007    更新到2007版

    • 例3:up doc/design    只更新doc/design下的文件

    9,BASE版:某个文件的BASE版本是指存放在管理目录.svn中的该文件拷贝的版本,Revert会使该文件回到BASE版本

    10,Revert,是指放弃对某个文件的修改------revert abc.c 丢弃对abc.c的所有修改

    11,当文件发生冲突时,SVN会额外创建3个不受版本控制的文件

    12,add:把一个文件加入SVN版本控制系统;delete:从版本控制系统中移除;

    move(rename):移动或者重命名;mkdir:创建目录;copy:拷贝;commit:提交;

    status:检查工作拷贝的状态;diff:检查更改的内容

    13,分支(Branch)是开发的一条"支线"。它独立于其他开发的线路,并且和其他线路并行开发

    • 所有的分支都有共同的历史,有着原先共同的主线(Trunk)

    14,创建分支使用copy命令:copy 源目录 目标目录

    • 例:先把目录checkout到本地,在本地执行copy命令后提交至版本库

    svn co svn://localhost/
    svn copy trunk/ branches/mybranch
    svn commit –m "My branch created"

    • svn copy svn://localhost/trunk svn://localhost/branches/mybranch –m "My branch"

    15,Switch操作可以使工作拷贝在不同的分支之间或者在位于不同服务器上相同的版本库的分支间切换。它的作用是改变工作拷贝对应的URL:switch [--relocate] 目标URL

    16,分支的合并是指把修改从分支拷贝到主干或者把主干的修改拷贝到分支的过程。

    • 传统方法:diff + patch(只适用于文件内容)

      • 例子:取出主干2000版到2007版的修改,然后把它应用到工作拷贝

        svn diff –r 2000:2007 svn://localhost/trunk > patchfile
         patch –p0 < patchfile

    • merge 初始版本树 最终版本树 目标(能够处理目录树的修改,而不限于单个文件内容)

    例子

    • merge svn://localhost/trunk@2000 svn://localhost/trunk@2007 my_wc

    • merge –r 2000:2007 svn://localhost/trunk my_wc

    17,tag:通常tag对应于milestone,是一个完整可用的版本,不能修改,是只读的

    branch:是trunk或tag的分支,可以修改,是可写的,用于做并行开发

     

    18,常用的SVN命令:

    命令名称

    功能

    svn add 

    往版本库中添加新的文件

    svn checkout 

    将文件checkout到本地目录

    svn cleanup 

    递归清理工作拷贝

    svn commit 

    将改动的文件提交到版本库

    svn copy 

    拷贝文件

    svn delete 

    删除文件

    svn diff 

    比较差异

    svn export 

    导出目录树

    svn import 

    导入目录树

    svn info 

    打印作者、时间戳、日志信息大小和日志信息

    svn list 

    版本库下的文件和目录列表

    svn lock 

    文件加锁

    svn log 

    查看日志

    svn merge 

    将两个版本之间的差异合并到当前文件

    svn mkdir 

    创建纳入版本控制下的新目录

    svn move 

    移动一个文件或目录

    svn resolved 

    移除工作副本的目录或文件的"冲突"状态

    svn revert 

    恢复本地修改

    svn status 

    查看文件或者目录状态

    svn switch 

    代码库URL变更

    svn unlock 

    文件解锁

    svn update

    更新到某个版本

     

     

    第8章

    1,两种版本控制模型

    • Lock-Modify-Unlock Model (加锁-修改-解锁):CVS,SVN,VSS2005

    • Copy-Modify-Merge Model (拷贝-修改-合并):VSS6.0,PCVS

    2,基于"拷贝—修改—合并"的并发控制

    • 客户端check out后,有文件的一份独立拷贝。

    • 开发者在自己的工作目录中修改文件。

    • 若有版本冲突,则使用合并(merge)功能与其它开发者的修改合并,然后提交(check in)。

     

    第6章

    1,常用的配置管理工具:Visual SourceSafe(VSS); CVS; Subversion(SVN); Borland StarTeam; IBM Rational ClearCase & ClearQuest; Hansky Firefly

    ClearCase,Firefly支持异地开发,与开发工具的集成非常好,价格昂贵

    VSS仅支持windows,其他支持常见平台,与vs无缝集成,与其他开发工具集成性差

    2,软件配置管理工具的主要功能:

    版本控制;变更管理;配置审核(配置审计)

    配置状态统计(查询和报告);问题跟踪(跟踪缺陷和变更);访问控制和安全控制

    3,ClearCase主要应用于复杂产品的并行开发、发布和维护,其功能划分为四个范畴:版本控制(Version Control)、工作空间管理(Workspace Management)、构造管理(Build Management)、过程控制(Process Control)。

    4,ClearCase把所有版本控制的数据存放在一个永久、安全的存储区中,这个存储区被称为版本对象类(Version Object Bases)

    A VIEW selects versions of elements

    What is seen is the result of an ordered set of rules called a configuration specification (config spec).

    Selected versions appear in a standard directory tree with recognizable file names.

    View分为SnapShot View和Dynamic View,Snapshot view是ClearCase在服务器上存储的文件和目录的一个本地镜像,Dynamic View是动态试图,它并不在本地存储任何文件,始终和服务器保持一致。

    1. 软件配置管理工具选择:功能;是否符合团队特点?性能;费用是;售后服务;易用性

     

     

     

    序号

    活动名称

    角色

    活动描述

    参考

    • 计划配置管理

    配置管理经理

    CCB

    • 制定配置管理策略
    • 制定变更控制策略
    • 编写配置管理计划
    • 评审配置管理计划

     

    《配置管理计划》模板

     

    • 创建配置管理环境

    配置管理经理

    • 设置硬件环境
    • 设置网络环境
    • 设置软件环境

      建立一个配置管理库,储存项目中定义的配置项;安装配置管理工具,例如: VSS等。

    • 提供配置管理培训

     

    《VSS使用手册》

    《组织管理配置库使用指南》

    • 配置项的标识

    配置管理经理

    • 对文档类的配置项进行的标识,参见附录B
    • 对程序(coding、模型)的配置项进行标识

    《软件开发文档命名约定》

    • 建立基线

    配置管理经理

    集成员

    • 标识基线:根据配置管理计划,对经过测试或者评审通过的工件进行标识。
    • 审批基线:CCB负责召开会议,评审配置管理经理建立的基线。
    • 发布基线:将建立的基线向相关人员发布。

    《配置管理计划模板》

     

    《基线策略指南》

    • 报告配置状态

    配置管理经理

    根据配置管理计划,收集配置活动数据, 编写配置状态报告。

     

    《配置状态报告》模板

    • 执行配置审计

    配置管理经理

    • 根据配置管理计划定期地执行配置审计,它包括:
      物理审计
      功能审计
    • 编写配置审计报告

     

    《配置审计报告》模板

    • 变更控制管理

    CCB

    任意角色

    • 参见《变更控制规范》

    《文档变更请求》

    展开全文
  • 测试从零开始-No.9-软件配置管理介绍

    万次阅读 多人点赞 2021-09-05 23:10:05
    配置管理的概念 配置管理是通过对在软件生命周期的不同的时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可溯性的过程。 配置项 配置项是一组软件...

    配置管理的概念

    配置管理是通过对在软件生命周期的不同的时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可溯性的过程。 

    配置项

    配置项是一组软件功能或者物理属性的组合,在配置管理过程中,配置项被作为一个单一的实体对待。一个系统包括的配置项的数目是一个与设计密切相关的问题。

    配置项分类

    常见的配置项分类如下:

    • 合同类文档:建议书、用户意向书、用户需求、工作任务书、合同等

    • 计划类文档:包括各类项目相关计划,比如项目过程手册,项目计划,配置管理计划等。

    • 工程类文档:包括需求规格文档、测试计划、测试用例等设计文档等

    • 程序代码:所有开发的源代码,包括各类支持数据,二进制文件

    • 第三方程序代码:有供应商提供的源代码,并接受供应商的维护

    • 工具:支持软件开发、简历、维护的工具管理,比如语言开发工具,编译工具,测试工具,配置管理工具等。

    • 用户文档:包括用户手册,安装指南等

    • 运行环境:包含系统运行环境的相关内容,比如系统运行平台,环境设置要求等。

    基线的概念

    在配置管理系统中,基线就是配置项在其生命周期的不同时间点上通过评审而进入正式受控的一种状态,而这个过程被称为“基线化”。每一个基线都是其下一步开发的基准。基线具有以下属性: 

    1、通过正式的评审过程建立。 

    2、基线存在于配置库中,基线的变更由变更控制委员会(CCB-Change Control Board)控制。 

    3、基线是进一步开发和修改的基准。 

    版本的概念

    版本是表示一个配置项具有一组定义的功能的一种标识。随着功能的增加,修改或删除,配置项的版本随之演变。版本以版本号进行标识。 

    版本的命名

    以我之前接触到的华为的版本命名规范简单介绍一下,当然这个不是一个统一的标准,仅供参考。我记得当时所在的部门好像是采用VxxxRxxxCxxxBxxx的格式去命名版本号。

    图片

    配置管理角色介绍

    •  项目经理(PM)

    •  配置管理员(CMO)

    •  软件开发工程师(SDE)

    •  软件测试工程师(STE)

    •  质量保证人员(QA)

    •  变更控制委员会(CCB)

    这里的话,主要介绍一下这个CMO和CCB。

        CMO的话,可以理解为跟部分运维的工作有点类似,亦或者说是跟CI工程师的工作也有类似的地方,他们主要在公司负责给分配一些配置仓库的权限,代码发布流程中相关文档的归档等。比如每次提交发版申请的时候,就需要附带上部署包和对应的部署文档,测试报告等,归档到某个目录,一旦提交申请,开发人员就没有权限再对目录中的内容进行修改。

        相信大家在日常工作中,经常遇到过项目做到一半,需求发生变更了,导致项目延期。在小公司,一套标准的流程是很难执行下来的。很多时候往往考虑到时间成本、人力成本等,都没有采用标准的流程。但是,久而久之,也会暴露出很多因为流程不规范而引发的问题。CCB的成立,主要用来评估项目过程中的变更及范围和影响的评估。

        在项目开始时,由项目负责人根据项目的情况确定CCB,也可以根据更改请求的情况事件驱动地召集CCB会议。如有必要,可以设立不同级别的CCB,他们具有不同的授权,对不同层次的变更申请进行控制。根据修改的影响范围,CCB召开相应的评估会议,并邀请相关人员参加。一般项目里面有需求变更,肯定会有知会大家,项目级别的CCB设立可能比较少,更多的可能是QA团队的人在公司层面整体设立CCB小组,跟进各项目过程质量。

    基线变更流程

    图片

    为什么要了解这些配置相关的东西呢?

    作为一个测试人员,尤其是作为一个刚接触这行,甚至可能还没入行的人员,除了对测试的岗位和职责划分要清楚之外,还需要了解公司的岗位划分,项目的流程等信息,对其他岗位的大致职责也要有一个简单的了解,这些岗位都有可能是你在入职之后的工作中有可能需要去打交道的,要避免到时候别人一跟你说找哪个哪个岗位的人,然后你听着一脸懵逼。初学者在求职的时候,容易被刷掉的一个点主要也是在于项目细节,通过很多旁敲侧击的提问,就可以了解到你到项目的熟悉程度,有没有真的参与过项目的测试工作。

    展开全文
  • Nacos配置管理

    千次阅读 2021-03-10 17:19:10
    Nacos配置管理 什么是配置 我们应用程序在运行过程中需要读取一切配置信息,这些信息会伴随程序的整个生命周期。例如:数据库的配置 什么是配置中心 随着微服务的兴起,配置文件也随之增加并且分散冗余,配置中心...

    Nacos配置管理

    什么是配置

    我们应用程序在运行过程中需要读取一切配置信息,这些信息会伴随程序的整个生命周期。例如:数据库的配置

    什么是配置中心

    随着微服务的兴起,配置文件也随之增加并且分散冗余,配置中心就是将配置文件从应用中剥离出来进行统一的管理,不需要我们的服务自己去管理配置。
    在这里插入图片描述

    配置中心流程
    1. 用户在配置中心更新配置信息。
    2. 服务A和服务B得到配置更新的通知,从配置中心获取配置。

    Nacos介绍

    主流配置中心对比

    目前市面上用的比较多的配置中心有:Spring Cloud Config、Apollo(携程)和Nacos(阿里)等。

    对比项目Spring Could ConfiApolloNacos
    配置实时推送支持(Spring Cloud Bus)支持(HTTP长轮询1s内)支持(HTTP长轮询1s内)
    版本管理支持(Git)支持支持
    配置回滚支持(Git)支持支持
    灰度发布支持支持不支持
    权限管理支持(依赖Git)支持不支持
    多集群支持支持支持
    多环境支持支持支持
    监听查询支持支持支持
    多语言只支持Java主流语言,提供了Open API主流语言,提供了Open API
    配置格式校验不支持支持支持
    单机读(QPS)7(限流所致)900015000
    单击写(QPS)5(限流所致)11001800
    3节点读 (QPS)21(限流所致)2700045000
    3节点写 (QPS)5(限流所致)33005600
    1. 从配置中心角度来看,性能方面Nacos的读写性能最高,Apollo次之,Spring Cloud Config依赖Git场景不适合开 放的大规模自动化运维API。
    2. 功能方面Apollo最为完善,nacos具有Apollo大部分配置管理功能,而Spring Cloud Config不带运维管理界面,需要自行开发。Nacos的一大优势是整合了注册中心、配置中心功能,部署和操作相比 Apollo都要直观简单,因此它简化了架构复杂度,并减轻运维及部署工作。
    Nacos简介

    Nacos是由阿里开发的开源产品,具有服务注册发现、治理和配置管理的功能。

    下面为官方简介

    欢迎来到 Nacos 的世界!

    Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

    Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

    更多了解Nacos官网:https://nacos.io/zh-cn/docs/what-is-nacos.html

    Nacos安装

    下载地址:

    https://github.com/alibaba/nacos/releases

    下载后解压:
    unzip nacos‐server‐$version.zip 或者 tar ‐xvf nacos‐server‐$version.tar.gz
    
    启动
    • windows启动

      • 启动命令:

        • cmd startup.cmd 
          
      • 进入安装目录中的bin目录,双击startup.cmd运行文件。

    • Linux/Unix/Mac启动

      • 启动命令(standalone代表着单机模式运行,非集群模式):

        • sh startup.sh -m standalone
          
      • 如果是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

        • bash startup.sh -m standalone
          

    启动成功,可通过浏览器访问 http://127.0.0.1:8848/nacos/index.html ,打开如下nacos控制台登录页面,默认的用户名密码为:nacos / nacos

    登陆成功页面如下:
    在这里插入图片描述

    关闭
    • Windows方式:

      • cmd shutdown.cmd 
        
      • 双击shutdown.cmd运行文件。

    • Linux/Unix/Mac方式:

      • sh shutdown.sh
        

    OPEN API 配置管理测试

    发布配置
    curl -X POST "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test&content=HelloWorld"
    
    获取配置
    curl -X GET "http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=nacos.cfg.dataId&group=test"
    

    Nacos配置入门

    发布配置
    1. 在nacos控制台点击菜单的配置管理中的配置列表中添加

      1. 在这里插入图片描述
    2. 新建配置,配置如下:

      1. 在这里插入图片描述

      2. spring:
            server: 8080
        
    3. 配置成功

      1. 在这里插入图片描述
      2. 在这里插入图片描述
      Nacos客户端获取配置
      1. 新建一个项目,并且引入nacos客户端的坐标

        <!-- https://mvnrepository.com/artifact/com.alibaba.nacos/nacos-client -->
                <dependency>
                    <groupId>com.alibaba.nacos</groupId>
                    <artifactId>nacos-client</artifactId>
                    <version>1.1.4</version>
                </dependency>
        
      2. 获取配置,这里以main方法作为示例

        package com.ag.demo;
        
        import com.alibaba.nacos.api.NacosFactory;
        import com.alibaba.nacos.api.config.ConfigService;
        import com.alibaba.nacos.api.exception.NacosException;
        
        import java.util.Properties;
        
        public class SimpleDemoMain {
        
            public static void main(String[] args) throws NacosException {
                // 使用nacos client获取远程nacos服务器上的配置信息
                // 地址
                String serverAddr = "127.0.0.1:8848";
                // dataId
                String dataId = "nacos.yum";
                // groupId
                String groupId = "DEFAULT_GROUP";
                Properties properties = new Properties();
                properties.put("serverAddr", serverAddr);
                // nacos工厂获取配置
                ConfigService configService = NacosFactory.createConfigService(properties);
                // dataId, groupId, 超时时间
                String config = configService.getConfig(dataId, groupId, 5000);
                System.out.println(config);
            }
        }
        
      3. 运行获取结果:

        spring:
            server: 8080
        

    Nacos配置管理

    Nacos配置管理模型

    在Nacos中它能通过namespace、group、dataId定位一个配置集
    在这里插入图片描述

    1. 配置集(dataId)
      • 一个配置文件通常可以看作一个配置集。
    2. 配置项
      • 配置文件中的配置称为配置项
    3. 配置组(groupId)
      • 配置组就是对配置进行分组。如果配有填写配置分组,则默认为用 DEFAULT_GROUP。配置分组一般是用于区分项目,如:电商项目,旅游项目等。
    4. 命名空间(nameSpace)
      • 命名空间对不同的环境配置进行区分,一般会分为:开发环境、测试环境、生产环境

    命名控件管理

    命名空间简介

    命名空间用于隔离多个环境,如:开发、测试、生产,对每个环境进行隔离。

    新建命名空间

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    如果没有指定命名空间,那会会使用默认的命名空间public

    获取指定命名空间的配置
    public static void main(String[] args) throws NacosException {
            // 使用nacos client获取远程nacos服务器上的配置信息
            // 地址
            String serverAddr = "127.0.0.1:8848";
            // namespace 的 id
            String namespace = "6e7c3762-3bd7-44b6-aee9-4db3fb0fc9a9";
            // dataId
            String dataId = "nacos.yum";
            // groupId
            String groupId = "DEFAULT_GROUP";
            Properties properties = new Properties();
            properties.put("serverAddr", serverAddr);
            properties.put("namespace", namespace);
            // nacos工厂获取配置
            ConfigService configService = NacosFactory.createConfigService(properties);
            // dataId, groupId, 超时时间
            String config = configService.getConfig(dataId, groupId, 5000);
            System.out.println(config);
        }
    

    配置管理

    Nacos支持namespace和group的配置分组管理,一边我们更灵活的选择适合自己的应用和环境,在配置管理中提供了配置历史版本、回滚、订阅者查询等核心管理能力。

    配置监听
    public static void main(String[] args) throws NacosException, InterruptedException {
            // 使用nacos client获取远程nacos服务器上的配置信息
            // 地址
            String serverAddr = "127.0.0.1:8848";
            // namespace 的 id
            String namespace = "6e7c3762-3bd7-44b6-aee9-4db3fb0fc9a9";
            // dataId
            String dataId = "nacos.yum";
            // groupId
            String groupId = "DEFAULT_GROUP";
            Properties properties = new Properties();
            properties.put("serverAddr", serverAddr);
            properties.put("namespace", namespace);
            // nacos工厂获取配置
            ConfigService configService = NacosFactory.createConfigService(properties);
            // dataId, groupId, 超时时间
            final String config = configService.getConfig(dataId, groupId, 5000);
            System.out.println(config);
            // String dataId, String group, Listener listener
            configService.addListener(dataId, groupId, new Listener() {
                public Executor getExecutor() {
                    return null;
                }
                // 当配置文件有变化的时候,进行通知
                public void receiveConfigInfo(String configInfo) {
                    System.out.println(configInfo);
                }
            });
    
    
            // 强行不让程序结束
            while (true) {
                Thread.sleep(2000);
            }
        }
    

    Nacos配置管理应用于分布式系统

    分布式应用配置管理

    在这里插入图片描述

    • 用户通过Nacos server的控制台集中对多个服务的配置进行管理
    • 各个服务从Nacos server中获取各自的配置,并且监听配置的变化
    动态更新配置

    可以通过配置spring.cloud.nacos.config.refresh.enabled=false来关闭动态刷新

    自定义namespace配置

    在没有指定namespace的配置下,默认使用的是Nacos上public这个namespace。如果需要使用自定义的命名空间,可以通过一下的配置

    spring:
    	cloud:
    		nacos:
    			config:
    				namespace: b3404bc0‐d7dc‐4855‐b519‐570ed34b62d7
    

    注意:

    1. 该配置必须放在bootstrap.yml文件中,。
    2. 我们使用的是namespace的id值,对应的id值可以通过Nacos控制台进行获取。
    自定义GroupId配置

    再没有指定dataId的配置下,默认使用的是DEFAULT_GROUP。如果需要使用自定义的group,可以通过以下的配置

    spring:
    	cloud:
    		nacos:
    		config:
    			group: DEVELOP_GROUP
    

    注意:

    1. 该配置也要放到bootstrap.yml文件中。
    2. 增加配置时Group的值一定要和spring.cloud.nacos.config.group配置的值一样。
    自定义DataId

    Spring Cloud Alibaba Nacos Config可支持自定义 Data Id 的配置。

    示例如下:

    spring:
    	application:
    		name: service2
    	cloud:
    		nacos:
    			config:
    				server‐addr: 127.0.0.1:8848
    # config external configuration
    # 1、Data Id 在默认的组 DEFAULT_GROUP,不支持配置的动态刷新
    				ext‐config[0]:
    					data‐id: nacos-test-config1.yml
    # 2、Data Id 不在默认的组,不支持动态刷新
    				ext‐config[1]:
    					data‐id: nacos-test-config2.yml
    					group: TEST_GROUP
    # 3、Data Id 既不在默认的组,也支持动态刷新
    				ext‐config[2]:
    					data‐id: nacos-test-config3.yml
    					group: DEV_GROUP
    					refresh: true
    

    通过测试得出以下结果:

    1. spring.cloud.nacos.config.ext-config[n].data-id可以获取多个DataId的配置。
    2. spring.cloud.nacos.config.ext-config[n].group可以获取自定义DataId所在的组,如果不明确,默认使用DEFAULT_GROUP。
    3. spring.cloud.nacos.config.ext-config[n].refresh的配置是用来动态刷新对应的DataId 的配置。
    自定义共享DataId配置

    多个服务可以共享DataId的配置,也可以如下配置

    spring:
    	cloud:
    		nacos:
    			config:
    				shared‐dataids: nacos-test-config1.yml,nacos-test-config2.yml
    					refreshable‐dataids: nacos-test-config3.yml	
    

    说明:

    1. spring.cloud.nacos.config.shared-dataids来共享DataId的配置,多个逗号之间隔开。
    2. spring.cloud.nacos.config.refreshable-dataids支持DataId的配置发生变化的时候,进行配置的动态刷新。

    注意:

    1. spring.cloud.nacos.config.shared-dataids配置多个DataId的时候,是有一个优先级的,按照配置出现的先后顺序,也就是说后面的优先级要高于前面。
    2. spring.cloud.nacos.config.shared-dataids进行配置时,DataId必须带有文件的扩展名,既可以是properties也可以是yml/yaml。
    3. spring.cloud.nacos.config.refreshable-dataids这个配置也是需要DataId带有文件扩展名的。
    4. 共享DataId的配置相比扩展的 DataId 配置,它把group固定为DEFAULT_GROUP,建议使用扩展的 DataId 配置,因为扩展的 Data Id 配置也可以实现共享DataId配置。
    配置的优先级

    Nacos目前提供了三种获取配置的方式

    1. spring.cloud.nacos.config.shared-dataids获取多个共享配置
    2. spring.cloud.nacos.config.ext-config[n].data-id通过配置多个config[n]来拉去多个配置
    3. 通过内部相关规则(应用名、扩展名 )获取对应 DataId的配置

    注意:

    ​ 当三者共存的时候,优先级关系为3 > 2 > 1

    完全能关闭配置

    通过以下配置来关闭获取配置

    spring:
    	cloud:
    		nacos:
    			config:
    				enabled: false
    

    Nacos集群配置

    集群部署

    注意:

    ​ 必须3个或者3个以上的节点才能构成集群(选举机制,高可用的效果。)

    步骤:

    1. 安装3个nacos

    2. 将所有nacos安装文件夹中的conf目录下的cluster.conf.example文件名,改为cluster.conf并且进行配置

      # ip:port
      127.0.0.1:8848
      127.0.0.1:8849
      127.0.0.1:8850
      
    3. 以集群的模式进行启动

      startup ‐m cluster
      
    4. 启动完成后可以到Nacos控制台中节点列表中查看

    项目配置
    spring:
    	application:
    		name: xxxx
    	cloud:
    		nacos:
    			config:
    				server‐addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
    

    ​ 必须3个或者3个以上的节点才能构成集群(选举机制,高可用的效果。)

    步骤:

    1. 安装3个nacos

    2. 将所有nacos安装文件夹中的conf目录下的cluster.conf.example文件名,改为cluster.conf并且进行配置

      # ip:port
      127.0.0.1:8848
      127.0.0.1:8849
      127.0.0.1:8850
      
    3. 以集群的模式进行启动

      startup ‐m cluster
      
    4. 启动完成后可以到Nacos控制台中节点列表中查看

    项目配置
    spring:
    	application:
    		name: xxxx
    	cloud:
    		nacos:
    			config:
    				server‐addr: 127.0.0.1:8848,127.0.0.1:8849,127.0.0.1:8850
    
    展开全文
  • 如何使用SQL Server配置管理

    千次阅读 2020-07-24 09:51:50
    SQL Server configuration manager is a tool provided by Microsoft SQL Server. When we install SQL Server, it is installed automatically. It is used for the following ... SQL Server配置管理器是Mic...
  • 未雨绸缪——理解软件配置管理(第2版) 也就是2012年的最新版..文字非扫描版,非常清晰,适合大家在手机上, Pad上面阅读. 对于需要考<项目管理师>中, 高级的朋友阅看.
  • 配置管理-学习笔记

    万次阅读 多人点赞 2018-11-06 10:47:06
    配置管理 配置管理是描述、跟踪、控制和汇报所有IT基础架构中所有设备或系统的管理流程。这些设备和系统被称为配置项,通过该管理流程实现对所有配置项的有效管理、跟踪和控制,以支持IT服务和基础设施成功运行。 ...
  • 关于配置管理系统和配置管理项:  配置管理系统的定义是  整个项目管理系统的一个子系统。它由一系列正式的书面程序组成,用于对以下工作提供技术和管理方面的指导与监督:识别并记录产品、成果、服务或部件的...
  • 16个最佳软件配置管理工具

    千次阅读 2019-11-09 09:04:10
    配置管理(CM)是一种系统工程方法,用于在产品的整个生命周期内建立和维持产品的性能,功能和物理属性与其设计,要求和操作信息的一致性。它们为您的组织带来了成本效益和更好的时间管理。 当今市场上充斥着各种...
  • 第七章 软件配置管理

    万次阅读 多人点赞 2018-07-02 14:41:56
    本章内容提要软件配置管理的作用软件配置管理的相关概念建立软件配置管理环境版本控制系统集成分支管理变更管理配置审计和配置状态报告配置管理过程软件配置管理工具第一节 软件配置管理的作用星形网拓扑结构不同...
  • java微服务Nacos配置管理

    万次阅读 2019-07-11 11:13:37
    介绍Nacos配置管理 Nacos 提供了动态配置服务,能让我们可以实时进行服务应用的配置变更,让配置管理变得更加高效和快捷。它基于 key/value 方式存储应用配置和其他元数据信息,为分布式系统中的外部化配置提供...
  • 如何打开sql server配置管理

    千次阅读 2021-10-01 09:08:31
    如何打开sql server配置管理
  • 配置管理的主要活动

    千次阅读 2019-09-18 05:23:35
    配置管理的主要活动 配置管理的主要活动有12个: 一、配置管理计划 配置管理的目标和范围 与特定的支持小组相关的政策,标准和程序 配置管理角色和责任安排 配置项命名规则 实施配置管理活动的日程安排和程序 与第...
  • SQLServer找不到配置管理器,如何打开配置管理

    万次阅读 多人点赞 2020-01-20 10:58:23
    下面来介绍一下通过windows命令来打开SQLSERVER配置管理器。 首先:windows键+R键 各个sqlserver版本在textbox中输入对应的命令如下: SQLServerManager13.msc(对于 SQL Server 2016 ) SQLServerManager12.ms...
  • SQL 配置管理器 MMC无法创建管理单元

    千次阅读 热门讨论 2021-04-17 17:26:01
    SQL 配置管理器提示错误: MMC无法创建管理单元。 MMC无法创建管理单元,此管理单元可能没有正确安装。      近期用到SQL的“配置管理”,但是打开“配置管理”提示如下错误:MMC无法创建管理...
  • 华为配置telnet登录,以及简单的划分vlan
  • 基于zookeeper实现统一配置管理

    万次阅读 多人点赞 2017-12-07 16:47:19
    为什么要用统一配置? 我们做项目时用到的配置比如数据库配置等...我们都是写死在项目里面,如果需要更改,那么也是的修改配置文件然后再投产上去,那么问题来了,如果做集群的呢,有...那么就需要用到统一配置管理啦。
  • [项目管理]-第十章:配置管理

    千次阅读 2019-05-24 15:36:54
    第十章:配置管理(PPT.279) 1.配置管理的概念(PPT.281) 概念:是项目管理的一项内容,主要涉及对变更进行系统地控制,建立和维护在项目的 整个软件生存周期中软件项目产品的完整性。 主要包括: 1)标识在...
  • SpringCloud Config (配置管理)

    万次阅读 2021-08-12 23:22:46
    1 ...Spring Cloud Config 可以为微服务架构中的应用提供集中化的外部配置支持,它分为服务端和客户端两个部分,本文将对其用法进行详细介绍。 2 3 4 5 6 7 8 9
  • 华为交换机中配置管理IP

    千次阅读 2021-01-05 19:22:03
    1、配置IP和掩码 <HUAWEI(guangkou-48)>system-view [HUAWEI(guangkou-48)]interface Meth 0/0/1 # 这里需要根据实际情况配置,有可能是0/0/0 [HUAWEI(guangkou-48)-MEth0/0/1]ip address 192.168.2.250 255...
  • 项目管理中的配置管理

    万次阅读 2017-11-05 23:07:59
    配置管理的目标:为了系统地控制配置变更,在系统的整个生命周期中维持配置的完整性和可跟踪性,标识系统在不同时间点上的配置。配置管理的主要活动:制定配置管理计划、配置标识、配置控制、配置状态报告、配置审计...
  • VisualStudio2017,配置管理器,平台

    千次阅读 2020-05-17 22:44:37
    之前虽然与配置管理器天天相见,却是无缘对面不相识,惭愧!今天就来了解一下。 如果想要多了解一些x86,x64,Win32的信息,可见前一篇文章VisualStudio,配置管理器,目标平台,x86,x64,win32 简介。 以下...
  • 关于怎样查找sql配置管理器,网上有很多,可以先去搜一下是自己找不到还是根本没下载。 如果没下载的话,看看这篇文章,不用麻烦地重装sql server 找到setup.exe文件 在当初安装完sql server后地一堆文件夹里面翻...
  • 配置管理之三类配置库

    万次阅读 2018-02-22 15:19:13
    1 三库管理原则项目配置管理的库分为开发库、受控库、产品库。这三个库是相互独立的物理库,其中受控库在逻辑上分为配置库和基线库。1.1 开发库存放代码、脚本等开发过程中的产物。由开发人员使用。只有开发人员可...
  • 大家好,我是码弟,Spring Cloud Config:外部集中化配置管理
  • 今天给两台曙光服务器重装系统,但是发现曙光服务器自带的管理口没有配置默认配置IP,需要进到BIOS中先配置管理IP,再通过管理口管理服务器。 这篇文章记录了如何配置管理口IP。 配置管理口IP 1、开机,进入页面。 ...
  • 开启服务器以后等待按del,进入bios选择第五项Server Mgmt界面选择BMC Network Configuration,回车 选择BMC IPv4 Network Configuration 回车...接下来配置BMC Sharelink Management Channel 的IP ,子网掩码 ,网关
  • SQLserver2019找不到配置管理工具解决办法 右击此电脑->管理
  • 配置管理的目标和主要活动

    千次阅读 2017-10-15 21:08:39
    配置管理的目标 为了在系统地控制配置变更,在系统的整个生命周期中维护配置的完整性和可跟踪性,而标识系统在不同的时间点上的配置 。 配置管理的主要活动 制定配置管理计划 配置识别 配置控制 配置状态报告 配置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,286,993
精华内容 1,314,797
关键字:

配置管理