监管日志最后,讲一下日志。日志由管理进程负责。通常这个进程管理器通过捕获进程的stdout/stderr,并将其记录到一个日志。“App Container Specification”上有关日志的说明如下: 应用程序应登录到stdout和stderr。容器执行程序负责捕捉和不断输出。 对于CoreOS来说,systemd似乎是一个显而易见的选择。Runit在这方面做得很好,但这又回到我已经在前面提到的,专业上来讲,这是不必要的额外工作。 Docker的做法是,把近六个月的日志记录到日志插件prosposal文档中。虽然还未实现,但考虑到这是由Michael Crosby提出的,我对它有信心。 用户体验和使用经验大家对Rocket的另一个不满在于用户体验。但请记住,Rocket最新发布的版本是0.1.1。你知道第一辆车的样子吗?它看起来是这样的。这当然不是最好的用户体验,然而这是朝着法拉利和保时捷的第一步。 但同样也是最重要的是,Rocket是App Container Specification的实现,不会强加给你任何东西。同样,Dockerfiles、Docker daemon以及其它你想要的实现,都只能靠你自己了。甚至是Stage1!你想让Docker作为管理器?破解它,并把它作为参数传递给rkt run,成为一个Stage1进程。我都能想象在未来,CoreOS很可能会实现一些很棒的工具,甚至提升Ops 和Devs的用户体验。但那些工具可能会作为单独的项目,而不是Rocket的核心部分。在这一点上我认为最重要的是项目的稳定。 结束语我要十分明确地说,我喜欢Docker,并且一直在关注Docker。这篇博文并不是在讨论Docker或Rocket好与坏。大多数人都是没有读过“App Container Specification”,才会总是要比较这两者的好坏。 最后,强烈建议你去了解一下Docker和Rocket。如果你喜欢用C编码,你也应该试试LXC或其它类似的技术。还有很多事情可以做,很多机会,让你成为目前这个行业巨变的一部分!(编译/王晓冉) |