I am the author of ZStack, a former core developer of CloudStack since 2010 Cloud.com, and a close OpenStack watcher since 2011.
Given ZStack, Openstack, CloudStack, Eucalyptus are all IaaS software, they were very similar speaking of functions. However, some features make ZStack specific:

1. Huge Scale

Because of full-async architecture, stateless services and lock-free architecture, ZStack can handle huge concurrent APIs very fast. In our simulator test, ZStack installed in a virtual machine with 8CPU, 8G memory can serve 30K concurrent APIs. And an IBM IT guy tested ZStack on 4 physical machines creating 1000 VM concurrently, all tasks completed successfully in 4 minutes. This is the best performance data I have been seen so far in IaaS area.

2. Seamless Upgrade

Upgrade is a headache problem that users have been suffered for a long time. ZStack is the first IaaS really implementing seamless upgrade, all you need is to run a singe command, for example:

bash zstack-installer-1.1.0.bin -u

You don't have to worry about agents on host or in virtual appliances, ZStack itself takes care all of them. The upgrade takes 5 minutes normally. From the initial version 0.6 to the current version 1.1, our users have done the upgrade thousands of times all by themselves, no even a single failure. If you have ever upgraded an Openstack deployment, you know how hard this could be.

3. Full APIs

Tasks in ZStack are all delivered through APIs. You don't have to manually configure a service or install an agent. For example, to add a host, you can just call the API AddKvmHost with its IP and SSH credential, ZStack will automatically configure the system, install dependent packages(e.g. libvirt), and deploy own kvm-agent. Openstack only has APIs for manipulating VMs, so Mirantis releases a product Fuel to solve this problem. However, given Openstack was not designed in the way that makes everything APIable, it's hard to build a reliable product automating everything.

ZStack's automation is built up on Ansible that is a famous configuration management tool. We directly use Ansbile SDK to customize the deployment process for every ZStack agent, and hide them from end users. So you don't have to care about details of deployment, all you need is to install the single ZStack binary and play with the web UI or CLI, we takes care the rest of the world!

4. Full Query API

Companies which wants to do Devops on the IaaS often encounter a problem that there is no API to search resources, so they have to bypass the software and directly access the database. ZStack solves this problem by query APIs, you can do SQL-like queries including table-join at API level. For example:

QueryHost fields=name,uuid,managementIp hypervisorType=KVM vmInstance.allVolumes.size>=549755813888000 vmInstance.state=Running start=0 limit=10

Developers don't need to write any code for queries; they just need to create a database table and define a query API in two lines of code, ZStack's query engine will interpret the API and generate proper SQL statements.

With the query API, enterprises can build sophisticated UI similar to outlook and jira, which generate views defined by query.

5. Light-weight IaaS

ZStack is light-weight IaaS that can be easily installed on a single physical machine even virtual machine. Many of our users use two machines to setup a HA cluster where computing, storage and control nodes are converged. This can help small businesses build their private cloud, without purchasing many hardware just for deploying a control panel.

If you think OpenStack is unnecessary complexity for your cloud, I recommend you to try out ZStack.