Submission deadline: 1 Aug. 2017
Publication date: Mar./Apr. 2018
As new agile-development practices such as release automation and continuous integration become popular, and new container-based application deployment technologies such as Docker and Kubernetes come to market, new architectural approaches that fully exploit this paradigm shift—commonly called DevOps—are also appearing. The most prominent example of such approaches is microservices. Recently, their use has increased dramatically owing to their suitability for building highly available, fault-tolerant, and scalable software using DevOps practices and container technologies.
In short, microservices are a realization of the service-oriented architecture (SOA) style for developing software comprising small independent services, each running in its own process and communicating through lightweight mechanisms, often using an HTTP resource API. These services can be written in different programming languages and can use different data storage technologies. They’re built around separate business capabilities and are independently deployable and scalable by fully automated deployment machinery, with a minimum of centralized management.
Microservices are a trendy and highly popular topic in both industry and the scientific community. Many Internet-scale services, including content delivery applications (Netflix and the BBC), e-commerce websites (Amazon and eBay), and even governmental digital services (UK government services), have evolved from monolithic applications to a microservice-based architecture. Moreover, public cloud providers such as Microsoft Azure, Amazon AWS, and IBM Bluemix offer many platform-as-a-service products that can be employed to build services, which are then composed to build cloud-native systems.
This IEEE Software theme issue will serve a primary source of knowledge for bridging the gap between current practice in industry and what the scientific community can provide to further advance this architectural approach. We invite contributions related to, but not limited to,
- migration to a microservices architecture;
- microservices refactoring, evolution, and maintenance;
- autonomic computing with microservices;
- functional and nonfunctional requirements for microservices;
- designing for failure, repair, and recovery in microservices;
- architectural patterns and antipatterns for microservices;
- architecture conformance and evaluation for microservices;
- modeling languages for microservice design;
- container technology for microservices;
- unikernel microservices and serverless architectures;
- performance modeling, monitoring, evaluation, and capacity planning for microservices;
- microservices’ cultural aspects;
- agile development and microservices;
- DevOps and microservices;
- microservices for cloud-native architectures;
- privacy and security for microservices;
- microservices’ role in architecting big data systems;
- building user interfaces in a microservices architecture;
- SOA and microservices;
- decentralized governance and microservices; and
- the strengths, weaknesses, and challenges of implementing microservices in different application domains.
Because microservices research has been patchy, with few real experiences reported by companies such as Netflix and Thoughtworks, we specifically seek practical papers that could contribute to the software development and research communities by describing
- best practices and methodologies,
- tool support,
- empirical studies,
- industrial-scale case studies, and
- experience reports.
Experience reports don’t need to make an original research contribution but should present practitioners’ experience by describing aspects such as the microservices architecture used, challenges faced, solutions attempted, and results obtained.
The guest editors have experience with microservices from both the academic and industry perspectives, and two-thirds of the reviewers will be from industry. So, we expect that each submission will receive at least one review from a practitioner.
- Pooyan Jamshidi, Carnegie Mellon University, firstname.lastname@example.org
- Claus Pahl, Free University of Bozen-Bolzano, email@example.com
- Nabor C. Mendonça, University of Fortaleza, firstname.lastname@example.org
- James Lewis, ThoughtWorks, email@example.com
- Stefan Tilkov, innoQ, firstname.lastname@example.org
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. Articles deemed within the theme and 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 issue 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: email@example.com
To submit an article: mc.manuscriptcentral.com/sw-cs