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

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

基于微服务架构和Docker容器技术的PaaS云平台建设目标是给我们的开发人员提供一套服务快速开发、部署、运维管理、持续开发持续集成的流程。平台提供基础设施、中间件、数据服务、云服务器等资源,开发人员只需要开发业务代码并提交到平台代码库,做一些必要的配置,系统会自动构建、部署,实现应用的敏捷开发、快速迭代。在系统架构上,PaaS云平台主要分为微服务模州架构、Docker容器技术、DveOps三部分,这篇文章重点介绍微服务架构的实施。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

实施微服务需要投入大量的技术力量来开发基础设施,这对很多公司来说显然是不现实的,别担心,业界已经有非常优秀的开源框架供我们参考使用。目前业界比较成熟的微服务框架有Netflix、Spring Cloud和阿里的Dubbo等。Spring Cloud是基于Spring Boot的一整套实现微服务的框架,它提供了开发微服务所需的组件,跟Spring Boot一起使用的话开发微服务架构的云服务会变的很方便。Spring Cloud包含很多子框架,其中Spring Cloud Netflix是其中的一套框架,在我们的微服务架构设计中,就使用了很多Spring Cloud Netflix框架的组件。Spring Cloud Netflix项目的时间还不长,相关的文档资料很少,博主当时研究这套框架啃了很多英文文档,简直痛苦不堪。对于刚开始接触这套框架的同学,要搭建一套微服务应用架构,可能会不知道如何下手,接下来介绍我们的微服务架构搭建过程以及 需要那些 框架或组件来支持微服务架构。

为了直接明了的展示微服务架构的组成及原理,画了一张系统架构图,如下:

从上图可以看出,微服务访问大旦伏蔽致路径为:外部请求 → 负载均衡 → 服务网关(GateWay)→ 微服务 → 数据服务/消息服务。服务网关和微服务都会用到服务注册和发现来调用依赖的其他服务,各服务集群都能通过配置中心服务来获得配置信息。

服务网关(GateWay)

网关是外界系统(如:客户端浏览器、移动设备等)和企业内部系统之间的一道门,所有的客户端请求通过网关访问后台服务。为了应对高并发访问,服务网关以集群形式部署,这就意味着需要做负载均衡,我们采用了亚马逊EC2作为虚拟云服务器,采用ELB(Elastic Load Balancing)做负载均衡。EC2具有自动配置容量功能,当用户流量达到尖峰,EC2可以自动增加更多的容量以维持虚拟主机的性能。ELBd性负载均衡,在多个实例间自动分配应用的传入流量。为了保证安全性,客户端请求需要使用https加密保护,这就需要我们进行SSL卸载,使用Nginx对加密请求进行卸载处理。外部请求经过ELB负载均衡后路由到GateWay集群中的某个GateWay服务,由GateWay服务转发到微服务。服务网关作为内部系统的边界,它有以下基本能力:

1、动态路由:动态的将请求路由到所需要的后端服务集群。虽然内部是复杂的分布式微服务网状结构,但是外部系统从网关看就像是一个整体服务,网关屏蔽了后端服务的复杂性。

2、限流和容错:为每种类型的请求分配容量,当请求数量超过阀值时抛掉外部请求,限制流量,保护后台服务不被大流量冲垮;党内部服务出现故障时直接在边界创建一些响应,集中做容错处理,而不是将请求转发到内部集群,保证用户良好的体验。

3、身份认证和安全性控制:对每个外部请求进行用户认证,拒绝没有通过认证的请求,还能通过访问模式分析,实现反爬虫功能。

4、监控:网关可以收集有意义的数据和统计,为后台服务优化提供数据支持。

5、访问日志:网关可以收集访问日志信息,比如访问的是哪个服务?处理过程(出现什么异常)和结果?花费多少时间?通过分析日志内容,对后台系统做进一步优化。

我们采用Spring Cloud Netflix框架的开源组件Zuul来实现网关服务。Zuul使用一系列不同类型的过滤器(Filter),通过重写过滤器,使厅衡我们能够灵活的实现网关(GateWay)的各种功能。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

服务注册与发现

由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就引入了服务注册与发现的问题,服务的提供方要注册报告服务地址,服务调用放要能发现目标服务。我们的微服务架构中使用了Eureka组件来实现服务的注册与发现。所有的微服务(通过配置Eureka服务信息)到Eureka服务器中进行注册,并定时发送心跳进行 健康 检查,Eureka默认配置是30秒发送一次心跳,表明服务仍然处于存活状态,发送心跳的时间间隔可以通过Eureka的配置参数自行配置,Eureka服务器在接收到服务实例的最后一次心跳后,需要等待90秒(默认配置90秒,可以通过配置参数进行修改)后,才认定服务已经死亡(即连续3次没有接收到心跳),在Eureka自我保护模式关闭的情况下会清除该服务的注册信息。所谓的自我保护模式是指,出现网络分区、Eureka在短时间内丢失过多的服务时,会进入自我保护模式,即一个服务长时间没有发送心跳,Eureka也不会将其删除。自我保护模式默认为开启,可以通过配置参数将其设置为关闭状态。

Eureka服务以集群的方式部署(在博主的另一篇文章中详细介绍了Eureka集群的部署方式),集群内的所有Eureka节点会定时自动同步微服务的注册信息,这样就能保证所有的Eureka服务注册信息保持一致。那么在Eureka集群里,Eureka节点是如何发现其他节点的呢?我们通过DNS服务器来建立所有Eureka节点的关联,在部署Eureka集群之外还需要搭建DNS服务器。

当网关服务转发外部请求或者是后台微服务之间相互调用时,会去Eureka服务器上查找目标服务的注册信息,发现目标服务并进行调用,这样就形成了服务注册与发现的整个流程。Eureka的配置参数数量很多,多达上百个,博主会在另外的文章里详细说明。

微服务部署

微服务是一系列职责单一、细粒度的服务,是将我们的业务进行拆分为独立的服务单元,伸缩性好,耦合度低,不同的微服务可以用不同的语言开发,每一个服务处理的单一的业务。微服务可以划分为前端服务(也叫边缘服务)和后端服务(也叫中间服务),前端服务是对后端服务做必要的聚合和剪裁后暴露给外部不同的设备(PC、Phone等),所有的服务启动时都会到Eureka服务器进行注册,服务之间会有错综复杂的依赖关系。当网关服务转发外部请求调用前端服务时,通过查询服务注册表就可以发现目标服务进行调用,前端服务调用后端服务时也是同样的道理,一次请求可能涉及到多个服务之间的相互调用。由于每个微服务都是以集群的形式部署,服务之间相互调用的时候需要做负载均衡,因此每个服务中都有一个LB组件用来实现负载均衡。

微服务以镜像的形式,运行在Docker容器中。Docker容器技术让我们的服务部署变得简单、高效。传统的部署方式,需要在每台服务器上安装运行环境,如果我们的服务器数量庞大,在每台服务器上安装运行环境将是一项无比繁重的工作,一旦运行环境发生改变,就不得不重新安装,这简直是灾难性的。而使用Docker容器技术,我们只需要将所需的基础镜像(jdk等)和微服务生成一个新的镜像,将这个最终的镜像部署在Docker容器中运行,这种方式简单、高效,能够快速部署服务。每个Docker容器中可以运行多个微服务,Docker容器以集群的方式部署,使用Docker Swarm对这些容器进行管理。我们创建一个镜像仓库用来存放所有的基础镜像以及生成的最终交付镜像,在镜像仓库中对所有镜像进行管理。

服务容错

微服务之间存在错综复杂的依赖关系,一次请求可能会依赖多个后端服务,在实际生产中这些服务可能会产生故障或者延迟,在一个高流量的系统中,一旦某个服务产生延迟,可能会在短时间内耗尽系统资源,将整个系统拖垮,因此一个服务如果不能对其故障进行隔离和容错,这本身就是灾难性的。我们的微服务架构中使用了Hystrix组件来进行容错处理。Hystrix是Netflix的一款开源组件,它通过熔断模式、隔离模式、回退(fallback)和限流等机制对服务进行d性容错保护,保证系统的稳定性。

1、熔断模式:熔断模式原理类似于电路熔断器,当电路发生短路时,熔断器熔断,保护电路避免遭受灾难性损失。当服务异常或者大量延时,满足熔断条件时服务调用方会主动启动熔断,执行fallback逻辑直接返回,不会继续调用服务进一步拖垮系统。熔断器默认配置服务调用错误率阀值为50%,超过阀值将自动启动熔断模式。服务隔离一段时间以后,熔断器会进入半熔断状态,即允许少量请求进行尝试,如果仍然调用失败,则回到熔断状态,如果调用成功,则关闭熔断模式。

2、隔离模式:Hystrix默认采用线程隔离,不同的服务使用不同的线程池,彼此之间不受影响,当一个服务出现故障耗尽它的线程池资源,其他的服务正常运行不受影响,达到隔离的效果。例如我们通过andThreadPoolKey配置某个服务使用命名为TestThreadPool的线程池,实现与其他命名的线程池隔离。

3、回退(fallback):fallback机制其实是一种服务故障时的容错方式,原理类似Java中的异常处理。只需要继承HystixCommand并重写getFallBack()方法,在此方法中编写处理逻辑,比如可以直接抛异常(快速失败),可以返回空值或缺省值,也可以返回备份数据等。当服务调用出现异常时,会转向执行getFallBack()。有以下几种情况会触发fallback:

1)程序抛出非HystrixBadRequestExcepption异常,当抛出HystrixBadRequestExcepption异常时,调用程序可以捕获异常,没有触发fallback,当抛出其他异常时,会触发fallback;

2)程序运行超时;

3)熔断启动;

4)线程池已满。

4、限流: 限流是指对服务的并发访问量进行限制,设置单位时间内的并发数,超出限制的请求拒绝并fallback,防止后台服务被冲垮。

Hystix使用命令模式HystrixCommand包装依赖调用逻辑,这样相关的调用就自动处于Hystrix的d性容错保护之下。调用程序需要继承HystrixCommand并将调用逻辑写在run()中,使用execute()(同步阻塞)或queue()(异步非阻塞)来触发执行run()。

动态配置中心

微服务有很多依赖配置,某些配置参数在服务运行期间可能还要动态修改,比如:根据访问流量动态调整熔断阀值。传统的实现信息配置的方法,比如放在xml、yml等配置文件中,和应用一起打包,每次修改都要重新提交代码、打包构建、生成新的镜像、重新启动服务,效率太低,这样显然是不合理的,因此我们需要搭建一个动态配置中心服务支持微服务动态配置。我们使用Spring Cloud的configserver服务帮我们实现动态配置中心的搭建。我们开发的微服务代码都存放在git服务器私有仓库里面,所有需要动态配置的配置文件存放在git服务器下的configserver(配置中心,也是一个微服务)服务中,部署到Docker容器中的微服务从git服务器动态读取配置文件的信息。当本地git仓库修改代码后push到git服务器仓库,git服务端hooks(post-receive,在服务端完成代码更新后会自动调用)自动检测是否有配置文件更新,如果有,git服务端通过消息队列给配置中心(configserver,一个部署在容器中的微服务)发消息,通知配置中心刷新对应的配置文件。这样微服务就能获取到最新的配置文件信息,实现动态配置。

以上这些框架或组件是支撑实施微服务架构的核心,在实际生产中,我们还会用到很多其他的组件,比如日志服务组件、消息服务组件等等,根据业务需要自行选择使用。在我们的微服务架构实施案例中,参考使用了很多Spring Cloud Netflix框架的开源组件,主要包括Zuul(服务网关)、Eureka(服务注册与发现)、Hystrix(服务容错)、Ribbon(客户端负载均衡)等。这些优秀的开源组件,为我们实施微服务架构提供了捷径。

如果想学习Java工程化、高性能及分布式、深入浅出。微服务、Spring,MyBatis,Netty源码分析的朋友可以加我的Java高级交流:854630135,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

软件开发流程分为: 需求确认——概要设计——详细设计——编码——单元测试——集成测试——系统测试——维护

软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以竖瞎纤进行开发。软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。

软件设计思路和方法的一般过程,包括设计软件的功余仿能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。

扩展资料

软件开发方面的工作。具体可分为以下方面:

1 可视化编程掌握程序设计方法及可视化技术,精通一种可视化平台及其软件开发技术。获取Delphi程序员系列、Java初级或VB开发能手认证。 就业方向:企业、政府、社区、各类学校等可视化编程程序员。

2 WEB应用程序设计 具有美工基础和网页动画设计能力,掌握交互式网页程序的设计技术,能进行网站建设和维护。获取Macromedia多媒体互动设计师或Delphi初级程序员或Delphi快速网络开发工程师认证。 就业方向:企业、政府、社区、各类学校等WEB应用程序员。

3 软件测试 掌握软件测试的基本原理、方法和组织管理,精通软件测试工具。获取ATA软件测试工程师或Delphi初级程序员或Java初级程序员认证。 就业方向:企业、政府、社区、各类学校等软件测试员。

4 数据库管理 能应用关系范式进行数据库设计,精通SQL语言,胜任数据库神散服务器管理与应用工作。获取Oracle数据库管理或SQL Server数据库应用或Windows XP应用认证。 就业方向:企业、政府、社区、各类学校等部门的中、大型数据库管理员。

5 图形图像制作 精通国际上流行的图形/图像制作工具(如CorelDraw、Photoshop、Pagemaker等)。获取平面设计师相关的认证。 就业方向:广告制作公司、建筑设计公司、包装装璜设计公司、居室装修公司、出版印刷公司。

参考资料来源:百度百科-软件开发

作为一个广义的术语,云计算描述了一种范围广泛的服务。许多IT厂商都抓住了“云”这个概念,并将其作为产品的一种通用技术。对于公司而言,为了真正了解并利用云计算的价值,首先要了解什么是云计算,及其不同的组成部分。由于云服务是一个广泛的服务集合,因此用户可以选择何时、何地以及如何使用云计算。在这份报告中,我们将解释不同类型的云计算服务,包括软件即服务(SaaS),平台即服务(PaaS)和基础架构即服务(IaaS);并给出一些例子来说明他们如何工作。我们也将说明云枣肆或计算在什么情况下,不是最好的选择。云计算层次(Stack)云计算常被描述为一个层次堆栈(Stack),每个层次建立在另一个层次的顶部,并向上提供服务接口,因此被称为“云”。通常,对于云计算的的定义来自于美国国家标准与技术研究院(NIST)。NIST将云计算定义为一个模型,简易的管理即可方便地按需配置网络访问,并可以配置计算资源(如网络,服务器,存储,应用程序和服务)。这意味着最终用户可以方便快捷地利用大块资源。NIST还提供了几个特点,并且这些特点被认为是“云”服务中必不可少的。这些特征包括:•按需自助式服务。用户通过注册获得服务,而传统的IT技术需要很长时间才能为最终用户提供服务。•凳伍广泛的网络访问资源。可以通过标准平台(如台式机,笔记本电脑,手机等)来访问服务。•资源池。资源可被多个客户雹态享用。•拥有快速的扩展性。可以随突发需求高峰来快速扩展。•计费服务。按照使用协定来进行计费。近几年,向市场推出的“云计算”概念,已经被传统软件厂商普遍接受。下图描绘了云计算堆栈的三个不同的类别:软件即服务(SaaS),平台即服务(PaaS)和基础设施即服务(IaaS)。在这份报告中,我们将对所有三个类别进行区分,而区分这三种方式有一个非常简单的方法:•SaaS通过网络运行,为最终用户提供应用服务。•PaaS是一套工具服务,可以为编码和部署应用程序提供快速、高效的服务。•IaaS包括硬件和软件,例如服务器,存储,网络, *** 作系统。有人曾将这3个组件相互关联,并写了一个比喻为了帮助理解:就其本身而言,单独的IaaS基础设施毫无作用,它只能为上一层的资源提供帮助来发挥其生产力,就好比道路的存在是为了汽车和卡车来运送乘客与货物。在这个比喻中,道路被比作为IaaS基础设施,而汽车和卡车是坐落在基础设施之上的工具(PaaS),运送的货物和人员则可被比作软件和信息(SaaS)。需要注意的是,虽然本文对SaaS,PaaS和IaaS的差异进行了区分,但是PaaS和IaaS的概念已日趋模糊。现在我们对这些组件的交互有了大致的了解,下面将会把注意力转向堆栈的顶层——SaaS。SaaS:软件即服务软件即服务(SaaS)被定义为部署在互联网上的软件。通过SaaS授权后,可以订阅按需服务,即“支付使用”的模式,或通过广告等方式提供免费服务。这种服务的快速增长使得SaaS迅速流行,因此用户必须了解,什么是SaaS,以及在哪些场合下SaaS是重要的。SaaS的特点SaaS遵守广义云计算中的定义,并有如下特点:•可通过Web访问的商业软件。•软件集中式管理。•软件通过“一对多”模式进行交付使用。•最终用户无需处理软件升级和补丁。•应用程序接口(API)可在不同软件之间集成。SaaS的适用场合SaaS为云计算的最终交付提供了一项技术方法。当使用云计算时,公司必须考虑所迁移的应用程序是否合适SaaS。在以下场合中将应用程序移植到SaaS是个不错选择:•Vanilla提供的SaaS功能更为全面。一个很好的例子是Vanilla提供的众多服务中包含了电子邮件;而原先使用的是单一功能的软件,尽管也能满足商务需求,但并没有竞争优势。•需要网络或可通过移动设备访问的应用。例如,移动销售管理软件•用于短期需求的软件,例如一个特定项目的协作软件。•在特定时间需求使用的软件,例如每月使用一次税收或收费软件。SaaS在引入到商业界后,被Salesforce作为客户关系管理(CRM)产品广泛接受。CRM是最流行的SaaS应用之一,同样,电子邮件,财务管、客户服务和费用管理也通过SaaS取得了良好的吸收。SaaS不适用的场合SaaS是一种非常有价值的工具,但是在一些特定的情况下,SaaS并不是软件交付的最佳选择。例如,SaaS可能不适合于以下场景:•在需要实时处理数据,以及高速的数据处理应用•不允许数据被外部托管的情况•已有现有的内部部署解决方案能够满足所有需求SaaS,即“软件即服务”是云计算最广为人知的一种服务,世界各地都在利用云平台做为服务,但是它使得SaaS的易用性和IaaS变得更为混淆。案例分析:SaaS使得Groupon公司按需为客户提供服务Groupon网站于2008年11月推出,提供了横跨40多个国家,500多个市场的购物、消费交易平台。公司拥有的数千名员工分布在芝加哥以及帕洛阿尔托事处,并且在欧洲、拉丁美洲、亚洲和非洲区域设立了事处。Groupon公司为客户提供了优质的产品和出色的服务。Groupon公司的客户服务主任Harrow介绍道:在公司成立的几个月内,客户数量以指数级上升。起初,Groupon公司几乎花费了10%的时间来响应客户请求。这些事务甚至需要几个员工才得以应付。随后,Groupon公司意识到,在没有一个真正的解决方案前,无法继续运行下去。在确信了Groupon的快速增长将继续后,他对几个企业级的系统解决方案进行了研究。企业级解决方案非常复杂,并且很难建立,并且会阻碍客户体验。Harrow随后在网上搜索了在线支持软件,发现了Zendesk。通过对Zendesk进行评估后,Harrow得出了正确的解决方案。并且他认为Zendesk使用直观。和其他平台相比,Zendesk更强大,并且评价更高。此外,由于它是一个基于Web的解决方案,能够对其进行扩展,以支持用户。现在Groupon雇佣了150多个客户支持代理,能够每天处理近15,000个请求。在代理为客户提供公司服务的过程中,Groupon的宏帮助(即一些FAQ的模板)为公司建立起了一键式解决的客户形象。同时,Groupon认为Zendesk能够与其他解决方案更容易地集成,通过在Zendesk中加入GoodData,Groupon能够扩展和增强其报告,并且不受电子表格的限制。PaaS:平台即服务在软件开发时,平台即服务(PaaS)为SaaS提供了基础。PaaS被定义为一个计算平台,它使得用户能够快速、方便地创建web应用,并且无需担心维护下层软件。PaaS类似于SaaS,不同之处在于其通过网络建立一个软件平台,而不是通过Web软件提供服务。PaaS的特点PaaS由许多不同的特征构成,以下是一些基本的特征:•在相同的集成开发环境中用来开发、测试、部署、托管和维护的应用。•基于Web的用户界面来创建工具,可用于创建、修改、测试和部署不同的UI场景•多客户架构,可使多个并发用户使用相同的开发应用•内置部署软件的可扩展性,包括负载平衡和故障转移•通过公共标准集成Web服务和数据库•支持开发团队协作,包括一些PaaS解决方案以及项目规划、沟通工具•用来处理帐单和订阅管理的工具尽管PaaS在许多方面类似于第三部分的IaaS,但PaaS有附加的服务价值以及两个显著特征:1、它是软件开发的协作平台,可用于管理应用程序的数据源和工作流。一个例子是Heroku的PaaS的,其利用RubyonRails语言开发。2、它允许用户来利用应用程序的公共数据来创建软件,该类型的PaaS可以被看作是一种方法来创建具有一系列具有公共数据格式或类型的应用程序。Force.com的PaaS便是一个很好的例子。PaaS的重要性当多个开发人员对同一个项目进行开发或者需要外部人员对开发进行交互时,PaaS特别有用。下面的案例表明,对于那些拥有客户关系管理工具(例如销售信息)并希望应用程序能充分利用这些数据的人而言,PaaS被证明是无价的。同时,对于那些希望自动化测试和部署服务的开发人员,PaaS是非常有用的。基于迭代和增量开发的方法使得软件开发加快并得以普及,它简化了PaaS的开发和软件迭代的困难度。PaaS的一些例子有:谷歌的AppEngine,微软Azure服务,以及Force.com平台。不适合使用PaaS的场合我们认为,PaaS将成为软件开发的主流方法。实现流程自动化、并且使用预先定义的组件和构件,自动部署到生产的能力将提供足够的价值,并且非常有说服力的。虽然如此,但是在一定的情况下,PaaS可能并不太理想,例如:•当应用在托管时需要较高的可移植性•当专用开发语言会妨碍今后的另一提供商的上层服务•当应用程序性能需要通过底层硬件和软件来进行定制案例分析:Menumate公司部署使用PaaSMenumate为澳大利亚的整个酒店行业销售硬件和软件。使用PaaS的优势使得Menumate在Force.com在迁移的过程中,能够使用相同的应用程序。为其负责软件开发的Trineo公司的执行董事Fowlie说,使用Force.com的PaaS平台允许Menumate得以集中控制。Trineo的执行董事Keswani觉得传统方式需要显著增加基础设施、连接以及安全性需求,而Force.com平台本身提供的这些非功能性需求,使得Menumate和Trineo能够纯粹专注于开发所需的功能。此外,利用PaaS的做法意味着Trineo可以采取现有的集成和自动化部署工具来简化整个软件的开发过程。通过使用PaaS,Trineo已经能够在不同业务中利用一系列现成的应用程序来开发新应用。以下是PaaS的一些应用:许可证密钥:Menumate软件通过使用许可证密钥来激活客户已支付的功能。PaaS编程语言的强大功能允许Menumate软件快速部署到Force.com(其许可证密钥通过Salesforce.com的CRM中链接),这使得销售和支持人员可以快速查看许可证的状态。案例管理增强:Menumate处理的很多案例与消耗品订单有关。为了解决这个问题,Menumate拥有一个单独的基于DOS的应用程序,允许用户创建订单和发票。Menumate能够在支持案例中添加产品,并用现有的集成软件自动将发票发送到会计软件上。标签印刷:另一项传统应用,能够为耗材和硬件创建货运标签,并将其发送给发送客户。使用PaaS技术,可以将这些标签直接打印到客户记录中。IaaS:基础设施即服务基础设施即服务(IaaS)提供了云计算基础架构,包括服务器、存储、网络和 *** 作系统。它作为一种按需服务,使得客户无需购买服务器、软件、数据库空间或网络设备,而只要按需购买这些资源的外包服务。正如以往的白皮书介绍过,IaaS也有一些值得注意的地方。通常它可以分为公共和私有两种基础设施或是两者的组合。“公共云”被认为是包含了共享资源并在互联网上部署了自助式服务的基础设施。相比之下,“私有云”也集成了一些诸如虚拟化等的云计算功能,但它是运行在专用网络上的基础设施。此外,一些托管服务提供商已经开始在提供传统托管服务的同时,也提供公共或私有云的网络组合。这种组合方式通常被称为“混合云”。IaaS的特点与之前两个部分的SaaS和PaaS相比,IaaS的是一个迅速发展的领域。可以说,它普遍遵守以下几个核心特征:•以资源分配作为服务•允许动态调整•成本可变,以效用定价•通常在单一硬件上支持多用户目前已有大量的IaaS供应商,其中既有诸如Amazon和Rackspace的超大型云供应商,也有区域型的佼佼者。正如之前所述,PaaS和IaaS的之间的界限正变得越来越模糊,因为供应商正将平台工具作为IaaS的一部分来帮助云的多种类型的部署。IaaS的适用场合IaaS在与云计算密切相关的场合下将会发挥效益,这些场合包括:•要求基础设施能在任意时刻能适应变化多端的需求量•当新公司没有预算投资于硬件•当公司发展迅速,在扩展硬件时遇到问题•当公司迫于预算限制,需要将资金转移到经营开支上•一些特定的商务领域,也可用于测试或临时性的设施需求不适合使用IaaS的场合虽然IaaS有可扩展性强和大规模部署迅速的优势,但在某些情况下也有它的局限性。在以下场合中,建议慎用IaaS:•限于法律的规定,要求数据存储和处理进行隔离•对基础设施有非常高的性能要求,或原先的内部部署或专用托管基础设施已经满足需求案例分析:LiveSmart通过采取基础设施来帮助减肥者LiveSmart是推广该饮食解决方案的幕后公司,主要出版饮食类书籍和策划在线活动。BeyondDiet是该公司旗下的一个与减肥者互动的社区网站。从2008年起该公司的业绩增长迅猛,甚至在2010年有了50倍的收益增长。这相当于网站有30万日的均实访客量,峰值甚至高达100万人次。当在考虑基础设施的架构时,BeyondDiet需要的是可托管性和可扩展性。重要的是,BeyondDiet网站规模需要动态的扩大或缩小的能力,以来应对定期的大流量高峰。LiveSmart首席技术官Rob·Volk说:“迁移到云基础设施后他省心了,而在此之前LiveSmart在其网站上需要有一个兼职系统管理员,这是显然不是最好的选择;现在有了ManagedCloud(由云提供商Rackspace提供的IaaS服务),Rackspace基本上可以扮演我们的Linux和Windows系统管理员,全天24小时任何时刻如果发生当机,几分钟之内他们的工程师就会来解决这些问题,这个云改变了我们的工作,因此我们需要这种基础设施。”对于Volk来说,将其网站移动到云的主要动力是他可以更加专注核心业务,而让那些基础设施的专家来日常管理云的运维,因为云供应商提供多级冗余的硬件、快速的配置和高度的灵活性,这些都起了决定性因素。有趣的是,Volk甚至从未考虑过经营自己的物理服务器,而是考虑究竟选择托管服务器还是云中的一个。他选择了云还因为它降低了成本,相比那些专用服务器,云的选择有更高的灵活性。Volk正在使用多个云服务提供商:他有三个Web服务器,多个数据库服务器和一个Rackspace的负载平衡器,同时也使用Amazon的S3服务。Volk认为其中最大的好处是云基础设施的可扩展性。他解释说:“每当过年的时候很多人都去节食,我们的服务器的高峰时间正是在每年的1月到到3月之间,此时网站的流量是平时的三倍,而利用云服务器,我们只需在几分钟之内就能建立好新的Web前端。一旦流量下降,我们可以关闭这些前端。只有在云虚拟化环境中,我们才可能有这样的可扩展性。”结论云计算不是一个单一的术语,而是一个总称,它提出了IasS作为基础、PaaS作为开发工具、SaaS作为顶层应用,来取代以往的内部部署应用服务。对于那些打算迁移到云计算的公司而言,非常重要的一点,是需要了解云计算的每个层面,并结合自己的情况来决定哪些是适合他们需求的解决方案。随着IT的发展,云计算将加速变革,并将成为未来IT默认的交付方式,所以公司应该尽早考虑将其业务迁移到云计算上。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12517132.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-25
下一篇2025-08-25

发表评论

登录后才能评论

评论列表(0条)

    保存