DigitalOcean是如何做到支持FreeBSD的?
很高兴宣布DigitalOcean支持FreeBSD了。作为一个稳定且高性能的操作系统,FreeBSD将会是第一个在我们平台上适用的非Linux发行版。虽然与其他的开源类Unix系统类似,但其内核和用户空间是由同一个核心团队来维护。
作为一个稳定且高性能的操作系统,FreeBSD 将会是第一个在我们平台上适用的非 Linux 发行版。虽然与其他的开源类 Unix 系统类似,他的独特之处就是它的内核和用户空间程序是由同一个核心团队来维护,以此确保整个项目的持续发展。FreeBSD 也提供了一个简单的但是强大的软甲你报管理系统,让您可以轻松编译和安装第三方软件。
FreeBSD 项目的亮点之一是其文档的质量,包括使用手册。DigitalOcean 喜欢简洁有效的技术协作风格,并且我们也制作了大量的 FreeBSD 教程来帮助新用户。
据我们了解,这个用户请求已经存在相当长的时间。我们很清楚,可能你会问——为什么花了这么长时间?
随着时间的推移和公司的不断发展壮大,DigitalOcean 技术团队的内部结构也发生了很大的变化。从一开始在布鲁克林的一个小房间里疯狂编码的几个人已经膨胀到现在的100多人来为各地的数十万用户服务。随着发 展,我们很有必要调整和重组内部结构和系统来更好的为用户服务。
技术基础
去年,我们建立了元数据服务——使得 Droplet 在在创建的同时就可以访问自己的数据。这是一个重要的功能,这样镜像就可以独立的配置自己。在以后,这将会给我们更大的灵活性。我们的后台代码也不用知道 那些内容。一旦创建,Droplet 自己就能确认配置——主机名,SSH Keys,等等——而不用依赖第三方了。
解耦和是一个老生常谈的问题:建立良好定义的接口,不要因为不必要的边界而出问题。我们将镜像这部分从后台代码中脱离出来,这样就避免了调整来自 Linux 主机的 UFS 文件系统的棘手问题。
因为现在我们的机制是让镜像独立于后端的实例,只需要在创建时将这一部分写到配置里面。FreeBSD 本身没有提供像 Red Hat 和 Canonical 那样的云 OS 版本,所以在通过在公共端口启动一个云初始化,就意味着让 FreeBSD 运行在 OpenStack 上。
为了查询元数据,需要有一个初始的网络配置来建立网盘,我们的配置,由于 DigitalOcean Droplets使用静态的网络,在启动时,我们为大家提供了V4的本地链路链接,来做初始化的查询。由此我们获得真正的网络配置,主机名和 SSH Keys。云端初始化将在相关的 Droplet 的 ID 上写一个配置。这样就可以知道这个镜像是新创建的还是一个快照,或者只是重新启动。
一旦配置被写入,FreeBSD 在启动时就可以据此启动相关的实例。
焦点
这项工作开始时我们也正在组织自己的团队。我们有几周的时间去接一个项目,然后自己组织跨职能的团队,开始工作。最终成功完成了这个项目。
截止日期是一个强有力的事情,不是指惩罚或者消极之类的。而是在某种程度上一个明确的时间,到时所有工作都要停止。所以做什么,怎么做看起来就比较清晰,在明确的目标和日期的驱动下,我们专注于单一的目标,有效的沟通,最终满足了用户这项长期以来的要求。
在2015年,我们会有很多令人期待的事情,这是一个开始!
原文:https://www.digitalocean.com/company/blog/presenting-freebsd-how-we-made-it-happen/译文: http://code.csdn.net/news/2823757 译者: Misslio