project/DevOps : 코드스테이츠 (2022.02.07-2022.06.07)

[TIL]0207_개발프로세스와 DevOps 업무개요

용감한 개복치 2022. 2. 8. 00:26

#1. 개발프로세스와 DevOps 업무개요(1)

 

Today I Learned,

1. DevOps란?

2. CI/CD 파이프라인이란?

3. DevOps의 탄생배경

4. 클라우드란?

 

+) 이하는 개인적 카더라 통신. 신뢰도 없는 개인적인 의견

 

1. DevOps의 개념

 요약하자면 개발(Dev) + 운영(Ops). 서비스 개발에는 보통 직접 서비스의 기능을 구현하는 개발팀과 그 서비스를 사용자와 만나게 해주고 서비스의 안정화 및 유지보수에 힘쓰는 운영팀. 그리고 별도로 각 개발된 유닛들을 단위로 케이스 테스트를 전문적으로 담당하는 QA팀으로 이루어진다. 그 외에도 기획, 마케팅, 서포트 등등 다양하게 있겠지만 우선 개발에만 집중해보자. 큰 기업(혹은 전통적 it개발방식을 가진 팀)에서는 개발팀, 운영팀, QA팀으로 나뉘지만 운영팀 하위에 QA를 포함하는 경우도 많다.

 

+) 주요 스펙을 프론트 - 리액트, 자바스크팁트 / 백엔드 - 자바, 스프링부트, db / 데브옵스 - git, jenkins, aws, docker + 모니터링 으로 꼽던데 뭐랄까..이정도면 그냥 전부 다해라는 의미인거같기도하고..현업자들 리뷰를 읽어봐도 본인이 개발팀에 속해있기도하고 운영팀에 속해있기도하다고 한다. 그리고 현업자들 리뷰라 그런가 욕이많다. 개발하느라 바쁜데 운영팀 고유업무(?)인 이거 안돼요ㅠ 어떡해요ㅠ 도 해결해 주러가야하고 심지어 시스템엔지니어 혹은 인스트럭쳐 라는이름이 붙은 팀의 경우 물리 서버 관리, 네트워크 등 현장의 기기 고치러도 가야한다고한다. 얇고 넓게 커버하는 직군이라지만 하나는 특성화를 해야한다더니 이게 인프라 쪽으로 파는건지 시스템쪽으로 파는 건지를 말하는거였나보다.

 

2. CI/CD 파이프라인

목적 : 지속적인 어플리케이션 배포
plan > code > build > test > release > deploy > operate

지속적 통합(ci)와 지속적 배포(cd) 인데 요약하자면 한번의 push로 릴리즈까지 개발팀이 할 수 있도록 만드는 것이다. 개발팀이 만들면 운영팀이 거르고 내보내는 그런 과정에서 운영팀의 프로세스를 줄여서 시간과 비용을 아낄 수 있다는 것이 장점.

 

3. DevOps의 탄생배경

최근에는 서비스의 실행을 브라우저에서 전체를 실행할 수 있게 됨. 무중단 서비스가 필요한 경우가 많아짐. 설치파일 던져주고 알아서해 에서 클라우드환경이 보편화 되고 **가용성**의 요구가 높아짐.

이전에 비해 클라우드 서비스, 클라우드 기반 제품들의 확산으로 배포가 쉬워졌기 때문에 예전에는 시니어 (주로 백엔드) 개발자들이 관리한다는 느낌이 있었는데 애플리케이션 실행 방식이 변해서 해당 부분만 집중적으로 보는 사람이 필요해졌다. 서비스의 총괄 조감도를 보는 과정이 필요해진 것.

+) 아마 sw시장이 점점 성숙해지기 때문에 개발 이후가 필요한 시점이 온듯. 아님 단순 인프라 개발자, 시스템 개발자 들이 고도화된 개발 툴등에 의한 물리적 제약의 약화로 근처 백엔드나 운영팀의 경계가 흐려지면서 흡수되어 가는걸까.

 

4. 클라우드 서비스의 개념

  1) 클라우드란, 물리적 서버를 가상의 공간으로 옮긴것. 인터넷 기반의 컴퓨팅이라고 표현. 클라우드 서비스를 제공하는 업체가 가상의 서버를 두고 여러가지 형태로 서버를 필요로하는 서비스들에게 데이터, 인프라, 플랫폼 등을 관리 및 제공.

  2) 서비스 제공 형태에 따른 구분으로는 퍼블릭, 프라이빗, 하이브리드가 있다. 퍼블릭은 말 그대로 인터넷에 접속 가능한 모든 사람들이 접근가능한 클라우드. 프라이빗은 기업 내부에 저장되는 클라우드 서비스. 하이브리드는 그 둘을 섞은 것. 온프레미스(물리서버)와 클라우드(가상서버)를 함께 쓰는 형태다. 기본적으로 데이터의 양과 흐름이 일정하며 보안이 중요한 핵심 기능은 온프레미스로, 특별히 트래픽이 몰릴 것이 예상되는 서비스나 기간에 외부의 클라우드 서버를 추가구매하여 운용하는 방식 등으로 진행된다.

  3) 대표적인 서비스 모델로 Saas, Paas, Iaas로 구별된다. Saas(software as a service)는 사용자가 서비스를 물리 기기에 설치하지 않고 인터넷을 통해 접속한다. 가상의 스토리지를 대여하는 느낌. 웹기반의 이메일이나 슬랙도 여기에 포함된다. Paas(platform as a service)는 saas가 어플리케이션, 데이터, os, 서버, 스토리지 등 모든 것을 클라우드 업체가 관리하였다면, 어플리케이션 자체는 서비스 제작 회사가 관리하고 그를 구축하기 위한 나머지 인프라, 플랫폼 등에 대한 관리 서비스를 클라우드 업체로부터 구매한다. 대표적으로 헤로쿠, microsoft azure가 있다. 여기서 조금 더 서비스 제작 회사가 관리하는 범주가 늘어난 것이 Iaas다. 저장소와 서버를 클라우드 업체로부터 구매해 관리에 필요한 인프라를 스스로 구축관리한다. 아무래도 Saas가 오픈된 가상의 서버다 보니 보안 이슈에서 자유롭지 못한 부분이 있는데 이러한 점을 보완하기 위한 방법으로 고안되었다. 최근에는 서버리스 컴퓨팅, Function as a service가 생겨나고 있다. 아키텍쳐가 점점 마이크로한 방향으로 가면서 서버의 사용도 원룸 전체를 대여하는 방식이 아닌 잘때는 침실의 비용만, 씻을 때는 욕실의 의 비용만 내는 방식으로 요금을 측정한다.

 

출처 )

https://www.redhat.com/ko/topics/cloud-native-apps/what-is-faas

 

FaaS란?

FaaS는 개발자가 자체 인프라를 유지관리할 필요 없이 애플리케이션 패키지를 기능으로 빌드, 실행, 관리할 수 있게 해주는 일종의 클라우드 컴퓨팅 서비스입니다.

www.redhat.com

https://aws.amazon.com/ko/types-of-cloud-computing/

 

클라우드 컴퓨팅 유형

Platform as a Service(PaaS)를 사용하면 조직은 기본 인프라(일반적으로 하드웨어와 운영 체제)를 관리할 필요가 없어 애플리케이션 개발과 관리에 집중할 수 있습니다. 즉, 애플리케이션 실행과 관련

aws.amazon.com

https://library.gabia.com/contents/infrahosting/9114/

 

가비아 라이브러리

IT 콘텐츠 허브

library.gabia.com

https://www.cloudflare.com/ko-kr/learning/cloud/what-is-the-cloud/

 

'project > DevOps : 코드스테이츠 (2022.02.07-2022.06.07)' 카테고리의 다른 글

[API][fastify]  (0) 2022.03.04
[회고]프로젝트1  (1) 2022.03.04
[Postman]포스트맨 설치  (0) 2022.02.17
[TIL]0208_개발프로세스와 DevOps 업무개요  (0) 2022.02.08
Node.js 설치  (0) 2021.08.06