본문 바로가기
IT,SW,Data,Cloud,코딩

도커, 컨테이너, 쿠버네티스, 마이크로서비스, 데브옵스

by 착실하게 2022. 1. 20.
반응형

1. 도커, 컨테이너, 그리고 쿠버네티스


[ 컨테이너 기술이란? ]


먼저 애플리케이션 소스코드를 개발한 이후, 컨테이너를 위한 이미지로 생성합니다.

컨테이너 이미지란, 라이브러리, 실행파일이 포함된 패키지 파일을 의미합니다.

 

[도커란? 도커의 장점은? ]

 

도커는 이러한 컨테이너 이미지를 통해 컨테이너를 실행 하고 애플리케이션이 실행됩니다.

도커가 물리서버에 있든 클라우드에 있든 애플리케이션 실행이 가능해지므로 이식성이 높습니다.

도커가 나오기 전에는, 예를 들어 가상서버를 사용하는 환경에서는 각 환경에 맞게 가상머신 이미지를 생성해야 했었는데,
컨테이너 도입 이후에는 컨테이너 이미지 하나로 aws, 애져 등 서비스 업체 환경에 상관없이 사용이 가능해졌습니다.

도커와 컨테이너를 쓰면 좋은 점들에는,
컨테이너는 운영체제가 없어서 가볍습니다.
컨테이너끼리 운영체제를 공유하므로 효율적입니다.
컨테이너가 작동하는 환경이라면 어디서든 작동이 가능합니다.

 

[쿠버네티스란? Kubernetes ]


쿠버네티스는 컨테이너의 개발과 운영을 도와줍니다.

쿠버네티스 안에는 스케쥴러와 컨트롤러가 들어 있습니다.

컨트롤러는 컨테이너 관리를 자동화하는 기능이 있습니다. 애플리케이션이 많아지면 컨트롤러가 컨테이너를 자동으로 추가 생성 합니다.

스케쥴러는 가상서버 관리를 자동화하는 기능입니다.
스케쥴러를 통해 가상서버 용량을 확인할 수 있습니다.

쿠버네티스는 스케쥴러로 용량이 부족한 가상서버를 확인하고 용량이 여유로운 서버에 컨테이너를 생성 합니다.

쿠버네티스의 장점은 어플리케이션 개발자가 가상서버 구성을 몰라도 쿠버네티스가 관리해준다는 것입니다. 또한, 자동복구 및 오토 스케일링 기능이 있어서 편리합니다.

 

[ 쿠버네티스를 관리하기 위한 솔루션들 ]

 

쿠버네티스 통합 관리 솔루션의 종류에는, 아마존의 EKS Anywhere, 구글 Cloud Anthos, 마이크로소프트의 Azure Arc등이 있습니다.

 

 

이미지 출처 1 : https://kubernetes.io/ko/docs/concepts/overview/components/ 이미지 출처 2 : https://www.redhat.com/ko/topics/microservices/what-are-microservices

 

2. MSA Microservice Architecture 마이크로서비스 아키텍쳐

 

[ 마이크로서비스란 ? ]

애플리케이션을 느슨하게 결합된 서비스들의 결합으로 만드는 것입니다.

마이크로서비스는 향후 서비스 확장에 유연하게 대응할 수 있다는 장점이 있습니다.

각 서비스가 독립적으로 실행될 수 있고, 독립적으로 배포될 수 있으며, 신기술을 기능별로 따로 적용시켜볼 수 있습니다.

그러나 구조와 서비스 간의 통신이 복잡하고, 데이터 정합성에 신경을 써야 한다는 점은 단점입니다.

또한 각 서비스끼리 API로 통신을 하며, 통신에 많은 리소스를 사용하게 될 수도 있다는 문제도 있습니다.

 

[서비스 메시 구조 Service Mesh ]

 

메시 구조는 마이크로서비스를 찾고 연결하는 과정을 자동화한 것으로, 부하 분산이 핵심 기능입니다.

마이크로 서비스 마다 사이드카가 하나 씩 있습니다.

 

[ DevOps , MLOps , DevSecOps ]

 

데브옵스란, 개발과 운영의 업무를 통합하고 자동화 하여 효율성을 높이는 방법을 말합니다.

MLOps = ML + Dev + Ops 머신러닝, 개발, 운영의 전 과정을 하나의 서비스로 제공하는 것입니다.

관련하여 상용화된 서비스들에는 아마존의 SageMaker, Azure의 ML, 구글의 Vertex.ai 등이 있습니다.

DevSecOps란, 개발의 모든 단계에서 보안 적용을 자동화 하는 것을 말합니다. 모의 해킹을 통해 서비스 전에 안전성을 확인한 후 배포합니다.

 

[ Low-code & No-code Platforms ]


No-code는 GUI로 개발하는 것이고 Low-code는 GUI개발도 가능한데 부분 부분 직접 커스터마이징 코딩이 가능한 플랫폼입니다.

Low-code Platform의 종류에는 아마존의 honeycode, 마이크로소프트의 powerapps, 세일즈포스의 라이트닝 플랫폼 등이 있습니다.

반응형

댓글