Develop Cloud Native applications with Kubernetes: Patterns and Best practices