2020-11-16 Devops (1)

Devops

  • 소프트웨어개발(Development)와 운영(Operation)의 합성어가 유래
  • 철학
    • 문화(Culture) : Devops를 통해 하나의 문화를 만들어간다.
    • 자동화(Automation) : 자동화를 통해 효율성과 빠른 속도를 지향
    • 측정(Measurement) : 지표를 측정하여 지속적으로 개선, 어플리케이션 성능, 개발속도 모니터링, 지속적으로 나아지는지 측정
    • 공유(Sharing) : 공유를 통해 함께 발전
    • 축적 : 기록을 축적하여 자산화

IaC

  • 코드로써의 인프라
  • InfraStructure as Code, 코드로 인프라 구성요소를 작성
  • 작성용이성 재사용성 유지보수 등의 장점이 있다.

Terraform

  • 테라폼은 가장 많이 쓰이는 IaC도구. AWS, Azure, GCP뿐만 아니라 다양한 서비스들도 지원한다.

구성요소

  • provider : 테라폼으로 생성할 인프라의 종류
  • resource : 실제로 생성할 인프라 자원
  • state : 테라폼으로 생성한 자원의 상태
  • output : 테라폼으로 만든 자원을 변수 형태로 state로 저장
  • module : 공통적으로 활용가능한 코드를 모듈형태로 정의
  • remote : 다른 경로의 state를 참조. output변수를 불러올때 주로 사용

명령어

  • init : 명령어 사용을 위한 각종 설정
  • plan : 작성한 코드가 실제로 어떻게 만들어질지 예측결과를 보여준다
  • apply : 실제 인프라를 생성하는 명령어
  • import : 이미 만들어진 자원을 테라폼 state파일로 옮겨주는 명령어
  • state : state를 다루는 명령어. 하위 명령어로 mv, push
  • destroy : 생성된 자원들 state 파일 모두 삭제
  • 보통 init-plan-apply로 명령어 프로세스가 구성된다.
Written on November 16, 2020