---
title: Apache CloudStack Users
---

<div class="row">

<div class="col-lg-12">

<div class="page-header">

<h1 id="indicators">Apache CloudStack Users</h1>

</div>

</div>

</div>

The following organisations are known users of Apache CloudStack (or a commercial distribution of CloudStack)

Our users include many major service providers running CloudStack to offer public cloud services, product vendors who incorporate or integrate with Cloudstack in their own products, organisations who have used Cloudstack to build their own private clouds, and systems integrators that offer CloudStack related services.

**Are you using CloudStack ?**

If you are using CloudStack in your organisation and your company is not listed here, please complete our brief adoption [survey](/survey.html). We’re happy to keep your company name anonymous if you require.

**Noticed Something wrong ?**

If you noticed something wrong  with your entry here (or if you’d like us to remove it), please complete our adoption [survey](/survey.html). We will use the information you give us in this survey to update the contents of this page

* [ActOnMagic](http://www.actonmagic.com)
* [Appcore](http://www.appcore.com)
* [AxiomIO](http://axiomio.com)
* [Ayaline](http://www.ayaline.com)
* [BIT.Group GmbH](http://www.bautzen-it.de)
* [BT](http://btcloud.bt.com)
* [CloudOps](http://www.cloudops.com)
* [Codero](http://www.codero.com)
* [DATACENTER Services](http://www.companycloud.nl)
* [DataCentrix](http://www.datacentrix.co.za)
* [Datapipe](http://www.datapipe.com)
* [DATAWAYS SA](http://www.dataways.gr)
* [En La Nube](http://www.enlanube.com.co)
* [EVRY](https://www.evry.com)
* [Exaserve](http://www.exaserve.com)
* [FiberCloud](http://www.fibercloud.com)
* [FortaCloud](http://www.fortacloud.co)
* [Heinlein Support GmbH](http://www.heinlein-support.de)
* [Imperial College](http://www.imperial.ac.uk/computing)
* [InhouseIT](http://www.inhouseit.com)
* [INRIA](http://inria.fr)
* [Kumo](http://kumo.com.co)
* [M5 Hosting Inc](http://m5cloud.com)
* [Melbourne University](http://nectar.org.au)
* [Miriadis](http://www.miriadis.com)
* [Neobitti](http://neobitti.fi)
* [Openminds](http://www.openminds.be)
* [Overweb srl](http://stacksquare.com)
* [Polcom](http://polcom.com.pl)
* [Reliable Networks](http://www.reliablenetworks.com)
* [Redbridge](http://www.redbridge.se)
* [SafeSwiss Cloud](https://www.safeswisscloud.ch)
* [SJC Inc](http://www.sjcloud.cn/index.xhtml)
* [Telia Latvia](http://www.telia.lv)
* [Tranquil Hosting](http://www.tqhosting.com)
* [Treestle BV](http://www.liquidns.com)
* [Tucha](http://tucha.ua)
* [University of Cologne](http://rrzk.uni-koeln.de/)
* [UPCnet](http://www.upcnet.es)
* [VDI Space, Inc](http://www.vdispace.com)
* [wirenc.com](http://www.wirenc.com)
* [Youngsoft Inc](http://youngsoft.com)
* [Zeromachine](http://zeromachine.net)

* 1 degreenorth
* 5th Planet
* Accudata Systems
* Acentrix
* ActiveEon
* Add Value
* Alcatel-Lucent
* Amdocs
* Amysta
* Angani
* Anolim
* Apalia
* Appcara Inc.
* Appcore
* Appdel
* AppFirst
* Apple
* AppSphere
* Ascenty
* ASG
* AST Modular
* Autodesk
* AXEKA
* Axelaris
* Backbone Technology
* Bechtle AG
* Bell Canada
* BigREDGroup
* British Telecom (BT)
* BT Cloud
* BT Engage IT
* Business Connexion
* CA Technologies
* CANCOM
* Caringo
* Centracon
* CentralWay
* China Telecom
* Citrix Systems
* Clavis IT
* Cloud3
* CloudCentral
* Cloudera
* Cloudian, Inc.
* CloudOps
* Cloudsoft Corporation
* Colt
* COMBIS
* COMLINE Computer + Softwarelösungen
* COMPAREX
* Comping
* Computer Services Group
* Contegix
* Control Circle
* Convergence Group
* CumuLogic, Inc
* Datacentrix
* Datapipe
* DBR360
* Dell
* Digital China Advanced Systems
* Disney
* DU
* e-Contact
* Edmunds.com
* Encloud
* Ennit
* EnterpriseDB
* Entisys Solutions
* EXA Serve
* Exoscale
* Experteq IT Services
* FPG Technologies & Solutions
* Fritz & Macziol
* Fujitsu FIP Corporation
* GigaSpaces Technologies
* Globo.com
* GreenQloud
* Gridstore
* Haaga Helia
* Hillstone Networks, Inc
* Hokkaido University
* Homeaway
* Host.net
* Hostbill
* Huawei
* IDC Frontier
* Ikoula
* IndiQus Technologies
* InMobi
* Interoute
* ISWest
* Janz IT
* Joe’s Cloud Computing
* Juniper Networks
* KDDI
* KIVBF
* KocSistem
* Kommunale Informatoinsverarbeitung Baden-Franken
* KT/Korea Telecom
* Kumo
* Kyuden Infocom
* Kyushu University
* LCS
* LeaseWeb
* Logicworks
* Makro Factory oHG
* MCPc
* Microland Ltd
* MittelstandsCLOUD
* MK Netzdienste
* NAMU Tech
* NEOS
* NetStandard
* Networkers AG
* Nokia
* NTT
* NVision Group
* OpenERP
* Opscode  (now Chef)
* Orange
* OverBright
* Ozona Consulting
* PCextreme
* PosAm
* PPTV
* PromonLogicalis
* Proteus
* Quality Software (Hostbill)
* RealCloud (PKN)
* Redapt
* RedBridge
* RightScale, Inc.
* Royal Melbourne Institute of Technology (RMIT)
* Safe Swiss Cloud
* SAP
* Scalr
* Schuberg Philis
* ScienceLogic, Inc.
* SCSK
* sepago GmbH
* ShapeBlue
* Shopzilla
* Slovak Telekom
* SoftLayer
* SoftwareONE
* SolidFire
* SSI
* StackIQ
* Stratosec
* SunGard AS
* SwiftStack
* SWISS TXT
* Taiwan Mobile
* Targus Technologies
* Tata
* Tendril
* TNTG Limited
* TomTom
* Trader Media Group
* TrendMicro/TCloud Computing
* UniSystems
* University of Melbourne
* University of Sao Paolo
* UShareSoft
* Verio
* Verizon
* Vision Solutions, Inc.
* VMTurbo
* WebMD
* X-IO Technologies
* Xtendsys
* Zajil Telecom
* Zenoss
* Zynga
