混合云/多云环境如何部署微服务

微服务能够为混合云或多云部署带来大量的好处,但是它们也能够带来与网络、安全性等相关的新挑战。

大多数IT企业已经开始认识到在开发和部署中实施软件组件化的好处。在云中,组件化带来了重要的优势,例如增加弹性和支持横向扩展。

微服务(即通常在应用程序中共享的小型功能组件)能够显著地放大这些优势。但是,首先用户必须正确地规划、开发和部署微服务。

了解如何让微服务起作用

如需开始规划微服务,IT团队需要了解微服务与以服务为导向架构中应用程序组件或元素的不同之处。微服务不是完整的应用组件;它们是在应用中作为服务专为共享而设计的——这意味着多个应用能够在同一时间内调用微服务的单个实例。微服务也是专为使用类似于网络RESTful接口而设计的。

如果微服务不符合上述定义,那么它们可能不会提供很多好处的。当微服务能够符合上述特点时,用户需要在混合云或多个云部署中维护每一个微服务。

微服务对多云网络的影响

因为微服务是小块的功能组件,它们可以将应用程序分解成为对外部服务的很多个连续请求。这个用于访问服务的网络有可能引入传输延迟和其他网络性能问题。至关重要的是,链接微服务和使用它们提供服务质量(QoS)的应用的网络连接需要支持用户体验。在用户部署微服务之前,应跨用户的混合云或多云环境测试所有负载变化下的微服务运行性能。如果用户的服务质量低于可接受水平,那么可变更网络连接以矫正之。另外,用户可以设计自己的应用部署过程以便于服务不会移动到用户网络中的盲点。

混合云和多云应用中的网络性能问题通常都与数据流量流经多云、或云和数据中心以及边界点的方式相关。可以与用户的云供应商进行沟通,让用户的VPN供应商和数据中心团队协力优化网络连接性。应特别谨慎处理多云应用,因为很多公共云供应商并不与其他供应商直接相连;他们会希望连接通过用户的VPN或数据中心网络。如果在一个云中的一个应用使用了另一个云中的一个微服务,那么就存在着一个长传输延迟的潜在可能。如果用户不能降低延迟时间,那么就应尽量避免跨云供应商网络的微服务访问。用户可能需要在每一个云环境中都部署一个服务副本,从而避免这样的网络性能问题。

多个应用程序访问微服务还需要专门的优化网络。访问微服务的最简单方法就是假定拥有一个连接用户所有云和数据中心的专用网络。通过使用这种方法,用户可以在任何位置部署微服务,而应用可以使用标准IP机制——URL和域名服务(DNS)或其他服务目录方法,来让应用程序访问它们。

当微服务在不同云供应商之间或在云供应商与数据中心之间迁移时,还会带来另一个挑战。通常情况下,这种迁移需要改变IP地址,这意味着微服务迁移后必须将服务逻辑名称关联不同地址。应确保用户有用于更换故障组件的工具和措施,从而对DNS或服务目录项做出必要的修改,以便用户的应用程序能够在微服务的新地址找到新服务。

安全地部署微服务

多个应用经常共享一个单一的微服务,这一事实带来了混合云和多云环境中的另两个挑战:安全性和合规性,以及状态和无状态行为。

由于应用在任何时候都在共享功能,所以具有严格合规性需求的应用程序就存在着违规风险。这是因为共享服务可能会为外人留下一个进入的窗口。由于迁移微服务或在负载下复制微服务需要相当开放的寻址方法,所以用户需要确保每一个微服务及其访问的安全性。避免微服务混合要求安全性和合规性监控的功能与其他开放给更大社区的功能——让它们成为两个不同的微服务。

探索状态和无状态问题

状态与无状态问题是很复杂的,即便对于软件架构师和开发人员来说亦是如此。应用程序通常支持包括多个步骤或状态的交易型活动。例如,假设我们有一个被称为“两个数相加”的服务。如果我们在一个请求中提出第一个数,在另一个请求中提出第二个数,而其他用户可能会无意中在我们的两个数之间引入他们自己的数字,那么我们就会得到错误的答案。

如果微服务无法在向它发出的请求之间保存数据,那么如有需要可令请求无状态或者确保他们能够以某种方式传输状态。在我们的例子中,提供两个待相加的数字就可省去多次请求以及消除状态行为风险。此外,还可以让请求包含一个微服务能够通过后端数据库与状态关联的用户ID。当提出我们的第一个数时,微服务将在数据库中记录下这个数。然后,当提出第二个数时,微服务就能够将两个数相加并返回结果。

对于多功能性、敏捷性和灵活性总是有一个物有所值的价格的,而在混合云和多云中使用微服务则代表着我们研究领先优势的这三项特点。仔细规划、尽量降低价格并部署可轻松扩展至复杂云未来的微服务。

本文转自d1net(转载)

时间: 2024-10-23 08:21:13

混合云/多云环境如何部署微服务的相关文章

Java微服务开发指南 -- Java环境下的微服务

Java环境下的微服务 本文涉及的内容,能让你学到什么?     本书适用于开发微服务的Java开发人员和架构师.我们在开始介绍微服务架构前,先讲述一些抽象的基本概念.不幸的是,使用新技术并不能神奇地解决分布式系统问题.但是我们通过一些做的很好的公司,它们是如何使用微服务来进行构建的,包括文化.组织结构和市场压力.然后我们深入了解几个Java微服务框架,附带的源代码反馈可以在GitHub上找到.我们会讨论有关部署.集群.故障转移以及Docker和Kubernetes在这些领域是如何解决这些问题.

生产环境中保持微服务井然有序的五大措施

监控是一种明智的做法.系统会逐渐变得高度碎片化,为了对系统的运行状况获得更全面的了解,人们对集中式监控和日志会产生越来越高的需求. Alex谈到了在最新一期播客节目中所涉及的一个场景,这个场景中需要对有问题的版本进行回滚,这就要确定相应的微服务,并确定进行回滚可能会对其他服务产生的影响.他认为: 结论1:如果你认为对单层(Monolith)体系结构进行监控已经很困难,微服务的监控要比这个难十倍,需要事先做好极为充分的规划和更大的投入. 对于第二个问题,Alex谈到了我们已经从Sam Newman

Kubernetes和Spring Cloud哪个部署微服务更好?

Spring Cloud 和Kubernetes都自称自己是部署和运行微服务的最好环境,但是它们在本质上和解决不同问题上是有很大差异的.在本文中,我们将看到每个平台如何帮助交付基于微服务的架构(MSA),它们擅长哪个领域,并且如何两全其美的使用从而在微服务之旅上获得成功. 背景 最近我读了 A. Lukyanchikov的一篇非常棒的文章(https://dzone.com/articles/microservice-architecture-with-spring-cloud-and-do),

[Linux]阿里云免费试用体验(在阿里云的ubuntu上部署个人服务)

作为一个IT界的人,一般都希望有一个独立的博客,或者一部独立的机器.所以我一直在找机会,拥有一台自己可以独立控制的机器,自己想干嘛干嘛.当然这在虚拟机或者自己的PC上面也可以实现,但是这跟一台一直开着挂在网上的服务器体验是完全不一样的.   申请 一直很想试试阿里云.之前有一次申请免费试用,不知道是不是当时网站存在bug,结果一直卡在手机验证的环节.后来又申请了一次,终于可以了. 五一前又申请了一次免费试用,终于成功了: 之后等审核,审核的时候阿里云会打电话过来进行简单的确认,问你用来干嘛,最后

微服务框架和工具大全

在<Java微服务>一书中,我们使用 Spring Cloud,它提供使微服务非常容易地开发所需的所有工具和平台.Spring Cloud使用 Netflix开放源码软件( OSS).让我们探讨 Netflix OSS--一个完整的软件包. Netflix开放源码软件(OSS) Netflix开放源码软件中心是基于 Java的微服务开放源码项目最流行和最广泛使用的开放源码软件.世界上最成功的视频租赁服务依赖于它.Netflix已经有超过 4000万用户,他们在全球各地使用其服务.Netflix

一分钟了解微服务的好处和陷阱

微服务架构设计代表了一种架构设计思想,配合现在的容器技术(如 Docker),可在软件开发流程.部署.服务维护等各方面产生效率提升. 但不一定所有的业务场景都适合微服务,有时候非常简单的业务场景下,微服务反而会降低效率.什么是微服务,其特性,好处及陷阱,是本文要讨论的内容.   一.什么是微服务 微服务是一种软件架构风格,它是以专注于单一责任与功能的小型功能区块为基础,利用模组化的方式组合出复杂的大型应用程序,各功能区块使用与语言无关的 API(例如 REST)集相互通讯,且每个服务可以被单独部

中间件和微服务,Docker以及原生云架构的关系

微服务和Docker的发展势头 微服务和容器的主要目标是缩短软件开发时间,以及实现开发.部署以及运维的更大灵活性.为什么它过去几个月的发展势头这么猛?因为几乎所有科技巨头企业如亚马逊,谷歌,Facebook,Netflix都在这里激烈竞争. 微服务就像是一个面向服务的架构(SOA):这是一种架构和供应商技术分别独立的设计理念.因此,目前并没有明确的界定标准或规范.你永远需要在和其他人讨论之前定义你所理解的微服务术语.每个人都有不同的定义.在这篇文章中微服务是被开发,部署和独立缩放的服务.它们可以

Juniper发布Unite架构,简化创建、管理混合云环境

Juniper Networks日前发布了一个可以简化混合多云环境创建和管理的数据中心架构Unite Cloud,作为Juniper Networks Unite的一部分,Unite Cloud是一个安全,灵活的企业级架构,能够降低总体拥有成本,同时提高长期投资回报率. 除了Juniper现有的数据中心解决方案,Unite Cloud还包括一个强化版Junos Space Network Director管理应用程序,利用先进的自动化来分析和控制数据中心,新的100 GB Juniper QFX

基于微服务和Docker容器技术的PaaS云平台架构设计

本文讲的是基于微服务和Docker容器技术的PaaS云平台架构设计[编者的话]在系统架构上,PaaS云平台主要分为微服务架构.Docker容器技术.DveOps三部分,这篇文章重点介绍微服务架构的实施. [3 天烧脑式容器存储网络训练营 | 深圳站]本次培训以容器存储和网络为主题,包括:Docker Plugin.Docker storage driver.Docker Volume Pulgin.Kubernetes Storage机制.容器网络实现原理和模型.Docker网络实现.网络插件.