ARA-C01 Question 177
Single answerDevelopment lifecycle supportA data engineering team is building a new release process for Snowflake objects across DEV, TEST, and PROD. They need a solution that supports source-controlled SQL and application artifacts, enables repeatable promotion between environments, and minimizes environment-specific code changes. The team also wants to package related database objects so they can be versioned and deployed consistently. Which approach best meets these requirements?
- A
Create all objects manually in each environment and use zero-copy cloning from PROD back to DEV whenever developers need the latest definitions.
- B
Store object definitions in source control, parameterize environment-specific values, and deploy versioned Snowflake Native App or application package artifacts through a CI/CD pipeline for promotion across environments.
- C
Use Time Travel to move DDL changes from DEV to TEST and then replicate the database to PROD after validation.
- D
Keep separate SQL scripts for each environment with hard-coded database and schema names so deployments can be run independently without substitution logic.
Show answer and explanation
Correct answer: B
Explanation
For Snowflake development lifecycle support, the strongest architecture uses source control plus CI/CD automation to promote versioned artifacts across environments in a repeatable way. Environment-specific values such as database names, warehouses, or integration references should be externalized or parameterized rather than hard-coded into separate scripts. Where the solution includes application-style packaging, Snowflake Native App Framework concepts such as application packages and versioned artifacts support controlled release management. By contrast, Time Travel and replication are not intended to serve as primary code-promotion mechanisms, and manual or environment-specific script management creates drift and operational risk. These recommendations align with Snowflake guidance around DevOps practices, deployment automation, and Native App packaging/versioning.
- A. Incorrect.
This is not the best approach for development lifecycle support. Manual creation across environments is error-prone, difficult to audit, and does not provide repeatable promotion. Zero-copy cloning is useful for creating isolated copies of existing environments or test data, but cloning PROD back to DEV is not a deployment strategy and can overwrite or bypass controlled promotion practices.
- B. Correct.
This is correct. Snowflake development lifecycle best practices emphasize storing SQL and related artifacts in source control, using automation through CI/CD, and reducing environment-specific differences through parameterization or configuration. For packaged application deployments, Snowflake supports versioned application package artifacts and release workflows for Native Apps. This approach aligns with repeatable, controlled promotion and consistent deployment across DEV, TEST, and PROD.
- C. Incorrect.
This is incorrect because Time Travel is designed for recovering historical data states within retention windows, not for promoting DDL changes between environments. Database replication is intended for account/business continuity and read-only secondary database use cases, not as a standard SDLC mechanism for code promotion from DEV to PROD.
- D. Incorrect.
This is a common but weak pattern. Maintaining separate scripts with hard-coded names increases drift, duplication, and maintenance overhead. It makes promotion less reliable and introduces risk when object definitions diverge across environments. Best practice is to keep logic as environment-agnostic as possible and inject environment-specific configuration during deployment.