OpenShift custom router with TCP/SNI support

In the context of the ECRP Project, we need to orchestrate intercommunicating components and services running on robots and in the cloud. The communication of this components relies on several protocols including L7 as well as L4 protocols such as TCP and UDP.

One of the solutions we are testing as the base technology for the ECRP cloud platform is OpenShift. As a proof of concept, we wanted to test TCP connectivity to components deployed in our OpenShift 1.3 cluster. We chose to run two RabbitMQ instances and make them accessible from the Internet to act as TCP endpoints for incoming robot connections.

The concept of “route” in OpenShift has the purpose to enable connections from outside the cluster to services and containers. Unfortunately, the default router component in OpenShift only supports HTTP/HTTPS traffic, hence cannot natively support our intended use case. However, Openshift routing can be extended with so called “custom routers”.

This blog post will lead you through the process of creating and deploying a custom router supporting TCP traffic and SNI routing in OpenShift.

Continue reading

Programmatic identification of cloud providers

There is an ongoing debate in the community about the level of awareness (and related to this, influence) an application or SaaS instance should have concerning where and how it is hosted. The arguments range from “none at all”, spoken with a deploy-and-forget mindset, to “as much as possible”, spoken with a do-it-yourself attitude. In practice, some awareness and influence is certainly present, for instance in application-specific autoscaling, self-healing, self-management in general.

One particular aspect in the discussion is about whether an application should know in which cloud environment it is running. Even though the engineer may have targeted a specific stack with project conventions, there may be migrations between several instance of the same, e.g. different installations of OpenShift, Cloudfoundry or other stacks to run cloud applications, across regions or even across providers. Already some time ago we looked into identifying the level of virtualisation in a nested virtualisation context. Now we complement this vertical view with a horizontal one. This blog post does not argue for or against cloud provider identification; it merely describes a tool to gain this knowledge and exploit it in any possible way. The tool is called whatcloud.

Continue reading

Multi-Tenant Process Management as Single User

Operating system process management has traditionally been an activity at the system level. An init system starts processes at boot time, at random events, and at the user’s (well, root’s) request. Well-known init systems are systemd, openrc and the venerable sysvinit. Without the boot-time component, supervisor processes such as supervisord, runit, daemontools or r6 form another related set of applications with emphasis on automated restart which we have covered already in previous blog posts.

In PaaS environments, multi-tenancy is crucial and process managers need to support it beyond just showing the users owning the processes. While multiple tenants can be perfectly mapped to multiple system users, and information from these users can be aggregated with automation tools, the permission management can quickly become complex and, first and foremost, already requires root permissions to create new users. Therefore, we have explored in the context of the cloud robotics research initiative how to manage processes purely as an ordinary user, but still for multiple tenants. A real need to do so is the fact that by running applications on ROS, dozens of ROS nodes get spawned quickly, many spawning further subprocesses and, due to early terminations, additionally causing fully detached and zombie processes which, when also changing their process group id, do not share a relation anymore to the original application.

Continue reading

5th Docker & 7th CloudFoundry usergroups meetup

IMG_1225Last night we organised the 5th Docker Switzerland user group meetup in Zürich. The event was co-located with the 7th CloudFoundry DACH user group meetup as well. We were overwhelmed to see the participation, the meetup page showed about a 100 people registered for the event, but about 75 showed up. Still it was a packed room at the ZHAW Lagerstrasse building in Zürich.  Continue reading

Announcing CF WebUI – an open source web interface to Cloud Foundry

We proudly announce the release of CF WebUI!

CF WebUI is a modern single-page web front-end for Cloud Foundry based on AngularJS and Bootstrap. It is developed at the ICCLab as an open source alternative to commercial and proprietary web-consoles for Cloud Foundry.

Continue reading

OpenStack Summit – Deep Dive into Day 2

CERN Openstack (super) User Story
CERN is looking for answers to the fundamental questions concerning creation of the Universe and true to its nature, its a a big data challenge. With the historical run of LHC in 2013, their archive now contains ~100PB (with additional 27PB/year) at ~11 000 servers with ~75000 disk drives and ~45 000 tapes and with the reopening of the LHC, they expect a significant increase of data in 2015. CERN recently opened up a new data center in Budapest connected to Geneve’s headquarters by T-Systems 100GbE line. 
CERN currently runs  four Openstack Icehouse clouds and expects these to run 150 000 cores by Q1 2015 in total. All the CERN‘s non-specific code is upstream and are available for anyone who would like to build at the top of it in the future.
CERN put great emphasis on collaboration. Openlab project is public-private partnership between CERN and major ICT companies (e.g. Rackspace) and its goal is to accelerate the development of cutting-edge cloud solutions.
 2014-11-04 09.42.44obrázek2
OpenShift on OpenStack
RedHat and Cisco gave a demo on deploying OpenShift on OpenStack using Heat, Docker & Kubernetes. OpenShift is a PaaS offering from RedHat with both the enterprise and open source versions. The thought process of deploying OpenShift on OpenStack is to maintain a high degree of flexibility and enable a faster deployment of applications. In the demo, Heat was made use of for orchestration. Docker’s pull and push methodology is used for getting a new Image or saving a modified version which could be pulled later on. Along with tagging of the images, diff operation can also be done. Docker containers are also used as daemons. However Docker cannot see beyond a single host and doesn’t have the capacity to manage mass configuration and deployment. That’s where the Kubernetes comes into picture. Here Pod resemble the Docker’s containers and the etc functionality is used to configure the master which would pass it along to the slaves and there by mass configuration is achieved.The link to the presentation can be found here.
2014-11-04 11.15.33 2014-11-04 11.18.49

Getting Started with OpenShift and OpenStack

In Mobile Cloud Networking (MCN) we rely heavily on OpenStack, OpenShift and of course Automation. So that developers can get working fast with their own local infrastructure, we’ve spent time setting up an automated workflow, using Vagrant and puppet to setup both OpenStack and OpenShift. If you want to experiment with both OpenStack and OpenShift locally, simply clone this project:

$ git clone https://github.com/dizz/os-ops.git

Once it has been cloned you’ll need to initialise the submodules:

$ git submodule init
$ git submodule update

After that just you can begin the setup of OpenStack and OpenShift. You’ll need an installation of VirtualBox and Vagrant.

OpenStack

  • run in controller/worker mode:
      $ vagrant up os_ctl
      $ vagrant up os_cmp
    

There’s some gotchas, so look at the known issues in the README, specific to OpenStack. Otherwise, open your web browser at: http://10.10.10.51.

OpenShift

You’ve two OpenShift options:

  • run all-in-one:
      $ cd os-ops
      $ vagrant up ops_aio
    
  • run in controller/worker mode:
      $ cd os-ops
      $ vagrant up ops_ctl
      $ vagrant up ops_node
    

Once done open your web browser at: https://10.10.10.53/console/applications. There more info in the README.

In the next post we’ll look at getting OpenShift running on OpenStack, quickly and fast using two approaches, direct with puppet and using Heat orchestration.

Keynote: “Platform as a Service: The Future of Software Development”

Keynote: T. M. Bohnert and C. Marti, “Platform as a Service: The Future of Software Development” (slides).

ISNC banner v-final8

Event background:

  • Are you a Swiss or Swedish Multinational Enterprise (MNE) representative interested in finding new partners & funding for your latest R&D project within the field of innovative software?
  • Or are you a Swiss or Swedish Small or Medium-Sized Enterprise (SME), higher education or research institute interested in:
    – Teaming up with innovative partners from the software industry &
    – Finding funding for your newest market oriented R&D project?
  • Then do as Ericsson, IBM, SAAB, ETH and many others & sign up already today for the Innovative Software Networking Conference! There you can both meet your potential future R&D partner and learn more about available project funding for market oriented Swiss-Swedish R&D projects within the field of software engineering.

Organizer : Federal Department of Economic Affairs, Vinnova, Export Radet, Saab

08:30 Opening of Conference
Mr. Mauro Dell’Ambrogio, State Secretary for Education and Research (TBC)
Thomas M. Bohnert/Geri Baudinot from Zurich University of Applied Sciences (TBC)
08:40 Swiss-Swedish Innovation Initiative
Mr. Jürg Burri Head of Research and Innovation Directorate at Swiss State Secretariat for Education, Research & Innovation (TBC)
08:50 Platform as a Service: The Future of Software Development
Thomas M. Bohnert and Christof Marti, ZHAW School of Engineering / ICCLab
09:05 EUREKA – Doing Business through Technology
Presentation about Available EUREKA & EUROSTARS Funding For Market Oriented Swiss-Swedish R&D Projects, VINNOVA & State Secretariat for Education, Research & Innovation
09:20 Component Based Architecture with Ericsson
Mr. Jens Jensen, Senior Expert Implementation Architecture Ericsson
09:35 Opportunities within Model Based Engineering & Model Based Development with SAAB
Mr. Stefan Andersson, Senior Executive in Engineering SAAB Group
09:50 Opportunities within New Agile Software Development with SAAB
Mr. Tommy Eklund, Senior Executive in Engineering SAAB Group
10:05 IBM
10:20 Thales or Nagra Vision (TBC)
10:50 Coffee Break
11:20 Meeting the Challenge of Reliable Software
Professor Bertrand Meyer, Chair of Software Engineering at ETH Zurich
11:35 Chalmers University of Technology Gothenburg
Professor Johan Carlsten, Vice Principal Chalmers University of Technology
Professor Jan Bosch, Head of Software Centre at Chalmers University of Technology
11:50 Process Improvement and Process Engineering
Ms. Mira Kajko-Matsson, Associate Professor at KTH Royal Institute of Technology
12:05 Networking Lunch
13:05 SME project pitches, 7 minutes/company 8 pitches
14:05 SME project pitches, 7 minutes/company 8 pitches
15:05 B2B Meetings, Á 15-20 minutes
17:30 Wrap Up and End of Workshop

 

OpenShift

[OpenShift](https://openshift.redhat.com/app/) is one of the Open Source Platform as a Service cloud computing frameworks that the ICCLabs works with. For developers, deploying their application to this runtime is a simple as using the all-familiar `git` command. Currently, OpenShift supports the following development runtimes:

* node.js
* Ruby (Rack, RoR)
* Python (WSGI, Django)
* Perl (PSGI)
* PHP (CodeIgniter, CakePHP)
* Java (Java EE 6)

CloudFoundry

“[Cloud Foundry](http://www.cloudfoundry.com) is an open platform as a service, providing a choice of clouds, developer frameworks and application services. Initiated by VMware, with broad industry support, Cloud Foundry makes it faster and easier to build, test, deploy and scale applications. It is an open source project and is available through a variety of private cloud distributions and public cloud instances, including CloudFoundry.com.” [CloudFoundry FAQ](http://www.cloudfoundry.com/faq#whatis)