[TIL] 클라우드 기초, DevOps를 이용한 빌드/배포 자동화

Haesol Choi·2020년 9월 9일
2

TIL

목록 보기
2/3
post-thumbnail

Cloud의 등장 배경

2007년도(모바일 혁명) 부터 스마트폰이 등장하면서 컴퓨터가 늘어나고 데이터가 어마어마하게 많아지면서 이 빅데이터를 효율적으로 관리할 수 있는 방법론이 필요하게 되었다.
기존에는 1대의 물리적인 서버에 1개의 OS만 설치하여 사용하였지만 성능을 효율적으로 사용하기 위해 하나의 서버에 가상화 기술을 통하여 여러개의 OS를 설치하고 그 위에 여러개의 어플리케이션을 설치함으로서 데이터를 효율적으로 관리하게 되었고 이것을 클라우드컴퓨팅 이라 한다.
또한 이처험 보관한 방대한 데이터들을 효율적으로 분석,추출하고 사용하기위하여 등장한 것이 AI이다.

빅데이터/클라우드/AI 이 세가지는 떼어놓고 설명할수 없으며 최근 백엔드 개발자에게 이 세가지의 관한 지식이 요구되고 있다

Cloud란

클라우드 컴퓨팅 :

  • 글로벌 클라우드 기업(google, 아마존, azure)의 스토리지, 실제 서버 리소스를 대여받아 사용하는 방식
  • 사용한 양만큼 요금 지불 → 후불
  • 클라우드 업체는 실제 하드웨어 제공(가상화된) → 전 세계에 엄청난 규모의 물리적을 서버들을 가진 데이터 센터가 있음
  • 클라우드업체는 하드웨어 가상화 기술 기반 하드웨어 사용을 극대화하여 이윤 창출

클라우드 컴퓨팅이 제공하는 서비스:

  • 컴퓨팅 능력 : 서버/ 웹 어플리케이션
  • 스토리지 : 파일 및 데이터베이스 (하드디스크)
  • 네트워킹: 클라우드 공급기업과 회사간의 보안 연결, 여러 서버를 하나의 회사 서버처럼 묶어줌
  • 분석 : 원격 분석데이터 및 성능 데이터 시각화

클라우드는 하드웨어 가상화기술로 H/W자원활용을 S/W적으로 극대화 시킬 수 있는 기술

하드웨어 가상화 기술

  1. 호스트 가상화 기술 : 사용자의 컴퓨터에서 사용하는 가상화 기술(ex : vmware)

    하드웨어어 하나의 OS를 설치 한 후 가상화 소프트웨어를 설치 하고 그 위에 여러 OS를 설치. 속도가 떨어짐

  2. 하이퍼바이저 가상화 기술 : 클라우드에서 사용하는 가상화 기술

    하드웨어 위에 바로 하이퍼바이저 가상화 기술을 설치하고 여러 OS를 설치

Cloud 서비스의 종류

Iaas :

  • 가상머신만 제공
  • OS만 만들어지기 때문에 프레임워크, 소스, 웹서버등 추가적 세팅이 필요하다 → 작업량이 많음
  • 서버호스팅과 유사

PaaS :

  • 개발된 소스만 올리면 바로 서비스가 가능
  • 웹 호스팅과 유사

SaaS :

  • 솔루션자체를 구축을 해놓고 사용자가 결제만 하면 software 바로 사용 가능. 설치 x(그룹웨어, 메일, office 365 등)

서버 호스팅 : 서버 자체를 임대해서 사용 OS만 설치되어있음 세팅필요
웹 호스팅 : 환경을 미리 세팅한 공간을 판매 웹 리소스를 바로 호스팅 할 수 있음

Azuer에서는 IaaS → 가상머신(VM), PaaS → App Services

DevOps & CI/CD

DevOps란 :

고객에게 지속적인 가치를 제공하기 위해 소프트웨어의 제공을 자동화하는것
→ 안정적이고 지속적으로 서비스를 제공하기위해서 자동적으로 빌드패포
→ CI / CD 를 통한 지속적인 배포

CI : 개발 소스의 지속적인 통합 원격 레포지토리에 소스를 지속적으로 통합, 버전관리

CD : 코드가 커밋될때마다 빌드하고 지속적으로 배포

Azuer 에서는 CI → Azure Repos, CD → Azure Pipelines

React 앱 Azuer Web Servies를 이용하여 빌드/배포 자동화

배포할 소스 만들기

  1. yarn create react-app reactsampleapp1 으로 React 프로젝트 생성
  2. yarn build로 빌드
  3. express nodewebapp1 --view=ejs 로 Node Express 프로젝트 생성
  4. React build 폴더 내 소스 복사하여 Node Express 프로젝트 내 public 폴더에 붙여넣기

PaaS 만들기

  1. Auzer 포털 메인메뉴에서 App Service 선택

  1. App Service 추가

  1. 리소스그룹, 이름, 런타임스택, 지역 등 설정후 만들기

소스 직접 배포하기

  1. vscode에서 배포할 프로젝트를 작업폴더로 오픈
  2. azure app service / azure account 확장 설치
  3. vscode좌측 생성된 azuer account 클릭
  4. sign in
  5. 해당 webapp선택 후 depoly to webapp

GIT으로 배포

  1. vscode에서 소스 커밋
  2. github 에 레포지토리 생성
  3. github-origin 원격추가
  4. 다음으로 푸시 → github-origin으로 푸시
  5. azuer포털 → web app → 배포센터 → 깃허브 선택 (깃허브 로그인)
  6. app service 선택
  7. 레포지토리, 분기 선택 → 계속 → 마침
  8. 하면 깃허브와 웹앱 연결됨
  9. 소스 변경하여 push 하면 바로 반영되는걸 확인할 수 있다

1개의 댓글

comment-user-thumbnail
2020년 9월 10일

우와 정말 정리를 잘 하셨어요!

답글 달기