요즘 IBM 클라우드 강의를 듣는데, 영어라 그런지 기초 개념임에도 불구하고 제대로 알지 못하고 넘어가는 경우가 많다
그래서! 아예 나 같은 사람들을 위해! cloud 용어를 설명하는 단 한 문장!을 낱낱이 분석하는 게시물을 써 보고자 한다
물론 ㅠ_ㅠ 이미 빠삭한 멋진 개발자 분들이 많지만..나와 같은 문과생들도 이 세상엔 많기에!
그들을 위해 한 번 해 보고자 한다
이러한 형태는 내가 구독하는 전기가오리의 논문 속 한 문장 분석 콘텐츠를 참고했다 :>
(철학덕후를 위한 전기가오리 구독하기 : www.philo-electro-ray.org/)
[용어 정리]
* 애플리케이션
application은 a computer program that is designed for a particular purpose로, 한국어로 말하면 응용 프로그램이다 ㅋ
비슷하게, 클라우드에서 애플리케이션은 인터넷을 통해 액세스하는 소프트웨어이다.
핵심은 '인터넷을 통해'로, 서버를 사서 해당 서버 내에서 돌아가는 기존 방식과 달리, 웹 애플리케이션은 일부 혹은 전부가 클라우드 내에서 처리된다
즉 어떤 하나의 장치 내에서 만들어지는 것이 아니라, 근거지(?)를 클라우드에 두어서 알고 보면 원격으로! 저 멀리에서 작동되고 있는 소프트웨어를 말하는 것이다! 로컬 장치+클라우드를 함께 사용하는 하이브리드 방식이 많이 사용된다
SaaS, LaaS, PaaS 안에 클라우드 애플리케이션이 소속되어 있다!! 클라우드 공부하면 무조건 알게 되는 저 개념으로 애플리케이션을 분류할 수 있다는 것.
사실상 클라우드의 기본 개념이 애플리케이션이라고 볼 수 있다. 그냥 클라우드 쓰는 소프트웨어는 일단 애플리케이션이라고 한다
* 컨테이너화 / 컨테이너
컨테이너는 애플리케이션을 패키지화하고 분리하는 기술이다. 말 그대로 그룹화한다는 것이다.
쉽게 말하자면 우리가 생각하는 찐 컨테이너 개념과 유사하다
이 안에 애플리케이션 묶음을 넣고, 이렇게 만들어진 컨테이너를 환경 속에서 안정적이고 편리하게 이동시키는 것이다
이걸 왜 만드냐!! 담당 영역을 분리하려고 그런다. 하나의 프로그램을 만들기 위해서는 여러 기술이 필요하기에, 각 담당자들이 각자의 담당 기술에 집중하기 위해 분리하고 이를 퍼즐처럼 필요한 곳에 끼워맞추기 위해 이렇게 컨테이너 작업을 거치는 것이다!
사실 더 파고들면 내용이 복잡한데 이를 설명한 게시물을 보면 이해가 쉬울 것이다
developer.ibm.com/kr/cloud/2019/02/01/easy_container_kubernetes/
* 배포한다 = container deployment
복잡한 애플리케이션을 빠르게 빌드하고, 사용자들에게 퍼뜨리는 것이다
빠르게 거대한 규모의 애플리케이션 환경을 구축하여 해당 응용 프로그램을 사용할 수 있게 만드는 기술이라고 한다.
이 때 '컨테이너 배포'라는 용어를 굳이! 사용하는 것은, 클라우드 및 컨테이너 도구(쿠버네티스 등등)를 사용하지 않는 경우 원래 엄청나게 느리고 비싸기 때문이다. 서버에서 서버로 하나하나 보내줘야 하기에 느린 듯 싶다.
하지만 이러한 도구를 사용하면 이러한 배포를 동시에 빠르게 진행할 수 있다
avinetworks.com/glossary/container-deployment/
* 스케일링 = scaling containers
일단 scaling은 확장이다. 그렇기에 application scaling이란, 애플리케이션 확장이라고 번역할 수 있다
사실 container와 kubernetes의 가장 큰 특징은 신속성이다. 즉 자동화된 프로세스를 통해 누구보다 빠르게 애플리케이션을 배포하는 것이 목적이다!
그런데 만약 내가 처음에 계획했던 것보다 프로그램을 키우고 싶다면?
이 때에도 쿠버네티스를 활용할 수 있는 것이다
scaling은 말 그대로 프로그램이 돌아가는 크기(서버의 크기,,프로그램 성능,,이랄까,,?) 자체를 키우는 작업이다.
kubernetes.io/blog/2016/07/autoscaling-in-kubernetes/
* 오픈소스 시스템
오픈소스란 공개적으로 접근 가능해서 불특정 다수가 수정하고 공유할 수 있는 시스템이다.
프로그램을 누구나 수정하고 만들고 배포할 수 있어야 하기에, 모두가 접근할 수 있다는 것이 특징이다
opensource.com/resources/what-open-source
* 논리적인 단위로 그룹화
여기서 문제되는 부분은 '논리적'이다
이는 영어를 직역해서 복잡해진 것이란 생각이 들어 영영사전을 찾아보았다
첫번째 뜻은 우리가 아는 말 그대로 '합리적인' 이고
두 번째 뜻을 첨부한다
capable of reasoning or of using reason in an orderly cogent fashion
여기서 중요한 것은 'orderly'같다
그러므로 내가 유추하건데 이는 합리적인 방식으로 질서 정연하게 그룹화했다! 라고 이해하면 될 듯 하다
+ container orchestration 컨테이너 오케스트레이션
쿠버네티스를 이해하기 위해 꼭 짚고 넘어가야 하는 개념이다
그러므로 위의 정의에는 포함되어 있지 않지만 설명하고자 한다
일단 위키피디아에는 orchestration is the automated configuration, coordination, and management of computer systems and software.라고 정리되어 있다
자동화된 컴퓨터 시스템 구성, 조정 및 관리라는 것인데, 쉽게 말하면 전체 프로세스 자체를 자동화한다고 이해할 수 있다
스케쥴링을 통해 컨테이너를 배치하고, 클러스터링을 통해 컨테이너가 내부통신을 할 수 있게 만들고, 서비스 디스커버리를 통해 컨테이너가 어디 배치되어 있는지 찾는 등 다양한 관리 역할을 자동적으로 수행하는 것이다
그리고 쿠버네티스는 이러한 컨테이너 오케스트레이션을 가능하게 해주는 도구 중 하나이다
[해설]
쿠버네티스는 컨테이너화 된(묶여진) 응용프로그램을 클라우드 위에서 쉽게 관리하기 위해, 자동으로 프로그램을 운영할 수 있게 만들어주는 오픈소스 시스템이다!
만약 쿠버네티스에 대해 더 알고 싶다면
blog.newrelic.com/engineering/container-orchestration-explained/
그리고 강의 및 실습을 하고 싶다면
cognitiveclass.ai/learn/containers-k8s-and-istio-on-ibm-cloud
Containers, microservices, Kubernetes, and Istio on the Cloud - Cognitive Class
Containers, microservices, Kubernetes, and Istio on the Cloud After completing this learning path, you'll understand 12-factor apps and how microservices are managed with the IBM Cloud Kubernetes Service and Istio. You'll get hands-on experience working wi
cognitiveclass.ai
추천합니다 (따봉)
* 저 또한 아직 배우는 학생이기에 당연히 틀린 개념이 있을 수 있습니다
만약! 틀린 개념이나 제가 잘못 이해하고 있는 부분이 있다면 바로 피드백 주세요!!
'Cloud' 카테고리의 다른 글
[Hackalearn] Azure&Github challenge 참여 후기 (0) | 2021.08.15 |
---|---|
[IBM]Building Cloud Native and Multicloud Applications 뱃지 취득 (0) | 2020.08.27 |