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

服务Recipes

2019独角兽企业重金招聘Python工程师标准一项服务由服务描述文件和其支持的文件组成。服务描述文件(ServiceDescriptorFile)

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一项服务由服务描述文件和其支持的文件组成。

服务描述文件(Service Descriptor File)

描述了以下信息:

  • General: 描述服务的 name, service type, number of service instances, and the service icon filename
  • Compute: 指定供应machines时的template名称。 这个名字与cloud driver中定义的template名字相一致。描述machine池中可用于服务实例的machine硬件配置文件。硬件配置文件映射到一个特定的硬件设置和镜像大小(e.g. 在Amazon EC2将映射为镜像大小相关的硬件id[m1.small, c1.medium, etc.] and an ami id). 这可以与云环境中应用recipe运行的machine进行清晰的区别开。更多的可以参见 Cloud Drivers.
  • Lifecycle Events: Maps events to handling scripts or closures and, as such, is the most important part of the service recipe. An event handler can be an external Groovy script, a shell script, or a batch file (depending on the operating system). The handlers must reside in the service folder
    Cloudify can use the same recipe for different operating systems, as long as you specify the relevant instructions for each within the recipe, or the instructions are generic to all of them. The use of handler files is optional. For example, if a post-installation script is not specified in the service recipe, then Cloudify does not execute a handler after the service has been installed.
  • Custom Commands: Maps custom commands to handling scripts that can be invoked as commands using the Cloudify shell
  • Probes: For monitoring service configuration, performance, and availability
  • UI Layout: Describes the layout to use for displaying the collected metrics in the Cloudify web management console
    In future releases, Cloudify will also support “provided services”. These services are not provisioned by Cloudify and are only monitored for availability.
General Section

The General section describes the following attributes:

name
服务名称是相对各种Cloudify管理和监控工具,用于标识服务。因此,相同的Cloudify controller管理的所有应用的名称必须是唯一的。

icon
使用可选的图像文件作为Application Map中的服务务图标,将会显示在 Cloudify web management console.

It is recommended that the image will not exceed the size of 20×20 pixels, as this can burden the image loading within the Web Management Console, thus resulting in slower performance. Images exceeding the specified dimensions will be scaled to fit regardless.

type
服务类型,Cloudify web management console 在Application Map中定位服务。 If you do not specify an icon in this section, the service type is used to determine the default icon to display in the Application Map. 以下是可支持的类型:

  • WEB_SERVER
  • APP_SERVER
  • DATABASE
  • NOSQL_DB
  • MESSAGE_BUS
  • ESB_SERVER
  • LOAD_BALANCER
  • SECURITY_SERVER

numInstances
当服务启动时,供应初始的实例数。

General section示例如下:

service {

name "jboss-service"

icon "jboss.jpg"

type "APP_SERVER"

numInstances 2

 

//recipe body here

}

Isolation SLA (Multi Tenant Deployment)

Cloudify 允许在同一主机中部署多项服务。
此举的目的是,在基于BYON云时,将物理机最大化利用。支持以下四种模式:

  1. dedicated (default) – 该主机仅专用于一种服务实例。其它服务不能在该主机上部署。
  2. global – 该主机可能被所有的应用和租户共享。在 Isolation SLA部分配置其共享容量。
  3. appShared – 同一应用的服务可以共享machines。
  4. tenantShared – 同一租户(相同的安全验证组)的服务可共享machines。
在当前版本中,在managent machines中安装服务/应用仅允许global mode.

例子:

service {

name "groovy"

type "WEB_SERVER"

elastic true

numInstances 2

maxAllowedInstances 2

// define SLA requirements for each service instance with regards to isolation from other services

// if this is not defined - defaults to dedicated mode. which means each service instance is insalled on a dedicated VM.

isolationSLA {

global { // global - meaning each service instance can be installed on any VM that answer the requirements below.

// allowing services to share VM's. Note: VM's running management process are not included.

instanceCpuCores 0 // no CPU requirements, this way instances can be installed on the same VM even if it has just one CPU(can also define 0.5 CPU requirements and so on...)

instanceMemoryMB 128 // each instance needs 128MB to be allocated for him on the VM.

useManagement true // Enables installing services/applications on the management machines. Defaults to false.

}

}

可以定义在 -service.groovy :

isolationSLA {

appShared { // services belonging to the same application may share machines

instanceCpuCores 0

instanceMemoryMB 128

}

}

 

 

isolationSLA {

global { // all services may share machines

instanceCpuCores 0

instanceMemoryMB 128

}

}

 

isolationSLA {

tenantShared { // service belonging to the same authenticationGroup may share machines

instanceCpuCores 0

instanceMemoryMB 128

}

}

如果没有对其定义,那么a dedicated isolation 将被使用,即服务实例不能共享machines。
这项特性仅在 BYON Cloud Driver上做过测试。
Prior to using this, please read how to set the reserved memory capacity.

从一个文件加载 Sections

描述文件中的任一sections可以从外部文件中加载服务信息到描述文件中。这样,某一sections可以被多个服务的描述文件共享。

在服务描述文件中,定义在General section的Groovy参数可以被外部文件使用。

例如,定义一个标准的web management console metrics布局, 如下:

  1. 在一个外部文件中定义userInterface section。

    userInterface {

    metricGroups = [

    metricGroup{

    name = "process"

    metrics = ["cpu", "memory"]

    }

    ]

    widgetGroups = [

    widgetGroup{

    name ="cpu"

    widgets = [

    balanceGauge{metric = "cpu"},

    barLineChart{metric = "cpu"}

    ]

    },

    widgetGroup {

    name = "memory"

    widgets = [

    balanceGauge { metric = "memory" },

    barLineChart{ metric = "memory"

    axisYUnit Unit.PERCENTAGE

    }

    ]

    }

    ]

    }

  2. 在服务文件中可加载外部文件。

    service {

    name "myService"

    ...

    userInterface load("userInterface.groovy")

    }


转:https://my.oschina.net/hjswust/blog/123508



推荐阅读
  • 本文详细介绍了MySQL数据库的基础语法与核心操作,涵盖从基础概念到具体应用的多个方面。首先,文章从基础知识入手,逐步深入到创建和修改数据表的操作。接着,详细讲解了如何进行数据的插入、更新与删除。在查询部分,不仅介绍了DISTINCT和LIMIT的使用方法,还探讨了排序、过滤和通配符的应用。此外,文章还涵盖了计算字段以及多种函数的使用,包括文本处理、日期和时间处理及数值处理等。通过这些内容,读者可以全面掌握MySQL数据库的核心操作技巧。 ... [详细]
  • 使用 ListView 浏览安卓系统中的回收站文件 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • 在Android平台中,播放音频的采样率通常固定为44.1kHz,而录音的采样率则固定为8kHz。为了确保音频设备的正常工作,底层驱动必须预先设定这些固定的采样率。当上层应用提供的采样率与这些预设值不匹配时,需要通过重采样(resample)技术来调整采样率,以保证音频数据的正确处理和传输。本文将详细探讨FFMpeg在音频处理中的基础理论及重采样技术的应用。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 《Intel IA-32 架构软件开发人员手册详尽指南》提供了详尽的 IA-32 架构技术文档,涵盖指令集、系统编程和硬件接口等内容,为软件开发人员提供全面的技术支持和参考。该手册不仅包括详细的架构说明,还提供了丰富的编程示例和最佳实践,帮助开发人员更好地理解和应用 IA-32 架构。 ... [详细]
  • 本文深入探讨了CGLIB BeanCopier在Bean对象复制中的应用及其优化技巧。相较于Spring的BeanUtils和Apache的BeanUtils,CGLIB BeanCopier在性能上具有显著优势。通过详细分析其内部机制和使用场景,本文提供了多种优化方法,帮助开发者在实际项目中更高效地利用这一工具。此外,文章还讨论了CGLIB BeanCopier在复杂对象结构和大规模数据处理中的表现,为读者提供了实用的参考和建议。 ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 解决问题:1、批量读取点云las数据2、点云数据读与写出3、csf滤波分类参考:https:github.comsuyunzzzCSF论文题目ÿ ... [详细]
  • 命令模式是一种行为设计模式,它将请求封装成一个独立的对象,从而允许你参数化不同的请求、队列请求或者记录请求日志。本文将详细介绍命令模式的基本概念、组件及其在实际场景中的应用。 ... [详细]
  • 在HTML布局中,即使将 `top: 0%` 和 `left: 0%` 设置为元素的定位属性,浏览器中仍然会出现空白填充。这个问题通常与默认的浏览器样式、盒模型或父元素的定位方式有关。为了消除这些空白,可以考虑重置浏览器的默认样式,确保父元素的定位方式正确,并检查是否有其他CSS规则影响了元素的位置。 ... [详细]
  • 当使用 `new` 表达式(即通过 `new` 动态创建对象)时,会发生两件事:首先,内存被分配用于存储新对象;其次,该对象的构造函数被调用以初始化对象。为了确保资源管理的一致性和避免内存泄漏,建议在使用 `new` 和 `delete` 时保持形式一致。例如,如果使用 `new[]` 分配数组,则应使用 `delete[]` 来释放内存;同样,如果使用 `new` 分配单个对象,则应使用 `delete` 来释放内存。这种一致性有助于防止常见的编程错误,提高代码的健壮性和可维护性。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
  • 汽车电子架构与CAN网络基础解析——鉴源实验室专业解读 ... [详细]
author-avatar
坏坏不贱_233
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有