본문 바로가기
개발 프로세스

DevOps Day 1 (3/7) - 개발 프로세스와 DevOps 업무 개요

by Jackykim 2023. 3. 13.

Devops의 영역은
1. 새로운 서비스를 기획한다 (plan)
2. 개발자가 코드를 작성한다 (code)
3. 어디든 전달 가능하도록 서비스를 포장한다 (build)
4. 서비스가 잘 작동하는지 테스트한다 (Test)
5. 버전 넘버를 붙이고, 베타 서비스를 시작한다 (Release)
6. 정식 버전을 내놓는다 (Release, deploy)
7. 트래픽을 모니터링한다 (Operate)

CI/CD 파이프라인
plan - code - build - test - release - deploy - operate

Devops가 부각된 이유
1. 클라우드 환경으로의 변화
2. 높은 가용성을 요구하는 애플리케이션

[C123] 클라우드 서비스의 전달 방식이 전통적인 소프트웨어 전달 방식에 비해 갖는 단점으로는 무엇이 있을까요?

클라우드 서비스의 단점중 하나는 보안 문제 입니다. 클라우드 서비스내에 보안 취약점이 존재할 수 있어 해킹 / 악성 프로그램으로
인해 데이터 및 개인 정보가 노출 될 가능 성이 있습니다. 또한 비활성화된 인터페이스나 APIs, Ddos 공격등으로 클라우드 서비스 운영 
및 사용이 힘들 수 있습니다. 

 https://www.samsungsds.com/kr/insights/cloud_210226.html?referrer=https://www.google.com/ 
https://www.nibusinessinfo.co.uk/content/disadvantages-cloud-computing

다른 단점은 클라우드 서비스를 사용시 반드시 인터넷에 접속해야 합니다. 외부와 단절 되었거나 통신 환경이 안좋은 경우 
클라우드 서비스 사용하는데 제한이 있어 불현할 수 있습니다. 또한 reboot나 서버 점검 같은 환경 문제로 인해 클라우드 서비스
사용 제한이 있어 큰 영향을 줄 수 있습니다. (오프라인에서 사용 불가)

https://it.donga.com/25782/

클라우드 서비스를 많이 사용 할 수록 Bandwidth 사용이 누적하게 되어 촤종 비용이 증가하게 됩니다.  


[C125] DevOps 엔지니어, 클라우드 엔지니어, SRE 엔지니어와 같은 직군을 채용 정보 사이트(원티드 등)에서 찾아보고, 
여러분이 해당 직군으로 채용된다고 가정할 때, 무슨 일을 하게 될지 이해한 만큼만 적어보세요.

H사의 경우 다음이 주요 업무입니다.

- CI/CD 파이프라인을 통해 서비스시스템 구성 
CI/CD 파이프라인을 기반으로 (빌드, 테스트, 베포)등 모든 프로세스를 더욱 쉽고 업무 속도를 향사시키는 것이 중요하나 
각 프로세스가 세부적으로 어떻게 진행 되고 어떻게 구성 해야하는지 학습 및 경험이 더 필요 합니다. Gitlab CI, Jenkins, java, Python,
등 도구 및 코딩 용어을 사용합니다, 이런 용어 및 프로그램들은 아직 잘 몰라 추가 학습이 필요합니다. 

- AWS 환경에서 인프라 운영 
클아우드에서 많이 사용되는 AWS를 사용하는 것으로 예상되며 Iac 기반으로 인프라 자동화 및 OS configuration을 
자동화 하는 프로그램이 있어 다양한 OS에서 더 쉽게 사용 할 수 있을 거라고 생각합니다.

- K8S 리소스 최적화 및 플랫폼 구축
처음보는 용어로 추가 학습이 필요합니다. 다만 조사한 결과 Kubernetes 플랫폼인걸 확인 했습니다. 
Kubernetes 플랫폼을 이용하여 앱플리케이션 베포을 진행 하고, 향후 업데이트 및 스케링 등 진행 가능하다고 들었습니다.

- 모니터링 시스템 구축 및 운영
Observability Stack을 사용하여 logs, metric, traces 정보을 이용하여 시스템상 문제가 있는지 확인하고 
문제가 있는 경우 어떤 문제가 있는지 그리고 어떻게 해결 할 수 있는지 확인 하는 것 같습니다. 

 https://job.incruit.com/jobdb_info/jobpost.asp?job=2302160003208&src=etc*search 

Feedback
- 은행 같이 개인 정보가에 민감한 기관은 Saas 보수적으로 사용

전통적인 소프트웨어 전달 방식
장점 : 한번 설치하면 평생 쓸 수 있다 
      : 구독 요금제를 사용하지 않아도 된다
단점 : 업데이트를 항상 다운로드 받아야 한다

서비스 제공자 관점에서는?
장점 : 베포 비용 절감
      : 한번 팔고 나면 신경안써도 된다
      : 유지보수 책임이 비교적 낮다
      : 새버전에 새로운 가격 매길 수 있다 
단점 : 버그 패치가 힘들다 
      : 직접 유지 관리를 해야 한다
      : 대응이 힘들다
      : 사람들이 불럽 복제를 할 수 있다
      : 소프트웨어를 플랫폼에 따라 별도로 제작해야 한다 (운영체제)

Saas : Software as a Service
장점 : 항상 최신의 소프트웨어를 제공/사용할 수 있다
      : 서비스 제공자가 사용자들은 모니터링하기에 용이한다
      : 클라우드 사업자와 서비스 운영자가 운영 책임을 나누어 갖는다
단점 : 인터넷 접속 반드시 필요
      : 사용 비용이 발생할 수 있다 
      : 운영 비용이 발생할 수 있다 (기업 규모, 사용빈도에 따른 서버비용, 데이터 사용, 네트월크 비용, 확장 비용)
      : 고가용성 유지를 위한 운영 비용이 꾸준히 발생한다
      : 유지 보수의 책임이 오래 길게 지속된다 -> 서비스를 멈추기 어려움 

클라우드 사업자는 누구인가?
- 웹 서비스 운영의 주체와 클라우드 사업자는 별개
- 웹 서비스 운영자는 운영을 위해 인터넷 공간 을 대여해야만 함 (웹사이트 운영은 웹 호스팅 서비스)
- Amazon Web Service , Google Cloud Platform, Microsoft Azure (Iaas) Infrastructure as a Service
- Platform as a service - 개발자를 위해 공개 API를 제공하는 클라우드 서비스, On-premises