爱吧机器人网 » 技术 > 大数据 > 正文

经典实操!如何实施大数据微服务基础架构?

核心提示:大约一年前,我们遇到了一些阻碍我们开发和部署过程的挑战,所有这些都来自我们当时所采用的单体架构。事实上,团队对下一次部署过程充满了

大约一年前,我们遇到了一些阻碍我们开发和部署过程的挑战,所有这些都来自我们当时所采用的单体架构。事实上,团队对下一次部署过程充满了担忧,这个过程变得困难并且涉及到了,部署新功能与开发它们一样是一个巨大的挑战。部署也非常耗时,即使在所有事情都应该如期完成的情况下也需要半天的时间才能完成。

为了缓解这些问题,我们着手建立新的精简基础设施。更具体地说,我们的目标是创建一个定义明确的流程,用于部署需要的任何基础设施,实现通用的基础设施元素,为所有区域和层提供可重复的环境,并确保流程不会对参与其中的任何人造成困扰。

为了实现这些目标,我们开始探索基于微服务架构的可能实现。因为我们所在的公司主要业务在金融服务领域,帮助电子商务企业检测并防止消费者欺诈。我们在追求这种新架构的同时,意识到需要采取充分有效的安全和数据处理措施。这样做可以最好地满足客户的要求,并满足监管我们行业的非常严格的数据保护法规。

正如您在本图中看到的那样,我们以前存在的架构是一个非常传统的架构,包括应用空间,单体应用,分段数据库以及在我们的企业内不可信的第三方软件。

\

当时我们的基础架构显示了一个复杂的环境,其中使用了大量的KVM。更复杂的是,这些KVM中的每一个都是独特的。这意味着它们不可复制,并且很难维护。

\

使用基于微服务的基础架构,对于该我们来说是第一次,对我们的团队来说也是一个全新的挑战。为了开始实施这个新的基础架构,我们开始引导旧环境,建立一个可编排的并丢弃一些对我们来说效果不好的组件。但我们也调整了我们的整个流程(包括构建管道),并为新基础架构准备并运行了服务器。然后,我们开始制作一个高度灵活的原型,适合与Docker和我们新的工具链完全集成。

我们早期学到的关于微服务的一点是:完美的微服务是完全解耦的。它什么都不知道。它不知道与谁交谈,在哪里或是谁。它不一定依赖于队列,也不应该(我们需要建立一个队列让我们学习这一点)。我们甚至不知道微服务在哪里,除非我们在基础设施中查找它。

从去年创建的最初原型开始,这种新的基础架构发展非常迅速。随着Docker的投入使用,我们能够设置一键式部署并实现我们的目标,即拥有可重复的环境。我们在迁移旧服务时遇到了一些问题,这导致我们发现节点包rc对Dockerize来说是一个非常有利的配置包。

为了支持我们的新基础架构,我们改变了我们的堆栈,我们利用GitLab作为解决方案的存储库。正如前面提到的,Docker使我们能够在重现性,通用性和可追踪性方面实现我们的目标。我们将Rancher作为我们的编排解决方案,因为它对我们的开发人员来说是最原生的体验,并且允许我们快速编译我们的遗留基础架构。Instana为我们提供强大的应用性能监控和微服务监控框架,能够实现有用的自动化,为我们提供对我们所需系统的深入了解。Kibana,Elasticsearch和Logstash也有关键部分。为了满足我们独特但关键的监管需求,NeuVector在这里扮演着一个重要角色,作为创建防火墙规则的自动化解决方案,并在微服务环境的复杂性中处理安全问题。

现在看看我们新的基于微服务的基础设施,显示我们的数据库是相同的,基本设计非常相似。改变之处在于,现在一切都变成了微服务,除了一些正在开发的遗留的庞然大物以及不可更改的必要第三方应用之外。

\

以前,我们依靠网络分段,使用四个分段网络来满足必要的数据保护法规。由于这些法规,我们有某些数据是不允许合并的,我们必须严格控制哪些应用可以访问哪些其他应用。

今天,我们能够满足我们的监管需求,同时利用更简单,更易维护的基于微服务的基础架构,这比以前更安全,因为由于docker和不可变的基础架构,环境约束可能更严格。现在只使用两个网络:数据库网络和应用网络。

\

分离数据库不是必需的,但是在这种情况下完成是为了提供高性能的专用服务。该设置还提供通用数据存储,Docker通常不需要这些数据存储,但可用于满足传统需求。同时,数据库等特殊服务需要特殊待遇;你想要保护他们更多,因为这是你的数据所在。还有一些例子,你可能需要解决某些特殊硬件需求,例如安装NVMe磁盘或安装特殊的CPU架构,如IBM的POWER8。将一个数据库放到Docker中会带来一些好处:它使数据库具有可重复性,通用性并且更容易扩展。我们使用CockroachDB来满足这些需求。

从这里开始,我们准备生产的最后一步就是准备好安全性,日志记录和监控功能。这样做需要深入了解我们的流量以及我们的应用的行为方式,不仅仅是为了安全的目的,而且还有助于解决问题。请记住,在微服务框架内,了解哪些服务可以相互沟通至关重要。这里Docker通过提供不变性产生另一个好处,它允许严格的访问规则来控制服务之间的内部通信或外部与互联网的通信。

对于安全自动化,我们严重依赖NeuVector来处理容器环境的复杂性。由于手动防火墙规则太大而无法在微服务系统中管理,因此需要一种自动安全的安全方法(NeuVector提供了这些规则自动为你创建优势)。此策略还有助于处理常见漏洞和CVE,这些漏洞和CVE是在问题修复程序可用时发布的。当生产中的镜像需要CVE修补程序时,NeuVector会通过触发我们的CI管道自动应用此修补程序,从而重新部署这些易受攻击的镜像。

关于它还有一点:容器安全软件在容器环境中也具有系统智能,进一步提高了安全性。不变性允许详细的行为分析,说明系统在受到攻击之前和之后如何行动,以便环境中的通常流量被列入白名单,并且立即识别并阻止任何异常行为造成伤害。这些安全功能是我们内部系统智能的完美延伸,并为实现我们公司合法维护的数据安全提供了巨大的支持。

有了新的微服务基础设施,我们将需要1-2个月的周期加速到1-2周。我们的小功能周期加速到以前正常sprint的时间。现在,小功能可以在准备就绪后立即推出,这意味着客户不会等待重要更新的部署。以前,分段不能按需完成,但是由于其过于复杂而在夜间部署,而且在每次部署之前我们都有大量准备时间,因为担心会发生什么。这被称为恐惧驱动的业务(fear driven business),最终导致更糟糕的软件:你遭受瘫痪,做出的恐惧决定会伤害你,而不是帮助你。现在,分阶段会根据需求进行,并且不需要准备时间。我们以前的麻烦部署流程已经很简单,开发和部署都更加迅速。

在实施这些解决方案的过程中,我们学到了一些重要的东西。我们发现,进行这些变革的主要挑战是在公司文化中赢得对他们的支持,因为毕竟系统和流程并不像人们那样情绪激动。当其他人看到商业案例有意义并为他们带来好处时,他们会接受并希望使用。实际上,许多开发人员非常讨厌操作,自动化不是替代方案,而是解决方案。根据我们团队的经验,如果你能够成功驾驭所涉及的文化变迁,那么实施高度自动化的基于微服务的架构会带来巨大的收益,因为Docker可以将你的步伐加快几个数量级。

上一篇:大数据——人工智能的“营养剂” 它的来源及应用介绍
下一篇:五分钟读懂大数据MapReduce架构及原理

本周栏目热点

大数据征信:芝麻信用如何破题

[1970-01-01]   编者按:今年1月,中国人民银行印发《关于做好个人征信业务准备工作的通知》,要求八家机构做好个人征 ...

如果中国放开数据 五大机会不容忽视

[1970-01-01]   美国总统奥巴马在2013年5月签署了开放数据政策,并在讲演中指出美国政府的开放数据将会推进商业发展, ...

华尔街玩转社交网络大数据:利用你的恐惧赚钱

[1970-01-01]   5月28日,当上证指数以重挫6 5%结束一天行情时,网络上到处弥漫着恐慌与迷茫的情绪。就在投资者在坚守 ...

马云思考阿里下一个15年:大数据是未来核心

[1970-01-01]   阿里巴巴的上市让马云成功登上中国财富状元,但他却称连自己小区的首富都不想当。马云表示,阿里上市后 ...

云计算和大数据延伸至生命信息领域:生物云计算

[1970-01-01]   随着互联网的普及和技术的发展,大数据和云计算已经渗透在人们的生活的各个方面,在金融,零售,能源, ...

精选推荐

这些人型机器人是如此真实,你的肉眼几乎无法区分
这些人型机器人是如此真实,你的肉眼几乎无法区分

[2017-09-03]   我们生活在一个区分现实与幻想变得越来越困难的世界。由于机器人技术的进步,创造人工的人类正在逐渐接近完美的最终目标。我们现在看到的机器人不再只是一块发光二极管,......

农业将为高科技行业 农业机器人的应用领域
农业将为高科技行业 农业机器人的应用领域

[2017-12-17]  农业正在迅速成为一个令人兴奋的高科技产业,吸引了新专业人士,新公司和新投资者。技术发展迅速,不仅提高了农民的生产能力,而且促进了我们所知道的机器人和自动化技术的发展。...

亚马逊CEO杰夫·贝佐斯操控巨型有人驾驶机器人(巨型机甲)
亚马逊CEO杰夫·贝佐斯操控巨型有人驾驶机器人(巨型机甲)

[2017-03-21]  近日,亚马逊CEO杰夫·贝佐斯实现了每一个6岁儿童都会有的梦想,他控制了一个巨大的机甲机器人。据国外媒体Verge报道,前天(3月19日),贝 ...

德国研发出一种能在你体内工作的微型机器人

[2018-01-26]  纽约时报的报道,德国的研究人员已经开发出一种长约七分之一英寸的机器人,首先看起来不过是一小块橡皮条。然后它开始移动。机器人走路,跳跃,爬行,滚动和游泳。它甚至爬出......

什么是机器人学?机器人学简介
什么是机器人学?机器人学简介

[2017-12-14]  机器人学是工程学与科学的交叉学科,包括机械工程,电气工程,计算机科学等。机器人技术涉及机器人的设计、制造、操作和应用,以及用于控制、感官反馈和信息处理的计算机系统。...

7种常见的机器人焊接类型
7种常见的机器人焊接类型

[2017-12-17]  机器人焊接是工业领域最常见的机器人应用之一,近几十年来主要由汽车行业驱动。机器人焊接在完成大批量,重复性的焊接任务时效率最高。...

美国Natilus公司试飞水上无人货机 设计简单成本降低
美国Natilus公司试飞水上无人货机 设计简单成本降低

[2017-12-28]  Natilus创业公司成立于2014年,其梦想是建造大型无人机,以半价提供比船舶快得多国际货运。在十二月份,Natilus计划在旧金山湾测试一个9米翼展的小型原型无人机的水上滑行能力......

机器人iCub作为嵌入式AI的标准机器人研究平台的重要性
机器人iCub作为嵌入式AI的标准机器人研究平台的重要性

[2017-12-24]  机器人的研究在过去10年中得益于一个具有嵌入式人工智能(AI)的标准化开源平台——人形机器人iCub。iCub最初在意大利被创建,如今在欧洲、美国、韩国、新加坡和日本的实验室......