精华内容
下载资源
问答
  • paas层的应用服务 云原生应用程序的挑战与机遇 云原生应用程序的当前技术格局正在不断发展,平台即服务(PaaS)解决方案也在不断变化,以满足此类架构的需求。 由于客户在选择PaaS解决方案时需要灵活性和开放性...

    云paas层的应用服务

    云原生应用程序的挑战与机遇

    云原生应用程序的当前技术格局正在不断发展,平台即服务(PaaS)解决方案也在不断变化,以满足此类架构的需求。 由于客户在选择PaaS解决方案时需要灵活性和开放性(没有任何供应商或技术锁定),因此关键的需求是就以下方面提供中立的看法:

    • 哪种PaaS解决方案最适合我的企业(考虑每个企业的独特机遇和挑战)?
    • 它如何帮助实现向本地云应用程序迁移的愿景(将微服务作为业务服务的体系结构样式)?

    为企业级云原生应用选择正确的技术解决方案和合作伙伴的首要问题为我们所有人提供了以渐进的方式创新,构建和实施合适的解决方案的机会。

    平台即服务于云原生应用程序的功能

    以下概述的参考架构表示构建云原生应用所需的关键功能集,并有助于选择提供这些功能的合适平台:

    关键平台即服务(PaaS)解决方案选项

    CloudFoundryKubernetes是实现PaaS解决方案标准化的重要举措,但就PaaS标准化方法达成共识仍处于早期阶段。

    考虑到无服务器和其他新兴趋势的当前市场格局,可以如下显示当前的PaaS解决方案(不同供应商在此处显示的选项有很多变化):

    结论

    云原生应用程序开发是一个不断发展的领域,考虑到解决方案的新颖性,行业参与者和标准组织(例如IEEE)仍在确定标准和最佳实践。 由于没有选择任何解决方案和企业环境的灵丹妙药,因此治理和必需的功能可以驱动推荐的平台即服务(PaaS)解决方案来支持云原生应用程序。

    翻译自: https://www.javacodegeeks.com/2017/12/emerging-role-paas-platform-service-building-cloud-native-applications.html

    云paas层的应用服务

    展开全文
  • PaaS 是“Platform as a Service”的首字母缩写,意为平台即服务,即把 IT 系统的平台软件作为服务出租出去,如图 1 所示。 图 1 PaaS 云 相比于 IaaS 云服务提供商,PaaS 云服务提供商要做的事情增加了,他们...
  • 云计算PaaS层的技术难点解析

    千次阅读 2018-08-16 16:37:44
    那么从项目研发角度看,PaaS产品的系统功能应该主要涵盖哪些,又该如何更好的为应用研发人员服务呢?本文由云计算专家bryan根据社区活动中的分享交流所整理。 一.PaaS 建议的意义何在,能够给企业带来哪些价值? ...

    最近几年很多公司实现了从VMware等传统虚拟化到IaaS的转型,很多公司正在或者已经建立PaaS平台。那么从项目研发角度看,PaaS产品的系统功能应该主要涵盖哪些,又该如何更好的为应用研发人员服务呢?本文由云计算专家bryan根据社区活动中的分享交流所整理。

    这里写图片描述

    一.PaaS 建议的意义何在,能够给企业带来哪些价值?

    1. 实现应用运行环境的标准化,提升交付速度:通过容器的镜像技术保证开发测试和生产等诸多标准化,避免因应用运行环境不一致带来的各种故障和问题,同时,通过服务编排实现运行环境的自动化运维和快速交付,避免传统方式的应用系统运行复杂、交付周期较长等问题;
    2. 实现运维过程的高度自动化,降低运维成本:PaaS 平台提供多种自动化运维工具管理应用集群系统,比如智能负载可以实时观测集群节点的变化并智能修改路由配置,自动伸缩可以实现不同业务负载下集群规模的自动调整等,多种管理功能的自动化减少人工运维工作量,节省运维成本;
    3. 有效提升基础资源的管理水平和硬件利用效率:PaaS 平台资源的容器是基于操作系统的虚拟化,与 IaaS 基础环境实现解耦,平台自身的实现多数是应用较广的开发框架和标准 API,能够有效提升资源管理水平,有效避免厂商绑定;同时,合理调整单个操作系统之上容器密度的有效部署,可以更好提升资源使用率,降低硬件采购成本;
    4. 有效实现软件研发的技术路径统一和把控研发质量:通过运行环境的标准化可真正做到全公司技术路线的精细把控,做到统一不同项目组的技术研发路线,通过部署工具的统一可以做到 CI/CD 思想的有效落地实施,有效提升软件研发过程的质量把控水平;
    5. 有效提升公司 IT 架构治理:相较于传统开发运维各司其职的模式,PaaS 能有效实现 devops 思维的落地实施,推动企业 IT 流程和人员架构的企业治理,更好的提升 IT 部门各个研发团队的整体技术水平,从而更好的响应业务需求。

    云计算PaaS技术难点解析

    二. PaaS 的主要技术有哪些?企业如何进行建设?

    PaaS 主要以容器云形式实现,容器云依赖容器基础技术,目前常见的有 Docker 和 garden 两种类型,其中 BAT、京东、华为和网易等互联网公司,还有一些大型商业银行更多的选择 docker 技术,当然也不乏 garden 成功案例,但较之 docker 案例相对较少。
    独木难成林,容器要云化形式提供服务,必须以多个容器形成集群的方式,此时如何管理和调度集群是一个重要的任务,这个任务由编排引擎进行实现,目前比较流行的有 kubernetes、swarm 等。因此「容器技术+编排引擎」构成了容器云最初始的框架,当然要达到企业级应用还需要做更多企业级的功能,所以就出现了诸如 openshift、阿里飞天、华为等各种以开源软件为基础构建的多种产品。
    那么企业在建设云的过程中需要考虑几个问题:

    • 容器技术的选择:尽量选择市场比较流行的开源社区和生态发展比较完善的技术,编排引擎的框架选择遵循同样道理;
    • 建设模式:一种方式是购买产品进行企业落地化定制化,一种方式是基于开源框架自研,两种方式各有优劣,需要结合企业自身特点进行总体考虑;
    • 建设规划:PaaS 的建设涵盖很多方面,甚至需要企业流程和企业 IT
      架构的梳理和调整,因此对大中型企业来讲不可能一蹴而就,需要一个循序渐进的过程,这也与企业发展和自身技术特点有关系

    三. 容器云的负载均衡如何选择?

    软件负载有硬件 F5 和软件 HAProxy、nginx 等。F5 的特点是价格贵、性能好,一般在物理机和虚拟机化时间做 LB;nginx 是一款 HTTP 服务器和反向代理服务器,可以提供 7 层负载均衡能力,主要应用场景有 web 服务器、反向代理、负载均衡等
    HAProxy 是一款专业的负载均衡软件,可提供 4/7 层负载均衡,比 nginx 负载均衡性能好,并发上也优于 nginx。负载均衡的选择需要和企业自身特点和具体业务场景相关联,在 PaaS 的企业级产品中更多的选择 HAproxy

    四. PaaS 的日志和监控如何进行处理?

    PaaS 平台的日志和监控和传统架构的管理方式没有本质区别。日志的获取或采用安装 agent、或采用工具导出,业界已经都有很多成熟的产品和案例可以借鉴;监控分两部分,先要解决「监」的问题,同样也需要利用工具抓取信息,然后解决「控」,要么利用自动化运维的模式,要么采用手工的模式,目的其实一样,区别在于成本控制。
    PaaS 可以从系统、网络、服务、应用监控 4 个层面入手:
    1. 系统主要指底层基础资源,如磁盘、CPU、硬件或 IaaS 等基础资源
    2. 网络一般采用 SDN 的方式实现,监控比较复杂,主要有连通性、流量、7 层状态码等
    3. 服务主要是指 PaaS 中的各种中间件服务服务,比如数据库服务、缓存服务、web 应用服务等
    4. 应用监控是最上层的也是非常重要的,比如应用服务质量、响应时间、请求成功率等

    五. PaaS 如何更好的实现 CI/CD,实现应用敏捷开发

    PaaS 平台的一个核心理念是为应用提供各种基础中间件服务和进行应用集群的管理。devops 是一种贯彻项目研发全生命周期的软件研发理论,打破传统的研发部门和运维部门泾渭分明的现象,尽量实现团队将研发和运维进行统一结合的模式,这种理念落地实施需要借助一定工具。CI 是持续集成,可以实现代码自动化的静态检查、动态检查、安全检查和单元测试、集成测试等功能,从而实现代码的尽快尽早集成,减少后期发现问题的概率、降低项目风险;CD 是持续部署或者持续发布,这种持续部署采用自动化工具,能够有效提高系统环境的部署效率和升级更新时业务的连续性。
    jenkins 可视作一个平台,在这个平台中一方面可以用户定制各种插件,一方面可以将所有的工作以流程化的形式 (pipeline) 串联起来。这样可以将 CI/CD 的思维通过 jenkins 的落地实施来贯彻执行,同时 CI/CD 有多种自动化管理功能,而 PaaS 中的相关系统部署或者更新升级或者项目研发过程使用的环境都可以自动化,于是二者可以很好的进行关联。
    Devops 理念的落地实现,可通过 jinkins 中配置自动化的 CI/CD 流程,更好的与 PaaS 进行深度集成,从而提高软件研发效率和软件研发质量。详情可以参考链接

    六. PaaS 的研究过程中有哪些关键技术点和难点,一般市场是如何选择的?

    PaaS 作为一个综合性的平台,在以」容器+编排引擎」的基础上有诸多关键技术点和难点,本次主要以开源框架和一些市场产品为依托,主要讲述关键点的实现
    1. 容器技术的选择:容器技术是整个平台的基石,犹如开发 web 需要选择开发语言一样,目前有 docker 和 garden 两种主流技术,自研技术选择时尽量选择技术相对成熟、企业应用案例相对较多、技术生态圈发展更多的技术,一般建议选择 docker,如果华为的 PaaS 产品初期选择 garden,目前也已转向了 docker,docker 已经成为一种事实上的标准。
    2. 编排引擎的选择:编排引擎的选择一般会依赖容器技术路线的选择,比如 docker 容器可以选择 kubernetes、swarm 等框架,garden 可以选择 cloud foundry,并且仅此选择。在 BAT、华为、京东等互联网公司中,选择 docker 系的产品更多的选择了 kubernetes,或许源于此框架出自 google 大家之手
    3. 元数据存储的框架选择:由于整个 PaaS 的元数据需要一个高可用的存储结构,以便用作服务发现或共享元数据配置的相关元数据信息。基于 zookeeper 的性能和复杂性等问题考虑,更多的选择 etcd 框架进行使用,openshift、阿里等产品均采用了此框架
    4.PaaS 容器网络的选择:容器的网络隔离是 PaaS 资源隔离的一个重要组成部分,每个容器的网络多采用内部 SDN 网络,SDN 网络的实现技术各不相同,一般主要考虑因素是网络的性能和网络变化的灵活性等因素。开源 kubernetes 采用 flannel 框架,openshift 的产品中考虑到网络性能等采用了 open vswitch,京东在经过各种研究后采用了基于 BGP 路由方式的 Calico
    5.CI/CD 的工具选择:随着最近几年微软对 docker 技术的支持力度加大,各种产品,比如 window server 2016、TFS 等逐渐实现对 docker 的支持。TFS(team foundation server)的产品定位与 jenkins 类似。所以在 CI/CD 的技术落地过程中可以选择 TFS 或者 jenkins,不过大家更广发的采用 jenkins,并且有研发能力的均对其进行一定程度的插件研发和定制
    6. 日志框架的选择:在集群环境中如何管理不同节点的日志是一个重要的问题,并且目前有一套成熟的解决方案。ElasticSearch+Logstash+Kinana(ELK)已成为一种通用解决方案
    7. 负载均衡的选择:负载均衡需要在容器集群的容器成员发生变化时能够自动感知和自动修改路由策略,硬件 F5 和软负载 HAProxy、Nginx 均可做负载均衡,鉴于 HAProxy 的灵活性,更多的产品或者企业落地均选择了 HAProxy
    8. 域名的使用:容器集群中的某个应用可以视作一个对外提供的服务,如果采用 IP,一方面不方便记忆,一方面 IP 有可能改变,因此 PaaS 产品多采用泛域名的形式,将对外提供服务的 IP 地址和域名关联对应,然后再提供一个 route 记录对外提供服务的 IP 地址(frontend)和内部集群 IP 地址(backend),这样就可以实现从外部域名到内部集群 IP 地址的访问。
    PaaS 平台的建议是一个长期的过程,需要不断持续的进行迭代优化,并且随着在 PaaS 之上运行应用系统的增多和使用经验的不断丰富,对 PaaS 平台会有更多深入的认知和体会。因此我们也希望论坛上从事这块研究和实践的朋友能够更多的进行技术交流,从而加深技术了解,让 PaaS 在企业内部更好的发挥其价值和优势。

    展开全文
  • 近一直想总结Azure IaaS和...1.Azure IaaS和PaaS服务类型层次。请参考下面的图片:   对于IaaS来说,用户需要管理的对象是: O/S,操作系统Middleware,中间件Runtime,运行时还有Data和Application 对于I

    近一直想总结Azure IaaS和PaaS的区别与比较,写个博文详细说明一下。建议读者在阅读之前,先熟悉微软PaaS和IaaS平台的基本概念,再参考本文。

    1.Azure IaaS和PaaS的服务类型层次。请参考下面的图片:

     

    Windows Azure云服务IaaS与PaaS层性能分析

    对于IaaS来说,用户需要管理的对象是:

    • O/S,操作系统
    • Middleware,中间件
    • Runtime,运行时
    • 还有Data和Application

    对于IaaS来说,客户就像是使用云端的虚拟机一样,在Azure平台选择自己需要的操作系统(Windows or Linux),在这个操作系统里安装所需要的软件,然后对操作系统及以上内容进行管理。

    2.IaaS的优势?

    IaaS的优势首先来说与传统IDC运维相类似(注意是类似而不是相同,因为公有云都是基于虚拟化技术,比如云端网络虚拟化是与传统IT运维不同的),传统IT运维人员比较容易接受与快速上手。一般我在做项目实施的时候,将云端的虚拟网络、存储账号和虚拟机都创建好以后,直接将Windows Remote Desktop或者Linux SSH连接字符串给到客户IT方,就可以迅速安装所需要的软件了。

    3.IaaS的劣势?

    IaaS的劣势从我个人理解是分为一下几种:

    (1)IT还是需要花精力对服务器进行更新和维护

    公有云服务强调的是Self Service(自服务),对于IaaS层面来说,虽然企业用户不需要话费巨额投资来搭建和维护自己的数据中心,但是还是需要花精力对于操作系统进行更新和维护,比如IT还是需要对操作系统的升级和打补丁,进行维护。采用IaaS节省了硬件采购成本,但是没有解决软件的维护成本。

    (2)用户需要自己来配置高可用组

    Azure提供更新域和故障域来实现服务器的高可用。在IaaS平台,用户需要手动配置高可用组,将多台相同功能的虚拟机配置在同一个高可用组里。否则,虚拟机不能实现高可用。

    (3)为了实现高冗余,需要改架构

    公有云服务在推出之初,是用多台虚拟机并行计算,提供高冗余的方式来解决服务器单点故障的问题。我们知道,凡是硬件服务器就会产生硬件故障。在Azure平台,我们建议用户一般采用2台或者2台以上的服务放在同一个高可用组里,来实现99.95%的SLA。但这样问题来了,我发现很多的客户采用:

    a.单台Web服务器作为前端,并且把session保存在web服务器上。一旦这台Web服务器宕机了,所有的session就会丢失,系统无法正常运行。如果我们考虑99.95%的SLA,需要使用2台Web服务器,并且把session也进行分离,使用云服务商提供的cache服务或者自己在虚拟机里实现cache的主从逻辑。

    b.单位文件服务器存放文件。这台文件服务器也会产生单点故障。如果需要将文件同时提交到多个节点上,在Windows平台需要使用比如DFS(分布式文件系统)或者在Linux平台使用RSync。实现文件在多个节点上进行提交和同步。

    c.单台SQL Server数据库服务器。数据库服务器存在单点故障。我们可以使用SQL Server 2012 Always On来实现数据库的高可用。

    (4)有限的横向扩展能力

    如果大家在使用Azure Auto Scaling的时候,会发现在IaaS层面,如果需要实现100台虚拟机的auto scaling,需要手动预先创建100台虚拟机并在每一台虚拟机里配置同样的application。对于IaaS来说,Azure Auto Scaling不能自动扩展到任意的大小,而需要IT管理人员进行预设。这主要的原因是IaaS虚拟机的之间的数据同步问题,Azure没有办法将应用横向扩展部署到100台虚拟机上,因为每一台虚拟机的底层操作系统文件、应用文件都需要用户自己来管理。虽然我们可以通过虚拟机镜像来快速部署多台虚拟机,但是牵涉到IP规则,数据文件同步等等各方面,这些都需要用户自己来管理。所以对于IaaS来说,横向扩展是有限的。

    上面我们谈了一下IaaS,接下来我们谈谈PaaS平台。如最上面的图所示:

    对于PaaS平台来说,用户需要管理的对象是:

    • Application,应用程序
    • Data,数据文件

    所有底层的OS,Middleware和Runtime,都由Windows Azure来维护。但是要注意,Azure PaaS提供的操作系统其实是Windows。无法在PaaS层使用Linux的操作系统。如果你的应用必须跑在Linux平台,请使用Azure IaaS。


    4.Azure PaaS平台的优势

    (1)不需要维护操作系统

    Azure PaaS平台对于企业的优势是享用服务所带来的价值,而不是实施和维护软件系统的成本。

    Azure PaaS Cloud Service定义了OSFamily和OSVersion,来自动配置操作系统版本及更新内容,用户无需手动对操作系统进行升级。如果客户需要Azure自动升级最新的操作系统,将OSVersion="*";如果客户需要固定某个操作系统的版本,可以设置OSVersion="WA-GUEST-OS-X.XX_20XXXX-XX",设置某个固定的版本。具体请参考:

    (2)自动配置高可用组

    如果用户的应用程序需要实现负载均衡,Azure PaaS平台自动会将应用程序部署到多个计算节点上,并且自动设置故障域和更新域。用户无需手动进行配置。

    (3)自动横向扩展

    Azure PaaS 平台将用户的代码打包为CSCFG和CSPKG。CSCFG是配置文件,用来描述PaaS的节点数量和配置信息。CSPKG是项目打包文件(package)。Azure PaaS通过CSCFG定义计算节点,然后将CSPKG发布到若干个节点上,可以自动实现scale-out。而不像IaaS那样,需要IT Admin预先把虚拟机创建好。

    (4)高冗余可扩展的架构

    Azure PaaS平台架构,可以实现应用的高冗余和可扩展。

    通过将Session保存到外部的存储上(如SQL Server数据库中),可以实现Web Server的高冗余。

    通过将文件保存到Azure Storage上,可以实现文件的99.9%的高可用。另外文件不是上传到计算节点,可以解决文件同步和一致性的问题。

    5.Azure PaaS平台的劣势

    (1)需要借助于开发人员

    对于很多传统IT部署,应用的发布都需要借助于IT来实施。如果采用了Azure PaaS,应用的部署都需要借助于开发人员。这对于IT来说这一个挑战。

    (2)非持久化VM

    Azure PaaS是非持久化VM,任何在PaaS平台安装的软件都是非持久化的。一旦PaaS VM重置了,之前安装的软件都会丢失。

    对于大型的应用程序来说,一般都会安装其他第三方的软件(例如导出Excel,导出PDF,其他第三方插件等等)。

    对于PaaS平台,需要将安装软件的步骤放到ServiceDefinition.csdef的Startup Task中,进行静默安装(-s)

    (3)需要修改代码

    Azure PaaS平台需要修改一些代码,比如Session放在外部存储上,本地文件的读写放到Azure Storage里。

    展开全文
  • 技术平台分层体系-PaaS层浅析

    千次阅读 2020-01-31 23:05:24
    IaaS的定位资源提供按需所取的弹性资源服务,当然资源前面重点只介绍了计算资源,实际上按照计算机的构成和协同工作的原理,IaaS的资源分为“计算”、“存储”、“网络”这三大领域。每个领域的虚拟化都在...

    IaaS层的定位资源层提供按需所取的弹性资源服务,当然资源前面重点只介绍了计算资源,实际上按照计算机的构成和协同工作的原理,IaaS层的资源分为“计算”、“存储”、“网络”这三大领域。每个领域的虚拟化都在有条不紊的构建体系,向上层提供资源服务,最终在类似openstack这样的虚拟化资源管理平台统一纳管提供资源服务能力。

    如果IaaS层定位资源领域通过虚拟化技术统一抽象了不同的底层资源的话,那么PaaS层就可以理解为架设了应用开发者、使用者等最终用户的应用程序和资源以及技术平台之间的桥梁。

    PaaS层基于IaaS资源层,通过抽象应用在服务器集群之上的分布式runtime,管理应用程序的生命周期,为应用程序构建了一套统一的自动化协调的分布式运行环境,以服务化的方式支撑上层的应用的快速创新。

    这里我们从一名开发者的角度来看看应用和资源之间的关系变化,以此来理解PaaS。

    第一阶段:手工+脚本管理时期(开发者需要关注服务器和应用)

    想象下在06年我们开发者大概是怎么处理应用程序和资源之间的关系的。

    假设我们需要在几台服务器上面部署开发的应用程序,可能是对外提供服务的web程序,或者纯粹在后端批量计算处理数据的任务程序等。

    • 首先,我们肯定会将开发完成,具备上线条件的应用程序进行构建打包;
    • 程序构建打包,不管java类的程序还是类似c++等程序,都可以在服务器环境下统一的编译构建,当然也可以在本地环境下构建,不过c++/c这类程序因为跟环境强相关,一般都会在相同的环境服务器上构建程序包。
    • 构建完的程序包一般会存放在某台专门用于部署发布的服务器上,通过脚本维护统一管理。
    • 根据需要选择生产环境服务器节点,指定发布相应的版本程序包,并且通过远程脚本执行命令启动相应的应用程序运行。

    这阶段不管哪些类型的应用,都采用类似的管理方式来处理应用程序和资源之间的关系,基于半手工的模式来构建和运行应用程序。

    第二阶段:分布式框架平台化管理时期(资源层在开发者种逐渐下沉)

    1.数据计算领域

    首先突破的是数据计算处理域,为什么呢?大概有两个原因可能:

    • 因为随着数据计算处理量越来越大,面对服务器集群的资源,被分而治之的任务应用越来越多。尤其在实时系统还没有大规模的被普及应用的时期,批量的离线计算一般是相对保守、稳妥的解决问题的手段。
    • 离线计算多为周期型应用,具有应用频繁的被启停运行等特性,同时因为涉及的服务器数量巨大,进而在问题领域出现了分布式协调的算法,用来协调多台服务器协调工作。比如后来被大规模应用的zookeeper这样的分布式协调服务的组件技术的出现,促进了分布式集群化管理应用的进步。(当然交易处理领域分布式服务化也因为类似zookeeper技术的出现,得到大规模的落地。)

    举个简单的场景:

    假设某一个省份的运营商系统,每天需要周期的常规处理某批数据,那么由于数据的量巨大,一个个问题域就需要被抽象成多个切片去并发处理,充分的利用服务器多核,多集群的计算能力。

    这种场景下,应用的部署和发布的形态出现演变,逐步的由原先的推的模式,改为集中化拉取的调度模式。这种调度模式的演变也成为现在容器化、镜像化的核心实现方式。这里以13年主导设计的某个任务调度平台的设计思路来阐述下这个过程。

    13年在为crm的后台批量应用程序迁移x86服务器集群构建一套分布式集群管理平台,该平台主要解决x86化服务器,因数量指数级增加,人工维护的部署发布、运行环境的成本问题,另外也为了更好的提升集群的资源共享和利用率。

    • 分布式任务集群管理平台中,重点关注各类并发计算的任务如何在众多的服务器集群环境下构建一套统一的runtime环境。
    • 通过定义统一的任务应用模板,配置化支持任务应用的定义配置管理,同时也支持可视化的方式来管理任务的部署、发布。
    • 后端通过调度器+执行器的主从模式,通过分布式协调服务zookeeper来确保任务在分布式的环境下的状态一致性管控。
    • 其中任务应用程序可以采用远程ftp发布或者本地文件系统、分布式共享文件系统方式来发布加载。

    在该平台上,一个任务应用的具体生命周期如下:

    • 使用者通过平台定义任务应用模板,配置具体带业务属性的任务模板,生成任务配置数据入库;
    • 任务调度器根据任务模板配置数据的扫描确定任务具体的调度方式,包括任务周期性调度属性的计算;
    • 调度器会根据到期的任务属性,发起具体任务的计算调度,将其生成任务流水设置在zookeeper定义的节点中。
    • 预先部署在各个服务器节点的执行器节点启动后会通过zookeeper完成计算节点注册,同时watch任务节点获取任务调度的请求;
    • 一旦调度器触发的任务实例根据调度算法,分发任务信息进入zookeeper节点,相应的执行器节点就会获取到该任务信息;
    • 执行器加载该任务对用的程序包,完成指定的任务业务逻辑的计算,大多数分为加载分片数据,多线程派生并发计算处理的模型;
    • 执行器启动后会保持与调度器之间的心态,周期的任务一旦处理完成,执行器会释放加载的业务计算任务,等待新的计算任务到达。

    2.web服务领域

    随着交易领域的越来越普及,交易量不断的增长,交易领域计算框面向资源层也演变出相应的分布式计算管理平台。

    强力依赖网络能力提供服务的web类应用,随着服务器集群化以及业务量负载的增长也迫切的需要构建一套能够动态的管理这些常驻应用的平台,帮助提升web类应用的并发、弹性计算能力。

    回望下这之前web类应用部署使用情况,手工维护主机列表,通过有限的脚本部署发布相应的服务,通过手工维护负载均衡器的后端应用地址来实现服务的对外上架服务。这种人肉的模式存在缺点也很明显:

    • 应用越来越多,服务器集群规模越来越大,脚本和人工维护的成本越来越高;
    • 面对高度不确定性的处理量的web应用,不能够快速灵活的提供弹性的机制来上下架服务以及扩缩容等操作,基本上是人工经验调整。

    具备分布式管理能力的微服务架构通过一套订阅/注册机制,灵活的将服务端的能力通过注册中心统一自动发布,服务使用者通过注册中心订阅相应的服务处理能力。

    这其中也得益于数据计算领域的技术进步,zookeeper这样封装了分布式协调算法的技术组件的普及应用,为构建这套体系提供很好的技术基础。(这里就不详细阐述微服务框架,后续可以单独展开来说)

    这个阶段,在开源的领域主要都是各个问题域的计算框架以及各个公司私有框架在分布式化的过程中沉淀了各式各样的平台能力,比如大数据领域hadoop,包括后来的spark、storm、flink等,服务领域的dubbo等框架,这些应用框架都自带了对分布式应用在资源层之上的统一管理和调度的工具。

    第三阶段:PaaS平台化阶段(开发者无需关注资源层)

    随着服务器集群化,各个应用框架在各自的问题域里面构建各自的分布式框架,并且逐步向平台化管理方式演变,但是企业面临的实际情况是,包含了不同问题域的业务,那么就需要各自管理好各自领域的分布式应用平台,站在企业角度考虑这样缺乏统一体系化的管理考虑,直到PaaS标准概念的出现。

    PaaS是站在企业角度,构建一套以应用、技术平台为中心的一站式平台体系,让不同的应用、技术平台都能够在这样的体系下面以相同抽象的方式统一对外提供服务。

    PaaS平台化时期主要考虑解决两类核心问题:

    1.应用在IaaS层之上需要构建怎样的分布式统一标准的runtime,支撑应用统一的运行环境,类似基于异构的硬件服务器+linux操作系统之上构建分布式时期的操作系统;

    2.应用集成中需要使用到数据库、各种各样的中间件、开发框架等技术,如何面向使用者提供统一一站式管控的技术平台化能力的体系,也是核心之一。(平台即服务重点体现的就是技术平台的服务化能力抽象)

    下面通过一个简单概要的架构图来体现下PaaS平台的核心思路,在实际落地过程中有商用、有开源、有自研的模式,但是对于一家企业来讲选择和构建PaaS的体系是相对统一的。

    可见PaaS层是构建在IaaS层之上的,核心通过应用管控引擎和服务化的标准管理来统一管理平台上的应用和技术平台。

    这里应用和技术平台本质上都是应用程序,只不过技术平台是具有技术特性的,普通的应用是具有业务特性抽象的。

    围绕着应用的生命周期,构建了一整套应用从代码的开发管控、构建、测试和部署发布、应用运行调度、运维一体的平台。在这套平台里面几个特点:

    • 通过一个统一的门户对外提供平台的服务化能力,考虑开发者、应用使用者、运维者等不同的角色,围绕不同类的用户构建统一的权限管控体系;
    • 通过构建开发管理域的体系,为开发者提供从代码管控、代码构建、测试到部署发布的体系化的能力;
    • 通过为应用程序构建应用模型,构建应用管控引擎连接应用和资源的部署调度实现应用在平台的生命周期管理;
    • 所有的应用和各类中间件等技术平台都可以通过标准的service broker的协议实现在PaaS门户的上下架统一管理和服务提供。

     

    大概初略的总结下PaaS层领域的演进的思路:

    1.IaaS层注重资源层面虚拟化服务化的能力的构建,PaaS层围绕应用为中心提供一整套应用管控的体系,以服务化的方式对外提供;

    2.早期应用的整套管理都是人工+脚本的方式构建的,在这种模式下基本上可以管控的服务器规模、应用规模都是可控的;

    3.随着服务器集群化,尤其是x86化带来的改变,服务器集群的规模成倍增长,应用的管控人工+脚本方式落后的缺点凸显,催生了PaaS这样的体系化的抽象模型。

    4.PaaS围绕应用,应用包括普通应用和技术平台应用,因此PaaS平台真正的将应用统一的抽象,通过构建应用管控的引擎,统一对接IaaS资源层;通过类似service borker这样服务化的标准协议实现这些普通应用和普通应用面向使用者的统一开放管理。

     

    到这里,有必要说明下容器技术的普及以及容器编排技术的普及对PaaS带来的影响。

    首先,容器个人认为是资源层面虚拟化的进一步提升;还记得在之前的篇幅说过,对于开发者来讲,在服务器上部署应用资源的单元是以虚拟机为单位的。这样的使用资源方式存在缺点:

    • 资源在服务器操作系统是以竞争的方式占用和切换的;
    • 应用程序部署在虚拟化的服务器上,互性竞争使用计算资源,但是虚拟机上应用部署需要提前规划,类似电信行业7*24小时的服务要求,会要求服务器资源占比控制在比较低的占比上,浪费资源,部署运行凸显人工经验化。
    • 容器技术的出现和普及,一方面计算资源的分域管控达到应用级别,应用的部署交给了容器编排的平台采用算法自动化的分配管理,无需人工经验参考和调整。另一方面,镜像技术的出现也极大的统一的应用运行环境,以及应用发布的模式,解决了多语言、多环境以及部署发包不完整等一系列的问题。

    所以容器和容器编排技术的普及使用,本质上并没有改变PaaS平台的初衷,只是在应用和资源的结合层面,应用管控的调度层有标准化统一的抽象处理方式。

    大的企业,考虑到存量的平台建设情况,在引入容器、容器编排技术的同时,都在构建基于虚拟机和容器化异构的技术栈的PaaS平台,同时兼顾到不同技术使用形态的情况,持续为企业构建统一的应用运行环境。

    展开全文
  • 云计算服务层次 PAAS IAAS SAAS

    千次阅读 2012-05-09 08:34:28
    在云计算中,根据其服务集合所提供的服务类型,整个云计算服务集合被划分成4个层次:应用、平台、基础设施和虚拟化。这4个层次每一都对应着一个子服务集合,下面所示为云计算服务层次。     ...
  • LaaS,PaaS,SaaS 的区别 一.IaaS,PaaS,SaaS是三种云服务,全称分别是: IaaS:基础设施服务,Infrastructure-as-a-service PaaS:平台服务,Platform-as-a-service ...2、PaaS(平台即服务),用户
  • 很多人都用过Azure上PaaS层的MySQL,根据长期对一线客户的实施和运维,详细总结了MySQL的微软云的高可用独特功能,画了一张图来体现,如下: 上图分成了2个部分,一部分介绍了MySQL使用主从实例的场景,也就是说,...
  • iaas paas saas 服务区别

    2019-03-21 10:34:25
    第一叫做IaaSIaaS:Infrastructure-as-a-Service(基础设施即服务) 举例:几年前如果你想在办公室或者公司的网站上运行一些企业应用,你需要去买服务器,或者别的高昂的硬件来控制本地应用,才能让你的业务正常...
  • 云计算服务层次,PAAS、SAAS、IAAS

    千次阅读 2012-11-09 09:21:45
    云计算服务层次,PAAS、SAAS、IAAS   在云计算中,根据其服务集合所提供的服务类型,整个云计算服务集合被划 分成 4 个层次:应用、平台、基础设施和虚拟化。这 4 个层次每一都 对应着一个子服务集合,...
  • PaaS

    2019-12-14 11:48:55
    一些大型电子商务企业为支持搜索引擎和电子邮件服务等需要海量数据处理能力的应用,开发了分布式并行技术的平台,在技术和经验有一定积累后,逐步将平台能力作为软件开发和支付的环境进行开放。...PaaS层需要具备存...
  • 云计算中讨论的服务包括:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)三个层次的服务。平台即服务(PaaS)是云计算的重要组成部分,提供运算平台与解决方案服务。2、PaaS与IaaS的区别IaaS指把IT基础...
  • PAAS

    2019-09-23 17:54:46
    PaaS是Platform-as-a-Service的缩写,意思是平台即服务。 把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为...
  • IaaS 基础设施即服务 Infrastructure as a service 通即虚拟的硬件资源,如虚拟的主机、存储、网络、安全等资源 用户无需购买服务器、网络设备和存储设备,只需要通过网络租赁即可搭建自己的... PaaS 平台即服务..
  • 平台即服务PaaS PAGE 1 [文档标题 平台即服务PaaS PaaS是Platform as a Service的首字母缩写意为平台即服务即把IT系统的平台软件作为服务出租出去 PaaS云服务提供商需要把基础设施和平台软件都搭建好然后在...
  • 而在PaaS中,因为实例一般默认为动态IP,对于7层调用(比如http请求),需要7层动态路由获取应用域名(或虚IP)和后端实例的映射关系,以提供7层服务;而对于4层调用(比如rpc调用),可以通过动态LVS或名字服务(或...
  • paas平台即服务_平台即服务

    千次阅读 2020-06-20 23:23:58
    平台即服务通常是云计算中最令人困惑的分类,因为它很难识别,常常被误认为是基础架构即服务或软件即服务。 在这个由三部分组成的文章系列的第二部分中,了解PaaS的独特之处以及如何在您的业务中利用它。 常用...
  • paas

    2012-06-26 10:34:00
    PaaS是Platform-as-a-Service的缩写,意思是平台即服务。 把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代相应的服务器平台或者开发环境作为...
  • 今天,即使对这种云计算服务模型的定义也相当模糊。 通常,它被描述为具有一系列部署和扩展自动化,应用程序管理和DevOps工具的云托管平台,这些工具可以在共享基础架构或本地运行。 此外,PaaS消除了构建和维护...
  • Iaas SaaS PaaS区别

    千次阅读 2014-06-10 17:57:12
    任何一个在互联网上提供其服务的公司都可以叫做云计算公司。其实云计算分几的,分别是Infrastructure(基础设施)-as-a- Service,Platform(平台)-as-a-Service,Software(软件)-as-a-Service。基础设施在最...
  • 行业分类-设备装置-可增强媒体云平台服务层安全的双重异构PaaS冗余方法.zip
  • 术语-服务PaaS

    2018-01-23 16:08:00
    ylbtech-术语-服务PaaS PaaS是Platform-as-a-Service的缩写,意思是平台即服务。 把服务器平台作为一种服务提供的商业模式。通过网络进行程序提供的服务称之为SaaS(Software as a Service),而云计算时代...
  • PaaS服务之路漫谈(一)

    千次阅读 2018-10-30 11:55:00
    此文已由作者尧飘海授权网易云社区发布。欢迎访问网易云社区,了解更...EC2)服务,云计算可以认为包括以下几个层次的服务:基础设施即服务(IaaS),平台即服务PaaS)和软件即服务(SaaS)。 公司目前也在云计算...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 24,976
精华内容 9,990
关键字:

paas层服务