安全的云原生微服务架构全景图

1个月前

涉及应用防火墙,API网关,CDN,服务网格,事件管理,微服务架构,开发工具集,生产管理等

本文为翻译发表,转载需要注明来自公众号EAWorld。

作者:Pratik Jain
译者:白小白
原题:Deploying a Secure Cloud Native Microservices Platform
原文:http://t.cn/EA51syW

全文1714字,阅读约需要5分钟

微服务架构多年来一直在发展,有许多开源组件和供应商组件可用于部署安全的微服务平台。

下面,我将把关键组件和如何管理分发所需的不同功能组合在一起,以构建和部署一个模块化的即插即用平台,您可以扩展该平台,并满足所有的安全需求。下面的图表看起来可能令人望而生畏,但是构建一个可伸缩的可靠平台确实需要付出一些努力。我试图尽可能地使用大多数开放源码技术,但是在某些情况下,利用商业产品(如Apigee和Cloudflare)是有意义的,因为从成本和协调的角度来自己构建这些功能可能并不值得。团队的主要重点应该是构建微服务和任何可以使其易于管理、部署、编排等的东西。其他组件对团队来说应该是透明的,只需要在用到时可以随手找到即可。


Pratik Jain:部署一个微服务平台

我们可以将整体架构主要分解为4层,以隔离平台的关键角色和职责。

1、外部架构(Outer Architecture)

这一层的主要关注点是安全性,重点是通过缩减威胁向量和攻击表面的方式,来保护您的微服务免受Bots、DDOS等外部攻击的影响,并使您具有可见性和能力来管理和监控进站流量,同时提供一些关键功能来扩展和管理您的平台入口点。

白小白
威胁向量(threat vectors),指网络攻击的路径,如来自网络的外部攻击,来自网络(VPN)的内部攻击,来自局域网的内部攻击,来自本地系统的内部攻击等;攻击面(attack surface),指潜在安全隐患的集合,如用户输入字段、协议、接口和服务等。

外部架构有三个关键部件:

a.云接入安全代理(CASB)/Web应用防火墙(WAF)

这是您的入口点,是防火墙,可以保护您的网站/基础设施的安全,防止外部攻击,只过滤基于适当协议的有意义的流量对网站的访问,并管理基于防火墙规则的出站流量。

b.API网关(API Gateway)

访问API的中介(代理)

c.内容分发网络(CDN)

内容分发网络(CDN)提供Internet内容的快速分发,允许加载Internet内容所需资产的快速传送,包括HTML页面、Javascript文件、样式表、图像和视频。

2、内部架构(Inner Architecture)

这就是管理您的微服务所需要的,包括API管理、API安全性、服务间通信、性能、可靠性和可伸缩性,以及监视和收集度量来管理整个平台。

内部架构包括3个关键组件:

a.服务网格架构(Service mesh Architecture)

服务网格的两个主要目标是,洞察以前不可见的服务通信层,并完全控制所有微服务通信逻辑,如动态服务发现、负载平衡、超时、回退、重试、断路器、分布式跟踪和服务之间的安全策略执行。这些洞察力有赖于流量审计和跟踪功能的支撑。

b.事件管理基础设施(Event Mgmt. Infrastructure)

这一层有助于管理事件,简化微服务平台内外的通信流程。

c.微服务架构(Microservices Architecture)

这里定义了您希望基于领域驱动和行为设计方法构建微服务的粒度。第一层是您的数据编排服务,其次是领域功能服务,然后是更细粒度的数据和功能服务。

3、数据架构(Data Architecture)

这些是存储和缓存数据所需的数据存储,以及管理平台所需的数据分析、数据仓库功能。您可以根据缓存、文档数据、事务数据的需要,在这里使用具有不同功能的数据库。

4、平台管理架构(Platform Management Architecture)

定义了如何管理平台,着眼于您的内部团队和构建平台所需的各种功能,以及如何在生产环境中部署和监视相关服务。

a.开发(Development)

这是一个开发人员工具箱,帮助开发者端到端地管理API生命周期,并与DevOps功能集成,以管理您的代码库并将其交付给您的测试或生产环境。

b.DevOps

这包括您的CI/CD功能,包括构建管理、容器管理、Kubernetes Pods管理、部署、缩放和交换服务、版本控制等,以便有一个有效的管道将代码迁移到不同的环境中。

c.生产管理(Production Mgmt)

这涉及到管理您的基础设施,包括分布式跟踪、监视/警报功能、索引日志、搜索和检索日志以及查看关键指标的仪表板的能力。其中一些还可以输入您的CI/CD管道,这取决于您想要在平台中构建多少自动化和可伸缩性。


这是关于微服务架构的系列文章中的第一篇。我将更深入地讨论每个架构层级,并在随后的文章中更详细地加以阐述。

我与文章中提到的任何一家公司没有任何联系。我收集这些数据完全是基于我的研究,对我来说尽可能地保持厂商无关性似乎是最好的选择。可能还有其他类似的选项可以提供相同的功能集,在某些情况下,您还可以决定自行构建或者购买,以及使用云提供商提供的一些功能。

关于EAWorld:微服务,DevOps,数据治理,移动架构原创技术分享,长按二维码关注

COMMENTS

需要 后方可回复
如果没有账号可以 一个帐号。