Environments

Environment management in Azu provides a robust way to handle different deployment environments with appropriate configurations, security settings, and feature flags. With support for multiple environments, configuration inheritance, and environment-specific settings, you can maintain consistent deployments across development, staging, and production.

What is Environment Management?

Environment management in Azu provides:

  • Multiple Environments: Development, staging, production, and custom environments

  • Configuration Inheritance: Base configuration with environment-specific overrides

  • Security Settings: Environment-specific security configurations

  • Feature Flags: Enable/disable features based on environment

  • Environment Variables: Secure configuration through environment variables

Basic Environment Configuration

Environment Detection

module MyApp
  include Azu

  configure do |config|
    # Environment detection
    config.env = ENV.fetch("AZU_ENV", "development")

    # Environment-specific configuration
    case config.env
    when "development"
      configure_development(config)
    when "staging"
      configure_staging(config)
    when "production"
      configure_production(config)
    else
      configure_default(config)
    end
  end

  private def self.configure_development(config)
    config.debug = true
    config.log_level = Log::Severity::DEBUG
    config.template_hot_reload = true
    config.cache.enabled = false
  end

  private def self.configure_staging(config)
    config.debug = false
    config.log_level = Log::Severity::INFO
    config.template_hot_reload = false
    config.cache.enabled = true
    config.cache.backend = :redis
  end

  private def self.configure_production(config)
    config.debug = false
    config.log_level = Log::Severity::WARN
    config.template_hot_reload = false
    config.cache.enabled = true
    config.cache.backend = :redis
    config.performance_monitoring = true
  end
end

Environment Variables

Environment-Specific Configuration

Development Environment

Staging Environment

Production Environment

Feature Flags

Feature Flag System

Feature Flag Usage

Environment-Specific Security

Security Configuration

Environment-Specific Secrets

Environment-Specific Logging

Logging Configuration

Environment Validation

Environment Health Check

Environment-Specific Testing

Test Environment Configuration

Environment-Specific Test Helpers

Best Practices

1. Use Environment Variables

2. Validate Environment Configuration

3. Use Feature Flags

4. Secure Environment Variables

5. Test Environment Configuration

Next Steps

Now that you understand environment management:

  1. Configuration - Configure your application

  2. Security - Implement security measures

  3. Deployment - Deploy with environment management

  4. Testing - Test environment configurations

  5. Monitoring - Monitor environment health


Environment management in Azu provides a robust way to handle different deployment environments. With configuration inheritance, feature flags, and environment-specific settings, you can maintain consistent deployments across all environments.

Last updated

Was this helpful?