Monoliths to MicroServices – Architecture Patterns and Migration Principles