Logo GH

Terraform इन्फ्रास्ट्रक्चर कोड के रूप

(धारा: प्रौद्योगिकी और बुनियादी ढांचा)

संक्षिप्त सारांश

Terraform IGaming क्लाउड इंफ्रास्ट्रक्चर के प्रजनन और सत्यापन योग्य निर्माण के लिए मूल IaC उपकरण है: VPC/सबनेट्स, बैलेंसर्स, डेटाबेस/क्लस्टर्स, कतारें/बसें, KDDDn। सफलता एक मॉड्यूलर वास्तुकला, सख्त राज्य और लॉक नीतियों, रिलीज के लिए GitOps दृष्टिकोण, नीति-ए-कोड, स्वचालित परीक्षण और पारदर्शी FinOps पर टिकी हुई है।

1) IGaming के लिए IaC सिद्धांत

घोषणात्मक: कोड द्वारा वर्णित बुनियादी ढांचा; कोई मैनुअल कदम नहीं हैं।

पहचान: दोहराया 'लागू' एक ही परिणाम देता है।

वातावरण का पृथक्करण: मापदंडों के साथ एकल कोड से 'dev/stage/prod'।

मॉड्यूल रचना: वीपीसी, डीबी, कतारें, K8s, निगरानी के लिए मॉड्यूल की एक एकल सूची।

डिफ़ॉल्ट सुरक्षा: निजी सबनेट, एमटीएलएस, न्यूनतम आईएएम अधिकार।

अवलोकन और लागत: मैट्रिक्स/अलर्ट/बजट भी Terraform के अधीन हैं।

2) भंडार संरचना

मोनोरेपो संस्करण (उदाहरण):

iac/
modules/
vpc/
mysql/
kafka/
eks_aks_gke/
redis/
monitoring/
envs/
prod/
eu-west/
main. tf variables. tf backend. tf stage/
eu-west/
...
dev/
...
policies/
opa/
sentinel/
pipelines/
ci_cd/

विकल्प एक मॉड्यूलर रेपो (प्रत्येक मॉड्यूल के लिए एक अलग भंडार) + उपभोक्ताओं है।

3) बेसिक मॉड्यूलरिटी (एचसीएल उदाहरण)

वीपीसी मॉड्यूल (मॉड्यूल/वीपीसी/मुख्य। tf):
hcl variable "name" {}
variable "cidr" {}
variable "az_count" { default = 3 }

cloud provider resources (summarized)
resource "cloud_vpc" "this" { name = var. name cidr = var. cidr }
resource "cloud_subnet" "private" {
count = var. az_count vpc_id = cloud_vpc. this. id type  = "private"
}
output "vpc_id" { value = cloud_vpc. this. id }
output "private_subnets" { value = cloud_subnet. private[].id }
मॉड्यूल खपत (ईवीएस/प्रोड/यूरोपीय संघ-पश्चिम/मुख्य। tf):
hcl module "vpc" {
source = "../../modules/vpc"
name  = "prod-eu-west"
cidr  = "10. 20. 0. 0/16"
}

module "mysql" {
source = "../../modules/mysql"
name  = "payments"
vpc_id = module. vpc. vpc_id subnets = module. vpc. private_subnets pitr  = true size  = "r6g. large"
kms_key = module. kms. key_id
}

4) राज्य प्रबंधन और ताले

रिमोट बैकेंड (उदाहरण के लिए, ऑब्जेक्ट स्टोरेज) + लॉक (डायनामोडीबी/ब्लॉक-लॉक) - 'लागू' दौड़ को रोकें।

बैकेंड वर्शनिंग और स्टेट एनक्रिप्शन (KMS)।

पहुंच नियम: केवल सीआई/सीडी और "इन्फ्रा मालिकों" के पास 'लागू' अधिकार हैं; डेवलपर्स - 'योजना'।

कार्यस्थान बनाम पर्यावरण निर्देशिका:
  • कार्यस्थल समान वातावरण (प्रतिकृति) के लिए सुविधाजनक हैं,
  • अलग निर्देशिका - स्पष्ट रूप से पृथक विन्यास और विभिन्न टोपोलॉजी के लिए।
उदाहरण बैकएंड। tf (सामान्यीकृत):
hcl terraform {
backend "s3" {
bucket     = "iac-state-prod"
key      = "eu-west/terraform. tfstate"
region     = "eu-west-1"
dynamodb_table = "iac-state-locks"
encrypt    = true
}
}

5) चर, रहस्य और संवेदनशील डेटा

चर। वातावरण के लिए tf + .tfvars; संवेदनशील = निजी मूल्यों के लिए सही।

रहस्य Git में संग्रहीत नहीं हैं। डेटा-स्रोत या प्रदाता के माध्यम से गुप्त प्रबंधक/केएमएस का उपयोग करें।

डिफ़ॉल्ट गोपन: वॉल्यूम/बैकअप/स्नैपशॉट/डेटाबेस के लिए।

घुमाव: कुंजी और पासवर्ड स्वतः घुमाया जाता है.

hcl variable "db_password" {
type   = string sensitive = true
}

data "external_secret" "db_password" {
conceptual secret source name = "prod/payments/db_password"
}

6) Terraform के लिए GitOps और CI/CD

पीआर प्रवाह: 'टेराफॉर्म fmt' 'init' 'मान्य' 'tflint' 'योजना' के साथ आउटपुट के साथ PR manual मैनुअल अनुमोदन 'लागू' CI से।

पर्यावरण प्रचार: पहले 'चरण' में परिवर्तन, फिर 'प्रोड' में टैग/विलय।

लॉग और कलाकृतियां: बचत योजना और डिफ़ा, कलाकृति-रिपोर्ट।

उदाहरण CI (टुकड़ा):
yaml steps:
- run: terraform fmt -check
- run: terraform init -upgrade
- run: terraform validate
- run: tflint --enable-rule=terraform_standard_module_structure
- run: terraform plan -var-file=envs/stage/eu-west/vars. tfvars -out tfplan
- run: terraform show -no-color tfplan > plan. txt after April
- run: terraform apply tfplan

7) पॉलिसी-ए-कोड (ओपीए/प्रहरी)

उद्देश्य: स्वचालित रूप से असुरक्षित/महंगे परिवर्तनों को अस्वीका

नीतियों के उदाहरण:
  • संसाधन गोपन आवश्यक है.
  • सार्वजनिक आईपी - केवल अपवाद सूची के माध्यम से।
  • पर्यावरण द्वारा उदाहरणों/समूहों के आकार को सीमित करना।
  • आवश्यक टैग: 'env', 'स्वामी', 'cost _ center'.
ओपीए (रेगो) नियम के पीछे का विचार है:
rego deny[msg] {
input. resource. type == "db_instance"
not input. resource. encrypted msg:= "DB must be encrypted at rest"
}

8) IaC परीक्षण

टेराफॉर्म वेलिडेट-बेसिक सिंटैक्स चेक।

tflint - शैली/एंटीपैटर्न/प्रदाता-विशिष्टता।

इन्फ्राकोस्ट - पीआर में प्रारंभिक लागत अनुमान।

टेराटेस्ट - एकीकरण परीक्षण (गो): लिफ्ट/चेक/स्टैंड को ध्वस्त करें।

रसोई-Terraform - संसाधन अपरिवर्तनों के साथ इकाई परीक्षण।

बहाव-पहचान: रीड-ओनली और आउट-ऑफ-सिंक अलर्ट में आवधिक 'योजना'।

9) आईगेमिंग प्लेटफॉर्म के लिए विशिष्ट मॉड्यूल

नेटवर्क

VPC/VNets/VPC-Peering, निजी/सार्वजनिक सबनेट, रूटिंग, NAT/Firewall, सुरक्षा समूह/NSG।

DNS/Felover: Route- политики, स्वास्थ्य-जांच, विलंबता-आधारित मार्ग।

डाटा

MySQL/PostgreSQL: मल्टी-AZ, PITR, 'auto _ minital _ version _ Upgrade'।

Redis/Memcatched: मल्टी-AZ, स्नैपशॉट/TTL नीतियां।

डेटा लेक/लेकहाउस: बाल्टी, नीतियां, टेबल (कैटलॉग/मेटास्टर)।

क्लिकहाउस/OLAP समूह: शार्कनेस/प्रतिकृति, डिस्क नीतियां।

बसें/कतार

काफ्का/पल्सर/प्रबंधित वेरिएंट, एसीएल, प्रतिधारण, रजिस्ट्री योजनाएं।

K8s

EKS/AKS/GKE с NodeGroups, दागी/सहिष्णुता, IRSA/कार्यभार पहचान, इंग्रेस/सेवा मेश, ऑटोस्कलिंग।

बाहरी रहस्यों का एकीकरण, प्रोमेथियस/ग्राफाना, लोकी/ईएलके, प्रमाणित-प्रबंधक।

किनारा/सीडीएन

सीडीएन वितरण, कैशिंग नियम, डब्ल्यूएएफ, बॉट शमन।

10) चर/आउटपुट/स्थानीय - अभ्यास

गणना किए गए मूल्यों (मास्क, नाम) के लिए स्थानीय।

मॉड्यूल एपीआई के रूप में आउटपुट: न्यूनतम आवश्यक।

संसाधन नामकरण '<env> - <क्षेत्र> - <डोमेन> - <घटक>'.

Тэги: 'एनवी', 'मालिक', 'कॉस्ट _ सेंटर', 'क्रिटिकलिटी', 'पिई'।

hcl locals {
name_prefix = "${var. env}-${var. region}-${var. service}"
}
resource "cloud_lb" "api" { name = "${locals. name_prefix}-lb" }

11) बहु-बादल और क्षेत्र

एक ही मॉड्यूल के माध्यम से सार, अलग-अलग प्रदाता: 'aws', 'azurerm', 'google'।

क्रॉस-रीजनल संसाधनों (DR/प्रतिकृति) के लिए प्रदाता उर्फ।

सेवा अंतर शर्तों और मॉड्यूल में phicheflags द्वारा बंद कर दिए जाते हैं।

डेटा स्थानीयकृत हैं: क्षेत्र द्वारा व्यक्तिगत बाल्टी/डीबी (ईयू/टीआर/एलटीएएम)।

hcl provider "aws" { region = "eu-west-1" alias = "eu" }
provider "aws" { region = "sa-east-1" alias = "latam" }

12) कोड के रूप में अवलोकन और अलर्ट

डैशबोर्ड, अलर्ट नियम (p95/p99, त्रुटि-दर, सीपीयू/आईओ), एसएलओ मॉनिटर।

अभिगम/लेखा परीक्षा लॉग (WORM), लागत मैट्रिक्स (टैग/नेमस्पेस द्वारा)।

घटनाएं: चैट सूचनाएं, संसाधन एनोटेशन में रनबुक यूआरएल।

13) फिनोप्स: मूल्य नियंत्रण में

पीआर + बजट अलर्ट में infracost।

पर्यावरण कोटा: उदाहरण/गोदाम कक्षाओं को सीमित करना।

ऑटो-स्वच्छता: देव संसाधनों, बाल्टी/लॉग प्रतिधारण नीतियों के लिए टीटीएल।

गैर-महत्वपूर्ण कार्यों के लिए स्पॉट/प्रस्तावना, प्रोड के लिए आरक्षण।

14) प्रवासन/परिवर्तन प्रक्रियाएं

'टेराफॉर्म आयात' फोर कानूनी संसाधन (तुरंत बाद - 'योजना '/' लागू')।

विनाश से बचने के लिए पलटने पर 'mived '/' हटा दिया' ब्लॉक।

शून्य-डाउनटाइम परिवर्तन: महत्वपूर्ण आकृति (डीबी/संतुलन) के लिए डबल रोलिंग (नीला-हरा)।

चरण-दर-चरण पीआर: नया संसाधन समूह पहले, फिर यातायात, फिर विघटित।

15) सुरक्षा और अनुपालन

कम से कम विशेषाधिकार: मॉड्यूल केवल आवश्यक अधिकार बनाते हैं, उपयोग नहीं करते हैं। "

केएमएस हर जगह: वॉल्यूम/बैकअप/सीक्रेट/स्टेट्स का एन्क्रिप्शन।

Terraform/IaC स्कैन CI (IaC के लिए SAST) में।

गिट के बाहर रहस्य: केवल गुप्त प्रबंधक; रोटेशन और एक्सेस ऑडिट।

PII क्षेत्र: टैग/नीतियां, अंतरक्षेत्रीय निर्यात प्रतिबंध तक पहुंच।

16) नमूना टेम्पलेट

PITR के साथ संबंधपरक डेटाबेस (विचार):
hcl module "db" {
source   = "../../modules/mysql"
name    = "wallet"
multi_az  = true storage_gb = 500 pitr    = true backup_retention_days = 14 deletion_protection  = true
}
निगरानी और एसएलओ अलर्ट:
hcl module "slo_latency" {
source = "../../modules/monitoring/slo"
name  = "api-latency-p95"
target_ms = 250 window  = "30m"
alert_channels = ["chatops#incidents"]
}
WAF/CDN वितरण:
hcl module "cdn" {
source = "../../modules/cdn"
domain = "example. com"
waf_enabled = true cache_ttl  = 600
}

17) टेराफॉर्म/आईएसी कार्यान्वयन चेकलिस्ट

1. भंडार संरचना चुनें (मॉड्यूल मोनोरेपोस + पर्यावरण निर्देशिका)।

2. ताले और गोपन के साथ दूरस्थ स्थिति कॉन्फ़िगर करें (KMS)।

3. GitOps-pipline दर्ज करें: fmt/validate/tflint/plan → review → लागू करें।

4. एक मॉड्यूल लाइब्रेरी (VPC, K8s, DB, कतार, निगरानी, CDN, रहस्य) बनाएं।

5. CI में पॉलिसी-as-Code (OPA/Sentinel) और IaC स्कैन सक्षम करें।

6. प्रबंधक, कुंजियों - केएमएस, घुमावों के माध्यम से रहस्य व्यवस्थित करें।

7. परीक्षण जोड़ें: महत्वपूर्ण मॉड्यूल के लिए टेराटेस्ट, पीआर में Infracost।

8. SLO/अलर्ट और "कोड के रूप में निगरानी" को परिभाषित करें।

9. गैर महत्वपूर्ण संसाधनों के लिए कोटा/बजट और टीटीएल सेट करें।

10. चरणों में योजना पलायन (नीला-हरा/दो-रेल)।

18) एंटीपैटर्न

Terraform के बाहर संसाधनों के मैनुअल "स्नोफ्लेक्स" - बहाव और दुर्घटनाएं जब 'लागू' होती हैं।

स्थानीय रूप से/बिना ताले के एक राज्य का भंडारण - रेसिंग और स्थिरता का नुकसान।

बिना एन्क्रिप्शन के Git/in '.tfvars' में रहस्य.

सैकड़ों संसाधनों के लिए "गॉड-मॉड्यूल" - परीक्षण/पुन: उपयोग करने में असमर्थता।

पीआर और योजना समीक्षा के बिना लैपटॉप से भोजन के लिए प्रत्यक्ष 'लागू'।

पॉलिसी-ए-कोड/स्कैन - लीक, सार्वजनिक आईपी/बाल्टी की अनदेखी।

Infracost/बजट की कमी - अप्रत्याशित लागत।

सारांश

Terraform/IaC iGaming प्लेटफ़ॉर्म प्रजनन, गति और नियंत्रित सुरक्षा/लागत देता है। मॉड्यूलर डिजाइन, सख्त राज्य और GitOps, सुरक्षा नीतियां, ऑटोटेस्ट और फिनोप्स बुनियादी ढांचे को एक विश्वसनीय "पाइपलाइन" में बदल देते हैं - डाउनटाइम के बिना तेजी से रिलीज, पूर्वानुमानित p99 और पीक टूर्नामेंट और नियान की आवश्यता।

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।