AbstractsComputer Science

From 0 to 1: Seizing the opportunity for a new microservice development environment :

by A.L. Van der Veer




Institution: Delft University of Technology
Department:
Year: 2015
Keywords: microservices; dockpit; software; programming; server; product owner
Record ID: 1273290
Full text PDF: http://resolver.tudelft.nl/uuid:2b9a2e1a-36c3-464b-a421-2bac202fb952


Abstract

Welcome to the information age, a period in human history that shifts the focus of our economy from traditional industry to one based on data processing and information technology. The Internet is the invention that stands at center of this new age, it connects billions of people around the planet in a single network. The apps on our smart phone, laptop and tablet are at one side of this network, while “servers” are the computers on the other side. These machines handle and store our most precious family photos, intimate emails and financial information. Consumers expects the software that runs on these servers to handle thousands of simultaneous connections while being secure, safe and always online. As the number of customers grew, so grew the complexity of this software in order to meet the increasing demand. “Microservices” is a novel approach thats aims to cope with the complexity of server software. In such architectures, large software processes are turned into many smaller programs that are each responsible for a specific subset of the overall functionality. This in turn, makes it easier to split the work across multiple developers. One person (or team) can be made responsible for the complete life-cycle of a single microservice and is therefore able to innovate independently. This makes sense in an “Agile” environment: a methodology that encourages iterative development and fast failures. But will only work when services can be put in operation quickly after a new iterations has finished development; often driven by automation this practice of bringing operations closer to development is called “DevOps”. Even though microservices are separated in terms of innovation, on a technical level it is often impossible to decouple them completely from one another. During user research it was shown that such coupling between services causes problems for the DevOp when he is developing and testing new code on his workstation. The coupling makes it very hard to isolate a single microservice: working on it means installing and running all the other services it depends on, and the services that those depend on, and so forth. First, this lack of isolation forces the DevOp to install, update and configure dozens of programs before he or she can begin development. Secondly, due to the nature of microservices, a single test can cause the environment to change in many different places; resetting the environment for another test becomes tedious, error prone and time consuming. “Docker” is a new technology that has seen rapid adoption in 2014. It allows software processes to be encapsulated in a standardized fashion, so called “containerization”. While large firms are focusing on developing Docker solutions for data center operations, industry analysis shows there is little competition when it comes to using Docker for the development and testing of server software. With a series of prototypes it is shown that Docker can be used to solve the before-mentioned isolation problems and help the DevOp with developing and testing…