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

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

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

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

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

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

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

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

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

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

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

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

译文有部分删减

最新文章

  1. 推荐一个iOS关于颜色的库-Wonderful
  2. asp.net 文件批量移动重命名
  3. linux正则表达式使用
  4. ADO.NET笔记——利用Command对象的ExecuteScalar()方法返回一个数据值
  5. Github博客地址
  6. php中12个魔术方法
  7. CSharp Algorithm - Replace multiplication operator with a method
  8. 一场刺激的游戏——很文艺的山东省第四届ACM赛总结(菜鸟版)
  9. url中去掉index.php,方便redirect()
  10. C#自定义事件模拟风吹草摇摆
  11. DocKer 创建容器 镜像端口映射失败
  12. python3+正则表达式爬取 猫眼电影
  13. 009-Python-面向对象
  14. [视频]K8飞刀 HackerIE自动检测网站注入教程
  15. 当启动tomcat时出现tomcat setting should be set in tomcat preference page
  16. lamp配置多个虚拟站点
  17. JavaScript辅助响应式
  18. java grpc简单例子
  19. 20155331 ch02 课下作业
  20. stream_get_meta_data(打开的文件句柄) 拿到任何网站服务器名字,从封装协议文件指针中取得报头/元数据

热门文章

  1. 获取AFP共享的文件夹及其权限
  2. C#中的快捷键,可以更方便的编写代码
  3. python3基础之文件对象操作
  4. Java API概述
  5. Java 数组元素倒序的三种方式
  6. vs2008快捷键
  7. boolean和Boolean, char和Character , byte和Byte, short和Short, int和Integer , long和Long , float和Float, double和Double的区别 , String和StringBuffer的区别
  8. C# ConcurrentStack实现
  9. JAVA中通过JavaCV实现跨平台视频/图像处理-调用摄像头
  10. RescuePro Deluxe恢复软件SanDisk