애자일 프로세스, CI(Continuous Integration), Devops 등에 대한 단상...

문태준의 이미지

https://groups.google.com/forum/#!topic/sysadminstudy/z1zQFXBXNrs 에 포스팅했던 내용입니다.

회사에서 팀내 QA팀과 메일을 주고받은것이 있어서 포워딩합니다.
Continuous Integration (지속적인 통합) 은 아래 내용 참고.
http://wiki.tunelinux.pe.kr/pages/viewpage.action?pageId=885017

해외에서 그리고 국내에서 개발과 관련하여 몇 년전부터 많은 사람들이 애자일 개발 프로세스에 많은 관심을 가지기 시작하였습니다.
전통적인 개발프로세스는 폭포수 모델이라고 하여 요구사항 기술 -> 설계 -> 구현 -> 통합 -> 시험과 디버깅 -> 설치 -> 유지보수의 작업 등 순차적으로 진행을 합니다.
일반적인 SI 개발을 생각하면 됩니다.
http://ko.wikipedia.org/wiki/%ED%8F%AD%ED%8F%AC%EC%88%98_%EB%AA%A8%EB%8D%B8

그런데 90년대 후반 인터넷이 빠르게 발전을 하고 신속하게 고객의 요구사항을 받아 빠르게 처리하기 위해서는 이러한 개발방법론이 맞지가 않았고 그중의 하나로 애자일 개발프로세도 등장을 하였습니다.
http://ko.wikipedia.org/wiki/%EC%95%A0%EC%9E%90%EC%9D%BC_%EA%B0%9C%EB%B0%9C_%ED%94%84%EB%A1%9C%EC%84%B8%EC%8A%A4
“그러므로 애자일 개발 방법론은 계획을 통해서 주도해 나갔던 과거의 방법론과는 다르게 앞을 예측하며 개발을 하지 않고, 일정한 주기를 가지고 끊임없이 프로토 타입을 만들어내며 그때 그때 필요한 요구를 더하고 수정하여 하나의 커다란 소프트웨어를 개발해 나가는 adaptive style 이라고 할 수 있다.
애자일 개발 프로세스란 어느 특정 개발 방법론을 가리키는 말은 아니고 "애자일(Agile=기민한, 좋은것을 빠르고 낭비없게 만드는 것) 개발을 가능하게 해 주는 다양한 방법론 전체를 일컫는 말이다. 예전에는 애자일 개발 프로세스는 "경량(Lightweight)" 프로세스로 불렸다. 익스트림 프로그래밍 (XP:eXtreme Programming)이 애자일 개발 프로세스의 대표적인 방법이라 볼 수 있다”
그런데 이렇게 그때 그때 필요한 요구를 더하고 수정하여 개발을 해 나가다보니 소프트웨어 버전 업데이트하고 빌드, 테스팅, 서버 배포 등의 과정도 더 잦아지고 이런 과정을 자동화해야 할 필요성도 커졌습니다. 이러한 요구들을 담은 것들이 CI(Continuous Integration) 라고 할 수 있을 듯 합니다.

여기까지는 개발쪽만 언급을 한 것입니다. 그런데 인터넷 서비스의 특성상 프로그램 업데이트도 빨라야하고 이걸 실서비스에 적용을 해야 하다보니 개발과 QA, 운영쪽간에 협업의 문제가 중요해졌습니다.
그러면서 요즘 해외에서는 DevOPs 라는 것이 한창 유행하고 있지요. 개발과 품질관리, 운영쪽이 더 긴밀하게 협력을 해야하고 서로간에 “이건 너네가 해야되” 라고 비방하는 것이 아니라 문제를 해결하기 위해 서로 관심을 가지고 문제를 해결해 나아가는 것이지요. 또 이러한 것들을 해결할 수 있는 각종 자동화된 도구, 툴들이 중요해진 것이구요.
http://dev.kthcorp.com/2012/06/20/devops-new-trend-in-developement-and-operations/

물론 저도 이런 생각들은 있지만 이런 것들이 어떻게 우리 회사에 적용될 수 있나? 거기까지는 잘 생각이 나지는 않습니다만 분명히 참고할 만한 것은 있지 않을까 생각이 듭니다.

그리고 CI 관련한 툴들은 개발조직만 유용한 것이 아니라 운영하는 조직에서도 유용합니다.
사람이 수작업으면 하게 되면 실수도 하게 되고 표준화도 어렵기 때문에 운영도 “코드”로 관리해야 대규모 시스템을 관리 및 운영할 수 있지요.

댓글

goforit의 이미지

오늘 고객과 이와 비슷한 내용을 회의했습니다.

소트웨어 엔지니어가 한 1000명도 되는데, 사용하는 툴은 다음과 같더군요.
-Agile
-Jira
-SVN
-Hudson

특히 Jira를 전체 통화합 환경으로 팀과 팀 사이에 서로 진행 사항을 체크하도록 만들었습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.