일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Git
- 백엔드
- 프로세스 주소 공간
- 트랜잭션
- SDK
- 코딩애플
- 운영체제
- concurrency control
- CPU 스케줄링
- B tree 데이터삽입
- 개발남노씨
- 운영체제와 정보기술의 원리
- Extendable hashing
- 시그널 핸들러
- 데이터베이스
- 커널 동기화
- 인터럽트
- 코딩테스트 [ ALL IN ONE ]
- 쉬운 코드
- 반효경
- 온디바이스AI
- BreadcrumbsComputer-Networking_A-Top-Down-Approach
- recoverability
- 쉬운코드
- 네트워크
- vite
- 시스템프로그래밍
- 갤럭시 S24
- 김영한
- SQL
- Today
- Total
티끌모아 태산
커넥티드 플랫폼 이론과 실제(3) 본문
DevOps for SW Deployment
글로벌 IT 기업인 메타, 애플, 아마존, 넷플릭스, 구글등에서 DevOps를 적용하여 제품 출시 및 업데이트를 서비스 중단 없이 제공하고 있습니다.
DevOps
개발(Development)과 운영(Operation)의 합성어로 SW 리드타임을 줄이고자 개발자와 운영자 간의 상호 협력을 필요로 하는 하나의 문화로 신속하고 유연하게 대응하는 것이 목표.
*리드타임: 보통은 고객이 요구한 기능이나 작업을 개발팀이나 서비스 제공자가 완료하기까지 걸리는 시간을 말합니다.
왜 DevOps가 필요한가? 고객의 요구사항을 반영하고 신속하게 서비스를 제공하기 위해서.
전통적인 조직에서의 개발부분과 운영 부문은 대립관계
- 개발팀: 개발 생산성 우선, 운영에 큰 관심없음
- 운영팀: 서비스 안정성 우선, 개발에 큰 관심없음
DevOPs의 효과
- 리드 타임 감소
- 배포 빈도 증가
- 오류 발생률 감소
- 서비스 복구 시간 단축
DevOps Engineer
데브옵스 엔지니어는 it, 소프트웨어와 비지니스 사이의 관계에 대한 책임 있고 핵심적인 responsibility는 자동화를 원활하게 하는 것이다. (The core responsibility of a DevOps Engineer is facilitating Automation)
SW개발 방법
소프트웨어 생명주기 모델:
요구사항 분석 -> 설계 -> 구현 -> 테스트 -> 유지 보수
- Waterfall: 사전에 계획을 세우고 일정에 맞게 개발하는 것. 단계적으로 개발 과정을 진행하며, 각 단계는 이전 단계의 완료를 기다립니다. 요구 사항 정의, 설계, 개발, 테스트 및 유지 보수와 같은 단계를 차례로 수행
- Agile: 유동적으로 개발. 개발 기간이 짧고 신속하다. 개발과 함께 즉시 피드백을 받아 유동적으로 개발한다.
TDD(Test Driven Development)
Test 주도 개발: 반복 테스트를 이용한 소프트웨어 방법론, 작은 단위의 테스트 케이스를 작성하고 통과 시 코드를 추가하는 단계를 반복/구현한다. -> 짧은 개발 주기의 반복에 의존하는 개발 프로세스
TDD 개발 방식의 장점:
- 객체 지향적인 코드생산
- 재설계 시간의 단축
- 디버깅 시간의 단축
- 추가 구현의 용이함
CI(지속적 통합)과 CD(지속적 배포)
CI와 CD는 소프트웨어 개발 프로세스에서 빈벅하게 사용되는 중요한 용어입니다.
- CI는 개발자들이 작업한 코드 변경 사항을 빈번하게 통합하는 개발 방법론입니다. 이를 통해 여러 개발자들이 동시에 작업하고 있는 동안 코드 충돌이나 통합 오류를 최소화할 수 있습니다. CI의 핵심 원칙은 작은 단위로 자주 통합하는 것
- CD는 CI의 확장으로, 애플리케이션의 변경 사항을 신속하게 제품 환경에 배포할 수 있는 프로세스를 지칭합니다. CD를 통해 개발팀은 소프트웨어를 더 자주 배포하고, 사용자에게 신속하게 새로운 기능과 업데이트를 제공
CI와 CD는 품질 향상, 개발 생산성 향상, 배포 시간 단축, 사용자 만족도 향상 등을 목표로 하는 현대적인 소프트웨어 개발 방법론
그래서 DevOps란 SW 배포 리드타임을 줄이기 위한 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합으로 공유된 목적에 대한 합의와 이를 위해 지속적으로 불필요한 프로세스를 개선하고, 지속적인 빌드와 배보를 할 수 있게 SW품질을 유지해야함. 이를 위해 자동화가 필수적이며 적절한 툴을 사용함.
*Continuous Integration
*Continuous Delivery
*Automation
'CS 지식 > 커넥티드 플랫폼 이론과 실제' 카테고리의 다른 글
커넥티드 플랫폼 이론과 실제(4) (0) | 2023.06.17 |
---|---|
커넥티드 플랫폼 이론과 실제(2) (1) | 2023.06.17 |
커넥티드 플랫폼 이론과 실제(1) (0) | 2023.06.17 |