首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏狗哥的专栏

    ZStack】8.级联框架

    ZStack提供一个级联框架,用以散布本来只对一个资源的操作到所有相关的资源。资源可以通过实现一个简单的扩展点以加入级联框架,使得资源的业务逻辑与框架解耦。 资源之间的关系可以被描述为一个有向图: 上图,我们展示了ZStack的主要资源;不同的IaaS软件可能使用不同的术语,上图主要是想让你有一个粗略的概念。 级联框架 ZStack通过一个级联框架解决这一问题;顾名思义,级联框架允许一个操作能从一个资源级联到其他资源。为了解耦整个架构,这个级联框架被作为一个单独的组件创造出来,资源可以按意愿加入框架。 考虑到ZStack没有产生冲突的级联操作,例如,不会有一个操作导致虚拟机在路径A启动而在路径B停止,所以级联操作从不同路径进行多次延伸是没有问题的。 总结 在这篇文章中,我们演示了ZStack的级联框架,这是一个强大的工具,用于扩散操作而不需要硬编码。

    30910编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack】2.ZStack的伸缩性秘密武器:无状态服务

    动机 在ZStack的伸缩性秘密武器——异步架构(ZStack's Scalability Secrets Part 1: Asynchronous Architecture) 一文中, 我们已经详细解释了异步架构 ,它让单个ZStack管理节点能胜任大多数的云端工作负载。 一个管理节点是一个完整功能的ZStack软件。 例如,管理节点可能注册如下所示的服务队列: zstack.message.ansible.3694776ab31a45709259254a018913ca zstack.message.api.portal 通过这种做法,ZStack 隐藏了来自 API 客户端消息路由转发的细节,并简化了写一个ZStack API 客户端的工作。

    32710编辑于 2024-01-09
  • 来自专栏全栈程序员必看

    ZigBee协议栈Zstack介绍

    文中所讲述的协议栈是基于ZigBee2006\Zstack-1.4.3-1.2.1 1.ZSTACK协议栈的架构 ZigBee协议栈就是将各个层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些 Tools:工程配置目录,包括空间划分和Zstack相关的配置信息。 ZDO:ZDO目录。 ZMac:MAC层目录,包括MAC层参数配置及MAC层LIB库函数回调处理函数。 ZigBee2006协议栈ZStack-1.5.2文件目录及说明如下: 打开SmapleAPP项目工程 先看APP层: 从上图可以看出,对于不公的项目,大部分的代码都是相同的,只是在用户应用层, 其中Zmac.c是ZStack MAC层接口文件,Zmac_cb.c是ZMAC需要调用的网络层函数。

    2.3K30编辑于 2022-09-01
  • 来自专栏大数据人工智能

    ZStack--工作流引擎

    通过一个工作流引擎,ZStack的每一个步骤,包裹在独立的工作流中,可以在出错的时候回滚。此外,通过在配置文件中组装工作流的方式,关键的执行路径可以被配置,这使得架构的耦合度进一步降低。 注意:在ZStack中,我们可以将工作流中的步骤(step)称为“流程(flow)”,在以下文章中,流程(flow)和步骤(step)是可以互换的。 以创建虚拟机为例,主要工作流程看起来像:     顺序工作流,来源于链式设计模式(Chain Pattern),有着可以预见的执行顺序,这是ZStack工作流的基础。 the workflow has failed with error */             }         });     } }).start(); 总结     在这篇文章中,我们展示了ZStack ZStack还配备了垃圾收集系统,我们将在以后的文章对它进行介绍。

    1.8K40发布于 2018-05-06
  • 来自专栏狗哥的专栏

    ZStack】3.ZStack的伸缩性秘密武器:无锁架构

    ZStack 的伸缩性秘密(第一部分)异步架构(ZStack's Scalability Secrets Part 1: Asynchronous Architectue) 一文中,我们解释了,ZStack 同步化的:在 ZStack 的伸缩性秘密(第一部分)异步架构(ZStack's Scalability Secrets Part 1: Asynchronous Architecture)一文中, 我们讨论了 #工作队列:传统解决方案 注意:在深入了解细节之前,请注意,我们即将要谈论的队列,和在 ZStack 的伸缩性秘密(第二部分)无状态服务(ZStack's Scalability Secrets Part 消息队列是RabbitMQ的术语;ZStack的队列则是内部数据结构。 在ZStack中的任务是由消息驱动的,聚合消息让相关的任务可以在同样的节点执行,减轻了经典的线程池并发编程的压力。 没有涉及复杂的分布式协作软件,ZStack 尽可能地在争用条件下的屏蔽任务中配合提升性能。

    37610编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    技巧:ZStack如何做Integration Test

    import org.zstack.header.vm.VmInstanceState import org.zstack.header.vm.VmInstanceVO import org.zstack.kvm.KVMAgentCommands import org.zstack.kvm.KVMConstant import org.zstack.sdk.CreateVmInstanceAction import org.zstack.sdk.DiskOfferingInventory import org.zstack.sdk.ImageInventory import org.zstack.sdk.InstanceOfferingInventory import org.zstack.sdk.L3NetworkInventory import org.zstack.sdk.VmInstanceInventory import org.zstack.test.integration.kvm.Env import org.zstack.test.integration.kvm.KvmTest import org.zstack.testlib.EnvSpec import org.zstack.testlib.SubCase import org.zstack.testlib.VmSpec

    32610编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack】6.工作流引擎

    <value>org.zstack.compute.vm.VmAllocatePrimaryStorageFlow</value> <value>org.zstack.compute.vm.VmAllocateVolumeFlow >org.zstack.compute.vm.VmInstantiateResourcePreFlow</value> <value>org.zstack.compute.vm.VmCreateOnHypervisorFlow > </property> <zstack:plugin> <zstack:extension interface="org.zstack.header.Component " /> <zstack:extension interface="org.zstack.header.Service" /> </zstack:plugin> </bean> ZStack还配备了垃圾收集系统,我们将在以后的文章对它进行介绍。

    39010编辑于 2024-01-09
  • 来自专栏IT技术精选文摘

    ZStack 的伸缩性秘密(一)异步架构

    ZStack 核心架构设计使得 99% 的任务异步执行,因此确保了单个的管理节点能够管理十万级的物理服务器,百万级的虚拟机,数万级的并行任务。 ZStack 通过异步架构来解决这个问题。如果,我们考虑 IaaS 软件系统和数据中心其他设施的关系,IaaS 软件系统其实是一个中间人的角色。 ZStack's 异步架构包含三部分: 异步消息 异步方法 异步 HTTP 调用 1. 异步消息 ZStack 使用 RabbitMQ 作为消息总线以便连接各个服务。 总结 此文,我们阐述了 ZStack 的异步架构,此架构解决了由于并行任务慢而导致的 IaaS 伸缩性问题。 请参考 ZStack's stateless service in ZStack's Scalability Secrets Part 2: Stateless Services。

    80020发布于 2018-08-16
  • 来自专栏IT创事记

    云计算从产品化到渠道,ZStack 做到了!

    那些或有趣或无趣的文字游戏让ZStack看起来有一些执着。 如果在任何场合看过ZStack的公司简介,你会发现这种执着的根源。所及之处,ZStack都在重复着自己的定位,“一家专注于产品化、国产自研、开源云计算服务商”。 ZStack创始人兼CEO 张鑫 尽管ZStack因为处于IaaS层,与业务解耦,定制化要求程度低;但并不意味着客户毫无定制化需求。 此后的5月,ZStack又联合阿里云发布 “ZStack云平台 + 阿里云云盾安骑士”一体化产品,成为业内少有的深入到云主机层防护的原生一体化云安全产品。 “ZStack的首要目标,是把核心业务做到更好、更稳定;同时,ZStack会从IaaS层面向上延伸,去拓展更多与IaaS紧密相关的内容。”

    83230编辑于 2022-06-17
  • 来自专栏狗哥的专栏

    ZStack源码剖析之设计模式鉴赏——三驾马车

    前言 随着ZStack的版本迭代,其可以掌管的资源也越来越多。但新增模块的结构却还是大致相同,此即是ZStack的经典设计模式——这套模式也被开发者称为ZStack三驾马车。 应用层对应ZStack的ManagerImpl,而Base更像是领域层。 应用层 应用层的定义应该是: 定义软件要完成的任务,并且指挥表达领域概念的对象来解决问题。 而在ZStack中,的确也像上面说的如此。 尽管保存业务状态的技术细节由基础设施层(在ZStack如DataBaseFacade即是),但是反映业务情况的状态是由本层控制并且使用的。注意,领域层是业务软件的核心。 而如果下层元素需要与上层元素通信,则需要采用另一种通信机制——比如回调或者Observers模式(在ZStack中即是ExtensionPoint)。

    40010编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack源码剖析之核心库鉴赏——Defer|Java 开发实战

    ZStack中也有类似的工具类,让我们来看看吧。 evt); logger.debug("Successfully added instance offering: " + printer.print(inv)); } 这段代码是ZStack 为了避免不熟悉ZStack读者理解起来生涩,建议参考其Case在这里,我们将展现一个较为简单的case: public class TestDefer1 { CLogger logger = Utils.getLogger

    23910编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack源码剖析之核心库鉴赏——FlowChain|Java 开发实战

    前言 在ZStack(或者说产品化的IaaS软件)中的任务通常有很长的执行路径,错误可能发生在路径的任意一处。 为了保证系统的正确性,需提供一种较为完善的回滚机制——在ZStack中,通过一个工作流引擎,ZStack的每一个步骤都被包裹在独立的工作流中,可以在出错的时候回滚。 演示代码 就以创建VM为例,在ZStack中大致可以分以下几个步骤: <bean id="VmInstanceManager" class="org.<em>zstack</em>.compute.vm.VmInstanceManagerImpl >org.<em>zstack</em>.compute.vm.VmAllocatePrimaryStorageFlow</value> <value>org.<em>zstack</em>.compute.vm.VmAllocateVolumeFlow >org.<em>zstack</em>.compute.vm.VmInstantiateResourcePreFlow</value> <value>org.<em>zstack</em>.compute.vm.VmCreateOnHypervisorFlow

    45810编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack】15.自动化测试系统2——系统测试

    ZStack的系统测试系统被设计用于以下两个目标: 复杂的场景:这些场景应该比真实世界的使用场景更复杂,以测试软件的极限。 你可以在ZStack--自动化测试系统3:基于模型的测试中找到细节。 Zstack-woodpecker调用zstack-cli,这个ZStack的命令行工具去从一个XML配置文件部署测试环境。 例如:zstack-cli -d zstack-env.xml 这里的XML配置文件的格式类似于集成测试所用的,一个片段看起来像这样: ... 配置文件的例子如下: TEST_ROOT=/usr/local/zstack/root/ zstackPath = $TEST_ROOT/sanitytest/zstack.war apachePath

    43310编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack源码剖析之核心库鉴赏——ThreadFacade|Java 开发实战

    通过大小合理的线程池调度来并行的消费这些任务,使ZStack这个Iaas软件有条不紊运行在大型的数据中心里。 这里先参考ZStack中ApiMediatorImpl ,其中有一段用于API消息调度的逻辑。 ="http://zstack.org/schema/zstack" xsi:schemaLocation="http://www.springframework.org/schema/beans /schema/zstack http://zstack.org/schema/zstack/plugin.xsd" default-init-method="init" default-destroy-method ZStack中的调用绝大多数都是由MQ完成,每一个msg有着对应的超时时间。

    33610编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack源码剖析之核心库鉴赏——EventFacade与CloudBus|Java 开发实战

    org.zstack.header.Service; import org.zstack.header.message.Message; import org.zstack.header.message.MessageReply org.zstack.header.Service; import org.zstack.header.message.Message; import org.zstack.header.message.MessageReply "> <zstack:plugin> <zstack:extension interface="org.zstack.header.managementnode.ManagementNodeChangeListener "> <zstack:plugin> <zstack:extension interface="org.zstack.header.Component" /> <zstack:extension "> <zstack:plugin> <zstack:extension interface="org.zstack.header.Component" /> </zstack:plugin

    44910编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack源码剖析之设计模式鉴赏——策略模式|Java 开发实战

    ZStack中,Strategy模式几乎是充斥在80%以上的代码中的,接下来我们就来一起看看吧。 CollectionUtils CollectionUtils 这个类是在JDK8发布前常在ZStack中被使用的一个类,代码如下: package org.zstack.utils; import org.zstack.utils.function.ForEachFunction; import org.zstack.utils.function.Function; import org.zstack.utils.function.ListFunction ; import org.zstack.utils.logging.CLogger; import java.util.*; /** */ public class CollectionUtils CloudBus的源码分析点击这里,有兴趣的读者可以看一下其实现 小结 在本篇文章中,笔者和大家一起了解了Strategy在ZStack中的使用场景。

    23710编辑于 2024-01-09
  • 来自专栏狗哥的专栏

    ZStack源码剖析之二次开发——Debug的常用技巧

    本文首发于泊浮目的专栏:segmentfault.com/blog/camile 在前文 ZStack源码剖析之二次开发——可扩展框架中,我们大概的了解了如何在ZStack中进行二次开发。 /zstack-image-1.4.qcow2","mediaType":"RootVolumeTemplate","type":"zstack","platform":"Linux","format" /zstack-image-1.4.qcow2","mediaType":"RootVolumeTemplate","type":"zstack","platform":"Linux","format" 使用Test Case来定位问题 在读本节前,希望读者能够读过以下文章: 小谈自动化测试:从ZStack Integration Test谈起 ZStack的IntergrationTest 我们先将GitHub 上的ZStack Clone到自己的机器上来,如图: 并执行mvn compile,这里理应编译成功: 好,我们切换到test目录下: [root@10-0-86-20 zstack-openresource

    42310编辑于 2024-01-09
  • 从VMware到ZStack Cloud:企业云平台迁移的技术挑战与突破

    本文将详细介绍ZStack Cloud如何精准应对迁移过程中的关键挑战,为企业的无缝迁移提供可靠路径。 下面ZStack依据实践经验,总结出用户从VMware VCF迁移到企业云平台时遇到的4个最普遍的挑战,并详细介绍ZStack Cloud的破解技术方案和技术原理。 2)ZStack Cloud解决方案:ZStack ZMigrate工具通过智能格式识别与转换引擎,实现了VMware虚拟机到ZStack Cloud的平滑迁移:无代理迁移:无需在源虚拟机安装任何代理程序 ZStack Cloud将从同构迁移、异构迁移两方面进行介绍。 针对这方面的需求,ZStack Cloud给出的解决方案是:对于VMware中的单体应用,可借助 ZStack Cloud的容器化平台(ZStack Zaku)完成微服务拆分与容器封装,实现弹性伸缩与按需调度

    10110编辑于 2026-03-06
  • 来自专栏SDNLAB

    SDN实战团分享(三十二):ZStack架构及其网络功能简介

    安装了 ZStack 的管理节点上只有一个 ZStack 进程,这样避免了很多服务依赖、内部执行因为环境原因发生错误等等问题。 同样是“微服务”架构,ZStack 说实话看起来一点都不像,这是因为 ZStack 的微服务是基于线程的,得益于 Java 语言的成熟,ZStack 用线程来做微服务好问题。怎么实现呢? 我们分析了 OS 中消息中间件常成为瓶颈的原因,与动态队列关系很大,ZStack 通过静态队列、一致性哈希调度消息,很大程度避免了这些问题,因此说 ZStack 在很小的资源占用下完成上万的物理机资源管理毫不夸张 ZStack 的网络模型是很鲜明的。 所以 ZStack 非常欢迎各家厂商与 ZStack 提供整合,也不打算像 Neutron + OVS 实现一个非常复杂的 Driver,毕竟专业的事情还是要交给专业的人来做,在不久的将来 ZStack

    2.4K50发布于 2018-03-29
  • 来自专栏兰舟千帆的java学习笔记

    IaaS开源软件之zstack(OSC中国开源项目的TOP30)

    全新的开源IaaS国产开源软件—zstack曾于2020年在OSC(中国最权威,最大的开源项目评选中斩获TOP30。 于是zstack正是为了解决这些方面的问题而诞生了! ZStack面向智能的数据中心,操作环境为linux操作系统,具有完备的API接口,环境搭建简单,可部署上万台物理服务器。 ZStack通过完善的API管理数据中心资源,构建软件定义数据中心。用户可选择UI界面或命令行工具管理云平台,与ZStack管理节点进行友好交互。 展望ZStack的未来,我们可以了解到的是ZStack是一直主要面向的是私有云,国内的客户对此也强烈的私有云定义意愿。近来,阿里和电信的选择合作为拥有纯自主知识产权的ZStack获得了能量加持。 数字经济,移动通信,物联网仍然是未来潮流所在,对ZStack充满期待。

    1K20编辑于 2022-07-16
领券