热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

引入Stratos2.0–一种开源的平台即服务

有那么多云平台,很难选择最适合您需求的云平台。但是,第一个真正的开源云平台又如何呢?WSO2的PaulFremantle解释了如何运行应用

有那么多云平台,很难选择最适合您需求的云平台。 但是,第一个真正的开源云平台又如何呢? WSO2的Paul Fremantle解释了如何运行应用程序,并解释了项目背后的体系结构。 本文发表在《 JAX Magazine:On Cloud Nine》上。

编者注:自从本文发布以来, Stratos 2.0现在是最终版本。

成为PaaS意味着什么?

我对PaaS的定义是一种云基础架构,其目标是提供对开发人员更有用的云服务。 例如,IaaS提供“计算即服务”(即虚拟机)。 PaaS提供更高级别的服务,例如App Server。 因此,例如,如果您具有“计算即服务”,则必须提供一个虚拟机才能运行。 如果您具有Java App Server即服务,则可以为其提供WAR文件。

第二个方面是项目本身。 某些PaaS仅作为运行服务提供。 例如,Google提供了App Engine,但没有提供自己运行它的功能。 Stratos是使您能够自己运行PaaS的代码,项目和产品。 另外,还有一个基于Stratos的运行PaaS,称为StratosLive 。

Stratos的初始版本针对基于Java的正在运行的工作负载,包括Webapp,ESB流,BPEL流以及基于WSO2 Carbon OSGI中间件服务集的其他服务。 Stratos是第一个可用的开源PaaS。 新发布的Stratos 2.0 beta已更新,以支持不仅仅基于Java或Carbon而是可以使用可插拔Cartridge模型在任何语言或框架下运行的运行服务。 本文重点介绍Stratos 2.0 –它的体系结构,方法以及使用方法。 所有样本均基于撰写时的当前Beta(beta2)。

Stratos对任何开发人员而言最重要的方面是:

  1. 如何开始在Stratos PaaS上运行应用程序?
  2. 运行Stratos需要什么?
  3. 在Stratos(墨盒)上运行的服务集
  4. 多租户
  5. 建筑

如何开始?

假设您正在运行Stratos PaaS,并快速了解如何创建和运行应用程序。Stratos中首先需要的是租户。 Stratos中的所有内容均基于多租户模型。 每个租户都有一个隔离的环境。 租户可以是单个用户或整个公司的用户。 租户中的每个用户都由一个ID标识,例如paul@fremantle.org ,其中fremantle.org标识该租户。

图1中 ,您将找到租户注册屏幕:

图1:租户注册

现在我们有了一个租户,下一个工作就是订阅正确的服务。 假设我们要部署一个使用MySQL数据库PHP应用程序,那么我将需要同时订阅PHP卡式盒和MySQL卡式盒。 我可以通过Web控制台或命令行进行订阅。 命令行非常简单:

stratos paul@fremantle.org mypassword subscribe php myphp –repoURL https://github.com/pzfreo/php-stratos.git

repoURL是代码存储的位置。 例如,如果我们使用的是PHP,则需要将该PHP应用程序放入此存储库的www /目录中。 默认情况下,当您进行订阅以及启动或重新启动实例时,Stratos将检出此代码。 您还可以安装一个Webhook(例如在Github上),该Webhook将通知Stratos更新,然后Stratos将对其进行git pull。

我们还可以在命令行中提供最小/最大实例,回购用户ID /密码以及其他选项。 这将返回一个URL,现在我的应用程序将可用(在本例中为myphp.php.stratos.com)。

到目前为止,我们已经完成了以下工作

  • 创建了一个订阅
  • 启动了PHP卡式盒的实例
  • 从Git签出代码到每个实例
  • 在负载均衡器中注册实例

我们还可以使用Web控制台预订盒带, 如图2所示。

图2:可用的墨盒


此外,我们可以将盒带“连接”到另一个盒带:例如,订阅MySQL,然后将PHP应用程序连接到MySQL数据库。

运行Stratos需要什么?

Stratos 2.0是在多个IaaS上运行的PaaS:它使用一个名为jclouds的优秀项目在多个IaaS云运行时之上工作,包括EC2,OpenStack(以及Rackspace Cloud,HP Cloud和SUSE Cloud)以及VMware vSphere等。 在StratosLive的生产环境中,Stratos已在包括OpenStack和EC2在内的各种运行时中运行。 最简单的方法是启动使用EC2作为IaaS的Amazon EC2 AMI。 第二种最简单的方法是使用OpenStack和/或DevStack。

Stratos主要用Java编写,因此例如要运行命令行客户端,需要在运行CLI的计算机上安装JDK6或JDK7。 为了在多计算机云上完整安装Stratos,建议使用Puppet。 有一组Puppet脚本可让您执行此操作。

在Stratos上运行的服务集

墨盒提供Stratos用户可使用的服务数量。 基本上,磁带可以使您将新的服务类型插入Stratos环境。 任何人都可以创建盒带,但是它需要Stratos管理员将其插入并配置到特定的Stratos部署中。 启用盒带后,任何租户都可以订阅它们。

当前测试版支持以下服务/墨盒:

  • 使用WSO2 Application Server 5.0的Java应用程序(Webapps / WAR文件,JAX-WS服务,JAX-RS服务)
  • PHP 5.5应用程序
  • MySQL 5.5数据库

以下是现有Stratos 1.6服务的子集,在此发行版中,计划还支持所有现有服务:

  • 使用WSO2企业服务总线4.6的ESB流
  • 使用WSO2 Business Process Server 3.0的BPEL流
  • 使用AMQP和WSO2 Message Broker 2.0的JMS队列/主题
  • 使用Drools和WSO2业务规则服务器的业务规则
  • 使用WSO2 CEP和Siddhi进行复杂事件处理。
  • 使用WSO2治理注册表的注册表/存储库
  • 使用WSO2身份服务器的SAML2 SSO,OpenID,OAuth 2,XACML 3.0以及其他身份和访问管理
  • 使用WSO2数据服务服务器的数据服务
  • 使用WSO2存储服务器的Cassandra即服务

但是,这实际上只是计划的一小部分:正在开发的是MongoDB,Node.js,Ruby和其他工具。 还有一个添加盒带的明确定义的模型,以及任何公司,开源项目或开发人员都可以遵循的操作指南。

多租户

Stratos最重要的方面之一是它本身就是多租户。 每个方面都用租户的概念来写。 例如,当您订阅特定服务(例如PHP)时,您将代表租户获得一个PHP运行时。 这将设置负载平衡器,以将请求从租户的URL路由到PHP Web应用程序。

域映射是Stratos 2.0功能的一个非常好的新增功能。 如果您拥有特定的域(例如fremantle.org),则可以将域名映射到盒式磁带实例–例如,将wordpress.fremantle.org映射到您PHP订阅。

该多租户也可供开发人员使用:您可以将Stratos用作编写本身就是多租户的SaaS应用的地方。 但是,这是另一篇文章的主题!

租赁模型扩展为支持许多核心服务,包括日志记录,SQL(MySQL即服务),NoSQL(Cassandra即服务)和其他。 无论磁带盒有多少实例都可以按比例放大和缩小,日志都会自动发送到中央多租户日志服务,该服务将其存储并提供给每个租户。

每个部署在不同的模型中使用租户模型:例如,在公共StratosLive中,租户是独立的组织,每个组织都有自己的用户群。 在Stratos的其他私有部署中,租户已被用来代表一个部门或项目,每个租户从共享的用户群中获取用户。 身份服务器启用了此功能,身份服务器为Stratos提供了核心身份和访问控制模型。

Stratos多租户的一个重要方面是,不同的盒带可以是单租户,也可以是多租户。 在多租户的情况下,保持租户的隔离是租户的责任。 作为回报,通过在同一实例中托管许多租户,可以更好地利用资源。

整体架构

图3显示了Stratos 2.0 PaaS的结构。

图3:Stratos架构

整个结构位于IaaS之上,并利用jclouds连接到IaaS。 下一层是Stratos核心,它由一组组件组成,这些组件控制结构中服务的管理。 这些组件管理系统中的所有工作,包括负载平衡,启动和停止服务实例以及分发代码。

Stratos控制器是PaaS的主要组件。 这将管理订阅,维护身份并提供CLI和Web控制台使用的核心服务。

Elastic Load Balancer控制许多方面。 首先,顾名思义,这可以与SC和Cloud Controller配合使用,以随着负载的增长和收缩而停止和启动实例。 其次,这将重写URL并处理进入PaaS的路由请求到代表租户运行的特定实例中。 因此,例如,这可能会将对wordpress.fremantle.org的请求路由到http://10.2.3.35 ,这是为租户fremantle.org运行的私有实例。

ELB的重要功能是“私人喷射”模式,该模式允许您为一个或多个租户保留某些实例。 这意味着,如果有多租户盒式磁带(例如Carbon服务器),则可以通过在负载均衡器上设置策略来选择在单个实例中共享租户还是在专用实例中进行选择。

云控制器由ELB和Stratos控制器调用。 这需要来自他们的请求来停止和启动实例。 然后,它使用jclouds与IaaS进行通信。 从这里开始,我们可以支持非常轻量级的容器,例如使用OpenStack占用空间很小的LXC容器。

Stratos Core之上是一组重要的基础服务。 这些是可选的,但已发现它们在StratosLive和其他部署中提供必要的服务。 这里的服务包括:

  • 日志即服务
  • 关系存储服务(RSS)–多租户SQL数据库管理
  • 列存储服务(CSS)–多租户Cassandra
  • 文件存储服务(FSS)– Hadoop文件系统(HDFS)即服务
  • 注册表/存储库
  • 单一登录和身份/访问管理
  • 任务管理即服务
  • 计费与计量

最后,顶层是代表租户创建的一组平台服务。 换句话说,我们之前介绍过的墨盒。

Stratos依靠Git作为代码/人工部署机制,因此,当您订阅盒式磁带时,您将提供Git存储库位置。 然后,为了部署应用程序,您只需要将该应用程序检入Git。 这由称为Artefact Distribution Center(ADC)和Deployment Synchronizer(DepSync)的两个子组件处理。

最后,关于体系结构的重要一点是开放性。 所有组件都通过API相互通信,这些API可以进行编码。 每个组件都有许多插入点–例如,您可以向ELB添加自己的负载均衡算法。 当然,它们都是开源的。

结论

Stratos是第一个受支持的开源PaaS。 从那时起,它已经走了很长一段路,新的Stratos 2.0是对Stratos 1.6的重大改进。 将新磁带盒插入Stratos 2.0并使用任何语言或框架创建新的多租户服务的能力大大增强了。 评估Stratos时,固有的多租户和基础服务的丰富性以及广泛的弹药筒都是重要的区别因素。 我希望您发现这篇文章很有趣,并且吸引您尝试Stratos beta并加入社区。

有关下载,AMI和文档,请参阅Beta2发行说明 。

作者简介: Paul Fremantle是WSO2的联合创始人兼CTO。 Paul是Apache成员,并且是Apache Synapse项目的创始人之一,并且领导并参与了WSO2的许多开源创新。 Paul在创建企业级服务器运行时以及与敏捷开发团队合作创建世界一流的软件方面拥有丰富的经验。 保罗还吹响锡笛。

本文发表在《 JAX Magazine:On Cloud Nine》上。 对于该问题和其他问题, 请单击此处 。

云图由Akakumo提供


翻译自: https://jaxenter.com/introducing-stratos-2-0-an-open-source-platform-as-a-service-106313.html




推荐阅读
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
author-avatar
DYongLi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有