2009-02-24 64 views
1

我们有一个商业应用程序,基本上运行在独立于操作系统的堆栈上(tomcat + java + mysql),但我们一直运行redhat或centos。Linux到OpenSolaris的迁移有多痛苦?

有一位客户为了自己的理由坚持在opensolaris上运行它(与Sun公司签署了一项价格昂贵的支持协议)。

这样的迁移有多痛苦?我们有很多的配置文件,并支持脚本,如:

  • 阿帕奇
  • 阿帕奇/ tomcat的连接器
  • 与后缀
  • 电子邮件互动
  • 定制服务启动/停止
  • 几个cron作业(备份,监控)
  • 不同的用户和权限(java,mysql,email,backup ...)

我们的构建过程使用我们的业务代码+一些编辑所有os配置文件的shell脚本输出.tar.gz文件。

任何以前的经验。

+1

没什么大不了的,除非你碰巧取决于编译的二进制文件或写得不好/高平台特定的编码。 – 2009-02-24 14:01:48

回答

3

最大的问题将是您用于Linux上提供的非Solaris标准命令中的GNU工具的非POSIX(非标准)选项。您可能会认为从GNU集合移植相关工具比修改系统更简单。如果你已经使用绝对路径命名代码(/usr/bin/ls),但你决定使用GNU版本,你必须找到解决这些问题的方法。我会非常谨慎地用GNU版本替换OpenSolaris版本;你不知道什么时候你会打破系统依赖的东西。因此,您可以将GNU命令放在一个单独的目录中 - 可能不是/usr/local,因为这是为机器所有者填充的,而不是您作为应用程序管理器 - 并且安排它用于替代系统命令。 (注意:在Solaris上,/bin是与/usr/bin的符号链接;我假设OpenSolaris也是如此。)AFAIK,Postfix在OpenSolaris上不是标准的,所以你必须确保你也安装了。

所有这一切都是可行的 - 没有什么不可克服的。但很多取决于你的代码库。

+0

不熟悉OpenSolaris,但当天安装GNU工具非常重要,而且IIRC Sun甚至为客户提供了它们的构建版本 – 2009-02-24 14:07:44

1

OpenSolaris的包括了所有的GNU工具已经,只需将您的脚本位于/ usr/GNU/bin中

安装Postfix的应该不存在任何问题,和Apache/MySQL的存在于基地的OpenSolaris安装(说实话,酷Web堆栈的东西使其与WAMP/Instant Rails一样易于管理)。除此之外,SMF的清单(SMF是一种类似OSX启动的rc脚本的替代品,尽管您仍然可以使用常规的init脚本)可能会让您的生活更轻松,因为指定依赖关系和运行顺序会更好一些(它会递归地启动/也停止所有依赖服务)。

Tomcat当然可以工作,尽管每个我在OpenSolaris上知道的人都使用GlassFish。 YMMV,但部署.war在各处几乎都是一样的。

因为LX品牌区域可以运行Linux二进制文件,并且明确基于CentOS/RHEL,所以将它部署到LX品牌区域(考虑FreeBSD jails或Linux vServer进行比较)可能不是一个糟糕的第一步。

除此之外,OpenSolaris是自b77之后的Xen dom0,并且将CentOS/RHEL加入domU是非常简单的,如果这是一个选项。你也可以获得所有Solaris的好东西(DTrace,ZFS,网络虚拟化[通过CrossBow]等)。谁知道?你甚至可能喜欢它! Java是Java,所以不应该构成任何问题。

0
  • 您可能不得不重写大部分脚本(用户创建,服务启动),因为它可能在CentOS和OpenSolaris中不同。

  • 如前所述,请您的客户安装GNU工具,以便重写脚本的工作量减少。

  • os配置文件也可能不是相同的格式,您需要检查。

  • 你的tar.gz文件应该是可以解压缩的,但是如果你使用GNU工具,你也不会再感到意外了。一些UNIX操作系统有焦油有一些限制

对此有何经验。

(也许有点offtopic)

我们包,并与我们的脚本中引用的所有二进制分发我们的Java/Tomcat的/ PostgreSQL的/ UNIX应用程序。这意味着对于我们支持的每个操作系统都有1个构建系统,这意味着我们支持我们的应用程序,但也支持外部二进制文件,但最终我们没有不好的意外客户。

我们还要求他们在安装应用程序之前完成所有根操作(用户创建,目录创建,sendmail配置,系统调优)。 我们已经为所有支持的操作系统编写了关机/启动脚本,并且它们的安装是我们在客户机器上根目录下唯一的操作。

3

虽然我们不使用OpenSolaris作为Web服务器,但我们同时运行。

好:

  • 的OpenSolaris自带的GNU工具,因此,让您的道路的权利,这是很正常。

  • 大多数事情只是建立和运行得很好。

的不太好:

  • 请确保您已经安装并使用bash。否则,你使用的所有那些你认为你使用的bashisms会咬你。

  • 确保您没有使用硬编码路径到/ usr/bin或/ bin。这些工具不是GNU的,因此有不同的选择。如上所述使用/ usr/gnu。

  • 您没有大量的软件包可以直接安装,就像使用yum或apt一样。是的,你有一个软件包管理器,它只是没有那么好填充。 因此,您可能会手动安装软件包。他们应该安装,这对您的系统管理员来说只是一点点工作。

  • 您确定OpenSolaris在您的硬件上运行良好吗?这值得检查。您可能会发现某些硬件驱动程序没有经过很好的测试。

否则,我们发现OpenSolaris很好。它有很多好点子。

你看过Nexenta - http://www.nexenta.org/os这是带有Ubuntu用户空间的OpenSolaris内核。

0

旁边的事实,你是一个巨魔,有人上面(开放)的Solaris刚才说的有: - ZFS - DTrace的

我们可以这样理解,你是不是怕失去你的RHCE工作,但你再次向我证明了我作为雇主在面试人员时忽视所有认证的决定是一个很好的决定。看起来很大一部分这样的人(特别是在微软的世界里)并不那么......开明,很好地说明了这一点。

问候, 亚历

+0

。巨魔像评论在这个网站不适合。以上不是问题或答案。 – 2010-01-11 07:18:33