Open Source


Source: OpenStack Website

OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.

Learn more about OpenStack’s computestoragenetworking, or take a tour of the dashboard.

Who’s behind OpenStack?
Founded by Rackspace Hosting and NASA, OpenStack has grown to be a global software community of developers collaborating on a standard and massively scalable open source cloud operating system. Our mission is to enable any organization to create and offer cloud computing services running on standard hardware.

How can YOU take part?

The ICClab is coordinating the Swiss OpenStack user group. We will be running regular  for anyone with an interest in IaaS and PaaS to come along learn, participate and hopefully have some fun too!

ICCLab Contributions

The ICCLab contributes to the implementation of the OCCI API for OpenStack. This provides a python egg which can be easily deployed in OpenStack and will thereby add the 3rd party OCCI interface to OpenStack.

The ICCLab contributes to the OpenStack ceilometer project. The contribution made here is in providing monitoring metrics for physical host machines in an OpenStack deployment.

Many OpenStack puppet modules used to deploy and manage the ICCLab’s OpenStack testbed are also available. Those modules include:

Software Defined Networking


Ryu is a component-based software defined networking framework.


source: RYU Website Repository

contributors: Philipp Aeschlimann

Ryu provides software components with well defined API that make it easy for developers to create new network management and control applications. Ryu supports various protocols for managing network devices, such asOpenFlow, Netconf, OF-config, etc. About OpenFlow, Ryu supports fully 1.0, 1.2, 1.3 and Nicira Extensions.


NTT laboratories OSRG group started Ryu project and the members are actively involved in the development. Our aim is developing an Operating System for SDN that has high quality enough for use in large production environment.



The contributions by the ICCLab are in the general field of the OpenFlow Meter Modification messages as well as the OpenFlow Queuing messages. We are contributing in this field to the implementation of the OpenFlow protocol itself for the RYU-controller. RYU was with this contribution the first known controller that supports MeterModification messages for OpenFlow. All the contributions for RYU are in python.


The OpenFlow 1.3 software switch is built upon the Stanford OpenFlow 1.0 reference switch andEricsson’s Traffic Lab OpenFlow 1.1 switch and is intended for fast experimentation purposes.


source: CPqD Repository

contributors: Philipp Aeschlimann

OpenFlow has brought the opportunity to perform a wide range of new experiments in a network. Currently there is a good number of hardware switches to try OpenFlow, but most of them still implements only the version 1.0 of the protocol, lacking the new features from the most recent versions. So, in order to not have innovation dependent of hardware software switches are being deployed since the most primitive OpenFlow versions.


The ICCLab contributed minor Bug Fixes for the current implementation of the softswitch13.

Platform as a Service (PaaS)

Platform as a Service

Plattform as a Service (PaaS) is all about bringing applications and services to the cloud. Therefore the target audience of the PaaS model are developers. It provides them a platform containing the whole technology stack to run applications and services supporting all the typical cloud characteristics like On-Demand Self-Service, Rapid Elasticity, Measured Service, Resource Pooling etc.  Typically these platforms consist of:

  • Runtime environments (Java, Ruby, Python, NodeJs, .Net, …),
  • Frameworks (Spring, JEE, Rails, Django, … ) and
  • Services like
    • Datastores (SQL, NoSQL, Key-Value-Stores, File-/Object-Storage,…),
    • Messaging (Queuing, Pub/Sub, Event-Processing,…)
    • Management (Authentication, Logging, Monitoring,…)
    • Miscellaneous (Mail, Search, Job Scheduling, Reporting, App Analyzer, …)

In addition to providing the runtime platforms also tools supporting the development process like development environments, testing, continuous integration and continuous deployment have to be adopted for the cloud environment.

In a layering model PaaS can be seen as a (middleware, glue) layer between Infrastructure (IaaS) and Software- and Service offerings for end-users (SaaS).

PaaS technologies and offerings are slowly getting mature. Industry is starting to discover PaaS solutions, but there is still a lot of education work to do in programming for the cloud. We see a lot of opportunities in this areas. Todays PaaS offerings almost entirely focus on web solutions and are optimized for large numbers of short lived process requests. They are not (yet) optimized for other services like batch processing.

There are some well known PaaS Providers like Pivotal WebServices, IBM Bluemix, Swisscom Application Cloud, REdHat OpenShift Online, Google App Engine, Microsoft Microsoft Windows Azure, Heroku, Stackato, App Fog, Engine Yard, CloudBees, …

In the lab we are specifically investigating the following OpenSource PaaS frameworks:

In the PaaS Research Theme we are addressing the following topics:

  • Architecture, Scalability, Performance, Dependability and Interoperability of PaaS runtime environments
  • Automated deployment and operation of PaaS environments.
  • Managing PaaS systems (Monitoring, “Rating, Charging & Billing”, Incident Managment)
  • Automated deployment and management of SOA-Applications in PaaS
  • Building scalable applications for the cloud (architecture, mechanisms, …)
  • Developer tooling and processes for continuous deployment and management of SOA based applications in PaaS.
  • Cloud optimized communication middleware.
  • Management and continuous migration of persistent data (versioning, structure changes, …)
  • Extending the usage areas beyond web solutions (batch processing, analysis, …)


The following Initiatives are addressing PaaS specific topics.




In the following Projects we are currently working on PaaS specific topics:

Infrastructure as a Service (IaaS)

Infrastructure as a Service

Infrastructure as a Service is a basic and fundamental research area for the ICCLab. By IaaS we refer to the service that provides basic, enabling services such as compute, storage and networking. There are many exemplary current-day IaaS service offerings such as Amazon EC2, Rackspace Cloud Servers and CloudSigma servers. These services are very much cloud services and adhere to the NIST definition of cloud computing:

1. On-demand self-service
2. Broad network access
3. Resource pooling
4. Rapid elasticity
5. Measured service

These services are implemented using infrastructure management frameworks (IMFs), many of them are developed privately in-house but more and more open source IMFs, for example Rackspace. Rackspace, as does the ICCLab, uses OpenStack to power its IaaS offering. OpenStack is not the only open source IMF. Others include:

IaaS itself is also a wide area filled with interesting research areas and currently the research initiatives of interoperability and dependability are applied to IaaS in the ICCLab.

Related Initiatives

Related Projects

The InIT Cloud Computing Lab

The ICCLab project is the foundational seed project or our research lab. It designs, deploys, and operates the ICCLab cloud computing hard and software infrastructure and addresses important research aspects around automation and interoperability of cloud computing infrastructure and frameworks.

Hard and Software Infrastructure and Framworks

The framework of choice is OpenStack, which enjoys significant industry and academic support and is reaching good levels of maturity. The lab will support pre-production usage scenarios on top of OpenStack services as well as experimental research on OpenStack technology and extensions. Currently the actively deployed OpenStack services are the OpenStack compute service (including keystone, glance and nova), and Swift, an object storage service.

The lab is equipped with COTS computing units, each running on 8×2.4 Ghz Cores, 64GB RAM and 4×1TB local storage per unit. To store templates and other data the we run an additional 12TB NFS or iSCSI Storage which is connected to a switch with a 10Gbit Ethernet interface. The Computing Units are connected to a 1Gbit network for data and another 1Gbit net for control traffic.

At the heart of the CCLab is the Management Server, which provides an easy way to stage different setups for different OpenStack instances (productive, experimental, etc.). The Management Server provides a DHCP, PXE and NFS Server and some pre-configured processes which allow a bare metal computing unit to be provisioned automatically, using Foreman, and then have preassigned roles installed, using a combination of Foreman and Puppet. This provides a great deal of flexibility and support for different usage scenarios.


One core concern with Cloud Computing addressed by the ICCLab seed project is Cloud interoperability and the ICCLab project is inparticular driving the OCCI standardization. A second, more operational concern is automation (deployment, configuration, scaling) of  cloud computing services. Details about these activities can be found under the research themes and blog space at this website.

In-depth treatments are documented in