ZStack: the IaaS software you have been looking for. https://zstack.org
ZStack is open source IaaS(infrastructure as a service) software aiming to automate datacenters, managing resources of compute, storage, and networking all by APIs. Users can setup ZStack environments in a download-and-run manner, spending 5 minutes building a POC environment all on a single Linux machine, or 30 minutes building a multi-node production environment that can scale to hundreds of thousands of physical servers.
ZStack provides the capability of managing everything in a datacenter by APIs, fulfilling the goal of software-defined datacenter. Users control their clouds using either web UI or command line tool both of which interact with ZStack management nodes; NO scattered configurations, dependent software installation, services HA, and thirdparty monitoring are needed, all of them are taken care of by ZStack itself, which provides a great simplicity for stable long-term operation.
ZStack is designed to tackle two problems -- complexity and stability -- that users building clouds based on open source IaaS software have been suffered for a long time.
In terms of complexity, ZStack sticks to the design principles of APIs managing everything, full automation, self-managed services, no hardware lockin, and user-friendly query APIs, providing a software easy to setup and long-term operation.
In terms of stability, ZStack was born with a plugin system that adding or removing features will not impact existing codes, a workflow engine that can rollback completed changes on error, a cascade framework that can spread an operation from a resource to dependent resources, and three rigorous automated testing systems that guard every single feature, solving the stability issue in architectural designs.
Besides, ZStack is extremely scalable that a single management node is capable of managing hundreds of thousands of physical servers, managing millions of virtual machines, and serving tens of thousands of concurrent API requests, particular suitable for building large-scale public clouds.
A single management node is capable of managing hundreds of thousands of physical servers, managing millions of virtual machines, and serving tens of thousands of concurrent API requests.
Operations are extremely fast, see below performance data of creating VMs.
VM NUMBER | TIME COST |
---|---|
1 | 0.51 seconds |
10 | 1.55 seconds |
100 | 11.33 seconds |
1000 | 103 seconds |
10000 | 23 minutes |
The default networking model is built on NFV(network functions virtualization), which provides every tenant a dedicated networking node implemented by a virtual appliance VM. The whole networking model is self-contained and self-managed, administrators need neither to purchase special hardware nor to deploy networking servers in front of computing servers.
Users can query everything everywhere by about 4,000,000 query conditions and countless query combinations. You will never need to write ad-hoc scripts or directly access database to search a resource, it's all handled by APIs.
>> QueryVmInstance vmNics.eip.guestIp=16.16.16.16 zone.name=west-coast
>> QueryHost fields=name,uuid,managementIp hypervisorType=KVM vmInstance.allVolumes.size>=549755813888000 vmInstance.state=Running start=0 limit=10
Installation and upgrade are as simple as deploying a Java WAR file. A POC environment can be installed in 5 minutes with a bootstrap script; A multi-node production environment can be deployed in 30 minutes including the time you read the documentation.
>> [root@localhost ~]# curl https://download.zstack.org/install.sh | bash -s -- -a
Everything is managed by APIs, no manual, scattered configurations in your cloud. And the seamless, transparent integration with Ansible liberates you from installing, configuring, and upgrading agents on massive hardware.
The core orchestration is built on an Eclipse and OSGI like plugin system that everything is a plugin. ZStack affirms that adding or removing features will not impact the core orchestration, promising a robust software the cloud users deserve.
Three full-automated, rigorous testing systems ensure the quality of every feature.
Installation of ZStack is super easy; users can choose different methods depending on their needs to install the first ZStack environment:
-
For users wanting to try out quickly, see Quick Installation.
-
For users wanting to deploy a production environment, see Manual Installation.
-
For users wanting to deploy a multi-node environment, see Multi-node Installation.
Once the installation is done, users can follow one of getting started guides:
Six tutorials are prepared for your first journey in ZStack, building classic cloud deployments all on one single Linux machine:
Under the hood, ZStack is built on an architecture explained by following articles:
ZStack's Scalability Secrets Part 1: Asynchronous Architecture
ZStack's Scalability Secrets Part 2: Stateless Services
ZStack's Scalability Secrets Part 3: Lock-free Architecture
The In-Process Microservices Architecture
Networking Model 1: L2 and L3 Network
Networking Model 2: Virtual Router Network Service Provider
Storage Model: Primary Storage and Backup Storage
The Automation Testing System 1: Integration Testing
The Automation Testing System 2: System Testing
The Automation Testing System 3: Model-based Testing
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.