4月2日 Java学习笔记

持续交付流水线设计

  1. Jenkins多阶段流水线(Declarative Pipeline)
    groovy

pipeline {
agent any
stages {
stage('代码检查') {
steps {
sh 'mvn checkstyle:check'
sh 'mvn spotbugs:check'
}
}
stage('单元测试') {
steps {
sh 'mvn test -Dtest=/*Test.java'
archiveArtifacts 'target/surefire-reports/
/*.xml'
}
}
stage('构建镜像') {
steps {
script {
docker.build("${IMAGE_NAME}😒{GIT_COMMIT}")
}
}
}
stage('安全扫描') {
steps {
sh 'trivy image --exit-code 1 ${IMAGE_NAME}😒{GIT_COMMIT}'
}
}
stage('部署到Staging') {
when { branch 'main' }
steps {
sh 'kubectl apply -f k8s/staging'
}
}
}
post {
failure {
slackSend channel: '#ci-alerts', message: "构建失败: ${BUILD_URL}"
}
}
}
2. GitOps实践(Argo CD)
yaml

application.yaml

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: order-service
spec:
destination:
server: https://kubernetes.default.svc
namespace: production
source:
repoURL: git@github.com:myorg/gitops-repo.git
path: apps/order-service
targetRevision: HEAD
syncPolicy:
automated:
prune: true
selfHeal: true
基础设施即代码(IaC)

  1. Terraform管理AWS资源

创建RDS实例

resource "aws_db_instance" "order_db" {
identifier = "order-db-prod"
engine = "mysql"
instance_class = "db.t3.micro"
allocated_storage = 20
username = var.db_username
password = var.db_password
publicly_accessible = false
skip_final_snapshot = true
}

输出连接信息

output "rds_endpoint" {
value = aws_db_instance.order_db.endpoint
}
2. Crossplane实现多云编排
yaml

定义跨云数据库资源

apiVersion: database.aws.crossplane.io/v1beta1
kind: RDSInstance
metadata:
name: crosscloud-db
spec:
forProvider:
region: us-west-2
dbInstanceClass: db.t2.micro
masterUsername: admin
engine: postgres
engineVersion: "13.4"
allocatedStorage: 20
writeConnectionSecretToRef:
name: db-conn-secret

posted @ 2025-04-02 23:23  头发少的文不识  阅读(17)  评论(0)    收藏  举报