Java会是微服务开发的理想语言之选吗?
作者:网友投稿 时间:2018-02-28 21:43
【IT168 评论】Java是微服务开发的理想之选吗?企业应该继续向这个方向投入资源吗?为了帮助大家解答这些问题,本文采访了七位DevOps技术大牛,和他们探讨了关于微服务、Java以及 container 的发展。
有没有一种理想的微服务语言?
这个问题是很多技术人都想要问的一个问题,但是可惜的是,目前我们所听到的答案并不统一。有些人认为Java是微服务的理想语言,但是另一些人则认为微服务没有理想的语言。
到底我们应该站在哪一边呢?根据,DevOps开发人员对特定技术,运行时或框架几乎没有忠诚度,相反有45% 的受访者相信应该使用"正确的工具来完成这项任务"。简而言之,技术人员更倾向于寻找最适合此时工作的工具来完成任务。
为了更好的看清楚DevOps在2018年的发展趋势以及优秀的DevOps实践者应该具备的特征,下面我们就一起来看看我们和七位DevOps大牛的深度对话。
探讨微服务和容器正当时!
containers-as-a-service将在2018年成为趋势吗?

▲Daniel Bryant
Daniel Bryant:我更喜欢称之为"容器基础设施即服务"(CIaaS),当然这种说法是我从别人那里借鉴来的。去年底 AWS re:invent大会上宣布了,所有主要的云供应商现在都提供托管的产品。
随着的发布,亚马逊已经进入了一个阶段,工程师可以在不需要管理集群的情况下运行容器,这是我感兴趣的领域!
Michiel Rook: 说实话,我认为containers-as-a-service是2017年的事情,现在显然Kubernetes是一个更具吸引力的平台。尤其是现在Azure(AKS)、亚马逊(EKS)已经跳上Kubernetes列车,我不认为还有人怀疑这个平台的有效性。
Philipp Krenn:我认为这是合乎逻辑的猜测,是我们10年前承诺的平台即服务(PaaS)方向的又一个进展。AWS Fargate是一个有趣的方法,可以进一步远离基础设施方面的担忧。
Java是微服务开发的理想之选吗?企业应该继续向这个方向投入资源吗?
Daniel Bryant:我个人受Java和JVM影响很深,所以我的观点可能不是那么客观。但是我坚信Java是微服务语言很好的一个选择,尤其是在开发团队只熟悉Java的情况下。
Java语言和JVM都经过了20多年的生产测试,总的来说,Java代码易于阅读和维护(与Scala或Ruby相比)。像Spring Boot,DropWizard和Spark Java这样的Java微服务框架也为开发体验增添了很多价值。
当然在一些Java不怎么适用的微服务用例中,也有一些语言在发光,例如Ruby with the Sinatra framework、 Node.js,另外当基础设施或者平台资源有限制时,类似于Golang这样的静态编译语言更适用。

▲Tommy Tynj?
Tommy Tynj?:Java和JVM是拥有丰富生态系统的成熟平台,所以很多人在选择合适的工具时都会考虑这一点。JVM提供稳定的平台,但是并不是一定要运行Java,我在Groovy和Scala中编写了微服务,我觉得比选择Java更有意义。
微服务式体系结构的优点在于,它使得你可以轻松地尝试其他语言或框架,而无需投入大量资金。关键是要有足够小的服务,以便在必要时可以轻松更换。

▲ Pierre Vincent
Pierre Vincent:微服务在允许采取"正确的工具"的方式方面是强大的。在我看来,这也意味着没有一个理想的微服务开发语言。
然而,在太多的技术上传播专业知识会带来风险。当使用不同的堆栈时,团队将很难进行协作,并且会以大致一致的方式来做事情。同样,缺乏一致性也会使招聘的角度变得更加困难。
从Poppulo的角度来看,我们已经使用Java 十多年了,它仍然是我们产品开发的首选核心语言(与Go作为Ops / SRE语言一起)。Java可能不会是2018年的流行语言,但它是我们工程师拥有最好专业知识的地方:它使我们能够快速和放心地工作。

▲Michiel Rook
Michiel Rook:Java绝对有效。Spring Boot和Play!等框架已经建立并提供了很好的功能。这一切都取决于用例:使用什么工具适用于您的特定问题。



