# DevOps
"제품의 변경 사항을 품질의 보장하면서 프로덕션에 반영하는데 걸리는 시간을 단축하기 위한 실천 방법의 모음"
DevOps 란 ,
소프트웨어의 개발(Develop)과 운영(Operate)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다.
실제 IT 조직의 운영을 보면, 개발조직과 운영 조직이 따로 존재하여 그 사이에서 이해도의 차이 등으로 인해 어려움이 있던것들을 극복하고자 개발조직과 운영조직을 하나의 팀으로 통합하고자 하는 문화이자 철학이라고 할 수 있다.
- DevOps의 시작
2009년 O'Reilly Velocity Conference <하루에 10회 이상 배포하기: Flickr에서 Dev와 Ops의 협업>
2009년 DevOpsDays Ghent 패트릭 드부아(Patrick Debois)가 <10 Deploys per Day> 발표를 듣고 감명 받아 주최된 컨퍼런스 에서 처음 언급되었다.
DevOps가 필요한 이유
보통의 한 서비스를 기획하여 운영하는 프로세스, SDLC를 살펴보자.
소프트웨어 개발의 생애주기(SDLC : Software Development Lifecycle)
Design(설계) - Develop(개발) - Test(테스트) - Deploy(배포) - Operate(운영) - Support(지원)
조직의 규모에 따라서 각 단계별로 담당자가 지정될 수 있는데, 그만큼 의사소통이 많아짐으로인해 문제가 발생하고 병목구간이 쉽게 생긴다.
DevOps를 통해 업무 효율성 개선, 조직내 협업 개선, 제품 출시 주기 단축 등을 기대할 수 있다.
DevOps는 어떻게 일하는가?
"개발과 운영의 벽을 허물어 더 빨리 자주 배포하자"
실천방법 : AWS
- 지속적 통합(Continuous Integration)
- 지속적 배포 (Continuous Delivery)
- 마이크로 서비스 (Micro-services)
- IaC(Infrastructure as Code)
- 모니터링과 로깅(Monitoring & Logging)
- 소통 및 협업 (Communication & Collaboration)
AWS에서 제안하는 안전하고 효율적인 빌드 프로세스 (CI/CD 파이프라인) DevOps 실천방안 을 시행해볼 수도 있다.
위에서 제안하는 방법들 중 CI, CD만 지속적으로 이루어 져도 성공적으로 DevOps 의 장점들을 이끌어 낼 수 있다.
실천방법 2 : Flickr(2009)
가장 처음 데브옵스에 대한 개념을 이야기했던 세션의 발표자가 제안한 방법이다.
* 변화에 대응하기 위한 도구
- 자동화된 인프라(Automated Infrastructure)
- 버전관리 공유(Shared Version Control)
- 쉬운 빌드 및 배포(One-step Build and Deploy)
- 기능 활성화 스위치 (Feature Flag)
- 메신저 봇(IRC and IM Robot)
* 변화에 대응하기 위한 문화
- 존중(Respect)
- 신뢰(Trust)
- 실패에 대한 긍정적인 자세(Healthy Attitude about Failure)
- 비난하지않기 (Avoiding Blame)
'Study Log > DevOps' 카테고리의 다른 글
[MacOS] 맥에서 apache 설치 확인하고 실행, 중단 하는 방법 (0) | 2023.04.28 |
---|