分类归档: OpenSource

Movable Type 与 WordPress

在几次跳票之后,Six Apart 终于发布了 Movable Type 5。作为少数坚守在 MT 阵地的用户,当然是第一时间升级到新版本进行了一番体验,结果就是这几天正在一点点修改升级后的一些模板上的问题。倒是有活干了。

一点小经验是如果是延续用旧的主题的话,迁移到新的目录后要确保有 “theme.yaml” 这个文件,否则后台点击 Setting 按钮的时候会弹出一个”Can’t call method "label" on unblessed reference” 的错误。多数插件都能继续用,可以打开 MT 的 Debug 模式,然后查看 Plugin 列表,会显示哪些插件兼容性不够好。我觉得用好 MT 的一个秘诀就是…尽量少用插件。

总体来看 MT 新版本的确带来了很大改进,除了增加了版本历史功能外,内容结构的组织有更大的改进,模板的可定制化非常好,是目前能看到的 CMS 平台的登峰造极之作。只是从平台的角度考虑恐怕还竞争不过 WordPress ,我个人觉得语言的实现(Perl vs. PHP)造成了二者在最初发展上的差异,进而导致插件上开发的 Movable Type 远远不如 WordPress 容易,而插件的多寡影响功能的完善与丰富性。用户会接受哪一个不言而明了。另外一个影响因素就是更多的主机提供商对 PHP 的支持更为友好,甚至一些提供商提供一键安装 WordPress 的服务。而 MT 的安装怎么也需要用户懂一点点技术才成。

好的工具才会激发写作的乐趣,MT 属于这样的工具

EOF

此文作者:, 位于 OpenSource 分类 标签: on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

DRBD 与 Pacemaker

如果有人问你一台 PC 服务器是否可以达到 99.99% 的高可用,该如何回答呢? 或许没有一台机器能”确保”达到这样的可用率,当然在某个时间段或许不会出问题,但这个肯定是看运气,而高可用基本上是没办法通过一台来达到目标的,我们更多的时候是设计方案确保在出问题的时候尽快接管故障机器,当然这要付出更大的成本。

对于 Oracle 的高可用方案可以参考 Maximum Availability Architecture (MAA) 白皮书,不过 Oracle 并不推崇操作系统级别的解决方案。MySQL 的指导策略倒是更为灵活一些,DRBD® (Distributed Replicated Block Device) 就是个可以考虑的选择。以前关注过这东西,但是据我了解,好像国内实现的案例不多,不知道是不是处于对网卡同步速度的限制考虑。现在这个有了新的转机,在 8.3 版本上已经能够支持 InfiniBand 。而原来通过网卡同步数据块的方式毕竟受网卡延时和带宽的限制,InfiniBand 的支持的实现相信能赢得一部分企业用户的信赖。

DRBD_overview.jpg

Linux Kernel Summit 2009 上这次有对 DRBD 的介绍(注意对数据一致性的介绍),这意味着能正式进入 Kernel 么?

相对专有的集群管理工具,也有开源的集群管理工具 Pacemaker (支持 HeartbeatOpenAIS 标准)可供配套使用。Pacemaker 能够较为灵活的实现主备、N+1 、N-N 等多种模式。感人感觉会比较有生命力。

Pacemaker.jpg

好的开源解决方案就是设计活动木板房,廉价灵活环保,当然,牢固肯定是第一目标。

补充:

根据 MySQLPerformanceBlog 的说法,MySQL 几种高可用解决方案能达到的可用性如下:

HA_ratio.png
EOF

Google 使用 Linux 的情况

Google, Inc.

Image via Wikipedia

技术爱好者大多都知道 Google 是使用 Linux 的大户,但是一直以来对于他们如何使用 Linux 却知之甚少,甚至内核开发社区对 Google 内部使用的情况也了解不多。LWN 上的这篇 How Google uses Linux 给我们带来了不少信息。

Google 使用 Linux 肯定有很多令人震惊的地方,第一个令人”惊讶”的是他们使用的代码管理工具:Perforce 。代码维护方式看起来也比较落后,当前维护的代码版本远远落后于开源社区内核版本,因为 Google 自己要维护大量的内部特性,每一个大版本发布周期是大约 18 个月,而内部特性的回归也要折腾6个月。因为版本滞后,所以有不少向后移植(Backporting)的工作要做,这个比例大约是 25%,还是不小的。

Google 内部大约有 30 个内核开发人员,而之所以外界很少看到 Google 对 Linux 的 Patch 代码,主要的原因居然是–担心代码不够优雅。我想这应该说的是大实话。我也遇到过很好的开发者对开源软件做了改进之后不愿意把代码贴出来,原因就是担心代码不好看,怕被笑话。

因为应用程序类型之故,对于 Google 来说,完全公平调度器(Completely Fair Scheduler)并不适合,采用了 O(1) 调度器,一般 16-32 核的机器要跑 5000 个线程左右。

Google 倒是喜欢用 Out-of-memory (OOM) killer 特性,这倒是出乎我的意料。Google 对于内存管理方面的改进或许是不小的突破: 通过伪 NUMA 模式来保证不同类型应用对内存的使用。除此之外,有大量的代码用于系统的监控,针对磁盘、网络等子系统或者是针对应用程序性能。

对于计划中的将实现的新特性,在一堆列表中看到了在 I/O 层对于高速 Flash 盘的支持计划。在文末,另一个有趣的技巧是,Google 喜欢把文件系统的元数据 Pin 到内存里以便提高读取响应时间。

或许将来能看到 Google 为 Linux 内核贡献更多代码,那会是一件很有意义的事情。

EOF

Farseer – Nginx for Windows 快速配置包

尽管 Nginx 前不久才提供对 Windows 操作系统的友好支持。其实 Windows 下潜在的用户一直都不少。在 Windows 下安装调试的教程貌似并不多。介绍一个在 Windows 下帮你节省 Nginx 调试时间的项目:Farseer。(Farseer 是魔兽世界中的角色?)

这是淘宝 UED 部门的 明城 捣鼓的一个工具。刚刚新鲜发布。他这么描述该项目:

Nginx 的确是 *ix 系统下非常优秀的 HTTP 服务器,但开发人员而言搭建 Windows 平台的 Nginx + PHP 环境的确非常的繁琐而且容易出错。 如果您有上述的问题,那么这个包能够帮得上您的忙。使用这名为 Farseer 的软件包,能够让您在两分钟内完成 Nginx + PHP for Windows 平台的安装。

繁忙的工作之余还有精神头捣鼓这个,发自内心的觉得应该表扬。

EOF

此文作者:, 位于 OpenSource 分类 标签: on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.