DevOps
Updated:
Sofrware Development methodology
Waterfall model
Waterfall Model에 따라 SW를 개발할 때 다음과 같은 문제들이 발생한다.
- High Risk, Uncertainty(불확실성)
- 최종 단계에 가서야 동작하는 SW가 생상됨
- 테스트 단계에서 단점이 발견되어도 수정하기 어려움
- Requirement들이 자주 변경되는 SW 개발에 적용하기 어려움
- 복잡합 SW 개발에 부적절
- Object Oriented 프로젝트에 부적절
이런 Waterfall Model의 문제점들 때문에 Waterfall Model을 개선하기 위해 전체 개발 프로젝트를 여러 단계의 iteration으로 나눈 Agile Methodology가 등장하였다.
Agile Model
Agile Model에서 각 iteration의 소요 시간은 동일해야 하며 대략 2~8주이다. 각 iteration마다 정해진 기능이 동작하는 SW가 생산된다.
하지만 Agile 모델은 Waterfall 모델이 비효율적이라는 것을 발견한 다음에 개선해 보려는 시도이기 때문에 원래의 methodolgy가 잘못된 것이므로 개선에 한계가 있다. 이상적인 methology를 찾지 못해서가 아니라 당시의 개발 기술을 기반으로 적용할 수 있는 개발 방법론을 갖춘 것에 불과하다.
결론적으로 구현 기술을 근거로 개발 방법론을 만드는 것은 절대 피해야 한다. 문제를 해결하려는 데, 구현 엔지니어가 구현 기술이 이러하기 때문에 이렇게 개발해야 한다는 주장을 듣고 결정하면 망하는 지름길이다. 그렇다면 구현자가 아니라 데이터 사용자가 이런 것이 필요하다는 목표를 가능한 구체적으로 결정하고 만일 엔지니어가 구현할 수 없다고 하면 다른 엔지니어를 고용해야 한다.
DevOps(Development + Operations)
지금(2005~2015년)의 개발 방법론인 CI/CD는 지속적 통합(Continuous integration) 및 지속적 제공/배포(Continuous delivery/deploy)를 의미하며, 소프트웨어 개발 라이프사이클을 간소화하고 가속화하는 것을 목표로한다.
CI/CD 파이프라인은 더 자주, 더 신뢰성 높은 수정된 코드를 deploy할 수 있도록 DevOps 팀이 SW를 구현하는 방법론으로서 현재로서는 가장 근사한 실제 개발 행위/팀 문화이다. 이는 Obeject-oriented SW design/implementation(구현) 기술 발전에 기인하고 실제 복잡한 SW를 개발한 경험자들의 누적된 경험에 의한 팀 문화적 산물이다. CI/CD 개발 문화가 성숙된 DevOps SW 개발 도구들의 발전으로 꽃을 피우기 시작했고 DevOps 도구들을 사용하면 CI/CD가 강제적으로 수행된다.
댓글남기기