As the trend continues to move towards Serverless Computing, Edge Computing and Functions as a Service (FaaS), the need for a storage system that can adapt to these architectures grows ever bigger. In a scenario where smart cars have to make decisions on a whim, there is no chance for that car to ask a data center what to do in this scenario. These scenarios constitute a driver for new storage solutions in more distributed architectures. In our work, we have been considering a scenario in which there is a distributed storage solution which exposes different local endpoints to applications distributed over a mix of cloud and local resources; such applications can give the storage infrastructure and indicator of the nature of the data which can then be used to determine where it should be stored. For example, data could be considered to be either latency-sensitive (in which case the storage system should try to store it as locally as possible) or loss sensitive (in which case the storage system should ensure it is on reliable storage). Continue reading
The Service Engineering Research Area (ICCLab, SPLab) adopts a comprehensive and holistic approach to science. The entire approach is based on three driving principles, namely Scientific Foundation, Strategic Impact, and Knowledge Transfer. The entire scientific work of both labs is aligned and directed along these inter-linked dimensions.
The importance of a sound foundation of expertise, in a variety of themes, by good partnerships, in a consistent and coherent project portfolio. The Scientific Foundation represents our strategic research agenda, which is driven by our core research expertise. It is defined along several strategic research themes, aligned with strategic collaborations, and implemented via a portfolio of research projects. The Scientific Foundation thus resembles the most vital element in our approach to science. It is ruled by an elaborate portfolio process that continuously evaluates internal and external feedback (see below) in order to validate and verify our strategic direction. Continue reading
In the early and mid-2000s, there has been a tremendous research activity around service-oriented architectures (SOA) and service-oriented computing (SOC). Many of the results remained on paper only. Meanwhile, though, the increasing use of cloud computing services and the forecast on fog computing has brought the necessity for dedicated service research and service prototyping back on the agenda. Such services should be pervasive by fulfilingl the needs of users as much as possible in any context. We envision a high degree of pervasive services in data centres, on interactive screens, and in embedded devices and robots. One example is storage from a service perspective: A user in a BYOD employment would like to just store files with the press of a single button, without trusting a single cloud. The service in this case would be composed of multiple individual services, which differ between a private and a company context. The Pervasive Services research theme of the Service Prototyping Lab therefore contributes new methods for forging, running, exploring and employing such services. The output of the theme will be tools, processes and procedures for prototyping services (e.g. following the results of Service-Based Applications).
Ultimately, a service should be of benefit to a client. With recent advances in cloud service research, clients can combine computing, storage and network resources according to specified goals. Both technical and legal protection of these goals is possible. The technical protection encompasses service bundling and multiplexing as well as guarantees given by the underlying service platform, for instance, deployment without breakage. The legal protection encompasses governance, service-level agreements, certifications and transparency through monitoring, news reports, cloud cockpits and cloud control centers.
Three research initiatives have been identified as helpful and in scope to drive this research theme and contribute to service prototyping.
The first one, Service Tooling, will innovate with designs for tools and engineering support in the entire lifecycle. This includes service brokers, catalogues, platforms, optimal selection, multiplexing and bundling layers, development tools, as well as add-on services such as gamification, IT support and business functions. The second one, Cloud Application Development Tooling, relates to seamless upgrades of complex services, including continuous deployment. The third one, Operations, incorporates service governance and process certification. The themes have been structured in a way that they directly contribute to knowledge transfer in education at ZHAW.
Currently, there are not yet any running projects in this research theme. We are actively identifying research opportunities and industry needs and look forward to collaborate on pervasive services and service platforms.
Cloud infrastructure and platform technology has matured a lot since the foundation of ICCLab. Eventually, applications and services running on top are the key concerns to users entering into an interaction. Web applications, mobile apps, interactive devices and business processes are increasingly service-based and benefit from contextual awareness about the elastic scalability, the on-demand procurement and the smart deployment of these services. In the Service Prototyping Lab’s research theme on Service-Based Applications, we explore how to increase the benefit by having suitable software design, engineering and composition approaches. New methods are proposed, evaluated and applied to existing software (for migration) as well as to new software written from scratch in prototyping efforts to find out quickly whether or not each method or approach is worth following. This covers several application domains, including SaaS, PaaS and services bound to devices.
There are one established and two additionally planned initiatives for this research theme on Service-Based Applications.
The Active Service Management initiative is related to fully managed services in PaaS, but adds self-awareness of services running in managing environments. Therefore, services implemented as CNA are suitable candidates. The Cloud Robotics initiative explores integrating services with devices, in particular robots, to achieve fully automated digital and real-world services.
In the following projects, topics raised by and related to the initiatives are actively being worked on.
- CNA Seed Project (2014/15)
Service hosting platforms such as IaaS and PaaS offer a lot of convenience for the service engineer. They take care of proper provisioning, scaling, healing and profiling. Yet, this platform support is limited when it comes to decisions which require insight into the application state and logic, especially considering applications or services ranging across multiple platforms with composition and orchestration.
The Active Service Management research initiative of the Service Prototoyping Lab aims at improving the state of the art by letting applications signal their states, conditions and requirements, and by letting platforms understand these signals. Emerging from the work on Cloud Native Applications (CNA), this initiative subsumes work on pro-active/predictive auto-scaling with application metric such as numbers of users and self-* properties such as self-healing by replacing crashed or unresponsive application parts with new instances.
- Comparative evaluation of active service management techniques.
- Novel contributions to some of the techniques, in particular to scaling and resilience, but also service evolution.
- Turn research results into best practices to achieve an extended CNA design and appropriate hosting platforms.
Relevance to current and future markets
The commercial landscape of service hosting infrastructures generally assumes an issue-free operation without failures and demand spikes. Due to SLAs, this becomes costly when the assumptions do not hold anymore. With active service management contributions, many of the failures and spikes can be mitigated so that business continuity remains assured.
Relevant Standards and Articles
While management of services is an established topic in industry, the specific issue of actively managing environment-aware services is a genuine research topic. We present a selection of useful reading.
- Scryer predictive auto-scaling by Netflix: part 1, part 2
- Tardigrade: Leveraging Lightweight Virtual Machines to Easily and Efficiently Construct Fault-Tolerant Services
The following architecture figure describes Dynamite, a novel auto-scaling engine. This rule-based and re-usable engine has been designed in the context of CNA.
Articles and Publications
- Giovanni Toffetti Carughi, Sandro Brunner, Martin Blochinger, Florian Dudouet and Andrew Edmonds, “An architecture for self-managing microservices”, International Workshop on Automated Incident Management in Cloud (AIMC’15), Bordeaux, France, April 2015
Open Source Software
- Dynamite scaling engine for CNA using custom metrics for its decisions
Giovanni Toffetti Carughi: toff(at)zhaw.ch
From a datacenter operator or cloud provider point of view, IT services are intangible entities which must run reliably 24/7, be provisioned on demand with the right scale, and be documented and certified properly. In the Service Operations research initiative of the Service Prototyping Lab, we take a closer look at the needs of businesses which operate infrastructure, platform and application software services. There are differences in the structural appearance of services (e.g. daemon, virtual machine, container, plugin archive) and in the level of assurance against risks (technical, legal). These differences need to be accounted for when planning and scheduling the service execution.
- Operation of testbeds for service execution. A BladeCenter is already set up for this purpose.
- Solving business needs regarding service-level agreements (SLAs), software and process certifications, governance, high availability, failover, as well as further technical protection schemes.
Relevance to current and future markets
IT services are the foundation of all digital processes between individuals, enterprises and organisations. Increasingly, processes are going digital, which saves paper but demands fully reliable and automated IT service delivery and governance. Therefore, this initiative serves as enabler and helps in particular companies to dry-run their services in a controlled environment before rolling them out for the target consumers.
Pietro Brossi: brpi(at)zhaw.ch
Working with remote services requires appropriate and decent tooling. A service idea may take just five seconds (“I want to offer a robust note-taking service”), but its realisation may take much longer (“Which programming language and model?”, “How to describe the service?”, “Where do I find a fitting file service to store the notes on unless I want to take care of backups by myself?”, “Where do I publish my service so that it runs and generates income?”). Therefore, modelling, engineering and integration tools are primarily needed. These tools work in combination with a certain service environment, or ecosystem, consisting of more tools, dependency services, and service platforms which bring services to life.
Open source service platforms such as SPACE and FIWARE went from being architectural visions to actually usable platforms. However, in comparison to cloud stacks and commercial cloud services, their popularity is limited and they are far from being used pervasively. Therefore, the Service Tooling research initiative of the Service Prototyping Lab intends to identify tools and platform services which are straightforward to deploy, easy to use and generic enough to be re-usable in many service scenarios.
For this purpose, the initiative follows a triple structure with three topics of increasing industrial and societal interest: Function-as-a-Service (FaaS), Stealth Computing, Cloud Ecosystems.
- Research and innovation in the entire service lifecycle through advanced tooling: Modelling, publishing, running, consuming and evolving services and service-based applications. This initiative will therefore contribute open source tools to build service platforms, ecosystems and individual applications.
- Layered architectures for services and clients, including adaptive invocation and stealth data management, to benefit from service and cloud environments while overcoming their limitations.
- In connection with CNA, identification of suitable tooling for engineering cloud-native applications, in particular aiming at extreme microservices (nanoservices) with FaaS.
- Adaptation of applications to execution technologies in general: VMs, containers, packages, functions, unikernels. None of these should be a concern to an application engineer and therefore automated tooling is required.
Stealth Computing Architecture
In this part of the initiative, there are a number of architectures depending on the use case and the lifecycle phase of a service. The following diagram represents a typical multi-cloud service integration point with stealth properties. Software applications and services benefit from spreading their data and functions across providers in a tightly controlled, re-usable layer with standard interfaces such as files (e.g. POSIX) and data (e.g. SQL). Users are more willing to adopt cloud environments when explicit user control is made possible by stealth computing.
Cloud Ecosystems Architecture
This part of the initiative explores marketplaces, brokers, dashboards, cloud migration tools, API generators, aggregators and other enablers of thriving ecosystems with service producers and consumers. The research focuses on prototyping techniques with description/implementation roundtripping, a library of utility services which aid in establishing ecosystems, and improved client-side tools such as CLI helpers.
In the FaaS part of the initiative, tools to bring legacy code into FaaS environments as well as tools to advance the environments themselves are investigated. There are software decomposition tools for Python (Lambada) and for Java (Podilizer, Termite). Furthermore, there is a flexible client/server tool to migrate, execute, test and deploy functions written in several languages (Snafu).
Articles and Publications
Note: Preprints are made available in a timely manner. Check preprints.
- J. Spillner, M. Beck, A. Schill, T. M. Bohnert: Stealth Databases: Ensuring User-Controlled Queries in Untrusted Cloud Environments, 8th IEEE/ACM International Conference on Utility and Cloud Computing (UCC), Limassol, Cyprus, December 2015. (PDF author version) (Slides)
- J. Spillner: Secure Distributed Data Stream Analytics in Stealth Applications. 3rd IEEE International Black Sea Conference on Communications and Networking (BlackSeaCom), Constanța, Romania, May 2015.
- J. Spillner, J. Müller: PICav: Precise, Iterative and Complement-based Cloud Storage Availability Calculation Scheme. 7th IEEE/ACM International Conference on Utility and Cloud Computing (UCC), London, UK, December 2014. (PDF)
- J. Spillner, A. Chaichenko, A. Brito, F. Brasileiro, A. Schill: Cloud Resource Recycling: An Addition of Species to the Zoo of Virtualised, Overlaid, Federated, Multiplexed and Nested Clouds. SDPS Transactions: Journal of Integrated Design and Process Science (JIDPS), vol. 18, no. 1, pp. 5-19, April 2014.
- J. Spillner, S. Illgen, A. Schill: Engineering Service Level Agreements: A Constrained-Domain and Transformation Approach. 3rd International Conference on Cloud Computing and Services Science (CLOSER), Aachen, Germany, May 2013.
Note: Latest posts are on top.
- Transducing service descriptions into SaaS prototypes
- Introducing Podilizer: Automated Java code translator for AWS Lambda
- Rapid API generation with Ramses
- Programmatic identification of cloud providers
- FaaS: Function hosting services and their technical characteristics
- Walk-through: Importing virtual machine images into EC2
- Making Tools Robust and Breaking Robust Tools
- Talk of J. Spillner: The Next Service Wave: Prototyping Cloud-Native and Stealthy Applications. IBM Research Zurich, September 2015. (Slides)
- Talk of J. Spillner: Safe File Storage and Databases. GÉANT3+ Datacenter IaaS Workshop, Helsinki, Finland, September 2014. (Slides)
- Talk of J. Spillner: Operating the Cloud from Inside Out. HPI Operating the Cloud Symposium, Potsdam, Germany, September 2013. (Video)
- Talk of J. Spillner: Flexible Service Ecosystems: The serviceplatform.org perspective. 8th KuVS NGSDP Expert Talk, Königswinter, Germany, April 2013. (Slides)
Open Source Software
Note: The software repositories are hosted in the Service Prototyping Lab Github account. Some of our smaller tools are operated live on a Labsite. Check labsite.
- Podilizer: Decompose legacy Java code into functions and deploy them into an AWS Lambda environment.
- Transducer: Service interface transducer for rapid prototyping. Creates a running service mockup from a RAML description.
- Lambda Control Plane applications: Lambackup & LaMa. Store and process data in the AWS Lambda control plane.
- Whatcloud: Identification of cloud provider by network location.
- AWS-CLI-Retry: AWS-CLI tools with retry patches. A wrapper around AWS-CLI for more robustness.
- now archived: Open Source Service Platform Research Initiative, with further links to the SPACE service platform, spotmarkets, crowdserving portal, π-box for user-controlled access to clouds, nested virtualisation etc.
- now archived: Cloud Storage Lab, with further links to dispersed storage and computing as well as stealth computing tools, such as NubiSave and StealthDB
Josef Spillner: josef.spillner(at)zhaw.ch
The connection between the physical world and the virtual world has never been as exciting, accessible, and economically viable as today. Sensors, actors and robots are able to deliver many physical services in several scenarios, including industrial production and home automation, elderly care, assisted living, logistics and cooperative maintenance.
In isolation, computing capabilities of robots are however limited by embedded CPUs and small on-board storage units. By connecting robots among each other and to cloud computing, cloud storage, and other Internet technologies centered around the benefits of converged infrastructure and shared services, two main advantages can be exploited. First, computation can be outsourced to cloud services leveraging an on-demand pay-per-use elastic model. Second, robots can access a plethora of services complementing their capabilities (e.g., speech analysis, object recognition, knowledge sharing), enabling new complex functionalities and supporting learning.
Cloud robotics is a natural extension to the Internet of Things (IoT). Where IoT devices will gather information about an environment to help make smarter decisions, cloud robotics will be able to use this information and act on it.
Although there is clear recognition that Cloud access is required to complement robotics computation and enable functionalities needed for robotic tasks (e.g., self-driving cars), it is still unclear how to best support these scenarios.
State of the practice
The Robot Operating System (ROS) (http://www.ros.org/) has gained massive traction both in industry and research.
ROS allows robotics developers to concentrate on one specific functionality at a time (e.g., planning, navigation, 3d reconstruction) implemented into so-called ROS nodes that can communicate through pub/sub or RPC-like messages to implement a coherent robotic behavior.
Its next release iteration (ROS2) will address most of the shortcomings of the previous version, for instance removing the need for a centralized master node and adopting a peer to peer discovery mechanism for nodes.
Current ROS development is still faced with low-level interoperability and compilation concerns. Containers in this context are used for the moment simply as a way of providing a consistent running environment for ROS code, however none of the best practices from cloud computing (e.g., resource and container management, placement automation, resource and SW orchestration, continuous integration and deployment) have been adopted yet.
The initiative’s goal is to enable robotic applications to take full advantage of cloud computing services, resources, best practices, and automation by integrating ROS nodes and robots just as other composable services in the cloud.
The results will benefit all robotic stakeholders:
- Robotic and cloud developers will be able to deploy their application code in containers with a click, triggering the orchestration of all needed supporting services (e.g., databases, caches, load balancers, speech and video processing, ROS nodes) and both virtual (e.g., containers, virtual machines) and physical resources (e.g., robots, sensors, cameras, bare-metal machines). ROS nodes and robotic services will be easily composable and accessible from a market generating revenue for SW development of generic and ad hoc solutions;
- Robot Producers will be able to leverage the advancements in cloud infrastructure and platforms needed to support robotic applications. This will enable them to provide end customers with fully functional robots that do not require on premises compute infrastructure and configuration. Moreover they will be able to leverage from a developer community and their SW artifacts;
- End users will benefit from robots and applications that work out of the box and can be easily integrated among themselves and with their favourite cloud services.
Cloud orchestration will cover the entire lifecycle of a robotics service, catering for timely resource allocation and dismissal, taking full advantage of the cloud pay-per-use model, sensibly reducing operational costs with respect to an always-on solution.
Moreover, by taking a service oriented approach and adopting modern cloud-development methodologies, developers will benefit from continuous integration / deployment practices, resulting in shorter release cycles and higher productivity.
This research initiative will also address:
- Review frameworks for offloading processing and storage tasks into suitable cloud services, including one of the first such frameworks, AdAPtS (2012).
- Delivery of a bundled set of service tooling, including a dynamic service registry, for the purpose of letting robots access cloud services many years after production despite constant service evolution.
- Fleet management for robots in the cloud.
- Collaborative knowledge sharing between robots using suitable online services.
- Identification of beneficial services to augment robot capabilities, such as image recognition and messaging.
Relevance to current and future markets
Robotics is a hot market with competitive manufacturers especially in Switzerland and Europe, including Rapyuta, Aldebaran and (for educational purposes) LEGO Mindstorms. The much larger and currently mostly untapped market is about robots connected to appropriate feedback-loop and cooperation services.
Relevant Standards and Architectures
ROS (Robot Operating System): http://www.ros.org/
Rapyuta: a Cloud Robotics framework http://rapyuta.org/
The following diagram presents AdAPtS, an existing framework for connecting robots to clouds. We will review and extend this and other architectures as needed, and present a set of complementary architectures for virtual robots and robot coordination in the cloud.
Articles and Publications
- J. Spillner, C. Piechnick, C. Wilke, U. Aßmann, A. Schill: Autonomous Participation in Cloud Services. 2nd International Workshop on Intelligent Techniques and Architectures for Autonomic Clouds (ITAAC), Chicago, Illinois, USA, November 2012. (PDF)
Related blog posts
Giovanni Toffetti: toff(at)zhaw.ch
Tobias Lötscher: loeh(at)zhaw.ch
Todays Application developer tooling is focusing on single (mostly monolithic) applications and local development on developer workstations. Modern “Cloud Native Applications” on the other hand are distributed, decoupled, resilient and highly scalable. Sometimes a Business Application consists 20+ so called Microservices.
In the cloud age, customers expect fast innovation and a downtime-free application provisioning. Modern cloud development tools, cloud automation and continuous delivery of software as a service makes this possible. This delivery model depends on a continuous service deployment functionality in the hosting environment, i.e. in the PaaS or IaaS stack, in combination with powerful version control systems and automated continuous testing and integration. To bring software to scale and avoid failures, decentralised stacks and systems are used to deploy the services. Once they are deployed, scalability and resilience are taken care of by run-time methods such as CNA.
Cloud Application Developer tooling and Continuous deployment on PaaS platforms is a particularly popular research topic with industrial relevance. Tools are being created to support CloudFoundry, OpenShift, Heroku, and Azure. The goal is to get the services running with a single button click and no more worries about dependencies, random breakage or interface incompatibilities.
Innovation in the entire application development lifecycle: design, modelling, testing, packaging, deployment, debugging, publishing, running, monitoring. This initiative will therefore contribute open source tools to build application development ecosystems.
- Provide advanced tooling to develop and operate large and complex cloud application.
- Innovation along the whole DevOps process: design, coding, testing, continuous integration, continuous deployment, provisioning, operation,…
- Enhancing techniques and tools to support multi-stage zero-downtime deployment of complex cloud service systems.
- Multi-Service/Multi-Cloud support (PaaS & IaaS)
- Focus on Cloud Native Applications, but also supporting complex scenarios, like service interdependencies, versioning and data migrations.
Although there are several continuous deployment approaches and quite a few comparisons, there is a lack of a detailed analysis of how to choose the best techniques for deploying services in cloud environments. The Cloud Application Developer Tooling research initiative of the Service Prototyping Lab is exploring ways to get more knowledge and findings on this topic.
Relevance to current and future markets
Automation is a massive cost cutter in the IT industry. By leveraging modern distributed development technologies, application developers and operators can streamline the application lifecycle, eliminate the downtime, and governing it with a minimum effort required for testing and deployment resources.
Articles and Publications
Open Source Software
CF-WebUI is a modern single page Web User Interface for Cloud Foundry based on AngularJS and Bootstrap http://icclab.github.io/cf-webui/
- Continous Deployment Framework for complex cloud service systems
- currently supporting CloudFoundry PaaS, goal to support other PaaS
- flexible workflows, CI tool independent
- coming soon
Christof Marti: mach(at)zhaw.ch
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