Microservices Software Architecture: Patterns And Techniques