微服务实战(六):选择微服务部署策略

  • 时间:
  • 浏览:3
  • 来源:5分3DAPP下载_5分3DAPP官网

在下一篇也是本系列最后一篇​博客中,许多人 来讨论怎么才能 才能 将另另一有另好哪几个 单体式应用迁移到微服务架构。原文链接:Choosing a Microservices Deployment Strategy(翻译:杨峰)

下图展示的是许多架构:

Netfix采用许多架构部署video streaming service。Netfix使用Aminator将每个服务打包成另另一有另好哪几个 EC2 AMI。每个运行服务实例要是另另一有另好哪几个 EC2实例。有要是有工具时会 用来搭建此人 的VMs。时会 配置持续集成(CI)服务(类事,Jenkins)除理Aminator将服务打包成EC2 AMI。packer.io是自动虚机映像创建的另外并是否选着。跟Aminator不同,它支持一系列虚拟化技术,类事EC2,DigitalOcean,VirtualBox和VMware。​Boxfuse公司有另另一有另好哪几个 创新办法创建虚机映像,克服了如下不足。Boxfuse将java应用打包成最小虚机映像,它们创建没有快,启动更快,后来 对外暴露服务接口少而更加安全。CloudNative公司有另另一有另好哪几个 用于创建EC2 AMI的SaaS应用,Bakery。用户微服务架构通过测试后,时会 配置此人 的CI服务器激活Bakery。Bakery将服务打包成AMI。使用如Bakery的SaaS应用是是因为 用户不没有 浪费时间在设置此人 的AMI创建架构。每虚拟机服务实例模式有许多优势,主要的VM优势在于每个服务实例全是完全独立运行的,全是每所许多人独立的CPU和内存而无需被其它服务占用。另外另另一有另好哪几个 好所处于用户时会 使用心智心智成熟图片 图片 期期 期期图片 云架构,类事AWS提供的,云服务都提供如负载均衡和扩展性等有用功能。还有另另一有另好哪几个 好所处于服务实施技术被自中含了。一旦服务被打包成VM就成为另另一有另好哪几个 黑盒子。VM的管理API成为部署服务的API,部署成为另另一有另好哪几个 非常简单和可靠的事情。单虚拟机单实例模式全是缺点。另另一有另好哪几个 缺点要是资源利用速率不高。每个服务实例战友整个虚机的资源,包括操作系统。要是,在另另一有另好哪几个 典型的公有IaaS环境,虚机资源全是标准化的,有后来 未被充分利用。要是,公有IaaS根据VM来收费,而不管虚机是是否繁忙;类事AWS提供了自动扩展功能,要是对随需应用不足快速响应,使得用户不得无需 部署虚机,从而增加了部署费用。另外另另一有另好哪几个 缺点在于部署服务新版本没有快。虚机镜像后来 大小是是因为 创建起来没有快,同样是是因为 ,虚机初始化也没有快,操作系统启动也没有 时间。要是这并不老要是那我 ,许多轻量级虚机,类事使用Boxfuse创建的虚机,就比较快。第另另一有另好哪几个 缺点是对于运维团队,它们负责许多客制化工作。除非使用如Boxfuse类事的工具,时会 帮助减轻几瓶创建和管理虚机的工作;要是会占用几瓶时间从事与核心业务不太无关的工作。没有 许多人 来看看另外并是否仍然具有虚机行态,要是比较轻量的微服务部署办法。

单容器单服务实例模式

当使用许多模式时,每个服务实例都运行在每所许多人容器中。容器是运行在操作系统层面的虚拟化机制。另另一有另好哪几个 容器中含若干运行在沙箱中的多多线程 。从多多线程 宽度来看,许多人 有每所许多人的命名空间和根文件系统;时会 限制容器的内存和CPU资源。许多容器还具有I/O限制,类事容器技术包括Docker和Solaris Zones。

原文发布时间为:2016-02-28

Lambda 函数 是无状态服务。一般通过激活AWS服务除理请求。类事,当映像上载到S3 bucket激活Lambda函数后,就时会 在DynamoDB映像表中插入另另一有另好哪几个 条目,给Kinesis流发布一根消息,触发映像除理动作。Lambda函数时会 能 通过第三方web服务激活。有并是否办法激活Lambda函数:

  1. 直接办法,使用web服务请求
  2. 自动办法,宣告类事AWS S3,DynamoDB,Kinesis后来 Simple Email Service等产生的事件
  3. 自动办法,通过AWS API网关来除理应用客户端发出的HTTP请求​
  4. 定时办法,通过cron响应​--很像定时器办法
时会 看出,AWS Lambda是并是否很方便部署微服务的办法。基于请求计费办法是是因为 用户只没有 承担除理此人 业务那次责的负载;另外,后来 不没有 了解基础架构,用户只没有 开发此人 的应用。然而还是有不少限制。不没有 用来部署长期服务,类事用来消费从第三方代理转发来的消息,请求没有 在150秒内完成,服务没有 是无状态,后来 理论上AWS Lambda会为每个请求生成另另一有另好哪几个 独立的实例;没有 用并是否支持的语言完成,服务没有 启动更快,要是,会后来 超时被停止。

总结

部署微服务应用也是并是否挑战。用各种语言和框架写成的服务成百上千。次责服务就并是否迷你应用,有此人 独特的部署、资源、扩充和监控需求。有若干种微服务部署模式,包括单虚机单实例以及单容器单实例。另外可选模式还有AWS Lambda,并是否serverless办法。

本系列文章:

  • 微服务实战(一):微服务架构的优势与不足
  • 微服务实战(二):使用API Gateway
  • 微服务实战(三):深入微服务架构的多多线程 间通信
  • 微服务实战(四):服务发现的可行方案以及实践案例
  • 微服务实践(五):微服务的事件驱动数据管理

动机

部署另另一有另好哪几个 单体式应用是是因为 运行大型应用的多个副本,典型的提供若干个(N)服务器(物理后来 虚拟),运行若干个(M)个应用实例。部署单体式应用无需很直接,要是肯定比部署微服务应用简单些。

许多模式有许多参数,另另一有另好哪几个 参数代表每个服务实例由哪几个多多线程 构成。类事,没有 在Apache Tomcat Server上部署另另一有另好哪几个 Java服务实例作为web应用。另另一有另好哪几个 Node.js服务实例后来 有另另一有另好哪几个 父多多线程 和若干个子多多线程 构成。另外另另一有另好哪几个 参数定义同一多多线程 组内有哪几个服务实例运行。类事,时会 在同另另一有另好哪几个 Apache Tomcat Server上运行多个Java web应用,后来 在同另另一有另好哪几个 OSGI容器内运行多个OSGI捆绑实例。单主机多服务实例模式也是优缺点并存。主要优点在于资源利用有效性。多服务实例共享服务器和操作系统,后来 多多线程 组运行多个服务实例速率会更高,类事,多个web应用共享同另另一有另好哪几个 Apache Tomcat Server和JVM。那我 优点在于部署服务实例更快。只需将服务拷贝到主机并启动它。后来 服务用Java写的,只没有 拷贝JAR后来 WAR文件即可。对于其它语言,类事Node.js后来 Ruby,没有 拷贝源码。也要是说网络负载很低。后来 没有 无需 负载,启动服务更快。后来 服务是自中含的多多线程 ,只没有 启动就时会 ;要是,后来 是运行在容器多多线程 组中的某个服务实例,则没有 动态部署进容器中,后来 重启容器。除了上述优点外,单主机多服务实例全是不足。其中另另一有另好哪几个 主要缺点是服务实例间很少后来 没有 隔离,除非每个服务实例是独立多多线程 。后来 想精确监控每个服务实例资源使用,就没有 限制每个实例资源使用。要是有后来 造成某个糟糕的服务实例占用了主机的所有内存后来 CPU。同一多多线程 内多服务实例没有 隔离。所有实例有后来 ,类事,共享同另另一有另好哪几个 JVM heap。某个糟糕服务实例很容易攻击同一多多线程 中其它服务;更甚至于,有后来 无法监控每个服务实例使用的资源状态。那我 严重问题报告 在于运维团队没有 知道怎么才能 才能 部署的完全步骤。服务时会 用不同语言和框架写成,要是开发团队肯定有要是有没有 跟运维团队沟通事项。其中僵化 性增加了部署过程中出错的后来 性。时会 看后,尽管熟悉,要是单主机多服务实例有要是有严重不足。下面看看是是是否许多部署微服务办法时会 除理那先 问题报告 。

单主机单服务实例模式

另外并是否部署微服务办法是单主机单实例模式。当使用许多模式,每个主机上服务实例全是每所许多人独立的。有并是否不同实现模式:单虚拟机单实例和单容器单实例。

原文标题:微服务实战(六):选着微服务部署策略

另另一有另好哪几个 微服务应用由上百个服务构成,服务时会 采用不同语言和框架分别写就。每个服务全是另另一有另好哪几个 单一应用,时会 有此人 的部署、资源、扩展和监控需求。类事,时会 根据服务需求运行若干个服务实例,除此之外,每个实例没有 有此人 的CPU,内存和I/O资源。尽管很僵化 ,要是更挑战的是服务部署没有 快速、可靠和性价比高。有许多微服务部署的模式,先讨论一下每个主机多服务实例的模式。

单主机多服务实例模式

部署微服务的并是否办法要是单主机多服务实例模式,使用许多模式,没有 提供若干台物理后来 虚拟机,每台机器上运行多个服务实例。要是有状态下,这是传统的应用部署办法。每个服务实例运行另另一有另好哪几个 后来 多个主机的well-known端口,主机时会 看做宠物。

下图展示了许多模式:

本文来自云栖社区战略协作伙伴DockerOne,了解相关信息时会 关注DockerOne。

本文作者:hokingyang 

​使用许多模式没有 将服务打包成容器映像。另另一有另好哪几个 容器映像是另另一有另好哪几个 运行中含服务所需库和应用的文件系统​。许多容器映像由完全的linux根文件系统组成,其它则是轻量级的。类事,为了部署Java服务,没有 创建中含Java运行库的容器映像,我说没有 中含Apache Tomcat server,以及编译过的Java应用。一旦将服务打包成容器映像,就没有 启动若干容器。一般在另另一有另好哪几个 物理机后来 虚拟机上运行多个容器,后来 没有 集群管理系统,类事k8s后来 Marathon,来管理容器。集群管理系统将主机作为资源池,根据每个容器对资源的需求,决定将容器调度到那个主机上。单容器单服务实例模式也是优缺点全是。容器的优点跟虚机很类事,服务实例之间完全独立,时会 很容易监控每个容器消耗的资源。跟虚机类事,容器使用隔离技术部署服务。容器管理API时会 能 作为管理服务的API。然而,跟虚机不一样,容器是另另一有另好哪几个 轻量级技术。容器映像创建起来更快,类事,在笔记本电脑上,将Spring Boot 应用打包成容器映像只没有 5秒钟。后来 不没有 操作系统启动机制,容器启动也更快。当容器启动时,后台服务就启动了。使用容器全是许多缺点。尽管容器架构发展没有快,要是还是不如虚机架构心智心智成熟图片 图片 期期 期期图片 。要是后来 容器之间共享host OS内核要是并不像虚机没有 安全。另外,容器技术后来 对管理容器映像提出许多客制化需求,除非使用如Google Container Engine后来 Amazon EC2 Container Service (ECS),要是用户将一起没有 管理容器架构以及虚机架构。第三,容器老要被部署在按照虚机收费的架构上,很显然,客户也会增加部署费用来应对负载的增长。有趣的是,容器和虚机之间的区别没有 模糊。如前所述,Boxfuse虚机启动创建都更快,Clear Container技术面向创建轻量级虚机。unikernel公司的技术也引起许多人 关注,Docker最近收购了Unikernel公司。除了那先 之外,server-less部署技术,除理了前述容器和VM技术的不足,吸引了无需 的注意。下面许多人 来看看。

Serverless 部署

AWS Lambda是serverless部署技术的例子,支持Java,Node.js和Python服务;没有 将服务打包成ZIP文件上载到AWS Lambda就时会 部署。时会 提供元数据,提供除理服务请求函数的名字(另另一有另好哪几个 事件)。AWS Lambda自动运行除理请求足够多的微服务,然而只根据运行时间和消耗内存量来计费。当然细节决定成败,AWS Lambda全是限制。要是许多人 全是没有 担心服务器,虚拟机后来 容器内的任何方面绝对吸引人。

猜你喜欢

2017年上半年,创业投资领域有什么明显的趋势

动漫的很快发展为动漫衍生品创造了无限的市场空间,换成国家政策对动漫的扶持,未来的动漫行业必将创造新的经济的神话。动漫店不仅有新奇实用的动漫互近产品,还有时尚个性的动漫DIY创意

2020-03-22

性价比最高的千元手机是哪一款

推荐华为畅享9全网通标配版3GB+32GB,华为商城在售价格999元,手机产品属于快消电子产品,华为商城的电子产品价格也是会随着市场情况而有一定的调价优惠,最终以华为商城页面价

2020-03-22

ye6fqlcefaxa2的主页

TA还没法发布过内容~暂无文章:990丨粉丝:4405丨话题:0云栖直播暂未提供你关注的阿里云!文章:416丨粉丝:5222丨话题:7

2020-03-22

2019年上市的所有手机都有什么型号

展开完整性为你推荐:有点硬推荐你对你是什么回答的评价是?你对你是什么回答的评价是?楼主你好,2019年上市的手机太大了哦,比如华为p200系列,vivox27,opporeno

2020-03-21

中国20大手机品牌排行榜。(销量)

您要能登录华为商城官网查看手机更多信息。1、屏幕:屏幕尺寸为6.53英寸,屏幕色彩为1670万色,分辨率为FHD+103000x2244像素,屏占比为88.07%,高清大屏,玩

2020-03-21