Documentation
¶
Index ¶
- type BlueGreenDeployment
- type CanaryConfig
- type CanaryDeployment
- func (c *CanaryDeployment) Deploy(ctx context.Context, newVersion string) error
- func (c *CanaryDeployment) GetMetrics() CanaryMetrics
- func (c *CanaryDeployment) PromoteCanary(ctx context.Context) error
- func (c *CanaryDeployment) PromoteToProduction(ctx context.Context) error
- func (c *CanaryDeployment) Rollback(ctx context.Context) error
- type CanaryMetrics
- type DefaultDeploymentMonitoring
- func (d *DefaultDeploymentMonitoring) AlertOnIssue(_ context.Context, env *Environment, issue string) error
- func (d *DefaultDeploymentMonitoring) GetMetrics(_ context.Context, _ *Environment) (EnvironmentMetrics, error)
- func (d *DefaultDeploymentMonitoring) StartMonitoring(_ context.Context, _ *Environment) error
- func (d *DefaultDeploymentMonitoring) StopMonitoring(_ context.Context, _ *Environment) error
- type DefaultRollbackStrategy
- type DefaultTrafficSplitter
- type DeploymentConfig
- type DeploymentMonitoring
- type DeploymentValidator
- func (d *DeploymentValidator) AddEnvironment(env *Environment)
- func (d *DeploymentValidator) AddHealthCheck(check HealthCheck)
- func (d *DeploymentValidator) ValidateAllEnvironments(ctx context.Context) error
- func (d *DeploymentValidator) ValidateEnvironment(ctx context.Context, envName string) error
- type Environment
- type EnvironmentConfig
- type EnvironmentMetrics
- type EnvironmentStatus
- type HTTPHealthCheck
- type HealthCheck
- type RollbackStrategy
- type TrafficSplitter
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BlueGreenDeployment ¶
type BlueGreenDeployment struct {
// contains filtered or unexported fields
}
BlueGreenDeployment manages blue/green deployments
func NewBlueGreenDeployment ¶
func NewBlueGreenDeployment(blue, green *Environment, splitter TrafficSplitter, validator *DeploymentValidator) *BlueGreenDeployment
NewBlueGreenDeployment creates a new blue/green deployment
type CanaryConfig ¶
type CanaryConfig struct {
InitialTrafficPercent float64
MaxTrafficPercent float64
TrafficIncrementStep float64
StepDuration time.Duration
SuccessThreshold float64
ErrorThreshold float64
AutoPromote bool
AutoRollback bool
}
CanaryConfig configures canary deployments
type CanaryDeployment ¶
type CanaryDeployment struct {
// contains filtered or unexported fields
}
CanaryDeployment manages canary deployments
func NewCanaryDeployment ¶
func NewCanaryDeployment(production, canary *Environment, splitter TrafficSplitter, validator *DeploymentValidator, config CanaryConfig) *CanaryDeployment
NewCanaryDeployment creates a new canary deployment
func (*CanaryDeployment) Deploy ¶
func (c *CanaryDeployment) Deploy(ctx context.Context, newVersion string) error
Deploy performs a canary deployment
func (*CanaryDeployment) GetMetrics ¶
func (c *CanaryDeployment) GetMetrics() CanaryMetrics
GetMetrics returns current canary metrics
func (*CanaryDeployment) PromoteCanary ¶
func (c *CanaryDeployment) PromoteCanary(ctx context.Context) error
PromoteCanary gradually increases canary traffic
func (*CanaryDeployment) PromoteToProduction ¶
func (c *CanaryDeployment) PromoteToProduction(ctx context.Context) error
PromoteToProduction promotes canary to production
type CanaryMetrics ¶
type CanaryMetrics struct {
StartTime time.Time
CanarySuccessRate float64
ProductionSuccessRate float64
CanaryErrorRate float64
ProductionErrorRate float64
CanaryResponseTime time.Duration
ProductionResponseTime time.Duration
TrafficPercentage float64
Duration time.Duration
}
CanaryMetrics tracks canary deployment metrics
type DefaultDeploymentMonitoring ¶
type DefaultDeploymentMonitoring struct{}
DefaultDeploymentMonitoring provides default monitoring
func (*DefaultDeploymentMonitoring) AlertOnIssue ¶
func (d *DefaultDeploymentMonitoring) AlertOnIssue(_ context.Context, env *Environment, issue string) error
func (*DefaultDeploymentMonitoring) GetMetrics ¶
func (d *DefaultDeploymentMonitoring) GetMetrics(_ context.Context, _ *Environment) (EnvironmentMetrics, error)
func (*DefaultDeploymentMonitoring) StartMonitoring ¶
func (d *DefaultDeploymentMonitoring) StartMonitoring(_ context.Context, _ *Environment) error
func (*DefaultDeploymentMonitoring) StopMonitoring ¶
func (d *DefaultDeploymentMonitoring) StopMonitoring(_ context.Context, _ *Environment) error
type DefaultRollbackStrategy ¶
type DefaultRollbackStrategy struct{}
DefaultRollbackStrategy provides default rollback behavior
func (*DefaultRollbackStrategy) Execute ¶
func (d *DefaultRollbackStrategy) Execute(_ context.Context, env *Environment) error
func (*DefaultRollbackStrategy) Name ¶
func (d *DefaultRollbackStrategy) Name() string
func (*DefaultRollbackStrategy) ShouldRollback ¶
func (d *DefaultRollbackStrategy) ShouldRollback(_ context.Context, metrics EnvironmentMetrics) bool
type DefaultTrafficSplitter ¶
type DefaultTrafficSplitter struct{}
DefaultTrafficSplitter provides default traffic splitting
func (*DefaultTrafficSplitter) GetTrafficWeight ¶
func (d *DefaultTrafficSplitter) GetTrafficWeight(_ context.Context, env *Environment) (float64, error)
func (*DefaultTrafficSplitter) SetTrafficWeight ¶
func (d *DefaultTrafficSplitter) SetTrafficWeight(_ context.Context, _ *Environment, _ float64) error
func (*DefaultTrafficSplitter) SwitchTraffic ¶
func (d *DefaultTrafficSplitter) SwitchTraffic(_ context.Context, _, _ *Environment) error
type DeploymentConfig ¶
type DeploymentConfig struct {
HealthCheckInterval time.Duration
MaxRollbackTime time.Duration
TrafficShiftDelay time.Duration
ValidationTimeout time.Duration
RequiredSuccessRate float64
MaxErrorRate float64
}
DeploymentConfig configures deployment validation
type DeploymentMonitoring ¶
type DeploymentMonitoring interface {
StartMonitoring(ctx context.Context, env *Environment) error
StopMonitoring(ctx context.Context, env *Environment) error
GetMetrics(ctx context.Context, env *Environment) (EnvironmentMetrics, error)
AlertOnIssue(ctx context.Context, env *Environment, issue string) error
}
DeploymentMonitoring monitors deployment progress
type DeploymentValidator ¶
type DeploymentValidator struct {
// contains filtered or unexported fields
}
DeploymentValidator validates deployment strategies
func NewDeploymentValidator ¶
func NewDeploymentValidator(config DeploymentConfig) *DeploymentValidator
NewDeploymentValidator creates a new deployment validator
func (*DeploymentValidator) AddEnvironment ¶
func (d *DeploymentValidator) AddEnvironment(env *Environment)
AddEnvironment adds an environment to validate
func (*DeploymentValidator) AddHealthCheck ¶
func (d *DeploymentValidator) AddHealthCheck(check HealthCheck)
AddHealthCheck adds a health check
func (*DeploymentValidator) ValidateAllEnvironments ¶
func (d *DeploymentValidator) ValidateAllEnvironments(ctx context.Context) error
ValidateAllEnvironments validates all environments
func (*DeploymentValidator) ValidateEnvironment ¶
func (d *DeploymentValidator) ValidateEnvironment(ctx context.Context, envName string) error
ValidateEnvironment validates a single environment
type Environment ¶
type Environment struct {
LastChecked time.Time
Name string
URL string
Version string
Status EnvironmentStatus
Config EnvironmentConfig
Metrics EnvironmentMetrics
// contains filtered or unexported fields
}
Environment represents a deployment environment
type EnvironmentConfig ¶
type EnvironmentConfig struct {
RequiredHeaders map[string]string
HealthCheckPath string
HealthCheckTimeout time.Duration
ExpectedStatusCode int
MaxResponseTime time.Duration
MinSuccessRate float64
TrafficWeight float64
}
EnvironmentConfig holds environment configuration
type EnvironmentMetrics ¶
type EnvironmentMetrics struct {
LastErrorTime time.Time
LastError string
ResponseTime time.Duration
SuccessRate float64
ErrorRate float64
RequestCount int64
Uptime time.Duration
CPUUsage float64
MemoryUsage float64
ActiveConnections int
}
EnvironmentMetrics tracks environment performance
type EnvironmentStatus ¶
type EnvironmentStatus string
EnvironmentStatus represents the status of an environment
const ( EnvironmentStatusHealthy EnvironmentStatus = "healthy" EnvironmentStatusUnhealthy EnvironmentStatus = "unhealthy" EnvironmentStatusDeploying EnvironmentStatus = "deploying" EnvironmentStatusRollingBack EnvironmentStatus = "rolling_back" EnvironmentStatusMaintenance EnvironmentStatus = "maintenance" )
type HTTPHealthCheck ¶
type HTTPHealthCheck struct {
// contains filtered or unexported fields
}
HTTPHealthCheck performs HTTP health checks
func NewHTTPHealthCheck ¶
func NewHTTPHealthCheck(name string, timeout time.Duration) *HTTPHealthCheck
NewHTTPHealthCheck creates a new HTTP health check
func (*HTTPHealthCheck) Check ¶
func (h *HTTPHealthCheck) Check(ctx context.Context, env *Environment) error
func (*HTTPHealthCheck) Name ¶
func (h *HTTPHealthCheck) Name() string
func (*HTTPHealthCheck) Timeout ¶
func (h *HTTPHealthCheck) Timeout() time.Duration
type HealthCheck ¶
type HealthCheck interface {
Check(ctx context.Context, env *Environment) error
Name() string
Timeout() time.Duration
}
HealthCheck represents a health check function
type RollbackStrategy ¶
type RollbackStrategy interface {
ShouldRollback(ctx context.Context, metrics EnvironmentMetrics) bool
Execute(ctx context.Context, env *Environment) error
Name() string
}
RollbackStrategy defines rollback behavior
type TrafficSplitter ¶
type TrafficSplitter interface {
SetTrafficWeight(ctx context.Context, env *Environment, weight float64) error
GetTrafficWeight(ctx context.Context, env *Environment) (float64, error)
SwitchTraffic(ctx context.Context, fromEnv, toEnv *Environment) error
}
TrafficSplitter manages traffic distribution