开源应用服务器解决方案

时间:2013-04-18 21:28:58

标签: mysql ubuntu spring-mvc jboss java

具有以下技术和组件的项目已浮出水面:建立一个最初由 Ubuntu JDK JBoss 组成的Web堆栈解决方案, Spring MVC 3.0 +, MySQL

在规划此项目时,我一直在努力为第一步最佳做法序列找到以下问题的答案:

1) JDK(和JBoss)是否需要安装为“ root ”? (我已经看过一些文章提到,除非由于致命后果绝对必要,否则在root中运行并不是一个好主意。)

2) Ubuntu是否需要作为服务器安装才能完成所有这些,或者它是否也可以作为桌面安装?我无法确定是否需要在Linux上安装JBoss和MySQL作为服务器。

3)是否需要在Spring STS中使用 Maven 才能让JBoss和MySQL(以及将来的Hibernate)一起成功运行?

4)我的意图是以顺序安装:a)Ubuntu - > b)Java - > c)JBoss - > d)Spring STS - >和e)MySQL。这个序列中是否存在任何明显的冲突?

2 个答案:

答案 0 :(得分:0)

  1. 以root身份安装,为什么不呢?以root身份运行,可能不是一个好主意。
  2. 如果您需要桌面,请安装桌面分发服务器。如果需要服务器,请安装服务器distrib。这不会改变OS中可以运行和不可运行的内容。它只会更改默认安装的内容。
  3. Maven是一个构建工具。 JBoss并不关心你如何构建你的应用程序。它所关心的只是您部署的应用程序是否是有效的Java EE应用程序。
  4. 否。你需要一个操作系统,所以Ubuntu必须先到。 JBoss和(AFAIK)Spring STS需要运行JRE,因为它们是Java应用程序,因此应该在它们之前安装Java。 MySQL独立于JBoss,STS和Java,因此您可以随时安装它。
  5. 请注意,如果您正在努力使用此安装部件,请准备好与其他部分一起受苦。构建Java EE webapp并不是小菜一碟,你应该找一些经验丰富的开发人员来帮助你,因为你似乎只是从Java开始。

答案 1 :(得分:0)

JBoss需要Java(推荐Java 7)才能做任何事情。我不认为它真的“安装”per-say,而只是解压缩到某个目录(即使你从包管理器安装,它只是真正提取自己)。我怀疑你对Spring的需求,因为JBoss和Java EE总体上确实做了Spring所做的一切,现在更好了。除非你对Spring有特定的要求,否则我会质疑这种额外的依赖性。

对于Linux - 在高级别,任何操作系统都可以是“服务器”,它所需要的只是能够提供服务(网页,ssh连接等)。在M $世界中,操作系统的不同“级别”是根据预期的任务/工作量专门设计的。因此,例如,虽然Windows 7确实可以作为服务器运行,但它不是为它设计的,因此可能无法进行优化,或者包含帮助程序实用程序和工具,以使系统管理员的生活更轻松。另一方面,Windows Server确实包含了所有“普通”服务器工具以及许多便于维护和设置服务器的好东西。

在Linux领域,这不是这样的事情。 Linux是与裸机等来回交谈的内核...... Distro制造商将采用这种方式并在内核周围构建一个操作系统,基本上只需附加他们认为发行版所需的任何软件包......例如wget,或者cat,或任何其他标准用户态应用程序,以及一些非标准的,如mysql或java或他们想要的任何东西。

现在,一些Linux发行版将自己定制为“服务器”准备就绪,而其他发行版则将自己定制为桌面操作系统。区别?它实际上只是分销商决定包含或不包含的默认包。例如,绝大多数Linux服务器完全无头运行,因此绝对没有理由在该系统上安装和/或运行X11和庞大的GUI环境......这是毫无意义的。此外,“普通乔”用户不需要在他的桌面系统上默认安装MySQL,因为它只会使他的系统膨胀并且他可能永远不会使用它。

所以基本上它归结为默认安装的软件包。

一些Linux服务器发行版更进一步,在以稳定性和安全性的名义制作更新,补丁或新版本时要格外小心,而另一方面,大多数桌面发行版都更加随意更新,因为如果它破坏了家庭用户的网络浏览器,它可能不是一个大问题...但如果服务器更新打破了网络服务器应用程序堆栈,现在这是一个严重的问题。

所以你会发现像CentOS这样的服务器操作系统(基于上游RHEL)引入桌面操作系统早期获得的“最新和最好”的功能非常慢。他们的目标是高安全性和长期稳定性。

现在,对于Ubuntu。虽然我确定知道很多人将Ubuntu作为他们的服务器操作系统选择(部分原因是亚马逊选择Ubuntu作为其ECS云的默认Linux VM),但我真的质疑这一点。 Ubuntu并不专注于成为服务器。它专注于成为一个出色的全能桌面操作系统。是的,LTS版本是为了长期稳定,但它基于桌面操作系统,所以它仍然不是焦点。

恕我直言,我会选择CentOS,因为它是RHEL的免费且完全二进制兼容的版本 - 而RHEL是企业级Linux服务器的事实上的标准。但请注意,RHEL的处理方式与debian方式略有不同 - 因此没有apt-get,您必须使用yum install。启动脚本是不同的,一些做事方式是不同的,但实际上,一旦你了解linux,你就know linux。

编辑:同时检查Jenkins - 它是一个在JBoss或Tomcat或任何其他容器上运行的免费开源持续集成系统,可以自动从repo(github,git,svn等)中提取代码并编译/打包然后将其推送到实时部署。您可以设置ANT或Maven构建脚本,它可以按计划启动,也可以配置它。

编辑编辑:我还建议使用OpenJDK - 因为它可能包含在你的软件包管理器中(几乎每个disto),并且如果它也在你的软件包管理器中,它将比oracle版本更新。我发现大多数“服务器”发行版都有OpenJDK 7,而他们的包管理器只有Oracle java 6。此外,通过软件包管理器安装它可以让您更轻松地更新它。