关于低成本信息系统组建的思考

2016 年 06 月 16 日

把自己放在老板的位置上就可以发现,到处都是花钱的地方。虽然信息系统对于公司来说是很重要的基础设施,但公司初期是否可以以尽量低的成本来构建一个灵活可扩展的信息系统,是一个值得讨论的问题。

信息系统的定义在wiki或百度百科上均有,不再赘述。对于公司来说,信息系统应该是帮助公司管理和利用自身的信息的工具。通常来说,公司的业务各不相同,因此信息系统也就各不相同,但通常都是包括硬件、软件以及外部服务。

硬件部分

信息系统的硬件部分是以计算机为基础的。计算机能提供的能力包括:计算/存储/通信。虽然各种计算机都拥有这些能力,但不同类型的计算机在这些能力方面的强弱不同,比如NAS擅长存储,工作站擅长计算等等。另外,围绕着这些计算机系统,需要一些辅助的硬件设备或服务来保障其正常工作,比如UPS做断电保护,Internet接入保证其互联网通信等等。另外,业务相关的信息系统也可能需要特制的硬件,例如收费的便携POS机等等。根据公司对计算/存储/通信需求的不同,硬件上可能侧重点不同。比如需要大量运算的公司需要提供高性能的服务器,而一般公司只需要低功耗的服务器可能就能满足需求。再比如数据存储以PB为单位的需要分布式存储来解决数据访问速度与安全性的问题,而一般公司只需要简单的RAID1组建TB级数据存储服务即可。

外部服务

理论上,除了基础的电力系统,信息系统是可以不需要其他外部服务的。不过现在由于互联网的存在,人们习惯了随时随地获取信息,因此信息系统通常需要互联网接入服务,以及由此产生的一系列其他互联网相关服务,如域名等。

软件部分

所有的硬件和外部服务,都是软件正常运作的基础。硬件和外部服务都可以简单的替换,因此信息系统本质上就只是软件和数据的集合。数据是独一无二的,软件配合数据存在。对于公开的数据格式,配合的软件可能可以替换;对于私有的数据格式,只有特定的软件能够读写和分析。因此软件是部分可替换的。

考虑到公司一般需求,这里整理一下免费并且相对比较可以信任的软件。这部分是与业务无关的。

  1. 账号管理系统。用于管理公司内部人员信息。OpenLDAP做服务,phpldapadmin做ldap的web管理界面,lam做账户管理界面(缺少自服务系统)。
  2. 邮件系统,用于公司内外邮件交流。Apache James做邮件服务器。
  3. 即时通讯系统,似乎没有太好的选择,只有基于XMPP的OpenFire。其他似乎不能与LDAP整合。
  4. 数据库系统。关系型数据库用MySQL或PostgreSQL,非关系型数据库用MongoDB或Redis等,由于数据库系统可能被其他系统依赖,因此很可能需要不止一种。
  5. 文档共享。owncloud/nextcloud。

还有很多东西现在是想不到的,后面想到了再整理吧。

Top