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

本文为翻译发表,转载需要注明来自公众号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(eaworld)

原文发表时间:2018-11-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏带你撸出一手好代码

极简主意编程

模拟几个工作场景 1 开发:新部署的程序在线上环境跑不起来,但是在测试环境运行正常,运维帮忙看看是不是环境安装有问题 运维:所有软件都是原模原样从测试机拷贝过来...

33160
来自专栏JAVA技术zhai

千万级流量的优化策略实战

性能优化涉及面很广。一般而言,性能优化指降低响应时间和提高系统吞吐量两个方面,但在流量高峰时候,性能问题往往会表现为服务可用性下降,所以性能优化也可以包括提高服...

68150
来自专栏美团技术团队

性能优化模式

摘要 性能优化涉及面很广。一般而言,性能优化指降低响应时间和提高系统吞吐量两个方面,但在流量高峰时候,性能问题往往会表现为服务可用性下降,所以性能优化也可以包括...

46150
来自专栏LET

CPU之Profiling

之前我们介绍了CPU,Cache,主要在原理上理解如何充分调用CPU的性能(Why),接着又学习了SIMD技术,算是在编程层面上发挥CPU的并行计算能力(How...

29930
来自专栏开源优测

简单谈下性能测试

最近一直有人在QQ群或微信群或直接问我关于性能测试实践过程中的一些问题,归纳起来大体侧重以下几个方面: 看不懂或是没看报错信息 工具使用不熟,对很多参数的...

29750
来自专栏大数据和云计算技术

Cloud_Native是什么?

Cloud_Native概念最近比较火,因此研究下到底讲的是什么含义。 Cloud_Native从概念上讲核心说的是传统的应用部署在数据中心上的架构不适合云化的...

32580
来自专栏CSDN技术头条

如何为微服务选择数据库

作者 | Jeff Carpenter, InfoWorld 翻译 | Jackyrong 你的微服务架构需要多种数据模型。你是应该选择混合持久化呢还是多模型数...

256100
来自专栏后端技术探索

性能优化模式(纯干货!!)

性能优化涉及面很广。一般而言,性能优化指降低响应时间和提高系统吞吐量两个方面,但在流量高峰时候,性能问题往往会表现为服务可用性下降,所以性能优化也可以包括提高服...

15640
来自专栏CSDN技术头条

浅析:如何构建稳定的系统

作者:Jesper L. Andersen 原文:How to build stable systems 译者:孙薇 准备工作 第一个决策是最简单却最为重要的...

23060
来自专栏haifeiWu与他朋友们的专栏

浅谈程序设计

快要毕业了,这里为同学们分享一下我学习编程的过程以及我的一些关于程序设计的理解,希望会对你们今后的学习有所帮助。如果有不同的观点,欢迎评论留言~

13920

扫码关注云+社区

领取腾讯云代金券