1

我们有一个业务应用程序,它基本上运行在与操作系统无关的堆栈(tomcat+java+mysql)上,但我们总是运行它 redhat 或 centos。

有一位客户出于自己的原因坚持在 opensolaris 上运行它(与 Sun 签订的昂贵的“包罗万象”的支持协议)。

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

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

我们的构建过程会输出一个 .tar.gz 文件,其中包含我们的业务代码 + 一些编辑所有操作系统配置文件的 shell 脚本。

以前有这方面的经验。

4

5 回答 5

3

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

所有这一切都是可行的——没有什么是不可克服的。但很大程度上取决于您的代码库。

于 2009-02-24T14:03:37.080 回答
3

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

好的:

  • OpenSolaris 附带了 gnu 工具,因此,让您的路径正确,就可以了。

  • 大多数东西只是构建和运行得很好。

不太好:

  • 确保您已安装并正在使用 bash。否则,您使用的所有那些您认为自己没有使用的 bashism 都会咬您一口。

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

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

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

否则我们会发现 OpenSolaris 很好。它有很多好主意。

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

于 2009-02-24T14:41:13.853 回答
1

OpenSolaris 已经包含所有 GNU 实用程序,只需将脚本指向 /usr/gnu/bin

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

Tomcat 确实有效,尽管我在 OpenSolaris 上认识的每个人都使用 GlassFish。YMMV,但是在任何地方部署 .war 几乎都是一样的。

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

除此之外,OpenSolaris 是自 b77 或其他东西以来的 Xen dom0,如果可以选择的话,将 CentOS/RHEL 放入 domU 非常简单。

您还可以获得所有 Solaris 的好东西(DTrace、ZFS、网络虚拟化 [通过 CrossBow] 等)。谁知道?你甚至可能喜欢它!Java 是 Java,所以这不应该造成任何问题。

于 2009-02-24T14:16:17.983 回答
0
  • 您可能必须重写大部分脚本(用户创建、服务启动),因为它在 CentOS 和 OpenSolaris 中可能不同。

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

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

  • 您的 tar.gz 文件应该可以毫无问题地提取出来,但是如果您使用 GNU 工具,那么您的惊喜也会减少。一些 Unix 操作系统的 tar 有一些限制

以前有这方面的经验。

(可能有点题外话)

我们使用脚本中引用的所有二进制文件打包和分发我们的 java/tomcat/postgresql/unix 应用程序。这意味着我们支持的每个操作系统都有 1 个构建系统,这意味着我们支持我们的应用程序以及外部二进制文件,但最终我们并没有给客户带来不好的惊喜。

我们还要求他们在安装应用程序之前执行所有 root 操作(用户创建、目录创建、sendmail 配置、系统调整)。我们为所有受支持的操作系统编写了关闭/启动脚本,它们的安装是我们在客户机器上以 root 身份执行的唯一操作。

于 2009-02-24T14:18:24.780 回答
0

除了你是一个巨魔之外,有人刚刚在上面说(Open)Solaris 有: - ZFS - DTrace

我们可以理解您害怕失去您的 RHCE 工作,但您再次证明了我作为雇主在面试人员时忽略所有认证的决定是一个很好的决定。似乎很大一部分这样的人(尤其是在微软世界)并不那么……开放,说得好听点。

问候,亚历克斯

于 2009-12-24T22:32:21.237 回答