observe_db

[소프트웨어공학] #3 DevOps 본문

학교 공부/소프트웨어공학(3-2)

[소프트웨어공학] #3 DevOps

쩡윤 2023. 10. 15. 17:59

10/12, 10/16

 

3-1 Overview of DevOps

Why DevOps?(왜 DevOps를?)

-Silos based의 문제: 서로 독립되어 소통하지 않음.

 

DevOps란?

-반복적(iterative) 매커니즘을 사용하는 소프트웨어 개발 방법론

-Dev와 Ops의 상호연결 +유저 피드백

-Agile과 Lean 방법에 기반

-개발팀간의 불충분한  소통, 개발 딜레이 및 프로젝트내의 운영에서의 문제들을 해결하는 것이 목적

<소통으로 효율 향상>

 

다른 정의들

(wikipedia): 소프트웨어 개발과 IT 산업의 방법론. 연습과 도구들의 집합 사용. Dev와 Ops통합&자동화. 시스템 개발 생애주기 개선과 단축. Lean&Agile 기반 소프트웨어 개발 방법론

(IBM): 더 높은 질의 소프트웨어를 소프트웨어 개발 작업 및 IT 운영 팀의 결합과 자동화를 통해 빠르게 결과를 내놓음.

(O'Reilly): 개인이 자신의 작업에 대해 생각하는 방식을 바꾸고, 수행된 작업의 다양성을 소중히 여기며, 기업이 가치를 실현하는 속도를 가속화하는 의도적인 프로세스를 지원하고, 사회 및 기술 변화의 효과를 측정하는 문화 운동

(IEEE): 모든 관련 생애주기 내의 지시, 개발, 운영 소프트웨어와 시스템 상품 및 서비스, 연속적인 개선을 위해 관련 stakeholders와 더 나은 소통과 협업을 가능하게하는 원리와 관행(practice)들의 집합

 

Lean Thinking

Think Big, Act Small, Fail Fast, Learn Rapidly

관리, UX, 스타트업, 소프트웨어에 적용되는 방법론

낭비를 줄이고 프로세스를 최적화하는 것.

 

DevOps의 원칙

Collaboration(협업): 개발팀과 운영팀이 기능적 팀으로 합쳐짐. 전체 개발과 배포 사이클에 걸쳐 소통함.

Automation(자동화): tool 사용해서 자동화. 시간을 확보하여 코딩 및 개발에 사용. CI/CD, 인간적에러를 줄임. 

Continuous IMprovement/Integration and delivery(지속적 통합/배포)

Customer-centric action(고객 중심 작업): 유저가 원하는 것. 모니터링하고 빠르게 고침.

Create with end in mind(끝을 염두하고 만들기): 실제 문제가 해결되는 것이 끝나는 기준. 가정 기반X, 필요한 기능이나 문제의 해결.

발견-계획-실험 및 수정-공부

 

이득

협업 및 신뢰: 운영-개발간의

더빠른 릴리즈: 시간의 단축

문제 해결시간 단축

계획되지 않은 업무를 쉽게 관리

 

3-2 DevOps Process

Plan: 업무와 일정을 조직하는 부분. 무엇을(누가, 어디서, 트리거), 이유, 허용기준을 서술

Code: 코드 개발 및 리뷰. 깃헙 사용

Build: 소스코드 빌드, CI/CD 셋업

Test(Verify): 프로세스 내의 리스크 줄이기. 자동 테스트

Release: 개발된 것이 테스트를 통과

Deploy: 운영팀이 상품의 새로운 특징 배포.

Operate: 확장가능한 인프라 유지. 보안이슈, 로그 확인

Monitor: 문제가 있는지 확인

 

3-3 DevOps in Practice

 

DevOps Tool chain: 소프트웨어 및 시스템을 설계, 구축, 테스트, 관리, 측정 및 운영하기 위한 통합 단위로 작동하는 다양한 공급업체의 도구 모음. 개발 및 운영 팀이 전체 제품 라이프사이클에 걸쳐 협업할 수 있도록 지원하며, 지속적인 통합, 지속적인 제공, 자동화 및 협업을 포함한 DevOps의 주요 기본 요소를 다룬다.

DevOps의 성능을 측정하는 것에는 어떤 요소가 있는가.

 

 

Agile과 DevOps의 비교

Agile

- 개인의 성능

-문서화 줄이기

- 개별에 집중

- 소통!

- 개발자와 관리자의 소통에 집중.

- 흐름을 소프트웨어의 관념에서 코드 구현까지

- 반복적인 개발과 작은 batch들을 강조

- 개발자들의 계획된 작업 구조를 추가

DevOps

- '서비스' 운영을 위해

- 더 잘하게

- 시스템 전체에 초점.

- 운영팀을 포함

- 전달과 유지보수까지 초점을 확대함.

- 테스트와 자동 전달에 좀더 초점

- 운영 팀에 공통적으로 계획되지 않은 작업을 통합

 

Agile은 개인과 상호 작용, 소프트웨어 작동, 고객 협업 및 변화에 대한 대응을 명시적으로 우선시 어차피 DevOps에선 Agile을 포함

둘다 퀼리티 좋은 SW, 시간 단축, 고객 만족을 지향함.

Comments