The course deals with the concepts of software engineering and their evolution in a world that seems to move towards microservices architectures. Starting from the definition of microservices architecture and service orientation, we will analyze different types of services and some techniques of reusability and autonomy. Finally, discovery and deployment techniques will be discussed.