Submission deadline: 1 Apr. 2018
Publication: Nov./Dec. 2018
Today, more than a decade since the launch of Amazon Web Services (AWS), on-demand computing platforms are pervasive in industry. Recent years have seen the emergence of many concepts and technologies to implement and support cloud-native applications: from full cloud application platforms, to serverless architectures, to docker containers, to microservices, and to unikernels, including chaos engineering and continuous integration. These advancements constitute a significant body of knowledge and make up a new professional engineering domain that’s at the intersection of software development, IT operations, and the cloud.
Cloudware engineering employs systematic, disciplined, and quantifiable approaches to the development, operation, and maintenance of a specific type of software: cloud-native applications. Delivering such applications requires us to revisit traditional software engineering theories, methods, architectures, technologies, and tools to guarantee the delivery of applications that are scalable, elastic, portable, resilient, and adaptable for the cloud.
Cloudware engineering’s importance and timeliness are highlighted by recent initiatives such as the Cloud Native Computing Foundation to advance cloud-native technology and services, cloud-native libraries such as Netflix Open Source Software, Microsoft’s cloud design patterns, and Heroku’s twelve-factor app.
Building, packaging, and launching cloud-native applications is far more complex than just lifting and shifting monolithic applications into virtual machines running in AWS, Azure, Google Cloud, SoftLayer, or OpenStack. Cloud applications need to take full advantage of cloud computing’s benefits (for example, pay per use and elastic scalability) while being capable of mitigating its risks; for example, any component failures should never bring down the whole system. Nevertheless, an overarching engineering view is currently missing. Existing initiatives are fragmented.
This IEEE Software theme issue intends to identify the foundations of cloudware engineering as a discipline to systematically manage the lifecycle of cloud-native applications requirements specification, design, implementation, deployment, operations, maintenance, and evolution.
Cloud architects, developers, operators, and administrators need to articulate and frame new concepts such as infrastructure automation tools, serverless architectures, microservices, twelve-factor-app-oriented methodologies, containerization, eventual consistency, bulkhead and circuit breakers, workload decomposition, A/B testing, feature toggles, and DevOps. These emerging concepts complement those already established in software engineering such as ACID (atomicity, consistency, isolation, durability) transactions, vertical scaling, three-tier architecture, REST (Representational State Transfer), stateful applications, and hardware affinity.
We invite researchers and practitioners to share innovations, methodologies, and technologies for building cloud-native applications that form the base of a cloudware-engineering discipline:
- architectures (design patterns, native PaaS [platform as a service] support, and shared-nothing architecture),
- cloud services (API ecosystems, privacy and security, and microservices and Lambda functions),
- communication and coordination (container scheduling, stream-based communication, and orchestration and choreography),
- consistency and replication (CAP [consistency, availability, partition tolerance] theorem, transaction models, eventual consistency, and consensus algorithms),
- fault tolerance (antifragility, design for failure, chaos engineering, and reliability and resilience),
- continuous delivery (agile infrastructure, continuous-deployment pipelines, and continuous testing and integration), and
- operations (DevOps, migration, distributed tracing, and predictive maintenance)
This theme issue will serve as a primary knowledge source and shed light on the poorly understood field of cloudware engineering. It will bridge the gap between the current practice in industry and current scientific developments.
For more information about the theme, contact the guest editors:
- Jorge Cardoso, Huawei German Research Center, firstname.lastname@example.org
- Frank Leymann, University of Stuttgart, email@example.com
- Cesare Pautasso, University of Lugano, firstname.lastname@example.org
- Michael Maximilien, IBM, email@example.com
Manuscripts must not exceed 3,000 words, including figures and tables, which count for 250 words each. Submissions exceeding these limits might be rejected without refereeing. The articles we deem within the theme’s scope will be peer reviewed and are subject to editing for magazine style, clarity, organization, and space. We reserve the right to edit the title of all submissions. Be sure to include the name of the theme for which you’re submitting.
Articles should have a practical orientation and be written in a style accessible to practitioners. Overly complex, purely research-oriented or theoretical treatments aren’t appropriate. Articles should be novel. IEEE Software doesn’t republish material published previously in other venues, including other periodicals and formal conference or workshop proceedings, whether previous publication was in print or electronic form.
For general author guidelines: www.computer.org/software/author.htm
For submission details: firstname.lastname@example.org
To submit an article: mc.manuscriptcentral.com/sw-cs