what are the components of microservices