Jeff’s noteDevOps
Continuous Integration Continuous Deployment
DevOps concept & practice |---------| |---------| merge |-------| |--------------------------| |local dev|------->| version |-------->| build |--------->|* security check | |---------| commit | control | trigger | agent | pipeline |* build / push artifact | ^ |---------| webhook |-------| task |* unit / integration test | | |--------------------------| | | |---------------------| analysis |------------| operation |----------------| |release | * next release plan |<---------| monitor |---------->| staging |<--| | * issues action | | metrics log| | production env | |---------------------| |------------| |----------------|
Continuous Deployment · Continuous Integration · DevOps
80 words
1 minute
Terraform, Infrastructure as Code management tool
IaC Concept fast deployment for business requirement infrastructure consistency security compliance automation Azure cloud infra architecture overview https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/containers/aks-microservices/aks-microservices Proposed GitOps flow change request stakeholder notification, plan IaC modularization for reusable purpose version control, branch: main, dev, new_net, new_db, stg, prd, … automating testing continuous deployment update process to related notificatition channel HCL Code example variable "aks_node_pool" { description = "" type = map(object({ vm_size = string node_count = number zones = list(string) os_disk_size_gb = number os_disk_type = string })) default = { "mqpool" : { vm_size = "Standard_DS4_v2", node_count = 6, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" } "tbcorepool" : { vm_size = "Standard_DS3_v2", node_count = 3, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" } "tbrepool" : { vm_size = "Standard_DS3_v2", node_count = 25, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" } "tbtranspool" : { vm_size = "Standard_DS3_v2", node_count = 12, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" } "tbjspool" : { vm_size = "Standard_DS2_v2", node_count = 6, zones = ["1", "2"], os_disk_size_gb = 64, os_disk_type = "Ephemeral" } } } module "aks" { source = "../../modules/azure/kubernetes" resource_group = var.resource_group location = var.location vnet_app_name = local.vnet_app_name subnet_aks_name = var.subnet_aks_name aks_name = local.aks_name aks_namespace_admin_group_object_ids = var.aks_namespace_admin_group_object_ids aks_admin_group_object_ids = var.aks_admin_group_object_ids apg_id = module.apg.apg_id acr_id = module.acr.acr_id aks_tags = var.aks_tags aks_default_node_pool = var.aks_default_node_pool aks_node_pool = var.aks_node_pool vnet_depends_on = [ module.network.vnet_app_name, module.apg.apg_id, module.acr.acr_id ] } for more detail, please check: https://github.com/chienfuchen32/terraform-azure Further IaC with documentation tool for more detail, please check: Cloud Native Taiwan User Group meetup #65 slide Ref https://www.redhat.com/en/topics/automation/what-is-infrastructure-as-code-iac https://about.gitlab.com/topics/gitops/ https://developer.hashicorp.com/terraform/language/modules https://developer.hashicorp.com/terraform/language/tests https://learn.microsoft.com/en-us/azure/devops/service-hooks/services/teams?view=azure-devops
Continuous Deployment · Continuous Integration · DevOps · IaC · SRE
264 words
2 minutes