设为首页 收藏本站
查看: 502|回复: 0

[经验分享] Apache StratOS Cartridges 介绍及部署方式

[复制链接]

尚未签到

发表于 2018-11-19 11:29:15 | 显示全部楼层 |阅读模式
  Cartridge
  简介
  Cartridge是一个基于IaaS 的虚拟机 (VM),其中包含了和Stratos PaaS进行交互的组件。Stratos 提供了在OpenStack和Amazon EC2上开箱即用的PHP,MySQL和Tomcat等cartridge。此外,Strato支持任何可插拔的cartridge,包括以下几类︰数据、负载平衡器、应用框架和应用程序。Cartridg因操作系统 (OS) 和 IaaS 不同而不同,因此,你需要为每个OS 和 IaaS 创建自定义的Cartridge。Stratos中所有的cartridge都为云应用程序提供了非常安全OS级的隔离环境。cartridge可以运行于两种模式 :单租户模式和多租户模式。Cartridge的类型不同源于创建它的方法:通用Cartridge和完全配置Cartridge。如果需要,您可以使用配置工具(如Puppet、Chef等)使得cartridge创建过程自动化。
  Cartridge实例
  在一个运行的Stratos环境中,每个虚拟机(VM)或Docker容器被认为是一个cartridge实例。
  Cartridge模式
  可以用单租户或多租户方式来创建cartridge,在下面的小节阐述了这些cartridge类型
  单租户cartridge
  在Apache Stratos中,单租户应用程序部署时,其中包含了一个或多个单租户cartridge。租户用户登录到应用程序,系统为应用程序中的每个cartridge创建单独的cartridge实例,从而,提供用户进程级别的隔离,并提供用户专用的实例。单租户用户可以映射到一个或多个cartridge实例
DSC0000.jpg

  多租户cartridge
  在 Stratos中,多租户应用程序包含一个或多个多租户cartridge,允许多个租户共享单个cartridge实例。即使租户用户共享单个cartridge实例,用户的处理也是由隔离的程序代码安全地单独处理的。用户必须注册到应用程序后,才能够使用该应用程序。
DSC0001.jpg

  Cartridge创建方式
  Apache Stratos允许DevOps使用完全配置cartridge方式或通用cartridge方式来创建cartridge。上述提到的cartridge创建方式,在下面的小节中法进行解释和分析。
  通用cartridge
  通用cartridge是指在生成一个cartridge实例后,在已运行的情况下,在cartridge实例中安装所需的软件。通用cartridge是一个只含基础操作系统(OS)镜像和预装有安装脚本的Puppet代理 (PA)的cartridge。创建一个cartridge所涉及的具体步骤取决于所使用 IaaS。有关创建一个cartridge的详细信息,请参阅创建一个新的cartridge章节。
  

  如何工作?
  当用户注册到应用,该应用具有一个或多个通用cartridge,云控制器将加载的基础数据发送到 IaaS,接着IaaS使用和应用对应的通用cartridge快照来启动cartridge实例。在cartridge实例启动时,启动脚本 (例如,init.sh) 在cartridge内的自动执行,并且启动Puppet代理程序,Pupput代理将和Puppet主节点交互,然后,在cartridge中安装cartridge代理和所需软件。此后,cartridge代理与Stratos交互,来执行所需的操作。
  

  完全配置cartridge
  完全配置cartridge也可认为是预先配置cartridge,其中所有的软件和配置都事先预制好了。完全配置的cartridge包括基础的操作系统 (OS)镜像,安装脚本,所需的软件,Puppet代理 (PA) 和cartridge代理 (CA)。Puppet代理将与Puppet主节点交互,当实例中的软件和Puppet主节点上软件之间有区别时,获取所需的软件更新。创建一个cartridge所涉及的具体步骤取决于所使用的IaaS。有关创建一个cartridge的详细信息,请参阅创建一个新的cartridge章节。
DSC0002.jpg

  如何工作?
  当用户注册到应用,该应用具有一个或多个预先配置的cartridge,云控制器将加载的基础数据发送到 IaaS,接着IaaS使用和应用对应的预先配置cartridge快照来启动cartridge实例。在cartridge实例启动时,启动脚本 (例如,init.sh) 在cartridge内的自动执行,并且启动cartridge代理程序,cartridge代理和Stratos交互,来执行所需的操作。Puppet代理只与Puppet主节点交互,获取所需的软件更新。
  总体比较
  Apache Stratos提供的两种cartridge的创建方法,各有优缺点。因此,DevOps 根据其组织的需要,选择最合适的cartridg创建方法。
  所有的应用程序和配置已预先配置的完全配置cartridge方式,DevOps可以比通用cartridge方式更快地生成cartridge实例。然而,由于通用cartridge并不拥有任何特定的应用程序和配置,DevOps可以使用同一cartridge生成不同类型的cartridge实例,而不需要为每个cartridge类型创建单独的cartridge镜像。
  若要了解如何在虚拟机和Docker上创建一个cartridge,请参阅创建一个新的cartridge章节。
  
  Cartridge部署
  最初,当添加一个cartridge,DevOps必须通过CLI、 Web UI 或 REST API使用cartridge.json来定义cartridge,并将其发送到 Stratos管理器。此后,Stratos管理器发送cartridge定义到云控制器 (CC)要求添加cartridge。云控制器根据cartridge镜像ID进行验证 (例如,EC2上一个亚马逊机器镜像 [AMI])。如果cartridge已经存在,云控制器删除现有的cartridge并将已修改配置后的新cartridge添加进去。如果不存在cartridge,云控制器开始添加cartridge的过程,云控制器将cartridge定义添加到其内存中的数据结构,并持久化记录到其注册表,此后,云控制器更新拓扑结构的服务定义,并将拓扑事件发布到消息代理 (MB)。
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636960-1-1.html 上篇帖子: Apache StratOS 部分功能介绍 下篇帖子: Apache Stratos Mock架构及持久化存储卷的映射
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表