[{"content":" Problem # I built an infrastructure lab on a Proxmox server, with network segmentation similar to production. A MikroTik CHR router separates four VLANs, and four Linux VMs run the application, the database, monitoring and CI. The application is an API for accounts and idempotent transfers on PostgreSQL, intentionally simple, so the focus stays on the engineering around it.\nTerraform creates the VMs and data disks, Ansible configures everything, and administrative access only goes through a WireGuard VPN.\nThe decision that matters most: the system disk is disposable and the data disk survives VM recreation. I tested it: I wrote a file with a checksum, destroyed the VM, recreated it, and the file was there with the same checksum.\nTechnical decisions and the reasoning # Data disk in a separate stack (data/). Recreating the VM must not erase the database. The disk belongs to a stack with prevent_destroy, and the database VM only attaches that disk. It works like an EBS volume that outlives the instance. Two stacks with separate state. Data changes rarely, VMs change often. The disk must exist before the VM, so the apply order matters. VMs in a for_each driven by a variable map. Adding a VM is one line in the tfvars. CHR treated as a \u0026ldquo;pet\u0026rdquo;. It is the network entry point: if it goes down, everything goes down. That is why it has prevent_destroy and sits outside the for_each. Least-privilege firewall per flow. Only monitoring reaches the database for backups, and only CI reaches the app\u0026rsquo;s SSH. I validated it with isolation tests: blocked flows time out, allowed flows respond. Remote state on GitLab, with locking. Each stack has its own state. Secrets out of the code. Proxmox credentials live in environment variables, and passwords live in the Ansible vault. Real challenges # Parallel clones on NFS were hanging. I limited the apply to -parallelism=1 and documented why. The GitLab runner ignored ansible.cfg. The /builds directory was writable by everyone, and Ansible discarded the configuration. I fixed it by setting ANSIBLE_CONFIG in the job. Slow first boot. cloud-init runs apt upgrade, so Ansible waits for the VM to finish. What I would do differently # Automate the CHR configuration, with tests for the firewall rules. Today it was configured by hand. Assess the risk of path_in_datastore, which is experimental in the bpg/proxmox provider, before relying on it in production. Evidence # Lab architecture # Lab architecture Admin access VPN WireGuard Proxmox server MikroTik CHR · router 4 segmented VLANs Application accounts API FastAPI Database PostgreSQL data disk kept separate Monitoring Prometheus · Grafana Alertmanager CI GitLab Runner Terraform creates VMs and disks Ansible configures services GitLab CI pipeline and remote state Conceptual diagram of the lab environment; implementation details are documented in the GitLab repository. Technologies # Terraform, Ansible, Proxmox, MikroTik, Docker, GitLab CI, PostgreSQL, Prometheus, Grafana, Alertmanager, Trivy, FastAPI.\n","externalUrl":null,"permalink":"/en/projects/project-01/","section":"Projects","summary":"","title":"Project 01: API with its own infrastructure","type":"projects"},{"content":" Problem # Publish a static site on AWS without storing access keys in the pipeline and without opening SSH to the GitLab runners. The application is the HTML and CSS course site by Gustavo Guanabara; the focus of the project is the infrastructure and the pipeline, not the site.\nView the repository on GitLab\nProject architecture # Arquitetura do projeto Developer GitLab CI IAM · role via OIDC AWS · us-east-1 ECR ecr-site-dandroid S3 Terraform state SSM Run Command deploy without SSH EC2 t3.micro Amazon Linux 2023 nginx container · 8080 → 80 Browser SSH tunnel (port 22) Conceptual diagram based on the implementation documented in the GitLab repository. Terraform creates a t3.micro EC2 instance in a new subnet, inside an existing VPC. The security group allows only SSH, from one IP address. ECR stores the ecr-site-dandroid image, built from a Dockerfile based on nginx:alpine. The Terraform state lives in an S3 bucket, with native locking. Technical decisions and reasoning # SSM deploy instead of SSH from the pipeline: the shared GitLab runners have variable IPs. Opening port 22 for them would require exposing it to the internet. With SSM, the deploy uses the AWS API and no inbound port is needed. OIDC instead of an access key: GitLab assumes a role through OIDC and receives temporary credentials. No long-lived key is stored. Access only through an SSH tunnel: port 8080 on the EC2 instance is not published to the internet. To view the site, you open an SSH tunnel. Domain and HTTPS are not configured. Image tag from the commit SHA: ECR uses mutable tags. Using latest would let each build overwrite the previous one. Saved plan, then apply: the plan job generates a tfplan, and the apply job applies that same file. What was reviewed is what gets applied. Manual apply, on one branch only: apply is manual and configured for the mes-11-projects branch. Real challenges # Dependency on the first run: the build job pushes the image to an ECR repository that only exists after apply. On the first run, build fails. The README advises setting allow_failure on that job for that run and removing it afterwards. What I would do differently # HTTPS with a domain: today the site is only reachable through an SSH tunnel. With a domain and a certificate, on the host or behind an ALB with ACM, it could be public. Docker in user_data: the deploy installs Docker on every run. Installing it in user_data would leave the instance ready when it starts. Role and bucket as variables: the role name and the state bucket are hardcoded, which makes the project harder to reproduce in another account. Least privilege on the role: the role creation policy uses Resource: \u0026quot;*\u0026quot;. I would restrict it by ARN and by tag. Apply from main: today apply only runs on the working branch. In a real workflow, it would run from main after review. Technologies # Terraform, AWS (EC2, ECR, S3, IAM, SSM, VPC), Docker, nginx, GitLab CI, OIDC.\n","externalUrl":null,"permalink":"/en/projects/project-02/","section":"Projects","summary":"","title":"Project 02: static site on AWS with Terraform and GitLab CI","type":"projects"},{"content":" Problem # This is a learning lab, not professional experience with Kubernetes. The API (car_api) and the DevOps part (Kubernetes, Helm and GitOps) come from the pycodebr training, with the DevOps part by Mateus Muller. The goal was to follow the training and reproduce the infrastructure and the pipeline, with the adjustments listed below.\nView the repository on GitLab\nProject architecture # Project architecture GitLab CI images, chart and GitOps ECR images and Helm chart GitOps repository Flux reconciles the HelmRelease AWS · EKS (us-east-1) Flux ALB Ingress car-api Deployment and Service External Secrets SSM Parameter Store RDS PostgreSQL Local environment · kind Kong · Ingress car-api · 3 réplicas PostgreSQL Conceptual diagram based on the implementation documented in the GitLab repository. Local (kind): a kind cluster with one control-plane and two workers. Kong receives requests through an Ingress and forwards them to the car-api Service. PostgreSQL runs in the cluster as a StatefulSet. AWS (EKS): an EKS cluster on version 1.34, with a node group of t4g.small instances. The Ingress uses the ALB from the AWS Load Balancer Controller. The database is an RDS PostgreSQL 17.6 instance in private subnets. Delivery: the pipeline builds the images and the Helm chart, pushes them to ECR, and updates the version in the GitOps repository. Flux reconciles the HelmRelease in the cluster. Technical decisions and reasoning # Ingress on the active path, Gateway API outside it: each environment\u0026rsquo;s values enable Ingress: kong locally and alb on AWS. The chart\u0026rsquo;s HTTPRoute is disabled. A Gateway API manifest exists in the local directory, but it is not part of the path set by the values. Secrets through External Secrets: on AWS, DATABASE_URL and JWT_SECRET_KEY come from SSM parameters, through a ClusterSecretStore. The chart creates the Secret from them. This keeps credentials out of the chart. GitOps with Flux: the pipeline does not apply manifests to the cluster. It updates the HelmRelease version in the GitOps repository, and Flux reconciles it. The cluster state is versioned in a separate repository. AWS Terraform: VPC with three AZs, public and private subnets, and one NAT gateway. EKS with CoreDNS, kube-proxy, VPC CNI and the pod identity agent. RDS in a private subnet, an OIDC role for the CI, and add-ons for the Load Balancer Controller, Cluster Autoscaler, metrics server and External Secrets. Adjustments to the training: three car-api replicas locally (the reference uses one); external-dns disabled in Terraform; car search by color and filter by owner in the API code. Of the files present in both repositories, 40 are identical to the official one. The others differ in versions, names and configuration. Real challenges # Race in the Load Balancer Controller webhook: Terraform disables enableServiceMutatorWebhook. The Service webhook is registered before the controller pods have endpoints, and that interfered with other Helm releases in the same apply. A comment in the code documents the reason. What I would do differently # One repository for code and pipeline: the .gitlab-ci.yml runs in the car_api repository. The copy inside project-03 is identical, but in that folder it does not run, because the labs repository has no CI at its root. Image version: the build job uses the fixed tag 1.0.0. The VERSION variable is computed but not used. Test values in GitOps: the HelmRelease contains test credentials in plain text. I would move everything to SSM and remove these values from the repository. Exposure: the ALB Ingress is enabled, but with an example host and no TLS in the HelmRelease. I would only expose the service with a domain and a certificate configured. Technologies # FastAPI, SQLAlchemy, Alembic, PostgreSQL, Docker, Kubernetes (kind and EKS), Helm, Flux, External Secrets, Kong, AWS (EKS, RDS, ECR, SSM, ALB), Terraform, GitLab CI, MkDocs.\n","externalUrl":null,"permalink":"/en/projects/project-03/","section":"Projects","summary":"","title":"Lab 01: Car API on Kubernetes (learning lab)","type":"projects"},{"content":"Infrastructure professional with experience in production operations, servers, networking, automation and service support. I work with Linux, Windows, Docker, Ansible, GitLab CI and observability, with responsibility for maintenance, upgrades and incident resolution. I am currently deepening my work in Cloud and Infrastructure as Code with Terraform and AWS.\nDownload résumé (PDF) Experience # IT Technician · Gtek – Soluções Tecnológicas (April 2021 – present · Gramado, RS, Brazil)\nI am responsible for infrastructure operations, including maintenance, upgrades, troubleshooting and automation. I have autonomy to lead changes, and I align with management on those with the highest impact or risk.\nI automated restore tests for 11 Docker stacks on isolated networks, validating integrity with checksums. I moved deployments on four servers to a controlled flow through GitLab CI and Ansible, with five stages, mandatory validation with ansible-playbook --check and post-deploy checks. I automated the deploy cycle of 11 stacks with Ansible, including sync, preview, deploy and validation. I configured the pipeline to run only when there are changes in the stack, and kept images available for rollback. I implemented backup integrity checks with gzip -t and a minimum size, blocking off-site rotation when there is no recent validated copy. I migrated 22 files with credentials to Ansible Vault, restricted permissions and pinned known_hosts in CI. I also replaced privileged: true with group_add in 11 Compose files. Education # UCS - Universidade de Caxias do Sul · Bachelor\u0026rsquo;s degree in Computer Networks and Systems Administration (closed in April 2022)\nCertifications # Sophos Firewall v21.0 - Engineer MTCNA: MikroTik Certified Network Associate Novo Pentest Profissional Linux training GPON networks Languages # Portuguese (native) and English (intermediate).\nContact # E-mail: natan@nrz1.com.br LinkedIn: linkedin.com/in/natangodoy-it ","externalUrl":null,"permalink":"/en/about/","section":"About","summary":"","title":"About","type":"about"},{"content":"","externalUrl":null,"permalink":"/en/authors/","section":"Authors","summary":"","title":"Authors","type":"authors"},{"content":"","externalUrl":null,"permalink":"/en/categories/","section":"Categories","summary":"","title":"Categories","type":"categories"},{"content":"Infrastructure professional with experience in production operations, servers, networking, automation and service support. I work with Linux, Windows, Docker, Ansible, GitLab CI and observability, with responsibility for maintenance, upgrades and incident resolution. I am currently deepening my work in Cloud and Infrastructure as Code with Terraform and AWS.\nGitLab LinkedIn E-mail Cloud \u0026amp; IaC specialization roadmap # Public labs that complement my professional experience in on-premises infrastructure.\nView Cloud \u0026amp; IaC roadmap Month 01 Oct 2025 ✓ Linux ✓ Shell script Month 02 Nov-Dec 2025 ✓ AWS: fundamentals Month 03 Dec 2025-Jan 2026 ✓ Docker Month 04 Feb-Mar 2026 ✓ Kubernetes: fundamentals Month 05 Mar-Apr 2026 ✓ Terraform ✓ Ansible Month 06 Apr 2026 ✓ CI/CD with GitLab Month 07 May-Jul 2026 ✓ Monitoring Month 08 Jun 2026 ✓ Advanced AWS and serverless Month 09 Jul-Aug 2026 ✓ Kubernetes: part 2 Month 10 Aug 2026 ✓ Python for DevOps Month 11 Oct-Nov 2026 ✓ Final projects × Month 01 · Oct 2025\nLinux Completed\nShell script Completed\nMaterial3\n▶ Course: Complete Linux Training Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Linux Repositorygitlab.com ▶ Training: Bash (YouTube playlist) Videowww.youtube.com × Month 02 · Nov-Dec 2025\nAWS: fundamentals Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: AWS: fundamentals Repositorygitlab.com × Month 03 · Dec 2025-Jan 2026\nDocker Completed\nMaterial2\n▶ Course: Docker Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Docker Repositorygitlab.com × Month 04 · Feb-Mar 2026\nKubernetes: fundamentals Completed\nMaterial2\n▶ Course: Kubernetes Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Kubernetes: fundamentals Repositorygitlab.com × Month 05 · Mar-Apr 2026\nTerraform Completed\nAnsible Completed\nMaterial4\n▶ Course: Terraform for AWS Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Terraform Repositorygitlab.com ▶ Training: Ansible (YouTube playlist) Videowww.youtube.com \u0026lt;/\u0026gt; Labs: Ansible Repositorygitlab.com × Month 06 · Apr 2026\nCI/CD with GitLab Completed\nMaterial2\n▶ Further study: GitLab CI (YouTube playlist) Videowww.youtube.com \u0026lt;/\u0026gt; Labs: CI/CD with GitLab Repositorygitlab.com × Month 07 · May-Jul 2026\nMonitoring Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: Monitoring Repositorygitlab.com × Month 08 · Jun 2026\nAdvanced AWS and serverless Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: Advanced AWS and serverless Repositorygitlab.com × Month 09 · Jul-Aug 2026\nKubernetes: part 2 Completed\nMaterial2\n▶ Course: Kubernetes Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Kubernetes: part 2 Repositorygitlab.com × Month 10 · Aug 2026\nPython for DevOps Completed\nMaterial2\n▶ Course: Python for DevOps Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Python for DevOps Repositorygitlab.com × Month 11 · Oct-Nov 2026\nFinal projects Completed\nMaterial4\n▶ Project 01: bank-style API on infrastructure I built Project ▶ Project 02: static site on AWS with Terraform and GitLab CI Project ▶ Lab 01: Car API on Kubernetes (learning lab) Project \u0026lt;/\u0026gt; Labs: Final projects Repositorygitlab.com View Cloud \u0026amp; IaC roadmap Month 01 Oct 2025 Linux 1 topics · Completed\nTopics Processes and boot View labs Shell script 2 topics · Completed\nTopics Scripts Loops and conditionals View labs Month 02 Nov-Dec 2025 AWS: fundamentals 5 topics · Completed\nTopics EC2, EBS and snapshots EFS VPC, S3 and IAM ELB and Auto Scaling CloudWatch and CloudTrail View labs Month 03 Dec 2025-Jan 2026 Docker 5 topics · Completed\nTopics Namespaces and cgroups Image builds Multi-stage Docker Compose Swarm View labs Month 04 Feb-Mar 2026 Kubernetes: fundamentals 5 topics · Completed\nTopics Cluster YAML Namespaces Deployments Services View labs Month 05 Mar-Apr 2026 Terraform 5 topics · Completed\nTopics Providers VPC and subnets Remote state Variables and modules Pre-commit and validate View labs Ansible 3 topics · Completed\nTopics Inventory Playbooks and facts Roles, handlers and tags View labs Month 06 Apr 2026 CI/CD with GitLab 4 topics · Completed\nTopics Pipelines and rules Artifacts and cache Environments Deploy with Ansible View labs Month 07 May-Jul 2026 Monitoring 5 topics · Completed\nTopics Prometheus and PromQL Grafana Alertmanager and Telegram Burn-rate alerts Loki and Promtail View labs Month 08 Jun 2026 Advanced AWS and serverless 4 topics · Completed\nTopics EKS Lambda SQS, SNS and EventBridge DynamoDB and global tables View labs Month 09 Jul-Aug 2026 Kubernetes: part 2 3 topics · Completed\nTopics kind and kubeadm Communication debugging etcd and backup View labs Month 10 Aug 2026 Python for DevOps 5 topics · Completed\nTopics Fundamentals Best practices Kubernetes CLI FastAPI Alert router View labs Month 11 Oct-Nov 2026 Final projects 3 topics · Completed\nTopics Project 01: Proxmox, Terraform, Ansible and observability Project 02: site on AWS with Terraform and GitLab CI Lab 01: Car API on Kubernetes (learning lab) View labs × Month 01 · Oct 2025\nLinux Completed\nShell script Completed\nMaterial3\n▶ Course: Complete Linux Training Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Linux Repositorygitlab.com ▶ Training: Bash (YouTube playlist) Videowww.youtube.com × Month 02 · Nov-Dec 2025\nAWS: fundamentals Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: AWS: fundamentals Repositorygitlab.com × Month 03 · Dec 2025-Jan 2026\nDocker Completed\nMaterial2\n▶ Course: Docker Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Docker Repositorygitlab.com × Month 04 · Feb-Mar 2026\nKubernetes: fundamentals Completed\nMaterial2\n▶ Course: Kubernetes Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Kubernetes: fundamentals Repositorygitlab.com × Month 05 · Mar-Apr 2026\nTerraform Completed\nAnsible Completed\nMaterial4\n▶ Course: Terraform for AWS Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Terraform Repositorygitlab.com ▶ Training: Ansible (YouTube playlist) Videowww.youtube.com \u0026lt;/\u0026gt; Labs: Ansible Repositorygitlab.com × Month 06 · Apr 2026\nCI/CD with GitLab Completed\nMaterial2\n▶ Further study: GitLab CI (YouTube playlist) Videowww.youtube.com \u0026lt;/\u0026gt; Labs: CI/CD with GitLab Repositorygitlab.com × Month 07 · May-Jul 2026\nMonitoring Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: Monitoring Repositorygitlab.com × Month 08 · Jun 2026\nAdvanced AWS and serverless Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: Advanced AWS and serverless Repositorygitlab.com × Month 09 · Jul-Aug 2026\nKubernetes: part 2 Completed\nMaterial2\n▶ Course: Kubernetes Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Kubernetes: part 2 Repositorygitlab.com × Month 10 · Aug 2026\nPython for DevOps Completed\nMaterial2\n▶ Course: Python for DevOps Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Python for DevOps Repositorygitlab.com × Month 11 · Oct-Nov 2026\nFinal projects Completed\nMaterial4\n▶ Project 01: bank-style API on infrastructure I built Project ▶ Project 02: static site on AWS with Terraform and GitLab CI Project ▶ Lab 01: Car API on Kubernetes (learning lab) Project \u0026lt;/\u0026gt; Labs: Final projects Repositorygitlab.com Projects # Project 01: bank-style API on infrastructure I built Project 02: static site on AWS with Terraform and GitLab CI Lab 01: Car API on Kubernetes (learning lab) ","externalUrl":null,"permalink":"/en/","section":"Natan Godoy","summary":"","title":"Natan Godoy","type":"page"},{"content":"Three hands-on projects, each focused on one part of the delivery cycle: infrastructure, pipeline, deployment and observability. The code and notes are in the labs-cloud-devops repository.\nView the repository on GitLab Project 01: API with its own infrastructure On-premises lab with Proxmox, Terraform, Ansible, network segmentation and observability.\nProxmox Terraform Ansible GitLab CI Prometheus View technical case Project 02: static site on AWS with Terraform and GitLab CI Static site provisioned on AWS with Terraform and a GitLab CI pipeline.\nAWS Terraform Docker GitLab CI View technical case Lab 01: Car API on Kubernetes (learning lab) Deploying an API on Kubernetes with Helm and GitOps, as a learning exercise.\nKubernetes Helm Flux EKS FastAPI View technical case ","externalUrl":null,"permalink":"/en/projects/","section":"Projects","summary":"","title":"Projects","type":"projects"},{"content":"An 11-month study plan. Each month covers one or more technologies, and each one links to the labs published in the repository.\nView Cloud \u0026amp; IaC roadmap Month 01 Oct 2025 Linux 1 topics · Completed\nTopics Processes and boot View labs Shell script 2 topics · Completed\nTopics Scripts Loops and conditionals View labs Month 02 Nov-Dec 2025 AWS: fundamentals 5 topics · Completed\nTopics EC2, EBS and snapshots EFS VPC, S3 and IAM ELB and Auto Scaling CloudWatch and CloudTrail View labs Month 03 Dec 2025-Jan 2026 Docker 5 topics · Completed\nTopics Namespaces and cgroups Image builds Multi-stage Docker Compose Swarm View labs Month 04 Feb-Mar 2026 Kubernetes: fundamentals 5 topics · Completed\nTopics Cluster YAML Namespaces Deployments Services View labs Month 05 Mar-Apr 2026 Terraform 5 topics · Completed\nTopics Providers VPC and subnets Remote state Variables and modules Pre-commit and validate View labs Ansible 3 topics · Completed\nTopics Inventory Playbooks and facts Roles, handlers and tags View labs Month 06 Apr 2026 CI/CD with GitLab 4 topics · Completed\nTopics Pipelines and rules Artifacts and cache Environments Deploy with Ansible View labs Month 07 May-Jul 2026 Monitoring 5 topics · Completed\nTopics Prometheus and PromQL Grafana Alertmanager and Telegram Burn-rate alerts Loki and Promtail View labs Month 08 Jun 2026 Advanced AWS and serverless 4 topics · Completed\nTopics EKS Lambda SQS, SNS and EventBridge DynamoDB and global tables View labs Month 09 Jul-Aug 2026 Kubernetes: part 2 3 topics · Completed\nTopics kind and kubeadm Communication debugging etcd and backup View labs Month 10 Aug 2026 Python for DevOps 5 topics · Completed\nTopics Fundamentals Best practices Kubernetes CLI FastAPI Alert router View labs Month 11 Oct-Nov 2026 Final projects 3 topics · Completed\nTopics Project 01: Proxmox, Terraform, Ansible and observability Project 02: site on AWS with Terraform and GitLab CI Lab 01: Car API on Kubernetes (learning lab) View labs × Month 01 · Oct 2025\nLinux Completed\nShell script Completed\nMaterial3\n▶ Course: Complete Linux Training Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Linux Repositorygitlab.com ▶ Training: Bash (YouTube playlist) Videowww.youtube.com × Month 02 · Nov-Dec 2025\nAWS: fundamentals Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: AWS: fundamentals Repositorygitlab.com × Month 03 · Dec 2025-Jan 2026\nDocker Completed\nMaterial2\n▶ Course: Docker Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Docker Repositorygitlab.com × Month 04 · Feb-Mar 2026\nKubernetes: fundamentals Completed\nMaterial2\n▶ Course: Kubernetes Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Kubernetes: fundamentals Repositorygitlab.com × Month 05 · Mar-Apr 2026\nTerraform Completed\nAnsible Completed\nMaterial4\n▶ Course: Terraform for AWS Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Terraform Repositorygitlab.com ▶ Training: Ansible (YouTube playlist) Videowww.youtube.com \u0026lt;/\u0026gt; Labs: Ansible Repositorygitlab.com × Month 06 · Apr 2026\nCI/CD with GitLab Completed\nMaterial2\n▶ Further study: GitLab CI (YouTube playlist) Videowww.youtube.com \u0026lt;/\u0026gt; Labs: CI/CD with GitLab Repositorygitlab.com × Month 07 · May-Jul 2026\nMonitoring Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: Monitoring Repositorygitlab.com × Month 08 · Jun 2026\nAdvanced AWS and serverless Completed\nMaterial1\n\u0026lt;/\u0026gt; Labs: Advanced AWS and serverless Repositorygitlab.com × Month 09 · Jul-Aug 2026\nKubernetes: part 2 Completed\nMaterial2\n▶ Course: Kubernetes Basic to Advanced Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Kubernetes: part 2 Repositorygitlab.com × Month 10 · Aug 2026\nPython for DevOps Completed\nMaterial2\n▶ Course: Python for DevOps Coursewww.udemy.com \u0026lt;/\u0026gt; Labs: Python for DevOps Repositorygitlab.com × Month 11 · Oct-Nov 2026\nFinal projects Completed\nMaterial4\n▶ Project 01: bank-style API on infrastructure I built Project ▶ Project 02: static site on AWS with Terraform and GitLab CI Project ▶ Lab 01: Car API on Kubernetes (learning lab) Project \u0026lt;/\u0026gt; Labs: Final projects Repositorygitlab.com ","externalUrl":null,"permalink":"/en/roadmap/","section":"Roadmap","summary":"","title":"Roadmap","type":"roadmap"},{"content":"","externalUrl":null,"permalink":"/en/series/","section":"Series","summary":"","title":"Series","type":"series"},{"content":"","externalUrl":null,"permalink":"/en/tags/","section":"Tags","summary":"","title":"Tags","type":"tags"}]