分享

降本增效|揭秘「统信有栈」实现弹性伸缩的原理与工具

作为21世纪信息技术的一项重大变革,云计算已广泛渗透到各行各业,旨在实现资源整合和按需分配,以便解决企业在数字化建设过程中可能出现的一些瓶颈性问题,如建设成本高、资源利用率低、生态链受限、资源管控难、安全风险高等。


弹性伸缩作为云计算的核心功能之一,其重要性是毋庸置疑的。它不仅能够极大地提升系统的灵活性和可扩展性,还能够协助企业高效地进行资源管理和成本管控,进而提升企业的竞争力,为企业带来更多的商业机会和客户价值。

640.jpg

8月初,统信云基础设施管理平台(简称:统信有栈)已完成新版本发布,带来了一些功能和性能的提升。这款由统信软件自主研发的IaaS云管平台,从诞生之初就具备一些基础功能,比如提供直观易用的Web图形化界面,并巧妙融入弹性伸缩技术,进而实现对计算、存储和网络资源的统一编排和调度。


原理篇
底层IT环境的系统构成,即包括硬件设施和网络等资源,在被抽象成资源池之后,可以作为云主机资源供上层应用统一调度使用。

当上层应用的业务资源使用量超过或低于预设的阈值水平线的最高或最低点时,将自动触发弹性伸缩机制,实现资源的按需供给或释放。

640.jpg

该机制的实现方法是:对虚拟化实例进行扩容或缩容,以及创建新的虚拟化实例或销毁已有的虚拟化实例。这样一来,整个集群内的应用就能够更加合理地使用硬件资源,从而有效提升运维人员或管理员的维护效率。
这种动态调节资源配置的方式可以应对业务在高峰期和低谷期等不同访问场景,不仅实现了最优的成本管控,还规避了因业务并发访问量激增而导致的业务中断风险。

工具篇
为了实现弹性伸缩机制,「统信有栈」经过仔细权衡,最终选择了Heat和Senlin组件。

640.jpg

Heat是「统信有栈」中负责资源编排的组件,旨在实现基础设施的自动化管理和应用程序的高效部署。它主要用于管理基础设施资源和自动化部署,使客户能够定义和描述对整个云环境的基础设施需求,并通过模板实现这些资源的部署和管理。

另一方面,通过引入Senlin,客户可以基于业务数据而不是基础设施指标触发扩展操作,进而实现集群的负载均衡和自动扩展。

当现有集群无法满足吞吐量或工作负载时,集群规模将被扩大;而在吞吐量或工作负载较低时,则会相应减小集群的规模。

实践篇
如果想要实现弹性伸缩功能,首先需要配置Heat模板,然后执行相关命令来创建资源。

Heat模板举例
  • 为连接到创建的负载均衡集群,定义了一个安全组。


security_group:
  type: OS::Neutron::SecurityGroup
  properties:
    rules:
      - protocol: icmp
      - protocol: tcp
        port_range_min: 22
        port_range_max: 22
      - protocol: tcp
        port_range_min: 80
        port_range_max: 80

  • 定义了用于创建目标集群的配置文件。


profile:
  type: OS::Senlin:rofile
  properties:
    type: os.nova.server-1.0
    properties:
      flavor: {get_param: flavor}
      image: {get_param: image}
      key_name: {get_param: key_name}
      networks:
        - network: {get_param: network}
      security_groups:
        - {get_resource: security_group}

  • 定义了创建一个至少有两个节点的Senlin集群。


cluster:
  type: OS::Senlin::Cluster
  properties:
    desired_capacity: 2
    min_size: 2
    profile: {get_resource: profile}

  • 定义了附加到创建的集群的两个策略scale_in_policy和scale_out_policy:event用于定义策略工作的目标操作;当adjustment的类型设置为CHANGE_IN_CAPACITY时,集群将在scale_out时增加节点数,或在scale_in时减少节点数。


scale_in_policy:
  type: OS::Senlin:olicy
  properties:
    type: senlin.policy.scaling-1.0
    bindings:
      - cluster: {get_resource: cluster}
    properties:
      event: CLUSTER_SCALE_IN
      adjustment:
        type: CHANGE_IN_CAPACITY
        number: 1

scale_out_policy:
  type: OS::Senlin:olicy
  properties:
    type: senlin.policy.scaling-1.0
    bindings:
      - cluster: {get_resource: cluster}
    properties:
      event: CLUSTER_SCALE_OUT
      adjustment:
        type: CHANGE_IN_CAPACITY
        number: 1

  • 定义了要附加到目标集群的负载均衡策略lb_policy:一旦将策略附加到集群,Senlin将通过调用neutron LBaas V2 API来自动创建负载均衡器、池和health_monitor,用于实现负载均衡。


lb_policy:
  type: OS::Senlin:olicy
  properties:
    type: senlin.policy.loadbalance-1.0
    bindings:
      - cluster: {get_resource: cluster}
    properties:
      pool:
        protocol: HTTP
        protocol_port: 80
        subnet: {get_param: pool_subnet}
        lb_method: ROUND_ROBIN
      vip:
        subnet: {get_param: vip_subnet}
        protocol: HTTP
        protocol_port: 80
      health_monitor:
        type: HTTP
        delay: 10
        timeout: 5
        max_retries: 4

  • 定义了两个当某个警报或事件发生时要触发的接收器,用于执行集群节点的伸缩。


receiver_scale_out:
  type: OS::Senlin::Receiver
  properties:
    cluster: {get_resource: cluster}
    action: CLUSTER_SCALE_OUT
    type: webhook

receiver_scale_in:
  type: OS::Senlin::Receiver
  properties:
    cluster: {get_resource: cluster}
    action: CLUSTER_SCALE_IN
    type: webhook

  • 定义了在要缩减应用集群时选择要删除的候选节点的策略。


deletion_policy:
  type: OS::Senlin:olicy
  properties:
    type: senlin.policy.deletion-1.0
    bindings:
      - cluster: {get_resource: cluster}
    properties:
      criteria: YOUNGEST_FIRST
      destroy_after_deletion: True
      grace_period: 20
      reduce_desired_capacity: False

  • 定义了触发上述两个接收器的alarm:使用LoadBalancer的上传字节的平均速率作为触发缩放操作的指标。


scale_in_alarm:
  type: OS::Ceilometer::Alarm
  properties:
    description: trigger when bandwidth overflow
    meter_name: network.services.lb.incoming.bytes.rate
    statistic: avg
    period: 180
    evaluation_periods: 1
    threshold: 12000
    repeat_actions: True
    alarm_actions:
      - {get_attr: [receiver_scale_in, channel, alarm_url]}
    comparison_operator: le
    query:
      metadata.user_metadata.cluster_id: {get_resource: cluster}

scale_out_alarm:
  type: OS::Ceilometer::Alarm
  properties:
    description: trigger when bandwidth insufficient
    meter_name: network.services.lb.incoming.bytes.rate
    statistic: avg
    period: 60
    evaluation_periods: 1
    threshold: 28000
    repeat_actions: True
    alarm_actions:
      - {get_attr: [receiver_scale_out, channel, alarm_url]}
    comparison_operator: ge
    query:
      metadata.user_metadata.cluster_id: {get_resource: cluster}

创建资源命令
前提条件:部署前,请确保「统信有栈」已开启neutron lbaas和ceilometer/aodh

执行命令:openstack stack create test -t ./ex_aslb.yaml

  • test:资源名称,可自定义
  • ex_aslb.yaml:Heat模板文件名称


Heat模板文件下载地址:
https://opendev.org/openstack/senlin/src/branch/master/doc/source/scenarios/ex_lbas.yaml


统信软件通过对「统信有栈」所有组件进行容器化镜像改造并将其内置在统信UOS服务器版中,为客户提供了开箱即用的定制交付能力。客户仅需根据业务情况启动对应镜像并配置网络即可完成「统信有栈」集群的快速部署,有效简化了运维人员部署配置云管平台的流程,在提升部署效率的同时也减少了误操作机率。

640.jpg

统信UOS服务器版汲取国内外主流社区技术栈优势,深入技术底层结合国内外设计标准与规范以及各类客户业务应用需求,积极开展技术创新,全面支持国内外主流CPU架构和处理器厂商,在各种应用环境中,满足强安全、高稳定、高性能、易维护以及泛兼容等要求,是一款构建信息化设施环境的基础软件产品:

强安全:

等保四级GB/T 20272-2019认证
商密二级GM/T 0028认证
全栈生态链支持国密
国际知名安全社区OpenSCAP官方首批支持的中国操作系统

21天推送一次补丁更新,每周进行漏洞修复推送

高稳定:

稳定版 Linux 4.19&5.10双内核
热补丁升级机制
LTP 7*24小时测试用例通过率超98%
长时高负荷运行,卸荷后60秒内实现系统及各应用流畅运行

高性能:

内存拷贝页技术,拷贝性能提升超70%,满并发优化提升10%
多种自研性能优化成果:文件读写性能提升4%、调度延迟减少10%、多并发锁竞争场景性能提升5%……
相比同类产品,UnixBench等测试全面领先

易维护:

提供自研统信有易服务器迁移软件
提供自研统信有幄自动化运维工具
提供面向场景的AI系统调优能力

泛兼容:

历史版本兼容性>98%,提供平滑升级方案
组件模块化设计,为用户最大限度解决底层依赖问题
全面通过整机适配兼容性测试(多种不同型号的整机)

640.jpg

统信软件服务器操作系统与云计算产线总经理孟杰表示,「统信有栈」提供的弹性伸缩功能,极大地降低了企业的运营成本,并有效地提高了运营效率。未来,我们将持续进行产品优化和创新,为企业提供更广泛、更丰富、更高效的解决方案和产品,从而协助实现业务的持续增长和创新发展。

新闻来源:服务器操作系统与云计算产线

版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服