查看原文
其他

你需要知道的几个微服务工具

2018-02-08

作者 云技术社区翻译


在实现微服务时可以使用的一些工具和框架。


我曾经写过如何在传统环境中引入微服务,并提供了领域驱动设计(DDD)的概述,以及这种开发哲学如何用代码来表示真实世界,非常适合于微服务实现。今天,我介绍了一些在实现微服务时可以使用的工具和框架。


我有意保存了最后的工具讨论,因为我经常会发现客户在完全想到为什么以及是否可以在其环境中实施新的架构方法之前,喜欢跳入工具。 在你决定转移到微服务之后,应该考虑如何完成和使用什么工具。


容器化

微服务架构不需要容器化,但它是一套工具,可以让你的生活更轻松。


使用集装箱意味因为通过标准化,不管集装箱中的物品如何,通过船,铁路或卡车,不同货物的货物都可以被运输,因为知道一个集装箱的内容不会影响其他集装箱。 这些集装箱可以很容易堆叠和移动。


在软件中,容器化不需要修改便可跨环境打包和部署服务。 容器的其他好处包括:


  • 应用程序隔离

  • 应用程序的可扩展性; 容器允许根据需要轻松地扩展或缩减应用程序服务

  • 应用程序可移植性

  • 允许,但不要求微服务实现

  • 持续集成/连续交付(CI / CD)


可以想象,市场上有许多工具可以对应用程序进行容器化,并在你环境和云中管理/协调这些容器。三大主导产品是Docker,Kubernetes和Mesos,Docker已成为行业的事实标准。还有一些其他工具可能更有意义的用例,例如具有极高可伸缩性的Mesos(例如Twitter和Apple)。


开发微服务仅仅是个开始,测试,部署,运行和维护服务所需的努力和思想不能低估。在很大程度上,你选择的工具和技术类型将由现有的技术基础设施驱动。例如,如果你是IBM产品的重要用户,那么你将会找IBM寻求解决方案。


我已经认识到,采用新工具和框架或采用新语言进行开发和开发的成本大于好处,因此如果你计划从主要供应商的生态系统迁移到新的生态系统,则应该非常小心。但是,有一套丰富的微服务部署和维护工具可供选择,可用于补充或创建你的DevOps环境。以下是一些这些工具和框架的概述。


对于CI / CD构建管理和自动化而言,最广泛使用的工具是Jenkins。 Jenkins拥有丰富的插件库,可将Jenkins扩展到支持CI / CD过程的几乎所有外部工具。Jenkins运行在多个操作系统上; Windows,MacOS和Linux。Jenkins的配置并不困难,并在行业中得到强有力的支持,所以聘用员工,这应该始终是一个考虑因素,是可以管理的。


当然还有其他工具。我曾微软的公司合作,并希望尽可能保持这种环境。微软公司提供了一个名为Team Foundation Server(TFS)的产品,该产品也得到了业界的强烈支持。 TFS是为Visual Studio IDE量身定制的,但可以与Eclipse和其他集成开发环境一起使用。除了支持通常的CI / CD功能之外,它还提供与Microsoft云平台和工具(如Azure Service Fabric和Azure API Management(用于网关和门户服务))的集成。 Docker和CI / CD工具的结合可以对你的微服务实现和部署有深刻的变化。


测试微服务由于其设计的分布式和相互关联,但是松散耦合的性质而提出了一些独特的挑战。测试的基本原则应该是熟悉的,在2009年,迈克·科恩(Mike Cohn)描述了一个测试金字塔,经过一些修改,被广泛采用。这种方法适用于微服务测试,现在对自动化的需求甚至可能会更大。


在这里再次,供应商框架可以帮助。Microsoft Team Foundation Server提供了一整套适用于Azure的测试工具和服务。Jenkins也提供微服务测试工具。另外,还有一些专门的测试工具可用,如REST服务的Java测试Rest-Assured和WebInject测试。


最后,我想谈谈使用微服务进行前端UI开发。公司通常会使用服务器端微服务开始他们的旅程。随着成熟度曲线的上升,随着前端变得更加笨拙,单片UI将成为开发/交付过程的瓶颈。为了解决这个问题,我使用了微服务的复合用户界面。你可以使用传统工具(如ASP.Net)开发复合用户界面,可以使用Project Mosaic等服务和库增强开发流程。


↓↓↓ 点击"阅读原文" 【加入云技术社区】

相关阅读:

高端私有云项目交流群,欢迎加入!

DIY GPU系统:打造自己的深度学习平台

六款开源路由器比较

基于Kubernetes和Docker构建微服务之路

2017年云市场十大热词,展望2018年

RightScale:2017年云计算调查报告|附下载

Forrester:混合云评测报告

Gartner:2018年基础设施和运营的十大技术趋势

云管理平台实践指南

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存