Skip to content
hannctl
PDF

case-studies gcp-to-tencent-migration DESIGN.md

Zero-downtime migration from GCP to Tencent Cloud Design and implementation

Moved 80 servers and 20 databases of Summoners War: Chronicles from GCP to Tencent Cloud in about one week with no downtime.

1. Firewall firstNetwork and firewall rulesmatch GCP2. Online MigrationServers move with themigration tool3. Private validationSame infrastructure, checkedwith the dev team4. Phased trafficcutoverTraffic moves in stages aftervalidationGCPTencent Cloud80 servers · 20 databasesPrivate runLIVEAbout 1 week · 0 downtime · gcp.tf to tencentcloud.tf
It finishes in about one week with zero downtime, and the whole move is recorded from GCP Terraform code to Tencent Terraform code.
Phased traffic cutoverLIVEGCPTencent0%100%Zero downtime · about 1 week
All traffic now lands on Tencent, with zero downtime.
LIVEGCPTencent CloudFirewall rules firstOnline Migration · 80 server blocksPrivate validationTraffic cut overAbout 1 week · 0 downtimegcp.tf → tencentcloud.tf
Below the islands, the code: gcp.tf → tencentcloud.tf

What this code does: Module code that creates a Tencent Cloud security group and its rules. The first block creates the security group with its name, description, project, and tags only when creation is enabled (local.create), and the second takes lists of inbound (ingress) and outbound (egress) rules as variables and applies them to that group at once. Because the rules come in as variables, firewall rules organized on GCP can be rewritten into this list format to stand up the same policy on Tencent.

resource "tencentcloud_security_group" "sg" {
  count       = local.create ? 1 : 0
  name        = var.name
  description = var.description
  project_id  = var.project_id
  tags        = merge(var.tags, var.security_group_tags)
}

resource "tencentcloud_security_group_lite_rule" "lite_rule" {
  count             = var.create_lite_rule ? 1 : 0
  security_group_id = local.this_sg_id
  ingress           = var.ingress_for_lite_rule
  egress            = var.egress_for_lite_rule
}
© 2026 Kim JunHyun · Built with Astro · The infrastructure behind this site is code too

↑↓ move · Enter open · Esc close

Choose a theme

Click a badge to switch to that theme on the same content. Dragging only swings it.

Back to the front page →