企业开源的意义
红帽的容器云是OpenShift,里面包含K8S、CRI-O、EFK、OVS等等组件。红帽在发布产品之前,会进行大量的整合工作、修复bug,并提供企业级的技术支持。
那么,如果有人跳出来说,我能把OpenShift这些相关的开源组件挨个都装上,并且拼起来,功能也不比OpenShift少啊,我为啥非要花钱买你OpenShift的订阅服务?
我想说的是:决定用K8S,还是OpenShift的本质,不是能否把这些开源组件都装上,而是取决于是否有精力追和容器云相关的上游几十个开源社区、是否有能力自行进行组件整合、出了问题是否全都自行搞定,以及生产业务系统出现问题,是否有那么多时间允许自己进行故障定位?如果能,那就没有问题。
所以说,企业开源软件的意义,不在于功能特性。闭源软件才可以封闭源码,形成功能不对称。企业开源在企业不必花费大量的时间在各种开源软件的问题解决上、开源技术路线选择。而是更加专注于做自己的业务创新。
言归正传。
什么是Tomcat
Apache Tomcat是由Apache Software Foundation(ASF)开发的一个开源Java WEB应用服务器。一直以来,Tomcat在Web Server领域都有很高的市场占有率。
需要指出的是:Tomcat的核心是一个Servlet Container ,而非Application Server。常见的Application Server通常内嵌Servlet Container(集成Tomcat、Undertow等)。上图中排名第二的JBoss/WildFly,是红帽JBOSS EAP(应用服务器)的社区版本。EAP中除了包含Servlet Container,还包含EJB Container。
既然Tomcat如此流行、好用。那么我们运行一些Web应用,在CentOS上运行Tomcat,看起来是很不错的选择。事实上,很多企业这样做了,尤其是互联网公司。
然后,正是这款全球流行的Web Server,被爆出了大量的安全漏洞。出现这种问题,唯一的解决办法是,照着列表,挨个填坑。
那么,红帽是够提供tomcat的问题修复呢?
接下来我们介绍红帽对Tomcat的支持问题。
红帽支持的Tomcat
在介绍之前,我们首先要明确“支持”两个字的含义,如下图所示:
https://access.redhat.com/zh_CN/support/offerings/production/soc
RHEL5、RHEL6、RHEL7的系统中包含Tomcat的RPM包,这个Tomcat和社区版本的tomcat不完全一样。从RHEL8开始,将不再包含Tomcat TPM包。
Red Hat Enterprise Linux (RHEL) RPM包如下:
RHEL 5: RPM Package name is tomcat5. Based on upstream Tomcat 5.5.23
RHEL 6: RPM Package name is tomcat6. Based on upstream Tomcat 6.0.24
RHEL 7: RPM Package name is tomcat. Based on upstream Tomcat 7 and the latest package is based on 7.0.76
RHEL 8: The tomcat package is no longer present in RHEL 8 and later. Customers who need the supported version of tomcat needs to use JWS.
红帽软件集合(RedHat Software Collections,RHSCL),对RHEL5-7中自带的tomcat RPM提供技术支持。
在RHEL8中,如果想获取对Tomcat的技术支持,需要使用JBoss Web Server,简称JWS。
什么是JBoss Web Server
JWS是红帽企业级的Web Server,目前最新版本是5.2。
那么,社区版Tomcat、RHEL自带Tomcat和JWS的区别在哪?如下图所示:
JWS5.2包含如下四个主要组件,核心组件是Tomcat9。
所有组件的版本为:
JWS5.2支持的操作系统如下:
JWS5.2新修复的安全漏洞有:
JWS5.2新解决的问题有:
Tomcat和JWS在安全方面的区别
上游社区软件和企业版软件对安全问题的不同处理方式,如下所示。左列是社区Tomcat的安全处理方式,右列是JWS和红帽RHEL中自带Tomcat的处理方式。
红帽产品安全团队会在该页面及时发布和更新产品安全相关的信息
https://access.redhat.com/security/
如何查看与红帽相关的CVE?如下图所示:
当发现一个安全漏洞时,如何确认红帽产品是否受该漏洞的影响?
客户如何选择
如果使用的是CentOS安装了tomcat,这无法得到红帽的技术支持。
如果使用的是RHEL,并且有订阅支持。
(1)如果使用的是RHEL6或RHEL7,并且RHEL中自带的Tomcat符合版本要求,可以继续使用RHEL自带的tomcat,有红帽支持。
(2)如果使用的是RHEL6或RHEL7,但RHEL中自带的Tomcat不符合要求,如版本较低,那么请购买订阅并使用JWS 5.2以获取支持。
(3)如果使用的是RHEL8,想要获取支持,请购买订阅并使用JWS。
最后,附上JWS的产品生命支持周期: