내일채움공제 가입자를 위한 무료 이러닝 연수로 강의 듣기!
경영이나 창업 아니면 기계 쪽 강의도 있고 엑셀이나 파워포인트 강의도 있는 거 같던데 나는 머 IT 강의로ㅎㅎㅎㅎㅎㅎ
IT 강의는 하나당 평균적으로 10만원 내외인데 무료에다가 집으로 수강강의 해당 책도 배송해주고 나름 좋은듯하당👀


클라우드 컴퓨팅 개요

 

클라우드 컴퓨팅

  컴퓨터 시스템 리소스를 필요시 바로 제공(온디맨드 방식 )하는 것.

   일종의 정보들을 자신의 컴퓨터가 아닌 클라우드에 연결된 다른 컴퓨터로 처리하는 기술.

   최소한의 관리 노력으로 빠르게 예비 및 릴리스를 가능하게 함.

  인프라스트럭처에 시간과 비용을 들이기 보다 원래 하려고 했던 사업에 더 집중할 수 있게 됨.

  일반적으로 종량제 모델을 사용( 내가 사용한 시간 대비 비용만 지불하면 된다는 뜻)

 

서버

: 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템 혹은 장치를 의미.

 

다양한 형태의 서버 구성

  Home Server : 집에서 직접 간단한 홈 서버 구축 가능

  Internet Data Center(IDC) : IDC에 공간을 임대해서 서버를 구축할 수 있음

  Cloud Service : AWS와 같은 클라우드 서비스를 이용해서 서버를 구축할 수 있음

온프레미스와 클라우드

  온프레미스는 자체적인 서버를 구축해서 직접 서버를 운영하는 방식을 의미.

  클라우드는 AWS와 같은 클라우드 프로바이더에 제공되는 서비스를 이용해서 직접 서버를 구축하지 않고 서버를 임대해서 사용하는 방식을 의미.

대표적인 클라우드 서비스는 AWS, GCP, MS Azure 등등등

Cloud Service의 장점

  신속성 : 서버 구축과 삭제를 클릭 몇 번을 이용해서 몇 분 내로 신속하게 진행할 수 있음.

  유연성 : 트래픽이 몰릴때는 서버 대수를 늘렸다가, 트래픽이 감소할 경우 서버 대수를 줄이는 형태로 유연하게 서버 운영이 가능.

  경제성 : 클라우드 서비스는 사용한 시간만큼만 비용을 지불하면 되기 때문에 경제적.

 

DevOps와 MSA

 

MSA(MicroService Architecture)

  애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화 하는 서비스 지향 아키텍쳐 스타일의 일종인 소프트웨어 개발 기법으로,
최근에 각광받는 서비스 기법 중 하나(공식적인 정의는 없다고 함)

 

애플리케이션을 더 작은 단위 서비스로 분해하기 때문에 모듈성 개선 및 탄력성의 장점

 서비스 레벨로 팀을 나눠서 개발하기 때문에 적은 인원이 들어갈거고 그렇게 되면 동기화 작업이나 독립적인 전개(deploy)시 유기적이게 가능해짐

  단점으로는 모듈 간 통합 테스트가 어렵고 설정들을 통합적으로 잘 관리해야 하는 점

 

 서비스 레벨에서 서로 통신할때는 자체 회사별 통신 방법을 따르거나 http.

 기능별로 분리(예를 들면 웹 화면 보여주는 프로트엔드, 영화추천 추천엔진, 비드오 스트리밍을 위한 스트리밍 등 )하면,
최적의 조건에 부합하는 바에 따라 각기 다른 프로그래밍 언어, DB 등 스프트웨어 환경을 사용하여 구현 가능

  애플리케이션의 사소한 부분의 변경은 적은 수의 서비스 빌드, 재전개만 필요로 함

 

모놀리티 아키텍처(Monolithic Architecture)

하나의 어플리케이션의 모든 기능이 하나의 구조에 통합되어 있는 형태로 전통적 소프트웨어 개발 방법론에서 자주 사용

하나의 구성환경만 관리하면 되기 때문에 개발 및 테스트가 용이해서 소규모 개발에 적합

 

DevOps

   소프트웨어의 개발(Development)과 운영(Operations)의 합성어로 개발자와 정보기술 전문가 간의 소통, 협업 및 통합 강조하는 개발환경이나 문화

 하나의 팀이 개발만 하는 것이 아닌 개발하고 실제 그것의 인프라적인 운영을 같이 하는 형태라 생각

   제품 출시까지 걸리는 기간 단축 및 복구 시에도 더 빠른 복구 가능의 장점

   운영 프로세스의 예측 가능성, 효율성, 유지보수 가능성을 극대화 하는 것이 목적

 

IaC(Infrastructure as Code)

IaC

 기계가 읽을 수 있는 정의 파일들을 통한 컴퓨터 데이터 센터의 관리 및 프로비저닝 과정

 인프라적인 것들을 코드로 관리하기 때문에 비용 절감의 효과 및 배포 속도 향상

 배포 과정에서의 오류 감소 효과 또한 기대 가능

 많이 사용되는 툴로는 Chef, Puppet, Ansible, Saltstack, Terraform

 

IaC 구성하는 정의 파일

선언형 프로그래밍 방식을 취함

일반적으로 JSON, YAML, XML 혹은 자체적으로 사용하는 도메인 특화 언어(DSL)로 구성된 정의 파일 이용

 

신뢰성 있는 IaC 툴을 위한 조건

❏  멱등성 : 동일한 스크립트나 작업을 악영향 없이 여러 번 실행 가능해야 함

❏  사전 점검: 스크립트 실행 전 스크립트가 실제 시스템에 미칠 영향 사전 점검 가능해야 함

❏  사후 점검: 스크립트 실행 후 시스템 변경의 성공적 완료 및 에러 발생 시 에러 원인 쉽게 확인 가능해야 함