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

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

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

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

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

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

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

\

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

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

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

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

傅志华:大数据应用在中国的创业机会

[1970-01-01]   文:傅志华大数据的产业链从整体上可以分为四大层,包括IT基础层、数据基础层、数据应用层和数据安全层 ...

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

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

人工智能和大数据的开发过程中需要注意这12点

[2018-09-14]  人工智能是近年来科技发展的重要方向,在大数据时代,对数据采集、挖掘、应用的技术越来越受到瞩目。在人工智能和大数据的开发过程中,有哪 ...

精选推荐

智能机器人困惑的时候知道该问什么问题
智能机器人困惑的时候知道该问什么问题

[2017-03-20]   照片:Nick Dentamaro 布朗大学 上周,我们提到了麻省理工学院的一些研究,即通过链接人的大脑来帮助机器人在他们将要犯错误的时 ...

2018年企业数字化转型的五大趋势
2018年企业数字化转型的五大趋势

[2017-12-16]  据2016年哈佛商学院研究表明,选择进行数字化转型的企业在3年内表现出了55%的平均毛利润提升,相比之下其他企业毛利润同期降低了37%。数字化转型企业的领头羊,也曾是收入处于......

揭秘达芬奇手术机器人
揭秘达芬奇手术机器人

[2018-04-19]  达芬奇手术系统是由美国Intuitive Surgical公司制造的机器人手术系统。美国食品和药物管理局(FDA)于2000年通过该标准,旨在利用微创手段 ...

基于生物启发的机器人很容易适应丢失附属器官
基于生物启发的机器人很容易适应丢失附属器官

[2017-12-17]  很多机器人被设计应用在危险环境,如灾难现场。在这些地方,他们的运动系统完全有可能被损坏。那这样会吓跑这些机器人吗?也许不是,如果它们像日本的东北和北海道大学创造的......

如何让人工智能机器人快速自我纠正错误并吃一堑长一智?
如何让人工智能机器人快速自我纠正错误并吃一堑长一智?

[2017-08-23]  莱斯特大学数学系的研究人员在《Neural Networks》杂志上发表了一篇文章,概述了新算法的数学基础,可以使人工智能收集错误报告并立即纠正,而不影响现有技能 ,同时还会积......

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

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

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

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

人工神经网络技术解码人类行为和想象时的大脑活动信号
人工神经网络技术解码人类行为和想象时的大脑活动信号

[2017-08-23]  为搜索引擎过滤信息,棋盘游戏对弈,识别图像 人工智能在某些任务中远远超过了人类智能。来自弗莱堡由神经科学家私人讲师Tonio Ball博士领导的几个杰出的BrainLinks-Bra......