很久以前,当我为一家为药店开发自动化软件的公司构建 IT 部门时,创建基于 Firebird 数据库的 Linux 发行版的想法就出现在我的脑海中。
问题
在 2000 年初,公司的软件基于客户端服务器 Delphi 7 解决方案,访问基于 Borland Interbase 6.0 的数据库。连接方法是 BDE(Borland 数据库引擎)。
系统的所有安装都由支持团队远程执行,安装基础约为 5,000 家客户。服务覆盖所有巴西州,而巴西是一个非常大的国家。
默认服务器是 Windows NT 4.0,支持团队的主要担忧之一是如何了解最终用户安装了系统,数据库位于哪个文件夹,网络如何设置以及其他配置问题。换句话说,支持技术人员花费大量时间仅仅了解用户环境。只有这样,他们才能专注于系统本身的问题。
另一个问题与 Windows NT 4.0 上数据库服务器的性能有关。根据数据库中执行的进程,服务器会被推送到 100%,然后需要重新启动而无法完成任务。
客户服务器上没有安装软件的标准方法,也没有优化 Windows 和 InterBase 的最佳实践程序。
最后,由于支持是远程执行的,公司需要投资 Norton pcAnywhere 的许可证。最终,该产品成为客户的购买义务。
挑战
我热衷于 Linux 和开源软件,并且我设想一个完整的系统必须满足一些要求
- 易于安装(许多客户在本地没有 IT 人员来帮助)
- 低许可成本(移除 Windows 和 pcAnywhere 许可证)
- 针对操作系统和数据库的最佳性能进行精细配置的设置
- Web 界面,以便客户可以在不必了解 Linux 或命令行的情况下操作服务器
- 标准化支持服务,统一整个支持团队都熟悉的服务器中的流程
- 日志记录和审计系统,以跟踪故障或数据库损坏的原因
- 与服务器市场硬件的兼容性(Dell、HP、IBM 和其他厂商)
解决方案
在 InterBase 6.0 代码于 2000 年 7 月开源后,发布了 Firebird 1.0 版本。它是一个开源替代方案,旨在修复错误并改进服务器数据库。
在代码开源后立即发现了一个错误:SYSDBA 密码以明文形式出现在代码中。这个错误很快得到纠正,开源系统开发的优势已经很早就显现出来。
选择了一些软件来组成一个发行版,该发行版能够解决大部分基础设施问题:Red Hat Linux 操作系统、数据库 Firebird 1.0、基于 Webmin 的 Web 管理界面、Samba、rsync、用于备份/恢复的 bash 脚本例程、用于远程访问的 VNC 和用于客户端安装程序的 InnoSetup。
需要进行研究、开发和测试才能发布第一个 ISO 版本,当时称为 Pharmacy Server。开发和支持团队对使用 Linux 和其他开源软件来解决问题存在很多抵制。那是在 2000 年,当时 Windows 2000 操作系统即将问世,而 Linux 仍然相对
未知,尤其是在巴西。
最后,我们选择了一个足够大的客户,以便可以在真实环境中对发行版进行测试。那是一家拥有 40 家分店的大型连锁药店,日常运营量非常大。结果非常成功,以至于药店主管再也没有回头使用 Windows NT。在例行程序、备份和大型报表任务中,性能提高了 3 倍。
安装非常容易:将 CD 插入新服务器并按 Enter 键后,安装程序会处理一切:分区、格式化、安装系统文件夹和自定义脚本、设置默认 IP,甚至弹出 CD。之后,客户致电负责完成客户数据部署过程的支持人员。
通过 VNC 和 IPTables 建立的远程连接将客户端的服务器直接连接到技术人员的桌面
服务。
Web 界面方便了客户和技术人员与新产品的联系。它具有对客户工作流程有意义的任务:没有困难的命令、控制台屏幕或当时 Linux 的其他常见功能。
Pharmacy Server 通过绩效考核确立了自己的地位,证明了自己是性能、所有权成本、支持和流程自动化方面的最佳平台。
绩效考核是开源世界的另一个非常重要的特征:能够经久不衰的软件和解决方案是那些为人们和企业带来价值的软件和解决方案。
在环境中展示出的优越性意味着公司中的每个人都可以快速理解并亲身体验新解决方案的价值。因此,Pharmacy Server 添加了新版本和更新,同时考虑了客户的要求和自动化产品支持。
2005 年,在 5.0 版本中,Pharmacy Server 已经成熟而稳定,在一个中央服务器上运行,该服务器支持巴西 300 多家连锁药店,并且已被 Red Hat 作为认证成功案例进行了专题报道。
2010 年,在合并和收购之后,公司的运营终止,Pharmacy Server 被关闭。它的最后一个版本使用了 Red Hat 5.4、Firebird 1.5.3 和自定义版本的 Webmin Web 管理界面。
Fireserver 项目 - www.fireserver.com.br
在巴西,许多软件使用 Firebird 数据库,并且有大量的开发人员使用 Delphi、C++ 和 VB 仍然将其与他们的软件集成。
该项目希望为使用 Firebird 数据库的整个公司市场带来该发行版为药店提供的相同好处。
这一贡献也影响了开发公司,他们无需担心服务器的优化和标准化,因此他们可以专注于他们开发的软件的功能。它还为系统集成商、服务器经销商、维护和监控公司创造了机会。
这个想法是创建一个生态系统,除了提高数据库和硬件效率外,还可以创建外围服务,例如培训、服务器支持、定制、分发、远程支持、数据仓库和监控。
最初的 ISO 计划于 7 月第一周发布,并将是对项目自中断以来的回顾。下一步是将基础操作系统更改为 CentOS,使任何公司都可以在无需购买订阅的情况下享受该产品。
第二步是创建一个新的 Web 管理界面,更新利用资源并使外观现代化。这项工作很可能用 PHP 完成。
另一个重大变化是使用最新版本的 Firebird (2.5),提供额外的资源和性能优化的数据库。
与这项工作并行,我们正在创建一个生态系统,该生态系统将允许各种公司通过 Fireserver 营销服务:托管、用于云提供商的虚拟机和培训。也许最重要的是:软件公司采用 Fireserver 作为其解决方案的标准服务器。这个生态系统为客户创造了附加值,并为供应商创造了机会。
团队由 4 人组成
- 我自己,Fernando Pimenta,担任项目负责人和 Linux 发行版开发人员
- Carlos Pimenta:Web 界面设计协调员(昵称 Webface)
- Carlos Cantu:Firebird 专家,也是世界上最重要的 Firebird 社区之一 Firebase 的维护者
- André Santos:C++、Python 和 PHP 开发人员
我相信我们很快将回报开源社区为那些在其中寻求解决方案的人提供的所有支持,并且我们将能够有效地为维护一个开源和开放思想的世界做出贡献。
19 条评论