ICCLab and SPLab are proud to have contributions in the Open Source community. Following is a list of our open source contributions/releases and their info.
List of Open Source software releases:
1. Cyclops – A cloud Rating-Charging-Billing tool
2. Hurtle – Offer your Software as-a-Service
3. Netfloc – NETwork FLOws for Clouds – an SDN based SDK
4. Netflogi – Netflogi – a Graphical Interface for Netfloc
5. Powdernote – A cloud based note-taking application
6. Watchtower – A cloud incident management tool
7. Arcus Energy Monitoring tool – Energy monitoring for OpenStack
8. CNA Seed project – A reference cloud-native application implementation
9. N_O_conf – A Nagios-based elastic OpenStack monitoring system
10. VM Reliability Tester – A software that tests VM performance in OpenStack
11. CF-WebUI – A single-page Web-Frontend for Cloud Foundry
12. KIARA – FIWARE Advanced Middleware
13. Podilizer – Java code to AWS Lambda transformation
1. Cyclops – A cloud Rating-Charging-Billing tool
ICCLab has been developing a generic rating-charging-billing engine that offers cloud service providers a modular framework that enables dynamic pricing activities and distributed design. The model closely follows the general accounting process, while also providing a lot of flexibility due to the loosely-coupled design. The platform is being designed in Java with connectors to different IaaS & PaaS solutions. The current version has connectors to OpenStack to extract the metered data from the Ceilometer component.
Features:
- Usage Data Record Microservice: Interfaces with IaaS & PaaS to extract the meter data. Also exposes the API for external application to send in the metered data.
- Rating & Charging Microservice: Enables change in rating policy and created Charge Data Records for a user
- Billing Microservice: Interfaces with the SLA module and discount engine to calculate the final payable cost for generating the invoice.
- Dashboard: The service can be accessed by a web-based user-interface that allows configuration of every aspect of the RCB process.
Under the initiative: Cyclops was developed under the RCB initiative – more info on this here.
Get the code: The Rating, Charging and Billing micro services along with the Dashboard are now available on Github!
Contacts:
- Piyush Harsh – harh[at]zhaw[dot]ch
- Martin Skoviera – skov[at]zhaw[dot]ch
- Manu Perez Belmonte – perz[at]zhaw[dot]ch
- Oleksii Serhiienko – serh[at]zhaw[dot]ch
2. Hurtle – Offer your Software as-a-Service
Developed within the Cloud Orchestration initiative, hurtle lets you automate the life-cycle management of your service, from deployment of cloud resources all the way to configuration and runtime management (e.g., scaling).
In short, hurtle lets you offer your software as a service i.e. “hurtle it!”
Features:
- Complete orchestration of your software
- Resources it uses (e.g. virtual machines, networks)
- External services it needs
- Multi-dc/multi-region support
- including inter-DC connectivity
- Easy implementation of your service API – See how to write your Hurtle Service
- Guided implementation of your service instance manager
- Many languages supported including Python, Java, Perl, PHP
- Demo applications available
- Scalable runtime management
- Complete end-to-end logging of your software
- Integration with OpenStack, ICCLab’s Joyent SDC contribs
- Handle potential incidents of your software
- On-going integration with ICCLab’s Watchtower (Cloud Incident Management)
- Billing for your software and services
- Integration with ICCLab’s Cyclops (Rating, charging & Billing)
- Usage of Open Cloud Standards (OCCI, OpenStack)
Under the initiative: Hurtle was developed under the Cloud Orchestration initiative. More information on which shall be found here.
Website and Roadmap: hurtle.it
Get the code: https://github.com/icclab/hurtle
Contacts:
- Andy Edmonds – edmo[at]zhaw[dot]ch
3. Netfloc – NETwork FLOws for Clouds SDN based SDK
NETwork FLOws for Clouds (Netfloc) is an SDN-based SDK for datacenter network programming. It is a comprised set of tools and libraries packaged as Java bundles that interoperate with the OpenDaylight controller. Netfloc’s libraries are derived from real application development use cases focused on optimising datacenter networks (in terms of minimising tunnelling overheads, maximising throughputs, enabling datapath redundancies etc.), and for network-level support on cloud applications, such as service function chaining.
Netfloc exposes REST APIs and Java interfaces for network programmers to enable optimal integration in cloud datacenters and fully SDN-enabled end-to-end management of OpenFlow enabled switches.
Features:
- Facilitate pluggable and chainable network functions as Java bundles
- End-to-end network control in datacenters
- Reduce the complexity and protocol overhead in cloud networks
- Increase tenant traffic efficiency
- Enable optimal data center network planning and design
- OpenStack Neutron ML2 plugin and northbound API support
- ODL support
- OpenFlow support
Under the initiative: Netfloc was developed under the SDN initiative – more info on this here.
Get the code: Netfloc is now available on Github!
Contacts:
- Irena Trajkovska – traj[at]zhaw[dot]ch
- Denis Baudinot – badi[at]zhaw[dot]ch
4. Netflogi – a Graphical Interface for Netfloc
Netflogi is a frontend for the SDK for SDN – Netfloc intended to provide graphical use of the Netfloc libraries. With Netflogi it is possible to create/delete Virtual Network Functions (VNFs) and manage Service Function Chains (SFCs) comprised of several VNFs.
Features:
- Create VNF
- Delete VNF
- Create SFC
- Delete a SFC
Under the initiative: Netflogi was developed under the SDN initiative – more info on this here.
Get the code: Netflogi is now available on Github!
Contacts:
- Luca Del Vecchio – delv[at]zhaw[dot]ch
- Irena Trajkovska – traj[at]zhaw[dot]ch
- Denis Baudinot – badi[at]zhaw[dot]ch
5. Powdernote – A cloud based note-taking application
Powdernote is a cloud-based command line interface (CLI) note-taking application intended for people who spend a lot of time in a terminal. Powdernote enables users to work with cloud-based text notes as if they were stored locally: users can easily write and modify their text notes without ever leaving the terminal and they will automatically be stored on the cloud and hence available anywhere at any time.
Features:
- Create, edit, rename, delete, search of notes
- Note versioning and restore
- Clutter-free and anti-distraction command-line only interface
- Designed for busy terminal power-users and engineers
In our current deployment, powdernote uses the ICCLab Openstack Swift service as a storage backend, but in general it can be easily deployed to work with any Swift installation (or even on a local VM for testing).
Under the initiative: Powdernote was developed in the Cloud Storage initiative as an application that uses swift. To have more information on the Cloud Storage initiative, please give a look here.
Get the code: http://icclab.github.io/powdernote/
Contacts:
- Gabriel Ankeshian: anke[at]zhaw[dot]ch
6. Watchtower – A cloud incident management tool
Watchtower is a Cloud Incident Management solution that we have been working on.
Watchtower is built around a Microservices Architecture as a Cloud Native Application. It integrates several open source solutions: Apache Kafka, HP Monasca, Camunda, Rundeck.
Features:
- Ability to receive alarms from Monasca or raw Watchtower Events, process and forward them
- Basic workflow management with information persistence, identification of similar incidents, support for a human operator, and automation support
- Running jobs on Rundeck, retrieving their results, all of this however without sending job specific parameters
Under the initiative: More information on the Cloud Incident Management initiative can be found here.
Get the code: All source code along with installation instructions can be found on Github, each component having its own specific project.
Contact:
- Thomas M. Bohnert – bohe[at]zhaw[dot]ch
7. Arcus Energy Montoring Tool – Energy monitoring for Openstack
The Arcus Energy Energy Tool enables an Openstack cloud operator to understand her energy consumption. The tool combines information on energy usage from the Openstack deployment with information on the usage of the system to enable the cloud provider to understand which users of the system are responsible for energy consumption in the system.
Features:
- Supports collection of energy consumption data via IPMI and direct from host OS
- Supports cloud provider view which can be used to identify hosts with high or low energy consumption and which users are responsible for most of the energy consumption of the system
- Supports user view which can be used to identify which user projects consume most energy
- User friendly graphical interface
Under the initiative: The Arcus Energy Monitoring tool was developed under the Understanding Cloud Enegy Consumption initiative and more information on it can be found here.
Get the code: The Arcus Energy Monitoring Tool has been in production since November 2014 on our local Openstack cluster. It is available on our github repo here.
Contacts:
- Seán Murphy – murp[at]zhaw[dot]ch
- Bruno Grazioli – gaea[at]zhaw[dot]ch
8. CNA Seed Project – A reference cloud-native application implementation
The Cloud-Native Applications (CNA) initiative of the SPLab aims to provide architecture and design guidelines for making the most of applications running in the cloud. Our approach is based on lessons-learned from existing applications and taking advantage of best-practices and patterns. We investigate how to develop and reuse a set of open source technologies, tools and services to build, operate and leverage state of the art cloud-native applications. We support SMEs to build their own cloud-native solutions or re-engineer and migrate existing applications to the cloud.
The CNA Seed Project is a reference implementation of how to migrate an open-source enterprise application (Zurmo CRM) into the cloud according to the current best cloud development practices.
Features:
- Based on CoreOS and fully containerized using Docker
- Self-healing application based on distributed key-store
- Self-monitoring using ELK stack
Under the initiative: More information on the Cloud Native Applications initiative can be found here.
Get the code: https://github.com/icclab/cna-seed-project/
Contacts:
- Giovanni Toffetti: toff(at)zhaw.ch
9. N_O_conf – A Nagios-based elastic OpenStack monitoring system
“Nagios OS autoconfigurator” (N_O_conf) is a cloud monitoring system that automatically adapts its monitoring behavior to the current user-initiated VM infrastructure. N_O_conf works by installing a cloud environment change listener daemon which is repeatedly polling the OpenStack API for changes in the VM infrastructure. As soon as a VM shutdown is detected, it initiates a reconfiguration of the Nagios monitoring server. If a new VM is created, it install monitoring probes on it and updates the Nagios monitoring server configuration to monitor the new VM. Nagios OS autoconfigurator can be installed on top of every OpenStack-based cloud environment without interfering with the cloud provider’s infrastructure.
Features:
- Based on Nagios open source monitoring system
- Elastically scalable monitoring system
- Adapts to dynamic VM creation / shutdown
- Installable without modification of cloud provider’s infrastructure
Under the initiative: The Nagios based OpenStack Monitoring tool was developed under the initiative Cloud High Availability initiative. Please find more information on it here.
Get the code: https://github.com/icclab/n_o_conf
Contact:
- Thomas M. Bohnert: bohe(at)zhaw.ch
10. VM Reliability Tester – A software that tests VM performance in OpenStack
“VM Reliability Tester” is a software that tests performance and reliability of virtual machines that are hosted in an OpenStack cloud platform. It evaluates the failure rate of VMs by performing a stress test on them. VM Reliability Tester installs OpenStack virtual machines, uploads a test program to them, runs this test program remotely and then captures program execution times to determine reliability of the virtual machines. If the test program takes a significant amount of time to complete, this is considered to result in a VM failure. Such deviations in execution time are an important benchmark for testing performance and reliability of your OpenStack environment.
Features:
- Statistical evaluation of different reliability models
- Configurable test programs
- Different reliability measurement algorithms: Markov analysis, Statistical Process Monitoring & Control (SPC)
- Installable without modification of cloud provider’s infrastructure
Under the initiative: The VM reliability tester was developed under the initiative Cloud High Availability initiative. Please find more information on it here.
Get the code: https://github.com/icclab/vm-reliability-tester
Contact:
- Thomas M. Bohnert: bohe(at)zhaw.ch
11. CF-WebUI – A single-page Web-Frontend for Cloud Foundry
CF WebUI is a modern single-page web front-end for Cloud Foundry based on AngularJSand Bootstrap. It is developed at the ICCLab as an open source alternative to commercial and proprietary web-consoles for Cloud Foundry.
Features:
- Modern single-page web application based on Angular-JS and Bootstrap.
- Minimal server-side proxy component.
- Organization and Space managemen.
- Create/Delete Organization/Space
- Organization/Space overview
- Managing Domains
- Application management
- Show status (CPU, Memory, Disk per instance.
- Scale instances
- Change memory limit
- Start/Stop/Restart application
- Show Events
- Show bound services
- Show and edit Environment variables
- Show and edit Routes
- Services management
- Access to Marketplace
- Create new service
- Delete Service
- Bind and unbind service to applications
For more infos see our CF-WebUI product page.
Get the code: The source code is available on Github: https://github.com/icclab/cf-webui
Contact:
- Christof Marti: christof.marti(at)zhaw.ch
12. KIARA – FIWARE Advanced Middleware
KIARA Fiware Advanced Middleware is a Java based communication middleware for modern, efficient and secure applications. It is an implementation of the FIWARE Advanced Middleware Generic Enabler (GE).
The Advanced Middleware GE is a set of compile-time and run-time tools, and a communication library to be integrated with the application. Thus, the requirements are rather minimal. In particular it requires no service running in the background.
KIARA implements transparent, fast, secure and standard conform communication between applications or services running on multiple machines using different Operating Systems. It also provides a friendly and extensible API.
Features:
The first release focuses on the basic features of RPC communication:
- Easy to use and extensible Application Programmer Interface (API). Synchronous and Asynchronous function calls.
- Modern Interface Definition Language (IDL) → based on Corba IDL.
- OMG compliant
- Extended primitive types.
- IDL derived operation mode for the RPC Client/Server communication pattern
- By generating Stubs and Skeletons at compile time → RPC API
- By using proxies to provide and call the functions at runtime → RPC Dynamic Types API
- IDL derived operation mode for the Publish/Subscribe communication pattern
- TLS encryption for secure communication
For more infos see our KIARA product page.
Get the code: The source code is available on Github: ttps://github.com/fiware-middleware/KIARA
Contact:
- Christof Marti: christof.marti(at)zhaw.ch
13. Podilizer – Java code to AWS Lambda transformation
Onboarding legacy Java applications through the new cloud programming and deployment method Function-as-a-Service (FaaS) is made possible with the Podilizer tool. It decomposes an application into hosted functions which are deployed into AWS Lambda. Of course, “to podilize” has thus become a legitimate verb for this purpose.
Features:
- Java code parsing and static analysis
- Function decomposition
- Rewrite of functions into the Lambda notation
- Compilation and packaging of functions into Lambda function units
- Upload of these units
- Testbed with unit tests, measurement scripts and other goodies for researchers
Under the initiative: Podilizer is being developed in Service Tooling.
Get the code: https://github.com/serviceprototypinglab/podilizer
Contacts:
- Serhii Dorodko – dord[at]zhaw[dot]ch
- Josef Spillner – spio[at]zhaw[dot]ch