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

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

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

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

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

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

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

\

当时我们的基础架构显示了一个复杂的环境,其中使用了大量的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]   本文从一则搞笑的大数据应用案例入手:某超市通过分析一位女顾客的购物数据(包括购物清单,浏览物品, ...

大数据的未来:数据是商品,你就是猎物

[1970-01-01]   大数据 的未来发展必将彻底影响着人们的生活,每个人都无形的被 大数据 贴上了无数个属性标签。下面详细解 ...

[1970-01-01]   ■ Bernhard Thies我们经常谈 大数据 ,什么是 大数据 呢? 大数据 首先它体积非常大,有各种各样的数据, ...

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

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

[2017-08-14]    技术并不是指单一的某一种技术,更多的是指总体的趋势,即所有产业会朝着什么样的方向发展。作为技术而言,其一个非常重要的特点就是无 ...

精选推荐

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

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

人工智能民主化能否实现取决于科技巨头
人工智能民主化能否实现取决于科技巨头

[2017-12-29]  我们经常听到像谷歌和微软这样的公司说他们希望人工智能民主化。这是一个很好的词,民主化。 但这些公司如何界定“民主化”还不清楚,像AI本身一样,它似乎有点炒作的味道...

科学家从蟑螂获得启发 教机器人更好地走路
科学家从蟑螂获得启发 教机器人更好地走路

[2017-12-11]  Weihmann指出:“我特别感到惊讶的是,动物运动稳定机制的变化与腿部协调的变化是一致的。昆虫的慢运行非常稳定,因为它的重心很低,三条腿总是以协调的方式运动。...

2022年全球工业机器人市场将达到790亿美元
2022年全球工业机器人市场将达到790亿美元

[2017-09-04]  预计到 2022年, 全球工业机器人市场将达到790亿美元, 并在预测期内登记11 5% 的复合年增长率。随着发展中国家中小型企业需求的不断增长, 采用自动化技术以确保生产质量......

助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出
助力卷积神经网络时空特征学习 史上最大行人重识别视频数据集被提出

[2017-12-25]  本文提出了一个大型的、长序列的、用于行人重识别的视频数据集,简称LVreID。与现有的同类数据集相比,该数据集具有以下特点:1)长序列:平均每段视频序列长为200帧,包含丰......

苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展
苹果AI主管透露自动驾驶汽车项目关于机器学习方面的进展

[2017-12-11]  苹果隐秘的自动驾驶汽车项目多年来一直在转移焦点,但今年似乎正在加速。 4月份,公司获得了在加利福尼亚州进行自动驾驶汽车测试的许可证,而在6月份,苹果公司首席执行官库......

机器人工程师具体都做什么?
机器人工程师具体都做什么?

[2017-12-08]  机器人工程师是幕后设计师,负责创建机器人和机器人系统,能够执行人类无法完成或不愿意完成的任务。 通过他们的创造,机器人工程师帮助工作更安全,更轻松,更高效,特别是......

谷歌在中国成立一个新的人工智能(AI)研究中心
谷歌在中国成立一个新的人工智能(AI)研究中心

[2017-12-13]  谷歌正在中国建立一个新的人工智能(AI)研究中心,希望进一步扩展到中国,以充分利用中国高度重视的人工智能技术。人工智能是目前地球上最具竞争力的领域之一,亚马逊,微软......