Salesforce Certified Heroku Architecture Designer — Question 1
At Universal Containers (UC), a developer named Yuichiro wrote a PHP application that, in production, uses a MySQL database. Yuichiro is onboarding Mary, a new UC developer, who is setting up her development environment. Yuichiro asks Mary to:
1) install the related PHP libraries manually so the application will run;
2) use MongoDB, instead of MySQL, in the development environment.
According to the Twelve-Factor methodology, which changes should an Architect recommend?
Answer options
- A. Explicitly declare code dependencies in the application's environment variables and use the same type of database in both development and production.
- B. Persist code dependencies in the application's production database. Use the same type of database locally to ensure that the dependencies are accessible.
- C. Recursively determine code dependencies on application startup and maintain separate Git branches for the MongoDB- and MySQL- compatible versions of the application.
- D. Explicitly declare code dependencies in the application's source and use the same type of database in both development and production.
Correct answer: B
Explanation
The correct answer, B, emphasizes the importance of maintaining the same type of database in both development and production environments to avoid discrepancies and ensure smoother transitions. Option A is incorrect because it focuses on environment variables instead of the actual database type, while C suggests managing different branches, which complicates the development process unnecessarily. Option D, while similar to A, also fails to address the need for consistent database types across environments.