运维网关系列1:开发网关的初衷
前言
因为工作问题,又好久没更新了。这次聊聊这半年看到的问题,以及下一步的计划。
设计初衷
之前说要做运维移动端,但是面临了几个问题,导致一直没启动。
- 运维用到的第三方开源系统太多了。如果开发一个服务,去整合第三方服务的话,会导致工期很长,例如需要把jenkins、gitlab、k8s这些接口在后端全部实现一遍。这太笨了,我做了一两周果断放弃,看不到头。
- 在移动端认证授权怎么做?假如我们把所有的服务都集成过来了,配置了对应服务的token(超级管理员),但是移动端的token是实际操作用户自己的,真正到服务那里显示的会是超管执行的操作。
- 不想重复造轮子了,运维本来就是借助各种工具实现自己价值的,中小公司也没能力开发一套功能很完善的运维系统,我们要做的就是将这些开源的系统,怎么高效的整合起来,能够进行二次开发集成到我们自有的系统当中。
网关的作用:
- 统一入口,方便移动端开发
- 统一认证,用户认证了之后可以用自己的身份去访问第三方系统。方便审计
- 统一接入,目前的第三方系统都提供了api接口,可以实现他们所有的API接入。
- 统一防护,系统多防护也不好做,都集中在一个地方,只需要在网关上做好防护就可以。
技术选型
开发语言最终选择了使用Go语言,开发周期快,部署方便。
架构

认证模块
认证模块对接的认证源是LDAP,所有的第三方平台服务认证源同样是LDAP,这里就能实现所有的用户都是一样的。
接入模块
接入模块,通过配置文件的形式,在网关启动的时候加载第三方服务,然后根据他们的认证类型进行状态管理。
服务管理
用来将识别请求的第三方系统,将请求转发过去。
状态管理
第三方认证信息管理,例如basic认证、token认证和private-token认证。
防护模块
实现应用防火墙功能。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
