Cloud Application Development Tooling

Overview

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.

Objectives

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

  • Continous Deployment Framework for complex cloud service systems
    • currently supporting CloudFoundry PaaS, goal to support other PaaS
    • flexible workflows, CI tool independent
    • coming soon

Contact

Christof Marti: mach(at)zhaw.ch