kargo : cloud native CI/CD
D2hub : private container image registry
Jenkins: CI/CD를 위한 오픈 소스 도구로, 소프트웨어 개발 생명주기를 자동화/코드 변경 사항이 발생할 때마다 자동으로 빌드, 테스트, 배포 과정을 수행
도커 : 컨테이너를 생성하고 관리하는 가장 인기 있는 플랫폼 중 하나 /. 개발자들이 애플리케이션과 그 종속성을 컨테이너에 넣어 이식성, 즉 다른 환경에서도 똑같이 실행할 수 있게 해줌 / 이는 개발에서 배포에 이르기까지 일관된 환경을 제공함으로써, "내 컴퓨터에서는 작동하는데"라는 문제를 피할 수 있게
쿠버네티스 : 컨테이너 오케스트레이션 도구로, 많은 수의 컨테이너를 자동으로 배포, 확장 및 관리할 수 있게 해줌 / 클라우드 서비스에서 많이 사용되며, 도커와 같은 컨테이너 시스템을 효율적으로 관리하고 자동화하는 데 중점을 둠. 예를 들어, 애플리케이션의 트래픽이 증가하면 쿠버네티스는 자동으로 리소스를 추가하여 컨테이너의 수를 늘릴 수 있음
🧀 클라우드란?
컴퓨팅 자원(CPU, 메모리, 디스크 등) 을 원하는 대로 가져다 쓰고 사용한 만큼 비용을 지불하는 것
- 서버 직접 구매 시 고려해야 할 위치, 전력, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중 가능
- 하지만 클라우드 장애로 인해 서비스 장애가 일어날 수 있음. 외부 의존적
🧀 클라우드 네이티브 애플리케이션 개발이란?
클라우드의 이점을 최대한 활용할 수 있도록 애플리케이션을 구축 배포하는 방식
마이크로서비스 (Microservices)
마이크로서비스는 큰 애플리케이션을 작고, 독립적으로 배포 가능한 작은 서비스로 분할하는 아키텍처 스타일
각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 개발, 배포, 확장
이 접근 방식은 복잡한 애플리케이션을 더 관리하기 쉽고, 유지보수가 용이하게 만들어줌
데브옵스 (DevOps)
데브옵스는 개발(Dev)과 운영(Ops)의 합성어
소프트웨어 개발의 Agile 접근 방식을 IT 운영에 적용하는 문화, 운동, 또는 관행
목표는 개발과 운영 팀 간의 협업을 증진하여 더 빠른 소프트웨어 배포와 품질 향상을 이루는 것
컨테이너 (Containers)
컨테이너는 도커(Docker) 같은 기술을 사용하여 애플리케이션을 운영체제 수준에서 격리시키는 가벼운 가상화 방법입니다. 각 컨테이너는 서로 독립적이며, 다른 컨테이너와 운영체제와는 분리된 자체 실행 환경을 갖습니다. 이는 마이크로서비스 아키텍처에서 애플리케이션의 독립적인 배포 및 관리를 가능하게 합니다.
CI/CD (Continuous Integration/Continuous Delivery)
CI/CD는 지속적 통합(Continuous Integration)과 지속적 배포(Continuous Delivery)를 의미
개발자들이 코드 변경 사항을 주기적으로 빌드 및 테스트하여 공유 리포지토리에 병합함으로써, 소프트웨어 개발 프로세스에서 발생할 수 있는 문제를 빨리 찾아 해결
이 과정은 자동화되어 있으며, 개발부터 배포까지의 사이클을 단축시키고 효율성을 높임
빌드/ 테스트 완료된 코드를 리뷰하는 방식 쓰기
🧀 컨테이너 실습
chroot
..djfuqek..