Design and evaluation of a software architecture and software deployment strategy

The thesis is motivated by the Chalmers formula student driverless 2018 (CFSD’18) project, a pilot project with the aim to deliver a qualified self-driving formula race car and compete in the Formula student Germany 2018 competition. The thesis goal was to design and evaluate the software development and deployment process for a purely microservices-based distributed system on the CFSD’18 self-driving race car. The work coincides closely with the vehicle laboratory Revere, operated by Chalmers University of Technology and the University of Gothenburg. It explores the use of OpenDLV based on libcluon, applying microservice architecture in the CFSD’18 project. A docker-based deployment strategy is investigated and evaluated. A project specific deployment strategy is designed considering hardware related physical constraints and Formula student Germany competition rules. Performance of certain microservices has been measured and evaluated. The experience from this thesis indicates the OpenDLV platform, libcluon, and the docker ecosystem are portable, efficient and adaptive choices for a distributed embedded system, in particular autonomous vehicle projects.

[1]  Claus Pahl,et al.  Containers and Clusters for Edge Cloud Architectures -- A Technology Review , 2015, 2015 3rd International Conference on Future Internet of Things and Cloud.

[2]  Christian Berger An Open Continuous Deployment Infrastructure for a Self-driving Vehicle Ecosystem , 2016, OSS.

[3]  Davide Taibi,et al.  On the Definition of Microservice Bad Smells , 2018, IEEE Software.

[4]  Richard Berntsson-Svensson,et al.  On the journey to continuous deployment: Technical and social challenges along the way , 2015, Inf. Softw. Technol..

[5]  Premkumar T. Devanbu,et al.  Quality and productivity outcomes relating to continuous integration in GitHub , 2015, ESEC/SIGSOFT FSE.

[6]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.

[7]  P. Stravers Embedded system design , 1994 .

[8]  Ola Benderius,et al.  Containerized Development and Microservices for Self-Driving Vehicles: Experiences & Best Practices , 2017, 2017 IEEE International Conference on Software Architecture Workshops (ICSAW).

[9]  Edward A. Lee Computing Foundations and Practice for Cyber- Physical Systems: A Preliminary Report , 2007 .

[10]  Rion Dooley,et al.  Distributed Systems of Microservices Using Docker and Serfnode , 2015, 2015 7th International Workshop on Science Gateways.

[11]  Jeff Sutherland,et al.  Manifesto for Agile Software Development , 2013 .

[12]  Mike Amundsen,et al.  Microservice Architecture: Aligning Principles, Practices, and Culture , 2016 .

[13]  Johanna Scheider Formula Student Germany , 2012 .

[14]  Dror G. Feitelson,et al.  Development and Deployment at Facebook , 2013, IEEE Internet Computing.

[15]  Mazin S. Yousif,et al.  Microservices , 2016, IEEE Cloud Comput..

[16]  Charles Anderson,et al.  Docker , 2015, IEEE Softw..

[17]  Antonio Bucchiarone,et al.  From Monolithic to Microservices: An Experience Report from the Banking Domain , 2018, IEEE Software.

[18]  Richard S. Hall,et al.  A cooperative approach to support software deployment using the Software Dock , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[19]  Roel Wieringa,et al.  Design science as nested problem solving , 2009, DESRIST.

[20]  Roel Wieringa,et al.  Design science methodology: principles and practice , 2010, 2010 ACM/IEEE 32nd International Conference on Software Engineering.

[21]  Herman Bruyninckx,et al.  A model-based approach to software deployment in robotics , 2013, 2013 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[22]  Richard S. Hall,et al.  A Characterization Framework for Software Deployment Technologies , 1998 .