일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 컴파일러
- 랩실일기
- Linear Algebra
- 객체지향설계
- OS
- 데이터베이스
- 파싱
- NLP
- 언어모델
- React
- 프로세스
- 소프트웨어공학
- 파싱테이블
- css
- 자료구조
- 자연어처리
- 오픈소스웹소프트웨어
- 836
- 웹소프트웨어
- 정보검색
- 클래스
- 컴파일
- 가상메모리
- 운영체제
- 도커
- DB
- docker
- C언어
- 데이터분석
- 스케줄러
- Today
- Total
observe_db
[소프트웨어공학] #3 DevOps 본문
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, 시간 단축, 고객 만족을 지향함.
'학교 공부 > 소프트웨어공학(3-2)' 카테고리의 다른 글
[소프트웨어공학] #3-2 Project Planning (1) | 2023.11.14 |
---|---|
[소프트웨어공학] #3-1 Project Management (0) | 2023.11.02 |
[소프트웨어공학] #2 Software Process(2) Agile (0) | 2023.09.26 |
[소프트웨어공학] #2 Software Processes (0) | 2023.09.14 |
[소프트웨어공학] #1 Software Quality and Principle (0) | 2023.09.08 |