---
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.

## How to Add your Company in The List

If you are using CloudStack in your organisation and your company is not listed here, please send a pull request to the GitHub [page](https://github.com/apache/cloudstack-www/blob/master/source/users.html.markdown).

## How to Request the Entry Removal or Change

If you noticed something wrong with your entry here (or if you’d like us to remove it), please send a pull request to the GitHub [page](https://github.com/apache/cloudstack-www/blob/master/source/users.html.markdown) or write your concerns to the mail-list **users@cloudstack.apache.org**.

* [ActOnMagic](http://www.actonmagic.com)
* [Appcore](http://www.appcore.com)
* [AxiomIO](http://axiomio.com)
* [Ayaline](http://www.ayaline.com)
* [Itelligence Global Managed Services GmbH](https://itelligencegroup.com/de/trends/cloud-loesungen/)
* [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)
* [Delimiter Corp](https://www.delimiter.com/)
* [En La Nube](http://www.enlanube.com.co)
* [EVRY](https://www.evry.com)
* [EWERK Group](https://ewerk.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)
* [NetPoint](https://netpoint-dc.com/)
* [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)
* [HIAG Data AG](https://www.hiagdata.com)
* [SJC Inc](http://www.sjcloud.cn/index.xhtml)
* [Server24](https://www.server24.eu)
* [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
* 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)
* 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
