A software development team is implementing a set of microservices that will be exposed to their clients through endpoints. They are looking to adopt best practices for testing newly developed features without affecting the live production environment accessed by their customers. What is the most effective method to achieve this within the service that provides the endpoints?
Implement feature toggles in the production codebase to switch between production and development configurations
Create a new deployment stage with specific configurations for the microservices that are separate from production settings
Reuse the production endpoints for testing by applying request filtering based on a custom header to differentiate traffic
Generate a clone of the existing production environment and make code changes directly there to validate new features