{"id":25647268,"url":"https://github.com/krake747/hangar-747","last_synced_at":"2026-03-01T19:33:00.141Z","repository":{"id":278048451,"uuid":"934331088","full_name":"krake747/hangar-747","owner":"krake747","description":"Journeying into DevOps","archived":false,"fork":false,"pushed_at":"2026-01-01T16:58:55.000Z","size":22842,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-01-06T22:58:39.778Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/krake747.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-02-17T16:45:26.000Z","updated_at":"2026-01-01T16:58:58.000Z","dependencies_parsed_at":"2025-04-14T10:38:59.245Z","dependency_job_id":null,"html_url":"https://github.com/krake747/hangar-747","commit_stats":null,"previous_names":["krake747/hangar-747"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/krake747/hangar-747","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krake747%2Fhangar-747","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krake747%2Fhangar-747/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krake747%2Fhangar-747/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krake747%2Fhangar-747/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/krake747","download_url":"https://codeload.github.com/krake747/hangar-747/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/krake747%2Fhangar-747/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29981426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T16:35:47.903Z","status":"ssl_error","status_checked_at":"2026-03-01T16:35:44.899Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-23T11:28:54.074Z","updated_at":"2026-03-01T19:33:00.129Z","avatar_url":"https://github.com/krake747.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DevOps Journey via hangar-747\n\nThis document outlines the roadmap, goals, and topics I will cover to build a strong foundational\nunderstanding of DevOps and cloud-native engineering. I already work as a full-stack developer\n(frontend and backend), and now I want to extend my skills into platform engineering, automation,\nand cloud operations.\n\n## Goals\n\nBuild a practical foundation in DevOps principles and modern cloud infrastructure. To achieve this,\nI will learn how to design, deploy, and operate cloud-native applications.\n\n## Tech stack\n\n- [Go](https://go.dev/) and [.NET](https://dotnet.microsoft.com/en-us/) for building cloud tooling\n  and microservices\n- [OpenTofu](https://opentofu.org/)/[Terraform](https://developer.hashicorp.com/terraform) for\n  infrastructure as code\n- [Azure](https://azure.microsoft.com/en-us/get-started/azure-portal) as the cloud platform\n- [Docker](https://www.docker.com/) for containerization of applications\n- [Kubernetes (K8s)](https://kubernetes.io/) as the orchestration layer\n- [Helm](https://helm.sh/) for application packaging and deployment\n\nI will also establish consistent workflows for CI/CD, environment management, and observability.\n\n## Roadmap\n\nI am currently progressing through the foundational stages of DevOps with a focus on cloud-native\ndevelopment and Azure. This section outlines where I am right now and the concrete goals I plan to\nachieve next.\n\n### 1. Learn Go basics\n\n**Goal:** Build simple cloud-native utilities and services.\n\n**Focus areas:**\n\n- basic syntax, modules, and struct/method patterns\n- concurrency fundamentals\n- building CLI tools\n- building small HTTP services\n\n`/golang` directory contains my Go learning projects, and the `/dotnet` directory contains my .NET\nlearning projects.\n\nThis phase builds the foundational programming skills for developing cloud-native applications and\ntooling.\n\n### 2. Build CI/CD pipelines with GitHub Actions\n\n**Goal:** Automatically build and test Go and .NET projects.\n\n**Focus areas:**\n\n- build container images\n- push images to Azure Container Registry\n- prepare workflows for future Kubernetes and infrastructure automation\n\nThis phase establishes the automation backbone of the entire DevOps workflow.\n\nSee the `.github` folder for CI/CD workflow files and `infra/` for deployment and infrastructure\nautomation workflows.\n\n### 3. Learn Docker for Containerization\n\n**Goal:** Containerize Go and .NET applications for consistent deployment.\n\n**Focus areas:**\n\n- write Dockerfiles for Go and .NET apps\n- build and run Docker images locally\n- push images to Azure Container Registry (ACR)\n- understand container networking and volumes\n- local development with Docker Compose\n\nThis phase enables packaging applications into portable containers for deployment across\nenvironments.\n\nSee the `dotnet/` directory for Dockerfiles and the `compose` orchestration and containerization\nexamples and `infra/` for ACR integration.\n\n### 4. Learn OpenTofu (Terraform) to create cloud environments\n\n**Goal:** Provision Azure resources using infrastructure as code and build reusable OpenTofu\nmodules.\n\n**Focus areas:**\n\n- Azure Container Registry (ACR) for storing Docker images\n- Azure Container Apps (ACA) environment as an initial lightweight hosting platform\n- Azure Storage Account for Terraform state storage\n\nThis phase introduces infrastructure as code principles, enabling automated and version-controlled\ncloud resource management.\n\nFor detailed Terraform configurations, see [/infra/azure/README.md](./infra/azure/README.md). and a\nlive deployed resource\n[Web Api](https://krake-api-dev.mangoplant-23fd7721.westeurope.azurecontainerapps.io/) (The first\nresponse might be slow due the container's cold start)\n\n### 5. Learn Kubernetes fundamentals\n\n**Goal:** Learn the basics of deploying and exposing services using Kubernetes with Minikube.\n\n**Focus areas:**\n\n- deploy a simple web API to Minikube cluster\n- create Kubernetes deployments and services\n- expose services via LoadBalancer, NodePort, or Ingress\n- configure basic networking and port forwarding\n- test API accessibility from outside the cluster\n\nFor hands-on examples, see the `/k8s` directory containing Kubernetes manifests and deployment\nscripts.\n\n### 6. Learn Helm for Application Packaging and Deployment\n\n**Goal:** Package, configure, and deploy applications consistently across environments using Helm\ncharts.\n\n**Focus areas:**\n\n- understand Helm concepts (charts, templates, values, releases)\n- create a Helm chart for an existing Kubernetes application\n- parameterize deployments using `values.yaml`\n- manage environment-specific configuration (dev, local, prod)\n- install, upgrade, and rollback releases\n- structure charts for reuse and maintainability\n\nFor hands-on examples, see the `/helm` directory containing Helm charts and example values files\nused to deploy applications to local Kubernetes clusters.\n\n### 7. Deploy to a local Kubernetes cluster (mini PC)\n\n**Goal:** Deploy and run applications on a local Kubernetes cluster hosted on a mini PC, simulating\na small production-like environment.\n\n**Focus areas:**\n\n- install and run a lightweight Kubernetes distribution (e.g. k3s)\n- deploy containerized APIs to the cluster\n- create Kubernetes deployments, services, and ingress resources\n- expose services to the local network\n- configure basic storage and resource limits\n- verify application accessibility from other devices on the network\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrake747%2Fhangar-747","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrake747%2Fhangar-747","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrake747%2Fhangar-747/lists"}