차량용 소프트웨어의 컨테이너화: 개발자 경험
이전 저의 기사에서 '자동차용 소프트웨어의 컨테이너화(Containerization)'라는 기사를 공유하였는데요, 실제 차량용 소프트웨어를 컨테이너화하면서 느꼈던 개발자들의 경험을 설명하는 기사가 있어 요약 및 공유 드립니다. ['자동차용 소프트웨어의 컨테이너화(Containerization)' Link] https://careerly.co.kr/comments/84368?utm_campaign=self-share 🌈 이전 블로그 기사에서 Podman 및 systemd를 사용하여 자동차에서 컨테이너를 실행하는 방법에 대해 논의하였으며, 관련 자주 받은 질문 3가지는 아래와 같습니다. - 첫째, Podman이나 systemd를 사용한다라는 의미는, 개발자가 쿠버네티스(이하 'K8s') 또는 Red Hat OpenShift 의 지식이나 경험을 활용할 수 없다는 것을 의미합니까? - 둘째, 개발자가 컨테이너 관리 및 배포를 위한 또 다른 새로운 프로세스를 배워야 하기 때문에 자동차 산업이 새로운 인재를 유치하는 데 어려움을 겪을까요? - 셋째, 기존 인프라와 도구에 의존하지 않고 새로운 CI/CD(지속적 통합/지속적 전달) 파이프라인을 만들어야 하는데, 이로 인해 개발 프로세스가 느려지지 않을까요? 모든 질문에 대해 "아니오" 라고 분명하게 말할 수 있고, 이유는 아래와 같습니다. 1️⃣ 컨테이너로 작업하는 경우 종종 .yaml 형식(Kubernetes YAML)으로 표현되는 K8s 오브젝트에 익숙할 것입니다. K8s YAML을 사용하여 컨테이너화된 App을 배포하는 방법을 설명하는 것은 사실상의 표준이라 할 수 있습니다. 이 K8s YAML을 활용하여 로컬 App 개발, 가상 테스트과 같은 App 배포 방법을 설명하는 모델을 만들고자 합니다. 2️⃣ Podman은 K8s YAML 파일을 입력으로 사용하여 컨테이너를 실행할 수 있습니다. 최신 동일한 Kubernetes YAML을 사용하여 Podman 또는 K8s(또는 OpenShift)를 사용하여 컨테이너를 배포하는 방법을 설명합니다. 3️⃣ kubectl apply(또는 oc apply)를 사용하여 K8s 또는 OpenShift 클러스터에 해당 애플리케이션을 배포하는 데 사용할 수 있는 K8s YAML 파일 세트(애플리케이션 배포 방법 설명)를 검색합니다. 그런 다음 동일한 파일을 사용하여 podman kube play를 사용하여 해당 App을 로컬로 배포하고 실행할 수 있습니다. 4️⃣ 이 메커니즘을 사용하여 개발자가 Podman을 사용하여 로컬에서 App을 빌드하고 테스트하는 아키텍처를 예측할 수 있습니다. 일단 빌드 및 테스트가 이상없이 만족하면, 소스 파일, Containerfile 및 Kubernetes YAML을 하나 이상의 리포지토리에 푸시할 수 있으며, 이 모든 리포지토리는 코드를 컨테이너 이미지로 컴파일하기 위해 CI(continuous integration) 파이프라인에서 사용됩니다. 그런 다음 해당 컨테이너 이미지를 Kubernetes YAML의 지침에 따라 배포하고 원하는 대로 테스트할 수 있습니다. 테스트가 통과되면 App은 다음 테스트 단계, 즉 다른 가상 테스트 단계 또는 실제 하드웨어로 이동할 수 있습니다. 이러한 모든 파일(소스, Containerfile 및 Kubernetes YAML)은 모든 Context에서 App을 실행(및 테스트)하는 데 충분합니다. ❗️ 요약하자면, K8s 지식이 IT 산업에서 자동차 부문으로 이전될 수 있다는 강한 확신이 있습니다. 이는 엔지니어가 자동차 산업에 합류할 때 배워야 하는 완전히 새로운 지식의 양을 줄이고 기존 컨테이너 에코시스템을 활용하여 컨테이너화된 App의 개발 프로세스를 가속화하는 데 도움이 될 것입니다. 원본 기사의 링크는 아래와 같습니다. 감사합니다.❤️ [Source Link] https://www.redhat.com/en/blog/containers-cars-developer-experience