본문 바로가기
🌩️ 클라우드,배포/클라우드

🧀 카부캠 클라우드 특강 1

by 정람지 2024. 8. 7.

클라우드 수업이다. 우리를 comb형 인재로 만들고자 하는 것 같지만 어림도없지일자형찍먹자간다

kargo : cloud native CI/CD

D2hub : private container image registry

 

Jenkins:  CI/CD를 위한 오픈 소스 도구로, 소프트웨어 개발 생명주기를 자동화/코드 변경 사항이 발생할 때마다 자동으로 빌드, 테스트, 배포 과정을 수행

 

도커 : 컨테이너를 생성하고 관리하는 가장 인기 있는 플랫폼 중 하나 /. 개발자들이 애플리케이션과 그 종속성을 컨테이너에 넣어 이식성, 즉 다른 환경에서도 똑같이 실행할 수 있게 해줌 / 이는 개발에서 배포에 이르기까지 일관된 환경을 제공함으로써, "내 컴퓨터에서는 작동하는데"라는 문제를 피할 수 있게 

 

쿠버네티스 : 컨테이너 오케스트레이션 도구로, 많은 수의 컨테이너를 자동으로 배포, 확장 및 관리할 수 있게 해줌 /  클라우드 서비스에서 많이 사용되며, 도커와 같은 컨테이너 시스템을 효율적으로 관리하고 자동화하는 데 중점을 둠. 예를 들어, 애플리케이션의 트래픽이 증가하면 쿠버네티스는 자동으로 리소스를 추가하여 컨테이너의 수를 늘릴 수 있음

 


🧀 클라우드란?

컴퓨팅 자원(CPU, 메모리, 디스크 등) 을 원하는 대로 가져다 쓰고 사용한 만큼 비용을 지불하는 것

- 서버 직접 구매 시 고려해야 할 위치, 전력, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중 가능

- 하지만 클라우드 장애로 인해 서비스 장애가 일어날 수 있음. 외부 의존적

 


🧀 클라우드 네이티브 애플리케이션 개발이란?

클라우드의 이점을 최대한 활용할 수 있도록 애플리케이션을 구축 배포하는 방식 

마이크로서비스 (Microservices)

마이크로서비스는 큰 애플리케이션을 작고, 독립적으로 배포 가능한 작은 서비스로 분할하는 아키텍처 스타일

각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 개발, 배포, 확장

이 접근 방식은 복잡한 애플리케이션을 더 관리하기 쉽고, 유지보수가 용이하게 만들어줌

DB까지 전부 분리! 작은 부분 변경 시 전체 아키텍처의 검수가 필요

데브옵스 (DevOps)

데브옵스는 개발(Dev)과 운영(Ops)의 합성어

소프트웨어 개발의 Agile 접근 방식을 IT 운영에 적용하는 문화, 운동, 또는 관행

목표는 개발과 운영 팀 간의 협업을 증진하여 더 빠른 소프트웨어 배포와 품질 향상을 이루는 것

컨테이너 (Containers)

컨테이너는 도커(Docker) 같은 기술을 사용하여 애플리케이션을 운영체제 수준에서 격리시키는 가벼운 가상화 방법입니다. 각 컨테이너는 서로 독립적이며, 다른 컨테이너와 운영체제와는 분리된 자체 실행 환경을 갖습니다. 이는 마이크로서비스 아키텍처에서 애플리케이션의 독립적인 배포 및 관리를 가능하게 합니다.

도커가 필요한 이유~

CI/CD (Continuous Integration/Continuous Delivery)

CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Delivery)를 의미

 개발자들이 코드 변경 사항을 주기적으로 빌드 및 테스트하여 공유 리포지토리에 병합함으로써, 소프트웨어 개발 프로세스에서 발생할 수 있는 문제를 빨리 찾아 해결

이 과정은 자동화되어 있으며, 개발부터 배포까지의 사이클을 단축시키고 효율성을 높임

빌드/ 테스트 완료된 코드를 리뷰하는 방식 쓰기


🧀 컨테이너 실습

 

chroot

 

chroot 명령어로 도커 컨테이너와 유사한 환경을 만들어보는 실습

chroot 명령을 사용하여 Docker 컨테이너와 유사한 환경을 만들어보면 컨테이너가 작동하는 원리를 기본적인 수준에서 쉽게 이해할 수 있습니다. 이 핸즈온을 통해 다음 개념을 배울 수 있습니다:

dennis.k8s.kr

..djfuqek..