Devops Study 01

devops 란

개발(Development)과 운영(Operations)의 합성어

목표

  • 고객의 요구사항을 빠른시간에 서비스에 적용한다.

devops tool chain

  • Use Case - 사용자 요구사항
  • 코드(프로그래밍) - 코드 개발 및 검토, 버전 관리 도구, 코드 병합.
  • CI/CD (continuous integration and continuous delivery)
    • 빌드 - 지속적 통합(CI) 도구, 빌드 상태.
    • 테스트 - 테스트 및 결과가 성능을 결정.
    • 배포 - 애플리케이션 디플로이 이전 단계.(CD)
  • 구성 - 인프라스트럭처 구성 및 관리, IaC(Infrastructure as Code) 도구
  • 모니터링/운영 - 애플리케이션 성능 모니터링, 최종 사용자 경험 , 로그 분석, 고객 피드백,Server Monitoring

Use Case

  • clean architecture

코드

  • clean code
  • cqrs
  • git svn
  • github gitlab

CI/CD

빌드

  • jenkins
  • teamcity

테스트

  • unit test
  • integration test
  • end to end test

배포

  • jenkins
  • teamcity
  • ansible
  • docker, aws

인프라스트럭처 구성

  • pxe , chef ,
  • ansible ( install)
  • vm (virtual box , hyper-v, Kvm)
  • docker (swarm kubernetes)
  • cloud (azure , aws)

모니터링/운영

  • nagios
  • check_mk
  • elk 로그분석
  • ansible ( install)
  • linux , vi , bash

issue 관리

  • gitlab
  • jira

이번 스터디에서는 툴 위주의 핸드 온 강의가 될것 같습니다.

시나리오는 다음과 같습니다.

  • 고객이 블로그를 하나 만들어달라고 했다.(글만 쓰게)
  • 코드 관리를 위해서 gitlab을 사용한다.
  • git 프로젝트를 만들어서 클론을 한다.
  • 코딩을 하자.
  • back end c# webapi (Test를 하자.)
  • front end angular 6
  • 코딩후 커밋을 한다.
  • gitlab에서 jenkins를 호출하여 파일을 실제 웹서버에 배포한다.
  • 커밋시마다 자동으로 빌드할수 있나? 개발서버에 자동으로 배포를 하면 좋겟다.
  • 블로그에 리스트를 보여주는 페이지를 만들어달라 - 요구사항
  • 코딩한다.
  • 이번에는 도커 이미지를 만들어보자.
  • 도커 이미지를 registry에 저장을 하자.
  • 실제 서버에서 도커를 실행시켜서 서비스를 하자.
  • 글 삭제 기능을 고객이 요청한다.(issue로 보고)
  • 이슈를 확인하고 코드를 수정하여 커밋한다.
  • 자동으로 빌드되서 개발서버에 오픈이된다.
  • 개발서버에서 테스트해서 문제 없으면 실서버에서 도커 이미지를 실행시킨다.
  • 도커 이미지를 aws vm을 만들어서 실행해보자.

시작

  • 개발 환경구축하기

    • virtual box 와 vagrant 설치
    • linux 서버 virtual machien으로 설치해보기
    • virtual machine에서 nginx 띄우기
    • 도커 docker 설치하기
    • 도커로 nginx 띄우기
  • 준비 사항

    • windows 10, or macos , or linux
    • virtual box (hyper-v) install
    • vagrant install
    • vagrant image 받기
    vagrant init centos/7
    vagrant up
    
    • docker install
    • docker image 받기
    docker pull nginx
    docker pull mysql
    docker pull microsoft/dotnet
    
    • https://hub.docker.com/_/nginx/

docker

  • docker와 vm의 차이

  • docker install

https://docs.docker.com/docker-for-mac/install/

  • docker get start

https://docs.docker.com/docker-for-mac/

Docker Image (Dockerfile)

Docker Registry

Alpine Linux는 Kernel을 제외했을 때 그 크기가 5MB가 채 되지 않는 매우 작은 크기의 리눅스 배포판

Docker Swarm은 여러 대의 Docker Host 들을 엮어서 마치 하나인 것처럼 다룰 수 있게 해주는 Clustering, Orchestration 도구이다.

일단 이정도면 오늘은 될듯.

참고 사이트

https://ko.wikipedia.org/wiki/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4

teamsmiley's profile image

teamsmiley

2018-09-27 00:00

Read more posts by this author