SlideShare a Scribd company logo
1 of 99
Download to read offline
Yesung Lee 2023.06.24
Bon Voyage!
Docker & Kubernetes
안전하고 아름다운 코드를 추구하는 개발자 이예성 입니다.
"Safe, Clean, Reliable and Elegnace"
"No meno, No memory"
Hello! I am Isaac Lee 👋
Experience
- 쎄트렉아이 DevOps 엔지니어
- 충남대학교 학부생 연구 인턴
- 쎄트렉아이 학부생 인턴
- 케어커넥트 Founder / CTO
Community
- K-DEVCON 운영진 & UNIV 리드
- CPython 컨트리뷰터
- 노마드코더 번역 장학생
Contact Me
📧 Email: isaac.lee.3412@gmail.com
Ⓖ Github: Isaac-Lee
ℹ LinkedIn: Isaac(Yesung) Lee
📝 Blog: 아이작의 작(作)
Before we start...
시작하기 전에...
Before we start...
시작하기 전에...
DevOps가 뭔가요?
What is DevOps?
데브옵스란?
개발팀 운영팀
What is DevOps?
데브옵스란?
기능 개발
SW 설계
프로덕트 기획
기능 테스트
SW 배포
프로덕트 운영
개발팀 운영팀
What is DevOps?
데브옵스란?
기능 개발
SW 설계
프로덕트 기획
기능 테스트
SW 배포
프로덕트 운영
개발팀 운영팀
버그 리포트
SW에 대한 피드백
What is DevOps?
데브옵스란?
기능 개발
SW 설계
프로덕트 기획
기능 테스트
SW 배포
프로덕트 운영
개발팀 운영팀
버그 리포트
SW에 대한 피드백
What is DevOps?
데브옵스란?
기능 개발
SW 설계
프로덕트 기획
기능 테스트
SW 배포
프로덕트 운영
개발팀 운영팀
버그 리포트
SW에 대한 피드백
What is DevOps?
데브옵스란?
기능 개발 프로덕트 운영
개발팀 운영팀
What is DevOps?
데브옵스란?
기능 개발 프로덕트 운영
개발팀 운영팀
새로운 기능
추가!!
안정적인
운영!!
What is DevOps?
데브옵스란?
기능 개발 프로덕트 운영
개발팀 운영팀
새로운 기능
추가!!
안정적인
운영!!
새로운 기능
배포해줘!
What is DevOps?
데브옵스란?
기능 개발 프로덕트 운영
개발팀 운영팀
새로운 기능
추가!!
안정적인
운영!!
새로운 기능
배포해줘!
넣지마
버그생겨!
What is DevOps?
데브옵스란?
개발팀 운영팀
What is DevOps?
데브옵스란?
자동 빌드
자동 테스트
자동 배포
모니터링
운영 자동화
What is DevOps?
데브옵스란?
Contents
Bon Voyage! Docker / Kubernetes
• From scratch
• With container
• With Kubernetes
• With K8s + CD
• With K8s + CI + CD
Contents
Bon Voyage! Docker / Kubernetes
• From scratch
• With container
• With Kubernetes
• With K8s + CD
• With K8s + CI + CD
점점 더 자동화...!
- "개발은 역시 손맛"
- 개발 / 테스트 / 배포 모두 직접 하기
From scratch
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
개발
환경설정
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 하나 하나 직접
환경을 만들어야지!
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 하나 하나 직접
환경을 만들어야지!
Python 3.9
Django 4.2
PostgreSQL 16
Python 3.9
Django 4.2
PostgreSQL 16
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 하나 하나 직접
환경을 만들어야지!
Python 3.9
Django 4.2
PostgreSQL 16
Python 3.9
Django 4.2
PostgreSQL 16
아니 외 않되?
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
개발
환경설정
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정 테스트
From scratch
개발 / 테스트 / 배포 모두 직접 하기
테스트 해주세요!
From scratch
개발 / 테스트 / 배포 모두 직접 하기
테스트 해주세요!
안되는데요...?
From scratch
개발 / 테스트 / 배포 모두 직접 하기
제 컴퓨터에서는
잘 되던데.....
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정 테스트
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정 빌드
From scratch
개발 / 테스트 / 배포 모두 직접 하기
다 만들었어요!
안되는데요...?
From scratch
개발 / 테스트 / 배포 모두 직접 하기
제 컴퓨터에서는
잘 되던데.....
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정 빌드
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
서버로
복사
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
서버
내리기
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
빌드 파일
교체
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
배포
테스트
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
서버
올리기
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
배포
완료
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 다 만들었다!
배포해야지~
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 다 만들었다!
배포해야지~
아니 외 않되?
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 내 컴퓨터에서는
잘 되던데...
From scratch
개발 / 테스트 / 배포 모두 직접 하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
서버로
복사
서버
내리기
빌드 파일
교체
배포
테스트
서버
올리기
- Docker container를 사용하기
- "제 컴퓨터에서는 되던데..." 그만하기
- 개발, 배포를 좀 더 쉽게
With container
With container
Docker container를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
컨테이너
이미지
Pull
이미지
버전 교체
배포 완료
컨테이너
이미지
Pull
With container
Docker container를 사용하기
• 애플리케이션을 실행에 필요한 모든것을 패키징화 하는 가상화 기술
• 라이브러리, 시스템도구, 코드 및 런타임 등 설치해야하는 모든 것
• 호스트 OS와 독립
With container
Docker container를 사용하기
• 컨테이너를 쓰는 경우
• 경량화된 인프라가 필요한 경우
• 빠른 시작과 종료가 중요한 경우
• 서비스의 확장성이 필요한 경우
• 일관된 환경과 이식성이 중요한 경우
• 가상머신을 쓰는 경우
• 완전한 운영체제가 필요한 경우
• 높은 수준의 격리와 보안이 필요한 경우
• 여러 운영체제를 사용해야 하는 경우
• 하드웨어를 에뮬레이션 해야하는 경우
With container
Docker container를 사용하기
• 컨테이너 이미지: 애플리케이션을 실행하는데 필요한 모든 요소를 담고 있는 사진
With container
Docker container를 사용하기
• 컨테이너 이미지: 애플리케이션을 실행하는데 필요한 모든 요소를 담고 있는 사진
사진대로 주세요
어디서든 똑같이
같은 환경을 사용 가능
With container
Docker container를 사용하기
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 서버에 배포된
이미지를 받아야지!
Python 3.9
Django 4.2
PostgreSQL 16
Python 3.9
Django 4.2
PostgreSQL 16
이미지 Pull, Run, 끝
다 만들었어요!
이미지 Pull 했어요!
잘 되네요~
With container
Docker container를 사용하기
From scratch
개발 / 테스트 / 배포 모두 직접 하기
서버
로컬 다 만들었다!
배포해야지~
이미지 Push, Pull, 끝.
Concept of Container
Container image and registry
• 컨테이너
• 실제로 돌아가는 애플리케이션
• 컨테이너 이미지 대로 실행
• 컨테이너를 Run 함
Concept of Container
Container image and registry
• 컨테이너 이미지
• 애플리케이션의 설계도
• 컨테이너 실행에 필요한 모든 것을
담고 있음
• 컨테이너 이미지는 Build 됨
Concept of Container
Container image and registry
• 레지스트리
• 설계도 보관함
• 코드는 Github
컨테이너 이미지는 Docker Hub
• 이미지를 Push, Pull 함
With container
Docker container를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
컨테이너
이미지
Pull
이미지
버전 교체
배포 완료
컨테이너
이미지
Pull
With container
Docker container를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
컨테이너
이미지
Pull
이미지
버전 교체
배포 완료
컨테이너
이미지
Pull
이미지
버전 교체
서버
내리기
서버
올리기
아직도... 서버를 껐다 켜야해...
- Kubernetes를 사용하기
- "서버 껐다켜기 싫어요"
- 배포, 확장, 관리를 좀 더 쉽게
With Kubernetes
With Kubernetes
Kubernetes를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
쿠버네티스
명세 수정
명세
Apply
배포 완료
컨테이너
이미지
Pull
• 컨테이너화 된 애플리케이션의
배포, 스케일링 및 관리를 자동화하는 오픈 소스 플랫폼
• 클러스터 단위로 구축하여 하나의 Master 노드 아래 여러 Worker 노드로 구성
• YAML이나 JSON을 통해 선언적으로 애플리케이션의 상태과 구성을 기술
• TMIs
• Kubernetes의 손잡이가 7개인 이유?
Kubernetes의 근본이 되는 구글의 프로젝트 이름이 "Project 7 of Nine" 이었기 때문
With Kubernetes
Kubernetes를 사용하기
Control Plane
Master Node
Compute Machines
Worker Node
With Kubernetes
Kubernetes를 사용하기
Registry
컨테이너 실행을 위한
이미지 보관함
Pod
컨테이너화 된 애플리케이션
With Kubernetes
Kubernetes를 사용하기
아니 그래서 Pod가 뭔데 자꾸 Pod, Pod, 하는거야?
With Kubernetes
Kubernetes를 사용하기
• 쿠버네티스는 컨테이너를 묶은 Pod를 단위로 서비스를 배포
• Pod는 하나 이상의 컨테이너로 구성
container container container container container container
Pod Pod Pod
Worker Node Worker Node
With Kubernetes
Kubernetes를 사용하기
With Kubernetes
Kubernetes를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
쿠버네티스
명세 수정
명세
Apply
배포 완료
컨테이너
이미지
Pull
With Kubernetes
Kubernetes를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
쿠버네티스
명세 수정
명세
Apply
배포 완료
컨테이너
이미지
Pull
쿠버네티스
명세 수정
명세
Apply
nginx/deployment.yaml
With Kubernetes
Kubernetes를 사용하기
• 쿠버네티스 명세
• 어떤 kind로 배포 할건지?
• 몇 개의 서비스를 배포 할건지?
• 쿠버네티스에서 사용하는 메타데이터
nginx/deployment.yaml
With Kubernetes
Kubernetes를 사용하기
• 애플리케이션 명세
• 컨테이너의 이름은 뭘로?
• 컨테이너 이미지는 어떤거?
• 사용하는 포트 등등..
With Kubernetes
Kubernetes를 사용하기
배포 하고 싶은 이미지 버전으로
명세를 수정
버전관리는 필수...!
명세는 Github과 같은 저장소에 보관
With Kubernetes
Kubernetes를 사용하기
깔끔하게 끝.
나머지는 쿠버네티스가 알아서 해준다.
With Kubernetes
Kubernetes를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
쿠버네티스
명세 수정
명세
Apply
배포 완료
컨테이너
이미지
Pull
쿠버네티스
명세 수정
명세
Apply
이제 서버를 안꺼도 된다..!
- Kubernetes와 ArgoCD를 사용하기
- 쿠버네티스 근데 이제 CD를 곁들인...
- "배포할 때 손 안쓰고 싶어요"
With K8s + CD
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
생성하고 종료하기
손으로 해야한다.
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
애플리케이션 생성/수정/삭제
네트워크 생성/수정/삭제
저장소 생성/수정/삭제
언제 다 손으로 해..
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
쿠버네티스
명세 수정
명세
Apply
배포 완료
컨테이너
이미지
Pull
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
Continuous Deployment
지속적 배포
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
쿠버네티스
명세 수정
컨테이너
이미지
Pull
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
Continuous Deployment
지속적 배포
배포 완료
With Kubernetes
Kubernetes를 사용하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
쿠버네티스
명세 수정
컨테이너
이미지
Pull
쿠버네티스
명세 수정
손으로 배포 안해도 된다!
배포 완료
쿠버네티스
명세 수정
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
• GitOps란?
• 인프라, 애플리케이션을 코드로,
코드는 Git으로 관리
• ArgoCD는 GitOps의 구현체
• 명세의 변경을 감지하여
배포를 자동화
ArgoCD로 배포 자동화 하기
• 쿠버네티스 명세 수정
• git push
• ArgoCD가 변화를 감지
• 클러스터에 자동 배포
With K8s + CD
Kubernetes와 ArgoCD를 사용하기
- Jenkins 추가하기
- "반복되는 빌드 명령 그만..."
- 테스트, 빌드를 더 쉽게
With K8s + CI + CD
개발
쿠버네티스
명세 수정
배포 완료
컨테이너
이미지
Pull
With K8s + CI + CD
Jenkins 추가하기
엥?
진짜 이것만 하면 되나요?
With K8s + CI + CD
Jenkins 추가하기
개발 테스트 빌드
컨테이너
이미지
Build
컨테이너
이미지
Push
With K8s + CI + CD
Jenkins 추가하기
git
pull
개발 테스트 빌드
git
push
컨테이너
이미지
Build
컨테이너
이미지
Push
매번 해야한다.
PR 하나 마다... feature 하나 마다...
언제 다 손으로 해..
With K8s + CI + CD
Jenkins 추가하기
Continuous Integration
지속적 통합
• 테스트 / 빌드 자동화
• 컨테이너 이미지 build / push 자동화
• 진행상황 알림 - slack, 이메일
• 쿠버네티스 명세 수정 자동화 (약간의 꼼수)
개발
쿠버네티스
명세 수정
배포 완료
컨테이너
이미지
Pull
With K8s + CI + CD
Jenkins 추가하기
엥?
진짜 이것만 하면 되나요?
개발
쿠버네티스
명세 수정
배포 완료
컨테이너
이미지
Pull
With K8s + CI + CD
Jenkins 추가하기
네.
나머지는 Jenkins에게 양보하세요.
- 정리하기
Wrap Up
Wrap Up
정리하기
개발 테스트 빌드
서버로
복사
서버
내리기
배포
완료
빌드 파일
교체
배포
테스트
서버
올리기
개발
환경설정
Wrap Up
정리하기
개발
쿠버네티스
명세 수정
배포 완료
컨테이너
이미지
Pull
Wrap Up
정리하기 - 쎄트렉아이에서는...
개발
쿠버네티스
명세 수정
테스트
환경 배포
컨테이너
이미지
Pull
One more thing...
개발자 구합니다.
어떤 개발자요?
개발자 구합니다.
지상국 Application Program 개발
지상국 Application Program 개발
지상국 위성 비행역학 Program 개발자
어떤 개발자요?
개발자 구합니다.
• 서로가 서로에게 도움을 주고 받을 수 있는 개발 문화
• 활발한 코드 리뷰 (선임자도 후임자에게, 후임자도 선임자에게 자유롭게...!)
• 서로의 기여를 인정하고 같이 성장
• 강건한 SW를 만들기 위한 테스트 영역 강화
• 테스트 전담 팀이 존재
• 정적/동적 테스트를 통해 SW가 안전하고 좋은 성능으로 동작할 수 있도록 프로세스 구축
• 개발자에게는 부담없이 리팩토링을 수행할 수 있도록 하는 안전장치 마련
어떤 문화를 지향하나요?
Thank you

More Related Content

What's hot

[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)MinGeun Park
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101Hazzim Anaya
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) Amazon Web Services Korea
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDSunnyvale
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdBilly Yuen
 
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | Edureka
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | EdurekaAzure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | Edureka
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | EdurekaEdureka!
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as CodeRobert Greiner
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...Edureka!
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservicesAnil Allewar
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes waysparkfabrik
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기YongSung Yoon
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)용호 최
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...Amazon Web Services Korea
 
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트Amazon Web Services Korea
 

What's hot (20)

CI/CD with GitHub Actions
CI/CD with GitHub ActionsCI/CD with GitHub Actions
CI/CD with GitHub Actions
 
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
[140315 박민근] 젠킨스를 이용한 자동빌드 시스템 구축하기(ci)
 
CI/CD (DevOps) 101
CI/CD (DevOps) 101CI/CD (DevOps) 101
CI/CD (DevOps) 101
 
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트) 마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
마이크로서비스 기반 클라우드 아키텍처 구성 모범 사례 - 윤석찬 (AWS 테크에반젤리스트)
 
Azure DevOps
Azure DevOpsAzure DevOps
Azure DevOps
 
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCDKubernetes GitOps featuring GitHub, Kustomize and ArgoCD
Kubernetes GitOps featuring GitHub, Kustomize and ArgoCD
 
CI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cdCI:CD in Lightspeed with kubernetes and argo cd
CI:CD in Lightspeed with kubernetes and argo cd
 
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | Edureka
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | EdurekaAzure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | Edureka
Azure DevOps Tutorial | Developing CI/ CD Pipelines On Azure | Edureka
 
An introduction to DevOps
An introduction to DevOpsAn introduction to DevOps
An introduction to DevOps
 
Infrastructure as Code
Infrastructure as CodeInfrastructure as Code
Infrastructure as Code
 
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
What is DevOps | DevOps Introduction | DevOps Training | DevOps Tutorial | Ed...
 
Introduction to DevOps
Introduction to DevOpsIntroduction to DevOps
Introduction to DevOps
 
Introduction to microservices
Introduction to microservicesIntroduction to microservices
Introduction to microservices
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
Gitops: the kubernetes way
Gitops: the kubernetes wayGitops: the kubernetes way
Gitops: the kubernetes way
 
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
[Spring Camp 2018] 11번가 Spring Cloud 기반 MSA로의 전환 : 지난 1년간의 이야기
 
[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)[넥슨] kubernetes 소개 (2018)
[넥슨] kubernetes 소개 (2018)
 
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
[AWS Dev Day] 앱 현대화 | DevOps 개발자가 되기 위한 쿠버네티스 핵심 활용 예제 알아보기 - 정영준 AWS 솔루션즈 아키...
 
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트
[애플리케이션 현대화 및 개발] 현대적 애플리케이션 개발의 필수, 앱 배포 및 인프라 구성 자동화 - 김필중, AWS 솔루션즈 아키텍트
 
Welcome to Azure Devops
Welcome to Azure DevopsWelcome to Azure Devops
Welcome to Azure Devops
 

Similar to Bon voyage Docker_Kubernetes

[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기Chanwoong Kim
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트Chanwoong Kim
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기Sumin Byeon
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기SeungYong Oh
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호용호 최
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발Jinuk Kim
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center어형 이
 
Windows Kubernetes Deep Dive
Windows Kubernetes Deep DiveWindows Kubernetes Deep Dive
Windows Kubernetes Deep DiveJung Hyun Nam
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016Amazon Web Services Korea
 
Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정Kyuhyun Byun
 
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편negabaro
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재Hankyo
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)Sang Don Kim
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Changyeop Kim
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debuggingJongwon Han
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptxssuserf875e6
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 rockplace
 
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정양재동 코드랩
 

Similar to Bon voyage Docker_Kubernetes (20)

[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
[NDC18] 만들고 붓고 부수고 - 〈야생의 땅: 듀랑고〉 서버 관리 배포 이야기
 
[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트[NDC17] 왓 스튜디오 서비스파트
[NDC17] 왓 스튜디오 서비스파트
 
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
[야생의 땅: 듀랑고] 지형 관리 완전 자동화 - 생생한 AWS와 Docker 체험기
 
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기[NDC17] Kubernetes로 개발서버 간단히 찍어내기
[NDC17] Kubernetes로 개발서버 간단히 찍어내기
 
Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호Docker & Kubernetes 기초 - 최용호
Docker & Kubernetes 기초 - 최용호
 
DevOps Study
DevOps StudyDevOps Study
DevOps Study
 
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
NDC13: DVCS와 코드리뷰 그리고 자동화를 통한 쾌속 개발
 
Toward kubernetes native data center
Toward kubernetes native data centerToward kubernetes native data center
Toward kubernetes native data center
 
Windows Kubernetes Deep Dive
Windows Kubernetes Deep DiveWindows Kubernetes Deep Dive
Windows Kubernetes Deep Dive
 
AWS + Docker in Vingle
AWS + Docker in VingleAWS + Docker in Vingle
AWS + Docker in Vingle
 
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
AWS와 함께하는 DevOps이야기 :: 박선용 :: AWS Summit Seoul 2016
 
Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정Docker와 DevOps에서 Serverless와 NoOps로의 여정
Docker와 DevOps에서 Serverless와 NoOps로의 여정
 
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편aws/docker/rails를 활용한 시스템 구축/운용 - docker편
aws/docker/rails를 활용한 시스템 구축/운용 - docker편
 
01.개발환경 교육교재
01.개발환경 교육교재01.개발환경 교육교재
01.개발환경 교육교재
 
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
[TD 2015] windows server에서 만나보는 docker와 windows container(최한홍)
 
Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기Kubernetes를 통한 laravel 개발프로세스 개선하기
Kubernetes를 통한 laravel 개발프로세스 개선하기
 
20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging20170813 django api server unit test and remote debugging
20170813 django api server unit test and remote debugging
 
2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx2022.08 멘토링 자료.pptx
2022.08 멘토링 자료.pptx
 
Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성 Jenkins를 활용한 Openshift CI/CD 구성
Jenkins를 활용한 Openshift CI/CD 구성
 
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
[W3C HTML5 2017] Docker & DevOps에서 Serverless & NoOps로의 여정
 

Bon voyage Docker_Kubernetes

  • 1. Yesung Lee 2023.06.24 Bon Voyage! Docker & Kubernetes
  • 2. 안전하고 아름다운 코드를 추구하는 개발자 이예성 입니다. "Safe, Clean, Reliable and Elegnace" "No meno, No memory" Hello! I am Isaac Lee 👋 Experience - 쎄트렉아이 DevOps 엔지니어 - 충남대학교 학부생 연구 인턴 - 쎄트렉아이 학부생 인턴 - 케어커넥트 Founder / CTO Community - K-DEVCON 운영진 & UNIV 리드 - CPython 컨트리뷰터 - 노마드코더 번역 장학생 Contact Me 📧 Email: isaac.lee.3412@gmail.com Ⓖ Github: Isaac-Lee ℹ LinkedIn: Isaac(Yesung) Lee 📝 Blog: 아이작의 작(作)
  • 4. Before we start... 시작하기 전에... DevOps가 뭔가요?
  • 6. What is DevOps? 데브옵스란? 기능 개발 SW 설계 프로덕트 기획 기능 테스트 SW 배포 프로덕트 운영 개발팀 운영팀
  • 7. What is DevOps? 데브옵스란? 기능 개발 SW 설계 프로덕트 기획 기능 테스트 SW 배포 프로덕트 운영 개발팀 운영팀 버그 리포트 SW에 대한 피드백
  • 8. What is DevOps? 데브옵스란? 기능 개발 SW 설계 프로덕트 기획 기능 테스트 SW 배포 프로덕트 운영 개발팀 운영팀 버그 리포트 SW에 대한 피드백
  • 9. What is DevOps? 데브옵스란? 기능 개발 SW 설계 프로덕트 기획 기능 테스트 SW 배포 프로덕트 운영 개발팀 운영팀 버그 리포트 SW에 대한 피드백
  • 10. What is DevOps? 데브옵스란? 기능 개발 프로덕트 운영 개발팀 운영팀
  • 11. What is DevOps? 데브옵스란? 기능 개발 프로덕트 운영 개발팀 운영팀 새로운 기능 추가!! 안정적인 운영!!
  • 12. What is DevOps? 데브옵스란? 기능 개발 프로덕트 운영 개발팀 운영팀 새로운 기능 추가!! 안정적인 운영!! 새로운 기능 배포해줘!
  • 13. What is DevOps? 데브옵스란? 기능 개발 프로덕트 운영 개발팀 운영팀 새로운 기능 추가!! 안정적인 운영!! 새로운 기능 배포해줘! 넣지마 버그생겨!
  • 15. What is DevOps? 데브옵스란? 자동 빌드 자동 테스트 자동 배포 모니터링 운영 자동화
  • 17. Contents Bon Voyage! Docker / Kubernetes • From scratch • With container • With Kubernetes • With K8s + CD • With K8s + CI + CD
  • 18. Contents Bon Voyage! Docker / Kubernetes • From scratch • With container • With Kubernetes • With K8s + CD • With K8s + CI + CD 점점 더 자동화...!
  • 19. - "개발은 역시 손맛" - 개발 / 테스트 / 배포 모두 직접 하기 From scratch
  • 20. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정
  • 21. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 개발 환경설정
  • 22. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 하나 하나 직접 환경을 만들어야지!
  • 23. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 하나 하나 직접 환경을 만들어야지! Python 3.9 Django 4.2 PostgreSQL 16 Python 3.9 Django 4.2 PostgreSQL 16
  • 24. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 하나 하나 직접 환경을 만들어야지! Python 3.9 Django 4.2 PostgreSQL 16 Python 3.9 Django 4.2 PostgreSQL 16 아니 외 않되?
  • 25. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 개발 환경설정
  • 26. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 테스트
  • 27. From scratch 개발 / 테스트 / 배포 모두 직접 하기 테스트 해주세요!
  • 28. From scratch 개발 / 테스트 / 배포 모두 직접 하기 테스트 해주세요! 안되는데요...?
  • 29. From scratch 개발 / 테스트 / 배포 모두 직접 하기 제 컴퓨터에서는 잘 되던데.....
  • 30. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 테스트
  • 31. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 빌드
  • 32. From scratch 개발 / 테스트 / 배포 모두 직접 하기 다 만들었어요! 안되는데요...?
  • 33. From scratch 개발 / 테스트 / 배포 모두 직접 하기 제 컴퓨터에서는 잘 되던데.....
  • 34. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 빌드
  • 35. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 서버로 복사
  • 36. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 서버 내리기
  • 37. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 빌드 파일 교체
  • 38. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 배포 테스트
  • 39. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 서버 올리기
  • 40. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 배포 완료
  • 41. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 다 만들었다! 배포해야지~
  • 42. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 다 만들었다! 배포해야지~ 아니 외 않되?
  • 43. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 내 컴퓨터에서는 잘 되던데...
  • 44. From scratch 개발 / 테스트 / 배포 모두 직접 하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정 서버로 복사 서버 내리기 빌드 파일 교체 배포 테스트 서버 올리기
  • 45. - Docker container를 사용하기 - "제 컴퓨터에서는 되던데..." 그만하기 - 개발, 배포를 좀 더 쉽게 With container
  • 46. With container Docker container를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 컨테이너 이미지 Pull 이미지 버전 교체 배포 완료 컨테이너 이미지 Pull
  • 47. With container Docker container를 사용하기 • 애플리케이션을 실행에 필요한 모든것을 패키징화 하는 가상화 기술 • 라이브러리, 시스템도구, 코드 및 런타임 등 설치해야하는 모든 것 • 호스트 OS와 독립
  • 49. • 컨테이너를 쓰는 경우 • 경량화된 인프라가 필요한 경우 • 빠른 시작과 종료가 중요한 경우 • 서비스의 확장성이 필요한 경우 • 일관된 환경과 이식성이 중요한 경우 • 가상머신을 쓰는 경우 • 완전한 운영체제가 필요한 경우 • 높은 수준의 격리와 보안이 필요한 경우 • 여러 운영체제를 사용해야 하는 경우 • 하드웨어를 에뮬레이션 해야하는 경우 With container Docker container를 사용하기
  • 50. • 컨테이너 이미지: 애플리케이션을 실행하는데 필요한 모든 요소를 담고 있는 사진 With container Docker container를 사용하기
  • 51. • 컨테이너 이미지: 애플리케이션을 실행하는데 필요한 모든 요소를 담고 있는 사진 사진대로 주세요 어디서든 똑같이 같은 환경을 사용 가능 With container Docker container를 사용하기
  • 52. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 서버에 배포된 이미지를 받아야지! Python 3.9 Django 4.2 PostgreSQL 16 Python 3.9 Django 4.2 PostgreSQL 16 이미지 Pull, Run, 끝
  • 53. 다 만들었어요! 이미지 Pull 했어요! 잘 되네요~ With container Docker container를 사용하기
  • 54. From scratch 개발 / 테스트 / 배포 모두 직접 하기 서버 로컬 다 만들었다! 배포해야지~ 이미지 Push, Pull, 끝.
  • 55. Concept of Container Container image and registry • 컨테이너 • 실제로 돌아가는 애플리케이션 • 컨테이너 이미지 대로 실행 • 컨테이너를 Run 함
  • 56. Concept of Container Container image and registry • 컨테이너 이미지 • 애플리케이션의 설계도 • 컨테이너 실행에 필요한 모든 것을 담고 있음 • 컨테이너 이미지는 Build 됨
  • 57. Concept of Container Container image and registry • 레지스트리 • 설계도 보관함 • 코드는 Github 컨테이너 이미지는 Docker Hub • 이미지를 Push, Pull 함
  • 58. With container Docker container를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 컨테이너 이미지 Pull 이미지 버전 교체 배포 완료 컨테이너 이미지 Pull
  • 59. With container Docker container를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 컨테이너 이미지 Pull 이미지 버전 교체 배포 완료 컨테이너 이미지 Pull 이미지 버전 교체 서버 내리기 서버 올리기 아직도... 서버를 껐다 켜야해...
  • 60. - Kubernetes를 사용하기 - "서버 껐다켜기 싫어요" - 배포, 확장, 관리를 좀 더 쉽게 With Kubernetes
  • 61. With Kubernetes Kubernetes를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 쿠버네티스 명세 수정 명세 Apply 배포 완료 컨테이너 이미지 Pull
  • 62. • 컨테이너화 된 애플리케이션의 배포, 스케일링 및 관리를 자동화하는 오픈 소스 플랫폼 • 클러스터 단위로 구축하여 하나의 Master 노드 아래 여러 Worker 노드로 구성 • YAML이나 JSON을 통해 선언적으로 애플리케이션의 상태과 구성을 기술 • TMIs • Kubernetes의 손잡이가 7개인 이유? Kubernetes의 근본이 되는 구글의 프로젝트 이름이 "Project 7 of Nine" 이었기 때문 With Kubernetes Kubernetes를 사용하기
  • 63. Control Plane Master Node Compute Machines Worker Node With Kubernetes Kubernetes를 사용하기
  • 64. Registry 컨테이너 실행을 위한 이미지 보관함 Pod 컨테이너화 된 애플리케이션 With Kubernetes Kubernetes를 사용하기
  • 65. 아니 그래서 Pod가 뭔데 자꾸 Pod, Pod, 하는거야? With Kubernetes Kubernetes를 사용하기
  • 66. • 쿠버네티스는 컨테이너를 묶은 Pod를 단위로 서비스를 배포 • Pod는 하나 이상의 컨테이너로 구성 container container container container container container Pod Pod Pod Worker Node Worker Node With Kubernetes Kubernetes를 사용하기
  • 67. With Kubernetes Kubernetes를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 쿠버네티스 명세 수정 명세 Apply 배포 완료 컨테이너 이미지 Pull
  • 68. With Kubernetes Kubernetes를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 쿠버네티스 명세 수정 명세 Apply 배포 완료 컨테이너 이미지 Pull 쿠버네티스 명세 수정 명세 Apply
  • 69. nginx/deployment.yaml With Kubernetes Kubernetes를 사용하기 • 쿠버네티스 명세 • 어떤 kind로 배포 할건지? • 몇 개의 서비스를 배포 할건지? • 쿠버네티스에서 사용하는 메타데이터
  • 70. nginx/deployment.yaml With Kubernetes Kubernetes를 사용하기 • 애플리케이션 명세 • 컨테이너의 이름은 뭘로? • 컨테이너 이미지는 어떤거? • 사용하는 포트 등등..
  • 71. With Kubernetes Kubernetes를 사용하기 배포 하고 싶은 이미지 버전으로 명세를 수정 버전관리는 필수...! 명세는 Github과 같은 저장소에 보관
  • 72. With Kubernetes Kubernetes를 사용하기 깔끔하게 끝. 나머지는 쿠버네티스가 알아서 해준다.
  • 73. With Kubernetes Kubernetes를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 쿠버네티스 명세 수정 명세 Apply 배포 완료 컨테이너 이미지 Pull 쿠버네티스 명세 수정 명세 Apply 이제 서버를 안꺼도 된다..!
  • 74. - Kubernetes와 ArgoCD를 사용하기 - 쿠버네티스 근데 이제 CD를 곁들인... - "배포할 때 손 안쓰고 싶어요" With K8s + CD
  • 75. With K8s + CD Kubernetes와 ArgoCD를 사용하기 생성하고 종료하기 손으로 해야한다.
  • 76. With K8s + CD Kubernetes와 ArgoCD를 사용하기 애플리케이션 생성/수정/삭제 네트워크 생성/수정/삭제 저장소 생성/수정/삭제 언제 다 손으로 해..
  • 77. 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 쿠버네티스 명세 수정 명세 Apply 배포 완료 컨테이너 이미지 Pull With K8s + CD Kubernetes와 ArgoCD를 사용하기 Continuous Deployment 지속적 배포
  • 78. 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 쿠버네티스 명세 수정 컨테이너 이미지 Pull With K8s + CD Kubernetes와 ArgoCD를 사용하기 Continuous Deployment 지속적 배포 배포 완료
  • 79. With Kubernetes Kubernetes를 사용하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push 쿠버네티스 명세 수정 컨테이너 이미지 Pull 쿠버네티스 명세 수정 손으로 배포 안해도 된다! 배포 완료 쿠버네티스 명세 수정
  • 80. With K8s + CD Kubernetes와 ArgoCD를 사용하기
  • 81. With K8s + CD Kubernetes와 ArgoCD를 사용하기
  • 82. With K8s + CD Kubernetes와 ArgoCD를 사용하기 • GitOps란? • 인프라, 애플리케이션을 코드로, 코드는 Git으로 관리 • ArgoCD는 GitOps의 구현체 • 명세의 변경을 감지하여 배포를 자동화
  • 83. ArgoCD로 배포 자동화 하기 • 쿠버네티스 명세 수정 • git push • ArgoCD가 변화를 감지 • 클러스터에 자동 배포 With K8s + CD Kubernetes와 ArgoCD를 사용하기
  • 84. - Jenkins 추가하기 - "반복되는 빌드 명령 그만..." - 테스트, 빌드를 더 쉽게 With K8s + CI + CD
  • 85. 개발 쿠버네티스 명세 수정 배포 완료 컨테이너 이미지 Pull With K8s + CI + CD Jenkins 추가하기 엥? 진짜 이것만 하면 되나요?
  • 86. With K8s + CI + CD Jenkins 추가하기 개발 테스트 빌드 컨테이너 이미지 Build 컨테이너 이미지 Push
  • 87. With K8s + CI + CD Jenkins 추가하기 git pull 개발 테스트 빌드 git push 컨테이너 이미지 Build 컨테이너 이미지 Push 매번 해야한다. PR 하나 마다... feature 하나 마다... 언제 다 손으로 해..
  • 88. With K8s + CI + CD Jenkins 추가하기 Continuous Integration 지속적 통합 • 테스트 / 빌드 자동화 • 컨테이너 이미지 build / push 자동화 • 진행상황 알림 - slack, 이메일 • 쿠버네티스 명세 수정 자동화 (약간의 꼼수)
  • 89. 개발 쿠버네티스 명세 수정 배포 완료 컨테이너 이미지 Pull With K8s + CI + CD Jenkins 추가하기 엥? 진짜 이것만 하면 되나요?
  • 90. 개발 쿠버네티스 명세 수정 배포 완료 컨테이너 이미지 Pull With K8s + CI + CD Jenkins 추가하기 네. 나머지는 Jenkins에게 양보하세요.
  • 92. Wrap Up 정리하기 개발 테스트 빌드 서버로 복사 서버 내리기 배포 완료 빌드 파일 교체 배포 테스트 서버 올리기 개발 환경설정
  • 94. Wrap Up 정리하기 - 쎄트렉아이에서는... 개발 쿠버네티스 명세 수정 테스트 환경 배포 컨테이너 이미지 Pull
  • 97. 개발자 구합니다. 지상국 Application Program 개발 지상국 Application Program 개발 지상국 위성 비행역학 Program 개발자 어떤 개발자요?
  • 98. 개발자 구합니다. • 서로가 서로에게 도움을 주고 받을 수 있는 개발 문화 • 활발한 코드 리뷰 (선임자도 후임자에게, 후임자도 선임자에게 자유롭게...!) • 서로의 기여를 인정하고 같이 성장 • 강건한 SW를 만들기 위한 테스트 영역 강화 • 테스트 전담 팀이 존재 • 정적/동적 테스트를 통해 SW가 안전하고 좋은 성능으로 동작할 수 있도록 프로세스 구축 • 개발자에게는 부담없이 리팩토링을 수행할 수 있도록 하는 안전장치 마련 어떤 문화를 지향하나요?