加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 云计算 > 正文

部署微服务于容器云平台,API网关应如何选择?

发布时间:2018-08-14 03:01:45 所属栏目:云计算 来源:talkwithtrend
导读:前言: 微服务越来越火,越来越多的公司开始采用微服务架构。今天还有人让我帮推荐好的微服务实施厂商。但采用微服务并不容易,实施微服务可能不可或缺的一个很重要的组件就是API 网关。微服务若要部署于容器云平台,API网关的实现能力、部署方式、产品选

API gateway 的实现方式有很多种,对于大多数应用,API Gateway的性能和可扩展性也是非常重要的。因此,创建一个支持同步、非阻塞I/O的API Gateway是有意义的。已经有不同的技术可以用来实现一个可扩展的API Gateway。在JVM上,采用基于NIO技术的框架,如Netty,Vertx,Spring Reactor或者JBoss Undertow。Node.js是一个非JVM的流行平台,它是一个在Chrome的JavaScript引擎基础上建立的平台。Spring Cloud Gateway就是基于Spring Ractor的实现。

API网关自研难度还是有的,要实现生产可用的微服务网关,需要考虑实现众多的功能。比如SpringCloud的相关组件包括:Zuul、Ribbon、EureKa、Fein、Hystrix等。其中Zuul就是一个类似APIGateway的组件,但仅有zuul远远不够。Ribbon是客户端负载均衡工具,Eureka用于注册和发现服务,Hystrix可以实现微服务的断路服务,用于服务降级。Fein可以作为一个Rest服务的提供者,可以供内部服务之间相互调用。包括但不限于所有这些能力都需要在API网关层实现。

要实现这些能力,技术力量要求就比较高,投入也不小,后期更新和运维都是需要考虑的,所以不太适合传统企业。传统企业更适合商用的方案。

商用

商用的API网关产品也非常多,根据Partner 全生命周期API管理魔力象限,处于领导地位的产品有Google Apigee,CA API Management,IBM API Management,Axway, Mulesoft,TIBCO Mashary, Redhat 3Scale等。大部分都是美国的公司,国内这块需求似乎不明确,或者没有认识到其重要性,所以相关人员也很少,很难联系到。商用产品成本还是比较高,适合大的传统企业。Axway API Management等产品功能很强很完整,超出大部分公司的需求,所以这些商用的产品适合大的跨国公司或有众多分支机构的企业。小公司用起来有些浪费。

Axway(https://www.axway.com/cn/node/2691)专业做API网关产品,中国团队响应非常敏捷,而且很nice,很热心。这个要给赞,五星好评!

Apigee(http://apigee.com/) 目前算是最流行的一款API管理产品,国内似乎没有,在和Pivatal交流时他们提到pivotal的容器云产品内置支持Apigee。

CA API Management(https://www.ca.com/us/products/api-management.html)也是一款功能特别强大的产品,和Apigee不相上下,不过我多次联系过CA 全球,CA API Management中国团队,网站留言等,得到过一次回复后就没有进一步的响应,产品很好,服务却很差,不得不给差评。

原来TIBCO有款API Exchange Gateway产品,是基于SOA服务的服务网关产品,不过产品相对功能简单,有很大局限性,目前TIBCO重点在推TIBCO Mashary, https://www.mashery.com/api-management, 这是TIBCO收购的产品,目前似乎还不支持on premises部署,这点有局限性,不过据说很快就可以支持。希望TIBCO能推出更好更适合不同需求更人性化的产品。也希望TIBCO中国团队好好努力。

3Scale API management(https://access.redhat.com/documentation/en-us/red_hat_3scale/)也是Redhat 收购的产品,我也是联系多次没有进一步响应。非常遗憾,至少服务不得不给差评。

产品的详细信息可以查阅网站相关资料深入了解。另外也可以考虑开源产品的企业版,比如Nginx Plus,Tyk专业版,Kong企业版等。

结论

对于传统企业,在采用API网关时,可以遵循基础设施平台外购、业务应用自研的原则。不必要花费大量的人力和财力来自研基础设施平台,外购成熟的产品是比较合适的方式。然后集中技术力量研发新业务应用和支持新业务。除非有足够的人力财力,并且想做行业内推广,以此来获取收益,可以考虑自研基础设施平台,不过这样和一家软件公司也没太大区别,成本投入也将非常大。如果基于开源做一些封装修改也是可以,但不会有众多的客户的实际环境验证,不会有商用产品的安全和稳定。如果没有足够强的技术实力,一旦遇到复杂的技术问题,就可能影响到实际业务。所以不同的公司不同的实际情况,可以选择合适的方式。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读