{"id":10199,"date":"2025-09-30T09:10:05","date_gmt":"2025-09-30T07:10:05","guid":{"rendered":"https:\/\/geko.cloud\/?p=10199"},"modified":"2025-09-30T09:10:05","modified_gmt":"2025-09-30T07:10:05","slug":"ia-en-vscode","status":"publish","type":"post","link":"https:\/\/geko.cloud\/es\/ia-en-vscode\/","title":{"rendered":"IA en VS Code aplicada a Terraform, Python y K8s"},"content":{"rendered":"<p><span style=\"font-weight: 400;\">La IA en VS Code ha pasado de ser un simple autocompletado a convertirse en un copiloto real para DevOps. Bien configurada, puede reducir dr\u00e1sticamente tiempos y errores en tareas cr\u00edticas de software e infraestructura.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #619417;\">1) Elige tu asistente de IA (y cu\u00e1ndo usar cada uno)<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Antes de instalar nada, ten claro tu stack y tus prioridades: IaC, Python, monorepos, cumplimiento o privacidad. Elegir bien el assistant te evitar\u00e1 pruebas largas y resultados pobres.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">GitHub Copilot<\/span><\/strong><span style=\"font-weight: 400;\">: est\u00e1ndar de facto en VS Code. Muy fuerte en <\/span><strong><span style=\"color: #619417;\">P<\/span><span style=\"color: #619417;\">ython, Terraform, YAML de Kubernetes<\/span><\/strong><span style=\"font-weight: 400;\">. Ideal si usas GitHub\/Actions.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Amazon Q Developer<\/span><\/strong><span style=\"font-weight: 400;\">: excelente en <\/span><strong><span style=\"color: #619417;\">IaC (Terraform\/CDK)<\/span><\/strong><span style=\"font-weight: 400;\"> y stack AWS; a\u00f1ade <\/span><strong><span style=\"color: #619417;\">escaneo de seguridad<\/span><\/strong><span style=\"font-weight: 400;\"> y remediaciones.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Sourcegraph Cody<\/span><\/strong><span style=\"font-weight: 400;\">: brilla en <\/span><strong><span style=\"color: #619417;\">monorepos<\/span><\/strong><span style=\"font-weight: 400;\"> y b\u00fasqueda sem\u00e1ntica; buen \u201cagente\u201d para cambios multi-archivo.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Codeium \/ Tabnine<\/span><\/strong><span style=\"font-weight: 400;\">: autocompletado+chat con opciones <\/span><strong><span style=\"color: #619417;\">self-hosted<\/span><\/strong><span style=\"font-weight: 400;\"> (privacidad estricta).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Continue.dev + Ollama\/LM Studio<\/span><\/strong><span style=\"font-weight: 400;\">: opci\u00f3n <\/span><strong><span style=\"color: #619417;\">open source\/local<\/span><\/strong><span style=\"font-weight: 400;\"> para usar modelos en tu equipo.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Cursor<\/span><\/strong><span style=\"font-weight: 400;\"> (editor VS Code-like): si quieres un <\/span><strong><span style=\"color: #619417;\">agente<\/span><\/strong><span style=\"font-weight: 400;\"> que edite varios archivos y proponga PRs.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">Recomendaci\u00f3n<\/span><\/strong><span style=\"font-weight: 400;\">: usa <\/span><strong><span style=\"color: #619417;\">Copilot<\/span><\/strong><span style=\"font-weight: 400;\"> como base y a\u00f1ade <\/span><strong><span style=\"color: #619417;\">Amazon Q<\/span><\/strong><span style=\"font-weight: 400;\"> si eres AWS\/IaC-first; suma <\/span><strong><span style=\"color: #619417;\">Cody<\/span><\/strong><span style=\"font-weight: 400;\"> para monorepos grandes.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><span style=\"color: #619417;\">2) Instalaci\u00f3n y configuraci\u00f3n en VS Code<\/span><\/h2>\n<p><span style=\"font-weight: 400;\">Una buena configuraci\u00f3n multiplica la calidad de las sugerencias y protege tu c\u00f3digo. T\u00f3mate 15 minutos para dejar linters y seguridad funcionando desde el d\u00eda uno.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">Extensiones<\/span><\/strong><span style=\"font-weight: 400;\">: Copilot (+ Chat), Amazon Q, opcionales (Cody\/Codeium\/Continue).<\/span><\/p>\n<p><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">settings.json m\u00ednimo:<\/span><\/strong><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">{<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0\u00abeditor.formatOnSave\u00bb: true,<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0\u00ab\u00ab: { \u00abeditor.defaultFormatter\u00bb: \u00abms-python.black-formatter\u00bb },<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0\u00abpython.linting.enabled\u00bb: true,<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0\u00abpython.testing.pytestEnabled\u00bb: true,<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0\u00abeditor.inlineSuggest.enabled\u00bb: true,<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0\u00abterraform.formatOnSave\u00bb: true,<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0\u00abfiles.exclude\u00bb: { \u00ab**\/.venv\u00bb: true, \u00ab**\/.terraform\u00bb: true }<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">}<\/span><\/p>\n<h2><\/h2>\n<p><strong><span style=\"color: #619417;\">Pre-commit, linters y secretos:<\/span><\/strong><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">pip install ruff black pytest<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">brew install tflint tfsec gitleaks<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">pre-commit install<\/span><\/p>\n<h2><\/h2>\n<p><span style=\"font-weight: 400; color: #619417;\">.pre-commit-config.yaml<\/span><span style=\"font-weight: 400;\"> (resumen):<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">&#8211; repo: https:\/\/github.com\/astral-sh\/ruff-pre-commit<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0hooks: [{id: ruff}, {id: ruff-format}]<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">&#8211; repo: https:\/\/github.com\/antonbabenko\/pre-commit-terraform<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0hooks: [terraform_fmt, terraform_validate, tflint, tfsec]<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">&#8211; repo: https:\/\/github.com\/gitleaks\/gitleaks<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0hooks: [{id: gitleaks}]<\/span><\/p>\n<h2><\/h2>\n<p><strong><span style=\"color: #619417;\">Por qu\u00e9 importa<\/span><\/strong><span style=\"font-weight: 400;\">: la IA acelera, pero tus <\/span><strong><span style=\"color: #619417;\">guardrails<\/span><\/strong><span style=\"font-weight: 400;\"> evitan que c\u00f3digo incorrecto o inseguro llegue a <\/span><span style=\"font-weight: 400;\">main<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><\/h2>\n<h2><strong><span style=\"color: #619417;\">3) Configura el contexto de la IA (y lo que NO debe ver)<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">La calidad del assistant depende de lo que ve. Dale contexto \u00fatil y oculta lo sensible: as\u00ed aumentas precisi\u00f3n y cumples con privacidad.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Crea <\/span><span style=\"font-weight: 400; color: #619417;\">.promptignore<\/span><span style=\"font-weight: 400;\"> (o equivalente) para excluir <\/span><span style=\"color: #619417;\"><span style=\"font-weight: 400;\">.env<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">secrets.*<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">*.pem<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">*.tfstate<\/span><\/span><span style=\"font-weight: 400;\">, dumps y PII.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Limita el contexto a <\/span><strong><span style=\"color: #619417;\">archivos relevantes<\/span><\/strong><span style=\"font-weight: 400;\">; evita compartir el repo entero sin necesidad.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">En organizaciones, activa <\/span><strong><span style=\"color: #619417;\">controles de tenant<\/span><\/strong><span style=\"font-weight: 400;\"> y pol\u00edticas de datos (Copilot Enterprise, AWS org).<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<h2><\/h2>\n<h2><strong><span style=\"color: #619417;\">4) Prompts que funcionan (con guardrails)<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Un buen prompt gu\u00eda al assistant y reduce alucinaciones. Piensa en ciclos: <\/span><strong><span style=\"color: #619417;\">genera \u2192 valida \u2192 documenta \u2192 prueba.<\/span><\/strong><\/p>\n<h3><span style=\"color: #619417;\">4.1 Terraform \u2014 m\u00f3dulo VPC<\/span><\/h3>\n<p><strong><span style=\"color: #619417;\">Prompt<\/span><\/strong><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">\u201cGenera un m\u00f3dulo Terraform <\/span><span style=\"font-weight: 400; color: #619417;\">networking\/vpc<\/span><span style=\"font-weight: 400;\"> (eu-west-1) con 2 subredes p\u00fablicas y 2 privadas, NAT gestionado y etiquetas <\/span><span style=\"font-weight: 400; color: #619417;\">env,owner,cost_center<\/span><span style=\"font-weight: 400;\">. Variables tipadas, <\/span><span style=\"font-weight: 400; color: #619417;\">outputs<\/span><span style=\"font-weight: 400;\"> \u00fatiles, <\/span><span style=\"font-weight: 400; color: #619417;\">snake_case<\/span><span style=\"font-weight: 400;\">. Incluye ejemplo en <\/span><span style=\"font-weight: 400;\">\/<span style=\"color: #619417;\">examples<\/span><\/span><span style=\"font-weight: 400;\"><span style=\"color: #619417;\">.<\/span>\u201d<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">Valida<\/span><\/strong><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">terraform fmt &amp;&amp; terraform validate &amp;&amp; tflint &amp;&amp; tfsec<\/span><\/p>\n<p><strong><span style=\"color: #619417;\">Acepta si<\/span><\/strong><span style=\"font-weight: 400;\"><strong><span style=\"color: #619417;\">:<\/span><\/strong> sin cr\u00edticos en <\/span><span style=\"font-weight: 400;\">tflint\/tfsec<\/span><span style=\"font-weight: 400;\">, PR con README.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #619417;\">4.2 Python \u2014 utilidades + tests<\/span><\/h3>\n<p><strong><span style=\"color: #619417;\">Prompt<\/span><\/strong><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">\u201cCrea <\/span><span style=\"color: #619417;\"><span style=\"font-weight: 400;\">utils\/billing.py<\/span><span style=\"font-weight: 400;\"> con <\/span><span style=\"font-weight: 400;\">apply_discount(amount, percent)<\/span><span style=\"font-weight: 400;\"> y <\/span><span style=\"font-weight: 400;\">handle_vat(amount, country)<\/span><\/span><span style=\"font-weight: 400;\">. A\u00f1ade docstrings y <\/span><span style=\"font-weight: 400; color: #619417;\">tests\/test_billing.py<\/span><span style=\"font-weight: 400;\"> (pytest) con casos de borde.\u201d<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">Valida<\/span><\/strong><span style=\"font-weight: 400;\">: <\/span><span style=\"font-weight: 400; color: #619417;\">ruff . &amp;&amp; black &#8211;check . &amp;&amp; pytest -q<\/span><\/p>\n<p><strong><span style=\"color: #619417;\">Acepta si<\/span><\/strong><span style=\"font-weight: 400;\">: cobertura \u2265 90%, tests verdes.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #619417;\">4.3 Kubernetes \u2014 despliegue robusto<\/span><\/h3>\n<p><strong><span style=\"color: #619417;\">Prompt<\/span><\/strong><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">\u201cEscribe <\/span><span style=\"font-weight: 400; color: #619417;\">k8s\/orders-api.yaml<\/span><span style=\"font-weight: 400;\"> con <\/span><span style=\"font-weight: 400; color: #619417;\">Deployment<\/span><span style=\"font-weight: 400;\"> (3 r\u00e9plicas) y <\/span><span style=\"color: #619417;\"><span style=\"font-weight: 400;\">Service<\/span> <span style=\"font-weight: 400;\">ClusterIP<\/span><\/span><span style=\"font-weight: 400;\">. <span style=\"color: #619417;\">Imagen <\/span><\/span><span style=\"font-weight: 400; color: #619417;\">ghcr.io\/acme\/orders:1.8.2<\/span><span style=\"font-weight: 400;\">, probes <\/span><span style=\"color: #619417;\"><span style=\"font-weight: 400;\">\/healthz<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">requests\/limits<\/span><\/span><span style=\"font-weight: 400;\"> conservadores, <\/span><span style=\"font-weight: 400; color: #619417;\">PodSecurityContext<\/span><span style=\"font-weight: 400;\"> sin privilegios.\u201d<\/span><\/p>\n<p style=\"padding-left: 40px;\"><strong><span style=\"color: #619417;\">Valida<\/span><\/strong><span style=\"font-weight: 400;\">: esquema (kubeconform), OPA\/PSP, prueba en entorno ef\u00edmero.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">Mejora<\/span><\/strong><span style=\"font-weight: 400;\">: pide Helm chart con <\/span><span style=\"font-weight: 400;\">values.yaml<\/span><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #619417;\">4.4 CI\/CD \u2014 pipeline con gates<\/span><\/h3>\n<p><strong><span style=\"color: #619417;\">Prompt<\/span><\/strong><span style=\"font-weight: 400;\">:<\/span><\/p>\n<p style=\"padding-left: 40px;\"><span style=\"font-weight: 400;\">\u201cGitHub Actions: <\/span><span style=\"color: #619417;\"><span style=\"font-weight: 400;\">ruff\/black\/pytest<\/span><span style=\"font-weight: 400;\">; <\/span><span style=\"font-weight: 400;\">terraform fmt\/validate<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">tflint<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400;\">tfsec<\/span><span style=\"font-weight: 400;\">; <\/span><span style=\"font-weight: 400;\">terraform plan<\/span><\/span><span style=\"font-weight: 400;\"> comentado en PR; <\/span><span style=\"font-weight: 400; color: #619417;\">apply<\/span><span style=\"font-weight: 400;\"> s\u00f3lo en <\/span><span style=\"font-weight: 400; color: #619417;\">main<\/span><span style=\"font-weight: 400;\"> con aprobaci\u00f3n manual. A\u00f1ade cache y matrices de Python.\u201d<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span><strong><span style=\"color: #619417;\">Valida<\/span><\/strong><span style=\"font-weight: 400;\">: branch protection, reviewers requeridos, secretos en vault y environments.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"color: #619417;\">5) Flujo de trabajo recomendado (dentro de VS Code)<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">El valor aparece cuando integras IA en tu forma de trabajar, no al rev\u00e9s. Esta secuencia minimiza fricci\u00f3n y errores.<\/span><\/p>\n<ol>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Crea rama<\/span><\/strong><span style=\"font-weight: 400;\"> y genera esqueleto con el <\/span><strong><span style=\"color: #619417;\">chat<\/span><\/strong><span style=\"font-weight: 400;\"> del assistant.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Refina<\/span><\/strong><span style=\"font-weight: 400;\">: pide validaciones y <\/span><strong><span style=\"color: #619417;\">README\/docstrings<\/span><\/strong><span style=\"font-weight: 400;\">.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Ejecuta<\/span><\/strong><span style=\"font-weight: 400;\"> linters\/tests desde la terminal integrada.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Abre PR<\/span><\/strong><span style=\"font-weight: 400;\"> con checklist (IaC validada, tests, seguridad).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Revisi\u00f3n humana<\/span><\/strong><span style=\"font-weight: 400;\"> y merge solo si pasa todo.<\/span><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"color: #619417;\">6) Gobierno, privacidad y seguridad (RGPD-ready)<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Adoptar IA sin reglas es arriesgar el compliance. Define l\u00edmites claros de datos, auditor\u00eda y pol\u00edticas de uso.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">No incluyas <\/span><strong><span style=\"color: #619417;\">secretos ni PII<\/span><\/strong><span style=\"font-weight: 400;\"> en prompts.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">DPA\/SCC con proveedores; si hay transferencias internacionales, documenta DPIA.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400;\">Activa controles de <\/span><strong><span style=\"color: #619417;\">tenant\/organizaci\u00f3n<\/span><\/strong><span style=\"font-weight: 400;\"> y telemetr\u00eda m\u00ednima.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Policy-as-Code<\/span><\/strong><span style=\"font-weight: 400;\"> (OPA\/Conftest) para bloquear PRs que no cumplan:<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400; color: #619417;\">package iac.naming<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">deny[msg] {<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0input.resource.type == \u00abaws_s3_bucket\u00bb<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0not startswith(input.resource.name, \u00abprod-\u00ab)<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">\u00a0\u00a0msg := sprintf(\u00abBucket sin prefijo &#8216;prod-&#8216;: %s\u00bb, [input.resource.name])<\/span><\/p>\n<p><span style=\"font-weight: 400; color: #619417;\">}<\/span><\/p>\n<h2><\/h2>\n<h2><strong><span style=\"color: #619417;\">7) M\u00e9tricas y ROI: qu\u00e9 medir<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Sin m\u00e9tricas no hay mejora. Define KPIs desde el inicio para justificar licencias y ampliar uso.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Lead time<\/span><\/strong><span style=\"font-weight: 400;\"> (idea \u2192 PR \u2192 prod), <\/span><strong><span style=\"color: #619417;\">% sugerencias aceptadas, defectos post-merge, MTTR<\/span><\/strong><span style=\"font-weight: 400;\">, hallazgos <\/span><span style=\"font-weight: 400;\">tfsec\/Checkov<\/span><span style=\"font-weight: 400;\"> por PR, <\/span><strong><span style=\"color: #619417;\">horas\/mes ahorradas<\/span><\/strong><span style=\"font-weight: 400;\">.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">F\u00f3rmula<\/span><\/strong><span style=\"font-weight: 400;\">:<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">ROI \u2248 (Horas ahorradas \u00d7 coste\/h) + (defectos evitados \u00d7 coste) \u2212 coste de licencias<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"color: #619417;\">8) Plan 30\/60 d\u00edas para VS Code + IA<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">La adopci\u00f3n gradual reduce resistencia y riesgo. Este plan te da resultados visibles sin parar el equipo.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">0\u201330 d\u00edas (piloto)<\/span><\/strong><span style=\"font-weight: 400;\">: Copilot (+ Amazon Q si AWS\/IaC), linters<span style=\"color: #619417;\">\/<\/span><\/span><span style=\"font-weight: 400; color: #619417;\">pre-commit<\/span><span style=\"font-weight: 400;\">, <\/span><span style=\"font-weight: 400; color: #619417;\">.promptignore<\/span><span style=\"font-weight: 400;\"> y <\/span><span style=\"font-weight: 400;\"><span style=\"color: #619417;\">\/.prompts<\/span>\/<\/span><span style=\"font-weight: 400;\">, baseline KPIs.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">31\u201360 d\u00edas (escala)<\/span><\/strong><span style=\"font-weight: 400;\">: a\u00f1ade K8s + CI\/CD, <\/span><strong><span style=\"color: #619417;\">OPA\/Conftest<\/span><\/strong><span style=\"font-weight: 400;\">, dashboards de m\u00e9tricas.<\/span><span style=\"font-weight: 400;\"><br \/>\n<\/span> <strong><span style=\"color: #619417;\">61\u201390 d\u00edas (avanzado)<\/span><\/strong><span style=\"font-weight: 400;\">: prueba <\/span><strong><span style=\"color: #619417;\">Cody\/Cursor<\/span><\/strong><span style=\"font-weight: 400;\"> para cambios multi-archivo, entornos ef\u00edmeros y PRs sugeridos por agente.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><strong><span style=\"color: #619417;\">9) Troubleshooting r\u00e1pido<\/span><\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">Cuando la IA no rinde, suele ser por contexto o guardrails. Ajusta, no abandones.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Sugerencias pobres<\/span><\/strong><span style=\"font-weight: 400;\">: abre archivos relevantes, reduce ruido, a\u00f1ade comentarios de intenci\u00f3n.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Alucinaciones<\/span><\/strong><span style=\"font-weight: 400;\">: exige comandos de validaci\u00f3n y explicaci\u00f3n de supuestos; siempre PR + tests.<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Lentitud<\/span><\/strong><span style=\"font-weight: 400;\">: limita contexto y carpetas; usa b\u00fasqueda sem\u00e1ntica (Cody).<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><strong><span style=\"color: #619417;\">Privacidad<\/span><\/strong><span style=\"font-weight: 400;\">: revisa pol\u00edticas del tenant y excluye carpetas sensibles.<\/span><\/li>\n<\/ul>\n<h2><\/h2>\n<p><span style=\"font-weight: 400;\">VS Code con IA acelera DevOps si combinas el <\/span><strong><span style=\"color: #619417;\">assistant adecuado<\/span><\/strong><span style=\"font-weight: 400;\">, un <\/span><strong><span style=\"color: #619417;\">setup s\u00f3lido<\/span><\/strong><span style=\"font-weight: 400;\"> y <\/span><strong><span style=\"color: #619417;\">guardrails<\/span><\/strong><span style=\"font-weight: 400;\"> de seguridad. Con prompts iterativos y m\u00e9tricas claras, convertir\u00e1s velocidad en <\/span><strong><span style=\"color: #619417;\">calidad y ROI<\/span><\/strong><span style=\"font-weight: 400;\">.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00bfTienes dudas o quieres profundizar m\u00e1s? <\/span><a href=\"https:\/\/geko.cloud\/es\/contacto\/\"><span style=\"font-weight: 400;\">Contacta<\/span><\/a><span style=\"font-weight: 400;\"> con nuestro equipo de expertos.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>La IA en VS Code ha pasado de ser un simple autocompletado a convertirse en un copiloto real para DevOps. Bien configurada, puede reducir dr\u00e1sticamente tiempos y errores en tareas cr\u00edticas de software e infraestructura. &nbsp; 1) Elige tu asistente de IA (y cu\u00e1ndo usar cada uno) Antes de instalar nada, ten claro tu stack [&hellip;]<\/p>\n","protected":false},"author":38,"featured_media":10201,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[18],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>IA en VS Code aplicada a Terraform, Python y K8s - Geko Cloud<\/title>\n<meta name=\"description\" content=\"La IA en VS Code aplicada a Terraform, Python y K8s se ha convertido en un copiloto real para DevOps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/geko.cloud\/es\/ia-en-vscode\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IA en VS Code aplicada a Terraform, Python y K8s - Geko Cloud\" \/>\n<meta property=\"og:description\" content=\"La IA en VS Code aplicada a Terraform, Python y K8s se ha convertido en un copiloto real para DevOps.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/geko.cloud\/es\/ia-en-vscode\/\" \/>\n<meta property=\"og:site_name\" content=\"Geko Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-30T07:10:05+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1763\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Geko Cloud\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geko_cloud\" \/>\n<meta name=\"twitter:site\" content=\"@geko_cloud\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/\"},\"author\":{\"name\":\"Geko Cloud\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6\"},\"headline\":\"IA en VS Code aplicada a Terraform, Python y K8s\",\"datePublished\":\"2025-09-30T07:10:05+00:00\",\"dateModified\":\"2025-09-30T07:10:05+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/\"},\"wordCount\":1064,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg\",\"articleSection\":[\"Labs\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/\",\"url\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/\",\"name\":\"IA en VS Code aplicada a Terraform, Python y K8s - Geko Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/geko.cloud\/es\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg\",\"datePublished\":\"2025-09-30T07:10:05+00:00\",\"dateModified\":\"2025-09-30T07:10:05+00:00\",\"description\":\"La IA en VS Code aplicada a Terraform, Python y K8s se ha convertido en un copiloto real para DevOps.\",\"breadcrumb\":{\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/geko.cloud\/es\/ia-en-vscode\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg\",\"width\":2560,\"height\":1763},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/geko.cloud\/es\/ia-en-vscode\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/geko.cloud\/es\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IA en VS Code aplicada a Terraform, Python y K8s\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/geko.cloud\/es\/#website\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"name\":\"Geko Cloud\",\"description\":\"Servicios de consultor\u00eda cloud y devops\",\"publisher\":{\"@id\":\"https:\/\/geko.cloud\/es\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/geko.cloud\/es\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/geko.cloud\/es\/#organization\",\"name\":\"Geko Cloud\",\"url\":\"https:\/\/geko.cloud\/es\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"contentUrl\":\"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png\",\"width\":1650,\"height\":809,\"caption\":\"Geko Cloud\"},\"image\":{\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/geko_cloud\",\"https:\/\/www.instagram.com\/gekocloud\/\",\"https:\/\/www.linkedin.com\/company\/gekocloud\",\"https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6\",\"name\":\"Geko Cloud\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g\",\"caption\":\"Geko Cloud\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"IA en VS Code aplicada a Terraform, Python y K8s - Geko Cloud","description":"La IA en VS Code aplicada a Terraform, Python y K8s se ha convertido en un copiloto real para DevOps.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/geko.cloud\/es\/ia-en-vscode\/","og_locale":"es_ES","og_type":"article","og_title":"IA en VS Code aplicada a Terraform, Python y K8s - Geko Cloud","og_description":"La IA en VS Code aplicada a Terraform, Python y K8s se ha convertido en un copiloto real para DevOps.","og_url":"https:\/\/geko.cloud\/es\/ia-en-vscode\/","og_site_name":"Geko Cloud","article_published_time":"2025-09-30T07:10:05+00:00","og_image":[{"width":2560,"height":1763,"url":"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg","type":"image\/jpeg"}],"author":"Geko Cloud","twitter_card":"summary_large_image","twitter_creator":"@geko_cloud","twitter_site":"@geko_cloud","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/#article","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/"},"author":{"name":"Geko Cloud","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6"},"headline":"IA en VS Code aplicada a Terraform, Python y K8s","datePublished":"2025-09-30T07:10:05+00:00","dateModified":"2025-09-30T07:10:05+00:00","mainEntityOfPage":{"@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/"},"wordCount":1064,"commentCount":0,"publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"image":{"@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg","articleSection":["Labs"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/geko.cloud\/es\/ia-en-vscode\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/","url":"https:\/\/geko.cloud\/es\/ia-en-vscode\/","name":"IA en VS Code aplicada a Terraform, Python y K8s - Geko Cloud","isPartOf":{"@id":"https:\/\/geko.cloud\/es\/#website"},"primaryImageOfPage":{"@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage"},"image":{"@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage"},"thumbnailUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg","datePublished":"2025-09-30T07:10:05+00:00","dateModified":"2025-09-30T07:10:05+00:00","description":"La IA en VS Code aplicada a Terraform, Python y K8s se ha convertido en un copiloto real para DevOps.","breadcrumb":{"@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/geko.cloud\/es\/ia-en-vscode\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/#primaryimage","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2025\/09\/IA-en-VS-Code-Geko-Cloud-scaled.jpg","width":2560,"height":1763},{"@type":"BreadcrumbList","@id":"https:\/\/geko.cloud\/es\/ia-en-vscode\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/geko.cloud\/es\/"},{"@type":"ListItem","position":2,"name":"IA en VS Code aplicada a Terraform, Python y K8s"}]},{"@type":"WebSite","@id":"https:\/\/geko.cloud\/es\/#website","url":"https:\/\/geko.cloud\/es\/","name":"Geko Cloud","description":"Servicios de consultor\u00eda cloud y devops","publisher":{"@id":"https:\/\/geko.cloud\/es\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/geko.cloud\/es\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/geko.cloud\/es\/#organization","name":"Geko Cloud","url":"https:\/\/geko.cloud\/es\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/","url":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","contentUrl":"https:\/\/geko.cloud\/wp-content\/uploads\/2021\/10\/geko_logo-positivo.png","width":1650,"height":809,"caption":"Geko Cloud"},"image":{"@id":"https:\/\/geko.cloud\/es\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/geko_cloud","https:\/\/www.instagram.com\/gekocloud\/","https:\/\/www.linkedin.com\/company\/gekocloud","https:\/\/www.youtube.com\/channel\/UC5EFLCqUM7fEaXSa_0nWowQ"]},{"@type":"Person","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/c87e3587fb419825d72ac2043e798ab6","name":"Geko Cloud","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/geko.cloud\/es\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10fe5eb7a547a27afabbe3a5a0f60c96?s=96&d=mm&r=g","caption":"Geko Cloud"}}]}},"_links":{"self":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/10199"}],"collection":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/users\/38"}],"replies":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/comments?post=10199"}],"version-history":[{"count":9,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/10199\/revisions"}],"predecessor-version":[{"id":10204,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/posts\/10199\/revisions\/10204"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media\/10201"}],"wp:attachment":[{"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/media?parent=10199"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/categories?post=10199"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geko.cloud\/es\/wp-json\/wp\/v2\/tags?post=10199"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}