[{"data":1,"prerenderedAt":752},["ShallowReactive",2],{"/it-it/topics/gitops/gitlab-enables-infrastructure-as-code/":3,"navigation-it-it":99,"banner-it-it":519,"footer-it-it":531,"next-steps-it-it":737},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"seo":8,"content":13,"_id":93,"_type":94,"title":7,"_source":95,"_file":96,"_stem":97,"_extension":98},"/it-it/topics/gitops/gitlab-enables-infrastructure-as-code","gitops",false,"",{"title":9,"description":10,"config":11},"In che modo i team utilizzano GitLab e Terraform per l'Infrastructure as Code: una dimostrazione","GitLab Topics | How teams use GitLab and Terraform for infrastructure as code: A demo",{"ignoreTitleCharLimit":12},true,[14,28,34,91],{"type":15,"componentName":15,"componentContent":16},"CommonBreadcrumbs",{"crumbs":17},[18,22,26],{"title":19,"config":20},"Industry topics",{"href":21},"/topics/",{"title":23,"config":24},"GitOps",{"href":25},"/it-it/topics/gitops/",{"title":27},"Gitlab enables infrastructure as code",{"type":29,"componentName":29,"componentContent":30},"TopicsHero",{"title":9,"text":31,"config":32},"In questa dimostrazione vengono illustrate le buone prassi GitOps per eseguire il deployment dell'Infrastructure as Code utilizzando Terraform per l'automazione e GitLab come unica fonte di riferimento.\n",{"id":33,"twoColumns":6},"in-che-modo-i-team-utilizzano-gitlab-e-terraform-per-l'infrastructure-as-code:-una-dimostrazione",{"type":35,"componentName":35,"componentContent":36},"CommonSideNavigationWithTree",{"anchors":37,"components":60},{"text":38,"data":39},"Ulteriori informazioni su questo argomento",[40,44,48,52,56],{"text":41,"config":42},"Scopri come GitLab permette di gestire l'Infrastructure as Code",{"href":43},"#learn-how-git-lab-enables-infrastructure-as-code",{"text":45,"config":46},"Costruire l'Infrastructure as Code in GitLab",{"href":47},"#building-your-infrastructure-as-code-in-git-lab",{"text":49,"config":50},"All'interno del sottogruppo dell'infrastruttura",{"href":51},"#inside-the-infrastructure-subgroup",{"text":53,"config":54},"Deployment del codice tramite la CI di GitLab",{"href":55},"#deploying-code-using-git-lab-ci",{"text":57,"config":58},"Vuoi sapere di più su GitOps?",{"href":59},"#ready-to-learn-more-about-git-ops",[61,66,71,76,81,86],{"type":62,"componentName":62,"componentContent":63},"TopicsCopy",{"text":64,"config":65},"Se diversi team utilizzano un repository Git come unica fonte di riferimento per tutto il codice relativo all'[infrastruttura](/blog/using-ansible-and-gitlab-as-infrastructure-for-code/){data-ga-name =\"infrastructure\" data-ga-location =\"body\"}, in tal caso si può parlare di buona prassi GitOps. I team incaricati dell'infrastruttura possono collaborare ed eseguire il deployment del codice su più servizi cloud utilizzando Terraform per l'automazione. Questo articolo mostra come i team possono creare un cluster Kubernetes collaborando con gli altri colleghi all'interno di GitLab.\n",{"id":7},{"type":62,"componentName":62,"componentContent":67},{"header":41,"text":68,"config":69},"In questa dimostrazione vengono illustrate le buone prassi GitOps per eseguire il deployment dell'Infrastructure as Code utilizzando Terraform per l'automazione e GitLab come unica fonte di riferimento (e CI).\n",{"id":70},"learn-how-git-lab-enables-infrastructure-as-code",{"type":62,"componentName":62,"componentContent":72},{"header":45,"text":73,"config":74},"### Guida introduttiva\n\n_Questo [gruppo gitops-demo](https://gitlab.com/gitops-demo) illustra i passaggi che possono seguire i team incaricati all'infrastruttura._\n\nPer iniziare, esegui l'accesso al gruppo in cui si trova il progetto all'interno di GitLab. Apri quindi il file [README.md](https://gitlab.com/gitops-demo/readme/blob/master/README.md), che mostra la struttura alla base del gruppo gitops-demo. Oltre ad alcuni progetti individuali, vi sono due sottogruppi: **[infrastruttura](https://gitlab.com/gitops-demo/infra)** e **[applicazioni](https://gitlab.com/gitops-demo/apps)**.\n",{"id":75},"building-your-infrastructure-as-code-in-git-lab",{"type":62,"componentName":62,"componentContent":77},{"header":49,"text":78,"config":79},"Esiste un repository separato per ogni servizio cloud (Azure, GCP e AWS), oltre a un repository dedicato ai modelli.\nÈ possibile trovare file simili in tutti e tre i repository [cloud](/blog/gitlab-ci-cd-is-for-multi-cloud/){data-ga-name = \"cloud\"data-ga-location =\"body\"}. Tutti i file sono scritti in Terraform per automatizzare il processo di deployment, mentre un file `gitlab-ci.yml` è memorizzato nel repository per fornire istruzioni ai fini dell'automazione.\n\n### Il file di back-end\n\nUtilizzando il [servizio Terraform Cloud](https://www.hashicorp.com/blog/announcing-terraform-cloud) di HashiCorp come posizione remota per il file di stato, quest'ultimo resta al sicuro e in una posizione centralizzata, in modo che possa essere accessibile da qualsiasi processo. Un vantaggio dell'utilizzo del servizio Terraform Cloud è la possibilità di bloccare lo stato per fare in modo che sia possibile eseguire un solo job alla volta, evitando che diversi job apportino modifiche in conflitto tra loro. Il codice memorizza i file di stato di [Terraform Cloud](https://app.terraform.io) in un'organizzazione chiamata `gitops-demo` e in uno spazio di lavoro denominato `aws`. Lo stato di esecuzione viene mantenuto nel provider di servizi cloud, in modo che ogni membro del team possa accedervi in qualsiasi momento.\n\n```\nterraform {\n  backend \"remote\" {\n    hostname     = \"app.terraform.io\"\n    organization = \"gitops-demo\"\n    workspaces {\n      name = \"aws\"\n    }\n  }\n}\n\n```\n{: .language-ruby}\n\n### EKS.tf file\n\nIl file EKS è un altro file Terraform che si serve del modulo EKS per il cluster Terraform. I team possono definire parametri come il tipo di sottoreti e il numero di nodi nel file Terraform EKS.\n\n```\nmodule \"eks\" {\n  source           = \"terraform-aws-modules/eks/aws\"\n  cluster_name     = \"gitops-demo-eks\"\n  subnets          = \"${module.vpc.public_subnets}\"\n  write_kubeconfig = \"false\"\n  tags = {\n    Terraform   = \"true\"\n    Environment = \"dev\"\n  }\n  vpc_id = \"${module.vpc.vpc_id}\"\n  worker_groups = [\n    {\n      instance_type = \"m4.large\"\n      asg_max_size  = 5\n      tags = [{\n        key                 = \"Terraform\"\n        value               = \"true\"\n        propagate_at_launch = true\n      }]\n    }\n  ]\n}\n```\n{: .language-ruby}\n\n### Imposta un utente amministratore in GitLab\n\n Il provider Kubernetes può essere utilizzato per creare un utente amministratore di GitLab e configurarlo [automaticamente tramite codice, utilizzando Terraform per gestire tale processo](https://gitlab.com/gitops-demo/infra/aws/blob/master/gitlab-admin.tf).\n\n### Registra il cluster con GitLab\n\nUna volta creato il cluster Kubernetes, è il momento di registrarlo con GitLab in modo da poter eseguire il deployment di più porzioni di codice al cluster in futuro. Il primo passo è utilizzare il provider GitLab per creare un cluster di gruppo denominato cluster AWS.\n\n```\ndata \"gitlab_group\" \"gitops-demo-apps\" {\n  full_path = \"gitops-demo/apps\"\n}\nprovider \"gitlab\" {\n  alias   = \"use-pre-release-plugin\"\n  version = \"v2.99.0\"\n}\nresource \"gitlab_group_cluster\" \"aws_cluster\" {\n  provider           = \"gitlab.use-pre-release-plugin\"\n  group              = \"${data.gitlab_group.gitops-demo-apps.id}\"\n  name               = \"${module.eks.cluster_id}\"\n  domain             = \"eks.gitops-demo.com\"\n  environment_scope  = \"eks/*\"\n  kubernetes_api_url = \"${module.eks.cluster_endpoint}\"\n  kubernetes_token   = \"${data.kubernetes_secret.gitlab-admin-token.data.token}\"\n  kubernetes_ca_cert = \"${trimspace(base64decode(module.eks.cluster_certificate_authority_data))}\"\n}\n```\n{: .language-ruby}\n\nIl codice contiene il nome di dominio, l'ambito dell'ambiente e le credenziali di Kubernetes.\n\nUna volta avviata l'esecuzione, il cluster verrà creato in AWS e registrato automaticamente nel gruppo [gitops-demo/apps](https://gitlab.com/gitops-demo/apps).\n",{"id":80},"inside-the-infrastructure-subgroup",{"type":62,"componentName":62,"componentContent":82},{"header":53,"text":83,"config":84},"### Modello Terraform\n\nTorna al gruppo dell'infrastruttura e apri la cartella dei modelli. Osservando il [file terraform.gitlab-ci.yml](https://gitlab.com/gitops-demo/infra/templates/blob/master/terraform.gitlab-ci.yml), è possibile vedere come opera la CI per eseguire il deployment del codice dell'infrastruttura nel cloud utilizzando Terraform.\n\nAll'interno del file CI, i team possono osservare alcune fasi diverse: validazione, pianificazione, applicazione ed eliminazione definitiva. Utilizzando l'immagine di base in Terraform di Hashicorp, gli utenti possono eseguire diverse attività.\n\nIl primo passo è inizializzare Terraform.\n\n```\nbefore_script:\n  - terraform --version\n  - terraform init\n  - apk add --update curl\n  - curl -o kubectl https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/kubectl\n  - install kubectl /usr/local/bin/ && rm kubectl\n  - curl -o aws-iam-authenticator https://amazon-eks.s3-us-west-2.amazonaws.com/1.13.7/2019-06-11/bin/linux/amd64/aws-iam-authenticator\n  - install aws-iam-authenticator /usr/local/bin/ && rm aws-iam-authenticator\n```\n{: .language-ruby}\n\nIl passo successivo è verificare che tutto sia corretto.\n\n```\nvalidate:\n  stage: validate\n  script:\n    - terraform validate\n    - terraform fmt -check=true\n  only:\n    - branches\n```\n{: .language-ruby}\n\nÈ bene ricordare che un flusso di lavoro GitOps efficace prevede la creazione di una [richiesta di merge](/blog/mr-reviews-with-vs-code/){data-ga-name=\"rmerge request\" data-ga-location=\"body\"} per ogni modifica effettuata.\n\n```\nmerge review:\n  stage: plan\n  script:\n    - terraform plan -out=$PLAN\n    - echo \\`\\`\\`diff > plan.txt\n    - terraform show -no-color ${PLAN} | tee -a plan.txt\n    - echo \\`\\`\\` >> plan.txt\n    - sed -i -e 's/  +/+/g' plan.txt\n    - sed -i -e 's/  ~/~/g' plan.txt\n    - sed -i -e 's/  -/-/g' plan.txt\n    - MESSAGE=$(cat plan.txt)\n    - >-\n      curl -X POST -g -H \"PRIVATE-TOKEN: ${GITLAB_TOKEN}\"\n      --data-urlencode \"body=${MESSAGE}\"\n      \"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/merge_requests/${CI_MERGE_REQUEST_IID}/discussions\"\n  artifacts:\n    name: plan\n    paths:\n      - $PLAN\n  only:\n    - merge_requests\n```\n{: .language-ruby}\n\n### La richiesta di merge\n\nLa [richiesta di merge (RM)](https://gitlab.com/gitops-demo/infra/aws/merge_requests/6){data-ga-name=\"MR\" data-ga-location=\"body\"} è il passaggio più importante in GitOps. Questo processo serve a rivedere tutte le modifiche e a verificarne l'impatto. La RM è inoltre uno [strumento di collaborazione](/blog/merge-request-reviewers/){data-ga-name =\"collaboration tool\" data-ga-location = \"body\"} che permette ai membri del team di discutere delle modifiche, e agli stakeholder di approvarle, prima di eseguire il merge finale nel ramo principale.\n\nLa richiesta di merge definisce ciò che accadrà al momento dell'esecuzione dell'Infrastructure as Code. Una volta creata la RM, viene caricato il piano Terraform sulla richiesta di merge. Dopo che tutte le modifiche sono state riviste e approvate, è possibile eseguire il merge del codice al ramo principale. Dopo che tutte le modifiche del codice sono state sottoposte a merge, ne verrà effettuato il deployment in produzione.\n",{"id":85},"deploying-code-using-git-lab-ci",{"type":62,"componentName":62,"componentContent":87},{"header":57,"text":88,"config":89},"* [Cosa significa Infrastructure as Code?](/topics/gitops/infrastructure-as-code/){data-ga-name=\"infrastructure as code\" data-ga-location=\"body\"}\n* [Che cos'è GitOps](/topics/gitops/){data-ga-name=\"what is gitops\" data-ga-location=\"body\"}\n* [Scopri come GitLab ottimizza i flussi di lavoro GitOps](/solutions/gitops/){data-ga-name =\"streamlines workflows\" data-ga-location=\"body\"}\n* [Scopri il futuro di GitOps grazie ai leader del settore](/why/gitops-infrastructure-automation/){data-ga-name=\"industry leader\" data-ga-location=\"body\"}\n* [Leggi la guida per neofiti a GitOps](https://page.gitlab.com/resources-ebook-beginner-guide-gitops.html)\n",{"id":90},"ready-to-learn-more-about-git-ops",{"type":92,"componentName":92},"CommonNextSteps","content:it-it:topics:gitops:gitlab-enables-infrastructure-as-code:index.yml","yaml","content","it-it/topics/gitops/gitlab-enables-infrastructure-as-code/index.yml","it-it/topics/gitops/gitlab-enables-infrastructure-as-code/index","yml",{"_path":100,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"data":102,"_id":515,"_type":94,"title":516,"_source":95,"_file":517,"_stem":518,"_extension":98},"/shared/it-it/main-navigation","it-it",{"logo":103,"freeTrial":108,"sales":113,"login":118,"items":123,"search":456,"minimal":492,"duo":506},{"config":104},{"href":105,"dataGaName":106,"dataGaLocation":107},"/it-it/","gitlab logo","header",{"text":109,"config":110},"Ottieni una prova gratuita",{"href":111,"dataGaName":112,"dataGaLocation":107},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":114,"config":115},"Contatta le vendite",{"href":116,"dataGaName":117,"dataGaLocation":107},"/it-it/sales/","sales",{"text":119,"config":120},"Accedi",{"href":121,"dataGaName":122,"dataGaLocation":107},"https://gitlab.com/users/sign_in/","sign in",[124,168,266,271,377,437],{"text":125,"config":126,"cards":128,"footer":151},"Piattaforma",{"dataNavLevelOne":127},"platform",[129,135,143],{"title":125,"description":130,"link":131},"La piattaforma DevSecOps più completa basata sull'IA",{"text":132,"config":133},"Scopri la nostra piattaforma",{"href":134,"dataGaName":127,"dataGaLocation":107},"/it-it/platform/",{"title":136,"description":137,"link":138},"GitLab Duo (IA)","Sviluppa software più velocemente con l'IA in ogni fase del ciclo di sviluppo",{"text":139,"config":140},"Ti presentiamo GitLab Duo",{"href":141,"dataGaName":142,"dataGaLocation":107},"/it-it/gitlab-duo/","gitlab duo ai",{"title":144,"description":145,"link":146},"Perché scegliere GitLab","Dieci motivi per cui le aziende scelgono GitLab",{"text":147,"config":148},"Scopri di più",{"href":149,"dataGaName":150,"dataGaLocation":107},"/it-it/why-gitlab/","why gitlab",{"title":152,"items":153},"Primi passi con",[154,159,164],{"text":155,"config":156},"Platform engineering",{"href":157,"dataGaName":158,"dataGaLocation":107},"/it-it/solutions/platform-engineering/","platform engineering",{"text":160,"config":161},"Esperienza d'uso degli sviluppatori",{"href":162,"dataGaName":163,"dataGaLocation":107},"/it-it/developer-experience/","Developer experience",{"text":165,"config":166},"MLOps",{"href":167,"dataGaName":165,"dataGaLocation":107},"/it-it/topics/devops/the-role-of-ai-in-devops/",{"text":169,"left":12,"config":170,"link":172,"lists":176,"footer":248},"Prodotti",{"dataNavLevelOne":171},"solutions",{"text":173,"config":174},"Visualizza tutte le soluzioni",{"href":175,"dataGaName":171,"dataGaLocation":107},"/it-it/solutions/",[177,203,226],{"title":178,"description":179,"link":180,"items":185},"Automazione","CI/CD e automazione per accelerare il deployment",{"config":181},{"icon":182,"href":183,"dataGaName":184,"dataGaLocation":107},"AutomatedCodeAlt","/it-it/solutions/delivery-automation/","automated software delivery",[186,190,194,199],{"text":187,"config":188},"CI/CD",{"href":189,"dataGaLocation":107,"dataGaName":187},"/it-it/solutions/continuous-integration/",{"text":191,"config":192},"Sviluppo assistito dall'IA",{"href":141,"dataGaLocation":107,"dataGaName":193},"AI assisted development",{"text":195,"config":196},"Gestione del codice sorgente",{"href":197,"dataGaLocation":107,"dataGaName":198},"/it-it/solutions/source-code-management/","Source Code Management",{"text":200,"config":201},"Distribuzione software automatizzata",{"href":183,"dataGaLocation":107,"dataGaName":202},"Automated software delivery",{"title":204,"description":205,"link":206,"items":211},"Sicurezza","Distribuisci il codice più velocemente senza compromettere la sicurezza",{"config":207},{"href":208,"dataGaName":209,"dataGaLocation":107,"icon":210},"/it-it/solutions/security-compliance/","security and compliance","ShieldCheckLight",[212,216,221],{"text":213,"config":214},"Sicurezza e conformità",{"href":208,"dataGaLocation":107,"dataGaName":215},"Security & Compliance",{"text":217,"config":218},"Sicurezza della catena di fornitura del software",{"href":219,"dataGaLocation":107,"dataGaName":220},"/it-it/solutions/supply-chain/","Software supply chain security",{"text":222,"config":223},"Conformità e governance",{"href":224,"dataGaLocation":107,"dataGaName":225},"/it-it/solutions/continuous-software-compliance/","Compliance and governance",{"title":227,"link":228,"items":233},"Misurazione",{"config":229},{"icon":230,"href":231,"dataGaName":232,"dataGaLocation":107},"DigitalTransformation","/it-it/solutions/visibility-measurement/","visibility and measurement",[234,238,243],{"text":235,"config":236},"Visibilità e misurazione",{"href":231,"dataGaLocation":107,"dataGaName":237},"Visibility and Measurement",{"text":239,"config":240},"Gestione del flusso di valore",{"href":241,"dataGaLocation":107,"dataGaName":242},"/it-it/solutions/value-stream-management/","Value Stream Management",{"text":244,"config":245},"Analisi e approfondimenti",{"href":246,"dataGaLocation":107,"dataGaName":247},"/it-it/solutions/analytics-and-insights/","Analytics and insights",{"title":249,"items":250},"GitLab per",[251,256,261],{"text":252,"config":253},"Aziende",{"href":254,"dataGaLocation":107,"dataGaName":255},"/it-it/enterprise/","enterprise",{"text":257,"config":258},"Piccole imprese",{"href":259,"dataGaLocation":107,"dataGaName":260},"/it-it/small-business/","small business",{"text":262,"config":263},"Pubblica amministrazione",{"href":264,"dataGaLocation":107,"dataGaName":265},"/it-it/solutions/public-sector/","public sector",{"text":267,"config":268},"Prezzi",{"href":269,"dataGaName":270,"dataGaLocation":107,"dataNavLevelOne":270},"/it-it/pricing/","pricing",{"text":272,"config":273,"link":275,"lists":279,"feature":364},"Risorse",{"dataNavLevelOne":274},"resources",{"text":276,"config":277},"Visualizza tutte le risorse",{"href":278,"dataGaName":274,"dataGaLocation":107},"/it-it/resources/",[280,313,336],{"title":281,"items":282},"Per iniziare",[283,288,293,298,303,308],{"text":284,"config":285},"Installazione",{"href":286,"dataGaName":287,"dataGaLocation":107},"/it-it/install/","install",{"text":289,"config":290},"Guide rapide",{"href":291,"dataGaName":292,"dataGaLocation":107},"/it-it/get-started/","quick setup checklists",{"text":294,"config":295},"Formazione",{"href":296,"dataGaLocation":107,"dataGaName":297},"https://university.gitlab.com/","learn",{"text":299,"config":300},"Documentazione di prodotto",{"href":301,"dataGaName":302,"dataGaLocation":107},"https://docs.gitlab.com/","product documentation",{"text":304,"config":305},"Video sulle best practice",{"href":306,"dataGaName":307,"dataGaLocation":107},"/it-it/getting-started-videos/","best practice videos",{"text":309,"config":310},"Integrazioni",{"href":311,"dataGaName":312,"dataGaLocation":107},"/it-it/integrations/","integrations",{"title":314,"items":315},"Scopri",[316,321,326,331],{"text":317,"config":318},"Storie di successo dei clienti",{"href":319,"dataGaName":320,"dataGaLocation":107},"/it-it/customers/","customer success stories",{"text":322,"config":323},"Blog",{"href":324,"dataGaName":325,"dataGaLocation":107},"/blog/","blog",{"text":327,"config":328},"Lavorare da remoto",{"href":329,"dataGaName":330,"dataGaLocation":107},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"text":332,"config":333},"TeamOps",{"href":334,"dataGaName":335,"dataGaLocation":107},"/it-it/teamops/","teamops",{"title":337,"items":338},"Connetti",[339,344,349,354,359],{"text":340,"config":341},"Servizi GitLab",{"href":342,"dataGaName":343,"dataGaLocation":107},"/it-it/services/","services",{"text":345,"config":346},"Community",{"href":347,"dataGaName":348,"dataGaLocation":107},"/community/","community",{"text":350,"config":351},"Forum",{"href":352,"dataGaName":353,"dataGaLocation":107},"https://forum.gitlab.com/","forum",{"text":355,"config":356},"Eventi",{"href":357,"dataGaName":358,"dataGaLocation":107},"/events/","events",{"text":360,"config":361},"Partner",{"href":362,"dataGaName":363,"dataGaLocation":107},"/it-it/partners/","partners",{"backgroundColor":365,"textColor":366,"text":367,"image":368,"link":372},"#2f2a6b","#fff","Approfondimenti e informazioni per il futuro dello sviluppo software",{"altText":369,"config":370},"scheda promozionale per The Source",{"src":371},"/images/navigation/the-source-promo-card.svg",{"text":373,"config":374},"Leggi le ultime notizie",{"href":375,"dataGaName":376,"dataGaLocation":107},"/it-it/the-source/","the source",{"text":378,"config":379,"lists":381},"Azienda",{"dataNavLevelOne":380},"company",[382],{"items":383},[384,389,395,397,402,407,412,417,422,427,432],{"text":385,"config":386},"Informazioni",{"href":387,"dataGaName":388,"dataGaLocation":107},"/it-it/company/","about",{"text":390,"config":391,"footerGa":394},"Opportunità di lavoro",{"href":392,"dataGaName":393,"dataGaLocation":107},"/jobs/","jobs",{"dataGaName":393},{"text":355,"config":396},{"href":357,"dataGaName":358,"dataGaLocation":107},{"text":398,"config":399},"Leadership",{"href":400,"dataGaName":401,"dataGaLocation":107},"/company/team/e-group/","leadership",{"text":403,"config":404},"Team",{"href":405,"dataGaName":406,"dataGaLocation":107},"/company/team/","team",{"text":408,"config":409},"Manuale",{"href":410,"dataGaName":411,"dataGaLocation":107},"https://handbook.gitlab.com/","handbook",{"text":413,"config":414},"Rapporti con gli investitori",{"href":415,"dataGaName":416,"dataGaLocation":107},"https://ir.gitlab.com/","investor relations",{"text":418,"config":419},"Trust Center",{"href":420,"dataGaName":421,"dataGaLocation":107},"/it-it/security/","trust center",{"text":423,"config":424},"AI Transparency Center",{"href":425,"dataGaName":426,"dataGaLocation":107},"/it-it/ai-transparency-center/","ai transparency center",{"text":428,"config":429},"Newsletter",{"href":430,"dataGaName":431,"dataGaLocation":107},"/company/contact/","newsletter",{"text":433,"config":434},"Rassegna stampa",{"href":435,"dataGaName":436,"dataGaLocation":107},"/press/","press",{"text":438,"config":439,"lists":440},"Contattaci",{"dataNavLevelOne":380},[441],{"items":442},[443,446,451],{"text":114,"config":444},{"href":116,"dataGaName":445,"dataGaLocation":107},"talk to sales",{"text":447,"config":448},"Richiedi assistenza",{"href":449,"dataGaName":450,"dataGaLocation":107},"/support/","get help",{"text":452,"config":453},"Portale clienti",{"href":454,"dataGaName":455,"dataGaLocation":107},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":457,"login":458,"suggestions":465},"Chiudi",{"text":459,"link":460},"Per cercare repository e progetti, accedi a",{"text":461,"config":462},"gitlab.com",{"href":121,"dataGaName":463,"dataGaLocation":464},"search login","search",{"text":466,"default":467},"Suggerimenti",[468,471,476,478,483,488],{"text":136,"config":469},{"href":141,"dataGaName":470,"dataGaLocation":464},"GitLab Duo (AI)",{"text":472,"config":473},"Suggerimenti di codice (IA)",{"href":474,"dataGaName":475,"dataGaLocation":464},"/it-it/solutions/code-suggestions/","Code Suggestions (AI)",{"text":187,"config":477},{"href":189,"dataGaName":187,"dataGaLocation":464},{"text":479,"config":480},"GitLab su AWS",{"href":481,"dataGaName":482,"dataGaLocation":464},"/it-it/partners/technology-partners/aws/","GitLab on AWS",{"text":484,"config":485},"GitLab su Google Cloud",{"href":486,"dataGaName":487,"dataGaLocation":464},"/it-it/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":489,"config":490},"Perché scegliere GitLab?",{"href":149,"dataGaName":491,"dataGaLocation":464},"Why GitLab?",{"freeTrial":493,"mobileIcon":498,"desktopIcon":503},{"text":494,"config":495},"Inizia la prova gratuita",{"href":496,"dataGaName":112,"dataGaLocation":497},"https://gitlab.com/-/trials/new/","nav",{"altText":499,"config":500},"Icona di GitLab",{"src":501,"dataGaName":502,"dataGaLocation":497},"/images/brand/gitlab-logo-tanuki.svg","gitlab icon",{"altText":499,"config":504},{"src":505,"dataGaName":502,"dataGaLocation":497},"/images/brand/gitlab-logo-type.svg",{"freeTrial":507,"mobileIcon":511,"desktopIcon":513},{"text":508,"config":509},"Scopri di più su GitLab Duo",{"href":141,"dataGaName":510,"dataGaLocation":497},"gitlab duo",{"altText":499,"config":512},{"src":501,"dataGaName":502,"dataGaLocation":497},{"altText":499,"config":514},{"src":505,"dataGaName":502,"dataGaLocation":497},"content:shared:it-it:main-navigation.yml","Main Navigation","shared/it-it/main-navigation.yml","shared/it-it/main-navigation",{"_path":520,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"title":521,"button":522,"config":526,"_id":528,"_type":94,"_source":95,"_file":529,"_stem":530,"_extension":98},"/shared/it-it/banner","La GitLab Duo Agent Platform è ora in beta pubblica!",{"text":147,"config":523},{"href":524,"dataGaName":525,"dataGaLocation":107},"/it-it/gitlab-duo/agent-platform/","duo banner",{"layout":527},"release","content:shared:it-it:banner.yml","shared/it-it/banner.yml","shared/it-it/banner",{"_path":532,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"data":533,"_id":733,"_type":94,"title":734,"_source":95,"_file":735,"_stem":736,"_extension":98},"/shared/it-it/main-footer",{"text":534,"source":535,"edit":541,"contribute":546,"config":551,"items":556,"minimal":725},"Git è un marchio di Software Freedom Conservancy e l'uso del termine \"GitLab\" è regolato da un accordo di licenza",{"text":536,"config":537},"Visualizza origine pagina",{"href":538,"dataGaName":539,"dataGaLocation":540},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":542,"config":543},"Modifica questa pagina",{"href":544,"dataGaName":545,"dataGaLocation":540},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":547,"config":548},"Contribuisci",{"href":549,"dataGaName":550,"dataGaLocation":540},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":552,"facebook":553,"youtube":554,"linkedin":555},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[557,580,632,662,696],{"title":125,"links":558,"subMenu":563},[559],{"text":560,"config":561},"Piattaforma DevSecOps",{"href":134,"dataGaName":562,"dataGaLocation":540},"devsecops platform",[564],{"title":267,"links":565},[566,570,575],{"text":567,"config":568},"Visualizza i piani",{"href":269,"dataGaName":569,"dataGaLocation":540},"view plans",{"text":571,"config":572},"Perché passare a Premium?",{"href":573,"dataGaName":574,"dataGaLocation":540},"/it-it/pricing/premium/","why premium",{"text":576,"config":577},"Perché passare a Ultimate?",{"href":578,"dataGaName":579,"dataGaLocation":540},"/it-it/pricing/ultimate/","why ultimate",{"title":581,"links":582},"Soluzioni",[583,588,591,593,598,603,607,610,613,616,618,620,622,627],{"text":584,"config":585},"Trasformazione digitale",{"href":586,"dataGaName":587,"dataGaLocation":540},"/it-it/topics/digital-transformation/","digital transformation",{"text":213,"config":589},{"href":208,"dataGaName":590,"dataGaLocation":540},"security & compliance",{"text":200,"config":592},{"href":183,"dataGaName":184,"dataGaLocation":540},{"text":594,"config":595},"Sviluppo Agile",{"href":596,"dataGaName":597,"dataGaLocation":540},"/it-it/solutions/agile-delivery/","agile delivery",{"text":599,"config":600},"Trasformazione cloud",{"href":601,"dataGaName":602,"dataGaLocation":540},"/it-it/topics/cloud-native/","cloud transformation",{"text":604,"config":605},"SCM",{"href":197,"dataGaName":606,"dataGaLocation":540},"source code management",{"text":187,"config":608},{"href":189,"dataGaName":609,"dataGaLocation":540},"continuous integration & delivery",{"text":239,"config":611},{"href":241,"dataGaName":612,"dataGaLocation":540},"value stream management",{"text":23,"config":614},{"href":615,"dataGaName":5,"dataGaLocation":540},"/it-it/solutions/gitops/",{"text":252,"config":617},{"href":254,"dataGaName":255,"dataGaLocation":540},{"text":257,"config":619},{"href":259,"dataGaName":260,"dataGaLocation":540},{"text":262,"config":621},{"href":264,"dataGaName":265,"dataGaLocation":540},{"text":623,"config":624},"Istruzione",{"href":625,"dataGaName":626,"dataGaLocation":540},"/it-it/solutions/education/","education",{"text":628,"config":629},"Servizi finanziari",{"href":630,"dataGaName":631,"dataGaLocation":540},"/it-it/solutions/finance/","financial services",{"title":272,"links":633},[634,636,638,640,643,645,648,650,652,654,656,658,660],{"text":284,"config":635},{"href":286,"dataGaName":287,"dataGaLocation":540},{"text":289,"config":637},{"href":291,"dataGaName":292,"dataGaLocation":540},{"text":294,"config":639},{"href":296,"dataGaName":297,"dataGaLocation":540},{"text":299,"config":641},{"href":301,"dataGaName":642,"dataGaLocation":540},"docs",{"text":322,"config":644},{"href":324,"dataGaName":325,"dataGaLocation":540},{"text":317,"config":646},{"href":647,"dataGaName":320,"dataGaLocation":540},"/customers/",{"text":327,"config":649},{"href":329,"dataGaName":330,"dataGaLocation":540},{"text":340,"config":651},{"href":342,"dataGaName":343,"dataGaLocation":540},{"text":332,"config":653},{"href":334,"dataGaName":335,"dataGaLocation":540},{"text":345,"config":655},{"href":347,"dataGaName":348,"dataGaLocation":540},{"text":350,"config":657},{"href":352,"dataGaName":353,"dataGaLocation":540},{"text":355,"config":659},{"href":357,"dataGaName":358,"dataGaLocation":540},{"text":360,"config":661},{"href":362,"dataGaName":363,"dataGaLocation":540},{"title":378,"links":663},[664,666,668,670,672,674,676,680,685,687,689,691],{"text":385,"config":665},{"href":387,"dataGaName":380,"dataGaLocation":540},{"text":390,"config":667},{"href":392,"dataGaName":393,"dataGaLocation":540},{"text":398,"config":669},{"href":400,"dataGaName":401,"dataGaLocation":540},{"text":403,"config":671},{"href":405,"dataGaName":406,"dataGaLocation":540},{"text":408,"config":673},{"href":410,"dataGaName":411,"dataGaLocation":540},{"text":413,"config":675},{"href":415,"dataGaName":416,"dataGaLocation":540},{"text":677,"config":678},"Sustainability",{"href":679,"dataGaName":677,"dataGaLocation":540},"/sustainability/",{"text":681,"config":682},"Diversità, inclusione e appartenenza (DIB)",{"href":683,"dataGaName":684,"dataGaLocation":540},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":418,"config":686},{"href":420,"dataGaName":421,"dataGaLocation":540},{"text":428,"config":688},{"href":430,"dataGaName":431,"dataGaLocation":540},{"text":433,"config":690},{"href":435,"dataGaName":436,"dataGaLocation":540},{"text":692,"config":693},"Dichiarazione di trasparenza sulla schiavitù moderna",{"href":694,"dataGaName":695,"dataGaLocation":540},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":438,"links":697},[698,701,703,705,710,715,720],{"text":699,"config":700},"Contatta un esperto",{"href":116,"dataGaName":117,"dataGaLocation":540},{"text":447,"config":702},{"href":449,"dataGaName":450,"dataGaLocation":540},{"text":452,"config":704},{"href":454,"dataGaName":455,"dataGaLocation":540},{"text":706,"config":707},"Stato",{"href":708,"dataGaName":709,"dataGaLocation":540},"https://status.gitlab.com/","status",{"text":711,"config":712},"Termini di utilizzo",{"href":713,"dataGaName":714,"dataGaLocation":540},"/terms/","terms of use",{"text":716,"config":717},"Informativa sulla privacy",{"href":718,"dataGaName":719,"dataGaLocation":540},"/it-it/privacy/","privacy statement",{"text":721,"config":722},"Preferenze dei cookie",{"dataGaName":723,"dataGaLocation":540,"id":724,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":726},[727,729,731],{"text":711,"config":728},{"href":713,"dataGaName":714,"dataGaLocation":540},{"text":716,"config":730},{"href":718,"dataGaName":719,"dataGaLocation":540},{"text":721,"config":732},{"dataGaName":723,"dataGaLocation":540,"id":724,"isOneTrustButton":12},"content:shared:it-it:main-footer.yml","Main Footer","shared/it-it/main-footer.yml","shared/it-it/main-footer",{"_path":738,"_dir":101,"_draft":6,"_partial":6,"_locale":7,"header":739,"eyebrow":740,"blurb":741,"button":742,"secondaryButton":746,"_id":748,"_type":94,"title":749,"_source":95,"_file":750,"_stem":751,"_extension":98},"/shared/it-it/next-steps","Inizia a distribuire software migliori più velocemente","Oltre il 50% delle società Fortune 100 si affida a GitLab","Scopri cosa può fare il tuo team grazie a una\n\n\npiattaforma DevSecOps intelligente.\n",{"text":109,"config":743},{"href":744,"dataGaName":112,"dataGaLocation":745},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":114,"config":747},{"href":116,"dataGaName":117,"dataGaLocation":745},"content:shared:it-it:next-steps.yml","Next Steps","shared/it-it/next-steps.yml","shared/it-it/next-steps",1753981692853]