360私有云容器服务团队与人工智能研究院团队合作,针对提高机器学习在容器中的效率进行了深入的研究与实践。云端,为商家提供“人脸检测”、“伪屏检测”、“色情检测”、“宠物检测”、“图片风格化”、“文字识别”、“智能裁图”等多种深度学习服务.下面主要介绍实践中涉及到的“微服务网关和容器服务”技术。一、什么是微服务架构微服务是一种构建软件的架构和方法。在微服务中,以前的单体应用被拆分成多个小的组件,它们之间相互独立。不同于传统单体应用构建方式将所有组件构建到一个架构中,在微服务架构中,所有部分都是相互独立的(可以使用不同的语言,不同的团队可以开发不同的服务模块)。合作完成同一任务。这些组件或流程中的每一个都是微服务。总结起来,微服务的特点是:更小、更快、更强。可能上面对微服务的描述不是特别直观。将传统的单体应用架构与微服务架构进行对比会更加直观。1.单体应用架构对于最早开发的web程序(如JAVA),通常会将整个程序打包成一个WAR文件,然后直接部署到服务器上。单体应用架构易于测试和部署,但在服务扩展性、可靠性、系统迭代、跨语言程序、团队协作等方面不如微服务方便。2、微服务架构为了解决单体应用架构的这么多弊端(不是说单体应用架构不好,需要根据不同的业务场景选择不同的服务架构),可以将单体应用架构拆分分成多个独立的小组件。这样每个团队都可以使用自己的技术栈来实现自己的组件,在系统迭代的时候独立迭代,而不影响整个应用的整体使用。2、为什么需要微服务网关?首先介绍一下什么是API网关。API网关可以提供单独的、统一的API入口,用于访问一个或多个内部API服务。API网关通常提供负载均衡、访问频率限制、认证授权、监控、缓存等功能。通过API网关,可以对外部用户隐藏内部服务,暴露给外部用户真正需要的API,可以对外部访问进行访问频率限制,也可以对外部用户设置认证授权。保证应用的整体稳定性和安全性等。网关内部的服务可以根据自己的需要通过相关协议(RESTAPI、GRPC)进行通信。3、微服务网关(kong)简介Kong是基于nginx_lua模块编写的高可用、易扩展的API网关。由于kong是基于nginx的,可以横向扩展多个kong服务实例,通过前置负载均衡配置将请求平均分配到各个服务器,以应对大量的网络请求。kong网关由以下部分组成:Kong服务器:一个基于nginx的服务器,用于接收外部api请求。PostgreSQL:用于存储操作数据。并且kong采用插件机制自定义功能,插件集在API请求响应周期的生命周期中执行。插件是用lua编写的。4、微服务网关与容器服务的结合通过一个具体的例子来说明部署在容器上的服务如何与微服务网关结合使用。比如我们现在有人脸检测、宠物检测、色情服务等,这些单独的服务组合成一个完整的应用实体,对外提供多功能的服务。首先在容器服务平台上部署我的三个服务实例(人脸检测、宠物检测、色情服务)。并为这些服务实例申请VIP。服务注册完成后,管理端将三个服务注册到微服务网关(kong),kong会将注册信息持久化到PostgreSQL数据库。并且可以根据不同的业务,以插件的形式为每个服务注册认证授权、访问频率限制、CORS等插件。服务注册完成后,客户端可以根据授权的用户令牌访问自己想要使用的服务。本文简单介绍一下整体流程。但是每一部分都需要用户深入理解~~相关文章:https://konghq.com/kong-community-edition/https://martinfowler.com/articles/microservices.html?spm=a2c4e.11153940.blogcont2764.12.61092766Awrptvhttps://github.com/Kong/konghttps://www.redhat.com/zh/topics/microserviceshttps://www.nginx.com/blog/introduction-to-microservices/【本文原创文章为栏目机构360科技微信公众号“360科技(id:qihoo_tech)”】点此查看本作者更多好文
