[译]我们为何基于FreeBSD打造解决方案?

时间:2022-03-23 19:52:41

[译注]翻译这篇文章,主要是觉得老外在思考问题时,勇于打破固有的技术栈积累,尝试不同的选择,从而找到最合适自己的技术方案、得到真正的实惠。

Synergy SKY提供多种软件解决方案,本文想讨论的是关于一套用于视频相关的呼叫记录(CDR)分析解决方案。

为客户提供方案时有两种选择,一是让客户避免所有的前置安装、构建一套纯粹的云方案,但这种架构还是有很多术语如数据存储、计算需求和管理;二是直接提供一键式软件预装,这也许是我们要做的。

我们在VMWare类似的虚拟机环境,可以构建全栈测试环境,但首先面临的问题就是操作系统的选择。CentOS当然是我们的首选。

在测试过程中,我们经历的其中一个主要的问题是当应用程序占用太多内存时,Systemd会试图让整个dbus-systemd连接崩溃,导致整个系统处于不稳定的状态,只有重启才能解决问题。

我们还遇到一些其它的问题,可能在最新的CentOS中已经解决了吧。

我们在CentOS系统上已经积累了大量的经验,这在我们做决定时是件好事。

我们在构建平台时所关注的点:

  • 容器技术 (docker进行了全方位的测试,LXC进行了一些)
  • 软件包与软件仓库管理工具 (yum/dnf)
  • 自动化安装
  • 服务管理(Systemd)
  • 如何处理系统的基础配置(网络、服务启动等)

带着CentOS的经验,对于FreeBSD的体验过程也是从头编译了所有要用到的软件。

然而抱着“行动前先获得点印象”的想法,我们还是决定测试其它的Linux发行版。这正是事情的一个转折点。

[译]我们为何基于FreeBSD打造解决方案?

FreeBSD 10.3给我们的第一印象就超出了预期。几分钟就可以完成安装,在线手册编写得异常的好。令我惊讶的是有预先编译好的软件包,几乎是开箱即用。几个小时后,我就用FreeBSD搭好了整个技术栈环境。

通过对基于FreeBSD Jail和ZFS的行业案例的了解及自己的体验,我们立马决定不再寻找其它的替代品,专注于测试和学习FreeBSD。

  • 容器技术 ⇒ FreeBSD Jails
  • 软件包和软件仓库管理工具 (yum/dnf) ⇒ Pkgng / pkg / ports
  • 自动化安装 ⇒ bsdinstall (我们甚至构建了PXE安装镜像,让你可以几分钟运行起来一套开发系统)
  • 服务管理系统 ⇒FreeBSD rc
  • 如何处理系统的基础配置(网络、服务启动等) ⇒ FreeBSD rc 及 rc.conf

我们基于Pkgng作为二进制软件包的发行格式。整个过程中当然也会遇到这样那样的一些挑战,但从来不上稳定性和性能方面的。在OS和用户空间层软件的隔离清晰,这一点完全符合逻辑,也被完美执行了。这也让整个系统自动变得更整洁,很容易知道在哪去找配置文件、在哪存放数据。

FreeBSD 给到我们的是那种“刚好就能用”的体验,而且没有牺牲完整的控制能力。它在实际表现中非常成熟、稳定而又性能强劲!

FreeBSD已经伴随我们走过两年的时间,我们没有再中断过。

有几点要再提一下,也是几个让FreeBSD变得更棒的方面:

  • Freebsd-update, 让你的基础操作系统保持更新、与软件包系统相互独立
  • Pkg 仓库持续更新,不会像ubuntu/debian/CentOS那样
  • 开箱即用
  • 通过ports系统,非常容易修改、重新构建和分发定制后的软件包
  • 原生集成ZFS,而不仅仅是用户空间层面的驱动
  • 商业许可问题更容易处理
  • Network 相关的技术栈,FreeBSD中总共有三种不同的防火墙,我们选择了pf

原文:http://blog.synergysky.com/whydidwebuildoursolutionontopof_freebsd

译文有部分删减