deployment

package
v1.0.48 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2025 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

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

func (*BlueGreenDeployment) Deploy

func (bg *BlueGreenDeployment) Deploy(ctx context.Context, newVersion string) error

Deploy performs a blue/green deployment

func (*BlueGreenDeployment) Rollback

func (bg *BlueGreenDeployment) Rollback(ctx context.Context) error

Rollback performs a blue/green rollback

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

func (*CanaryDeployment) Rollback

func (c *CanaryDeployment) Rollback(ctx context.Context) error

Rollback rolls back the canary deployment

type CanaryMetrics

type CanaryMetrics struct {
	CanarySuccessRate      float64
	ProductionSuccessRate  float64
	CanaryErrorRate        float64
	ProductionErrorRate    float64
	CanaryResponseTime     time.Duration
	ProductionResponseTime time.Duration
	TrafficPercentage      float64
	StartTime              time.Time
	Duration               time.Duration
}

CanaryMetrics tracks canary deployment metrics

type DefaultDeploymentMonitoring

type DefaultDeploymentMonitoring struct{}

DefaultDeploymentMonitoring provides default monitoring

func (*DefaultDeploymentMonitoring) AlertOnIssue

func (d *DefaultDeploymentMonitoring) AlertOnIssue(ctx context.Context, env Environment, issue string) error

func (*DefaultDeploymentMonitoring) GetMetrics

func (*DefaultDeploymentMonitoring) StartMonitoring

func (d *DefaultDeploymentMonitoring) StartMonitoring(ctx context.Context, env Environment) error

func (*DefaultDeploymentMonitoring) StopMonitoring

func (d *DefaultDeploymentMonitoring) StopMonitoring(ctx context.Context, env Environment) error

type DefaultRollbackStrategy

type DefaultRollbackStrategy struct{}

DefaultRollbackStrategy provides default rollback behavior

func (*DefaultRollbackStrategy) Execute

func (*DefaultRollbackStrategy) Name

func (d *DefaultRollbackStrategy) Name() string

func (*DefaultRollbackStrategy) ShouldRollback

func (d *DefaultRollbackStrategy) ShouldRollback(ctx context.Context, metrics EnvironmentMetrics) bool

type DefaultTrafficSplitter

type DefaultTrafficSplitter struct{}

DefaultTrafficSplitter provides default traffic splitting

func (*DefaultTrafficSplitter) GetTrafficWeight

func (d *DefaultTrafficSplitter) GetTrafficWeight(ctx context.Context, env Environment) (float64, error)

func (*DefaultTrafficSplitter) SetTrafficWeight

func (d *DefaultTrafficSplitter) SetTrafficWeight(ctx context.Context, env Environment, weight float64) error

func (*DefaultTrafficSplitter) SwitchTraffic

func (d *DefaultTrafficSplitter) SwitchTraffic(ctx context.Context, fromEnv, toEnv 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 {
	Name        string
	URL         string
	Version     string
	Status      EnvironmentStatus
	Config      EnvironmentConfig
	Metrics     EnvironmentMetrics
	LastChecked time.Time
	// contains filtered or unexported fields
}

Environment represents a deployment environment

type EnvironmentConfig

type EnvironmentConfig struct {
	HealthCheckPath    string
	HealthCheckTimeout time.Duration
	ExpectedStatusCode int
	RequiredHeaders    map[string]string
	MaxResponseTime    time.Duration
	MinSuccessRate     float64
	TrafficWeight      float64
}

EnvironmentConfig holds environment configuration

type EnvironmentMetrics

type EnvironmentMetrics struct {
	ResponseTime      time.Duration
	SuccessRate       float64
	ErrorRate         float64
	RequestCount      int64
	LastError         string
	LastErrorTime     time.Time
	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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL