系统配置管理系列之一:配置信息及其形式
2011-09-15 21:57
330 查看
配置管理通常是指软件配置管理(SCM)。这个系列文章中讨论的配置管理是指软件系统中配置信息的管理。因为没有见过比较正规的定义,为了和软件配置管理区分开,我将其命名为系统配置管理。配置信息的管理,作为系统管理的一部分,是SaaS系统日常运维工作的重要组成部分。
这个系列文章用来探讨软件开发和运维中系统配置管理的相关问题和技术。作为第一篇,本文简单介绍配置信息的定义,作用和常见的形式。
配置信息的定义和作用
为了明确探讨的目标,本文将配置信息定义为软件系统中运维人员或用户可以直接或间接修改的并能改变系统行为的信息。这个定义强调了配置信息的几个特点:
配置信息是运维人员或用户可以修改的。这其实也说明了配置信息是可以在系统交付后(部署和运行时)由非开发人员修改的。
配置信息是直接或间接修改的。直接修改是指对系统明确定义的配置项的值的修改,而间接修改则是指对系统所依赖的环境的修改。例如,修改配置文件可以看作是直接修改,而修改主机的IP地址对于运行其上的应用程序则可能是间接修改。
配置信息是用来改变系统行为的。这是软件开发中使软件能适应不同的环境和目的,实现可定制化的一种方法。从这种角度看,配置信息也是一种代码,它是可以由用户编写并由读取的软件进行解释执行的。
ini文件
xml文件
java propertities文件
json文件
yaml文件
这里不深入到各种文件的格式,网上可以搜到。它们的共同点是它们都定义了一种结构化的文件结构,方便人和代码容易地定位到特定的配置值。以相对复杂的xml为例,在以下xml文件中,
使用XPath串 /bookstore/book[1]/title/text()就可以定位第一本书的标题。
除了这些常见的配置文件格式,还有一些其他的配置文件格式。其实任何格式的文件都可以做配置文件,只要它的内容是可以修改且程序可读的。曾经在一个项目见过这样一个bat(批处理)文件(伪代码):
下一篇将介绍各种不同的配置形式在程序存取,软件部署安装,用户修改和程序及时
4000
更新等方面的不同。
这个系列文章用来探讨软件开发和运维中系统配置管理的相关问题和技术。作为第一篇,本文简单介绍配置信息的定义,作用和常见的形式。
配置信息的定义和作用
为了明确探讨的目标,本文将配置信息定义为软件系统中运维人员或用户可以直接或间接修改的并能改变系统行为的信息。这个定义强调了配置信息的几个特点:
配置信息是运维人员或用户可以修改的。这其实也说明了配置信息是可以在系统交付后(部署和运行时)由非开发人员修改的。
配置信息是直接或间接修改的。直接修改是指对系统明确定义的配置项的值的修改,而间接修改则是指对系统所依赖的环境的修改。例如,修改配置文件可以看作是直接修改,而修改主机的IP地址对于运行其上的应用程序则可能是间接修改。
配置信息是用来改变系统行为的。这是软件开发中使软件能适应不同的环境和目的,实现可定制化的一种方法。从这种角度看,配置信息也是一种代码,它是可以由用户编写并由读取的软件进行解释执行的。
配置信息的常见形式
根据以上的定义,几乎所有用户能修改并改变软件系统的行为的,都可以看作是配置信息。现将目前能看到的常见的配置的形式列举如下:命令行参数
如果软件或组件的启动命令行参数是用户可以控制的,那就可以认为这些命令行参数是该系统的配置信息。而如果启动参数只是在其他组件调用时指定的,而不是由用户直接指定的,则可以不看作是配置信息。环境变量
环境变量是操作系统提供的标准的配置方法,它可以用来配置任何能用有限长度字符串表示的配置值。配置文件
配置文件是最常见的配置方式之一。常见的配置文件的格式有:ini文件
xml文件
java propertities文件
json文件
yaml文件
这里不深入到各种文件的格式,网上可以搜到。它们的共同点是它们都定义了一种结构化的文件结构,方便人和代码容易地定位到特定的配置值。以相对复杂的xml为例,在以下xml文件中,
<?xml version="1.0" encoding="ISO-8859-1"?> <bookstore> <book category="COOKING"> <title lang="en">Everyday Italian</title> <author>Giada De Laurentiis</author> <year>2005</year> <price>30.00</price> </book> <book category="CHILDREN"> <title lang="en">Harry Potter</title> <author>J K. Rowling</author> <year>2005</year> <price>29.99</price> </book> </bookstore>
使用XPath串 /bookstore/book[1]/title/text()就可以定位第一本书的标题。
除了这些常见的配置文件格式,还有一些其他的配置文件格式。其实任何格式的文件都可以做配置文件,只要它的内容是可以修改且程序可读的。曾经在一个项目见过这样一个bat(批处理)文件(伪代码):
... SET USER=__USERNAME__ startservice %USER% ...
在软件安装时,安装脚本会用安装向导中输入的用户名的值替换__USERNAME__。虽然这种做法是不可取的,但没有什么能阻止程序员这样做。在早期的软件中还经常会出现二进制的配置文件,这些文件通常都配有配置UI来更改值,而不是让用户直接编辑文件。
数据库
数据库作为一种数据存取技术,用来保存配置信息可以方便程序对配置信息的存取。Windows的注册表可以看作是配置数据库的代表。使用数据库存取配置信息通常需要配置UI方便用户更改配置值,而不是让用户直接修改数据库。在分布式系统中,集中的数据库可以实现配置信息的集中管理,能简化管理工作。配置服务器
配置服务器用于分布式系统中,为系统中的节点提供配置信息的集中存取服务。DHCP服务器可以看作是一种配置服务器。当网络中的机器启动时,会向DHCP服务器请求IP相关的配置。配置服务器与配置数据库的一个重要不同是配置服务器可以主动向各节点推送配置信息的变化。下一篇将介绍各种不同的配置形式在程序存取,软件部署安装,用户修改和程序及时
4000
更新等方面的不同。
相关文章推荐
- ThinkPHP内容管理系统开发日记(四)-- 配置信息与开发Longin模块以及模板
- MySQL数据库管理系统系列之安装配置
- 配置实现-提升信息管理系统开发效率
- 学生信息管理系统系列博客二
- 解读ASP.NET 5 & MVC6系列(5):Configuration配置信息管理
- 信息管理系统/记录管理系统/配置管理系统
- 自动化运维Saltstack系列(六)之配置管理系统模块
- 【Linux_Fedora_系统管理系列】_1_用户登录和系统初始配置
- 学生信息管理系统之——为什么要配置数据源及SQL Server 2012 ODBC 的配置
- 学生信息管理系统系列二:常见问题
- 学生信息管理系统系列博客七
- Winform开发框架之客户关系管理系统(CRM)的开发总结系列3-客户分类和配置管理实现
- 学生信息管理系统——ODBC连接和SQL配置连接
- 系统配置管理系列之二:配置方式的选择
- PreferenceActivity对系统进行信息配置和管理
- C# .NET 可灵活配置登录窗体、主窗体的快速信息管理系统开发架构参考
- 学生信息管理系统系列三:验收时的改进
- 学生信息管理系统---信息查询窗口无法查询到数据(问题及其解决办法)
- C# .NET 可灵活配置登录窗体、主窗体的快速信息管理系统开发架构参考
- 学生信息管理系统配置感触