DevOps는 SaaS 제품을 보유한 회사로 제한됩니까?


26

지속적인 제공, 자동화 등과 같은 DevOps를 설명하는 관행은 SaaS 제품과 같은 지속적인 서비스를 제공하는 제품과 관련이 있습니다.

예를 들어, 주로 다른 고객을 위해 프로젝트를 수행하는 소프트웨어 개발 회사는 프로젝트가 끝난 후에도이를 유지하지 못할 수 있습니다. 그리고 클라이언트 프로젝트는 관련이 없기 때문에 다른 클라이언트와 공유되지 않습니다.

DevOps는 일회성 인 여러 프로젝트를 개발하는 회사에도 적용됩니까? 이 경우 어떤 DevOps 사례가 적용됩니까?

답변:


32

절대적으로하지!

DevOps는보다 효율적인 효율성을 위해 기존 사일로 (부서)를 분해하는 것입니다.

팀 간의 의사 소통 개선, 가시성 향상 및 신뢰성 있고 자동화 된 프로세스는 더 나은 제품을 달성하는 방법입니다.

나는 내부 도구를 지원하고 대중을 대상으로하는 웹 사이트를 개발할 수있는 큰 미디어 회사에서 일했습니다.

우리의 경우 DevOps의 이점은 다음과 같습니다.

  • 지속적인 빌드를 통해 코드에 통합 또는 빌드 문제가있는 경우 나중에 개발 팀에 알리지 않습니다. 그들은 방금 저지른 코드 조각에 마음이있는 동안 문제를 해결할 수 있습니다.
  • QA 팀은 지속적인 테스트 및 제공을 통해 문제를 조기에 발견하고 더 일찍보고 할 수있었습니다. 이로 인해 버그를 찾고 수정하는 데 걸리는 시간이 줄어들고 이러한 조사의 복잡성이 줄었습니다.
  • 우리는 로그 수집 및 집계 도구를 사용하여 개발자가 일반적으로 보지 않을 것 (디버거에 매우 열중했습니다)에 액세스 할 수 있도록했습니다-다른 팀이 로그를보고 사용하는 방법을 이해하여 전반적인 로그 품질을 향상시킵니다.
  • 우리는 종종 정보를 공유하고 팀간에 지식을 공유하기 위해 문서를 작성하여 벽을 허 물었습니다. Ops의 요구 사항을 이해함으로써 애플리케이션을 부트 스트랩 할 때 항상 염두에 두어야 할 사항 (속성 관리 위치 / 방법 등)에 대한 몇 가지 지침을 만듭니다. Dev의 현실을 이해함으로써 (더 많은 기능, 더 빠른, gogogogo!) 우리는 ops가 개발자의 요구에 더 적합한 서버와 클러스터를 만들도록 할 수있었습니다.
  • 전체 배포 품질도 크게 향상되었습니다. 팀에서 배포를 처리하여 운영팀과 개발자 모두를 완벽하게 파악했습니다. 이것은 개발자가 패키지와 한 페이지의 문서를 "Install this!"라고하는 운영진에게 넘겨주는 "코드 핸드 오프"와 관련된 많은 문제를 제거했습니다.

전반적으로, 하루에 한 번 또는 한 달에 한 번 생산 환경을 업데이트하거나 고객 수 또는 비즈니스 모델 수에 관계없이 모든 기업이 더 나은 커뮤니케이션, 더 나은 도구, 더 나은 가시성, 더 빠른 피드백, 기타


1
실제로 DevOps는 거의 모든 sw 개발 조직에 적용 할 수 있으며, 매년 소수의 공개 릴리스를 사용하는 대규모 임베디드 제품에도 적용 할 수 있습니다. 개발 파이프 라인 내에서 지속적인 제공 통해 더 나은 품질, 비용 절감, 출시 예측 성 등
Dan Cornilescu 2012 년

그 대답은 SaaS를 상기 시키며, 비 SaaS 제품 또는 서비스가 이러한 관행으로부터 어떻게 혜택을 얻을 수 있는지를 잘 설명하지는 않습니다.
Evgeny

내가 작업하고 있던 제품은 SaaS가 아니었다 (반대). 그러나 근거는 동일하게 유지됩니다. SaaS인지 여부는 중요하지 않습니다. DevOps는 비 전통적인 방식으로 제품을 개선하려고합니다. 나는 우리의 가격 모델이나 오퍼링에 대해 아무것도 알 수 없었습니다.
Alexandre

13

우리 팀과 저는 "일회성"을 개발할 책임이 있습니다. 한 번 완료된 제품은 유지 보수를 위해 고객에게 제공되거나 경우에 따라 유료로 관리됩니다.

신뢰할 수 있고 입증 된 제품을 배송하기 위해서는 고객의 지속적인 피드백을 처리 할 수있는 견고한 개발 파이프 라인을 유지해야합니다.

클라이언트는 DevOps에 관심이 없지만 (대부분의 경우) 여전히 도움이됩니다. DevOps를 사용하면 새로운 빌드를 신속하게 추진할 수 있으므로 클라이언트는 몇 시간이 아닌 몇 분 안에 피드백을 볼 수 있으며 Jenkins / Travis를 통한 테스트에서 오류 / 버그를 발견 할 수도 있습니다.

프로젝트 간 배포 전략이 동일하게 유지되도록 응용 프로그램 컨테이너화에 중점을 둡니다. Docker를 사용하면 응용 프로그램을 고객에게 쉽게 전달할 수 있습니다.

DevOps가 절약 한 비용은 결정하기 어렵습니다. 파이프 라인에 사용하기로 선택한 소프트웨어 (Travis, Jenkins, Puppet 등)의 추가 비용이 발생하지만 버그를 수정하고 고객에게 신속하게 피드백을 제공함으로써 시간과 비용을 절약 할 수 있습니다. 빠른 응답 시간으로 고객을 만족시키고 지갑을 행복하게 유지하십시오.


이것이 왜 중요한지 몇 가지 이유와 이점을 제공 할 수 있습니까? 고객은 실제로 파이프 라인 또는 약속 된 날짜의 완료된 프로젝트와 지불해야하는 가격에 관심이 있습니까? 이러한 "devops-y"작업을 모두 수행하지 않음으로써 비용을 줄일 수 있습니까? 이러한 일을하지 않으면 서 프로젝트에 더 많은 시간을 할애하고 프로젝트에 더 많은 돈을 벌 수 있습니까?
Evgeny

1
@Evgeny DevOps는 제 답변에 설명 된 이유로 프로젝트를 정시에 예산에 맞게 완료하도록 도와줍니다. DevOps를 줄이면 내가 설명한 이점도 줄일 수 있습니다. 건물과 테스트는 종종 예산과 시간을 유지하는 데 도움이됩니다. 나중에 버그를 찾는 데 더 많은 비용이 들며 수정하는 데 더 많은 시간이 걸리며, 그 문제는 계속해서 입증되었습니다. 클라이언트는 파이프 라인에 신경 쓰지 않지만 피드백을 기다리는 시간이 길어질수록 재 작성에 더 많은 비용과 시간이 소요됩니다.
Alexandre

애자일 소프트웨어 개발 아닌가요?
Evgeny

@Evgeny 나는 대답을 명확히하기 위해 업데이트했습니다. 우리는 애자일을 사용하지만 이것이 DevOps 사고 방식을 가질 수 없다는 것을 의미하지는 않습니다.
Turtle

1
@Evgeny 당신은 아마도 당신의 단위 테스트와 승인 테스트를 유지하지 않으면 일부를 절약 할 수 있지만, 이것은 DevOps 안티 패턴 인 기술 부채를 형성합니다. 몇 주 또는 몇 달 동안 벗어날 수도 있지만 곧 테스트 할 수없는 혼란을 유지하기가 어려울 수 있습니다.
Steve Button

3

소프트웨어를 수축 포장 제품으로, 완전히 설치 및 지원되는 배포 및 장치의 내장 코드로 소프트웨어를 제작하는 회사에서 일했습니다. 이러한 모든 회사에서 DevOps는 개발을위한 필수 지원을 제공합니다.

  • 알려진 제어 된 컴파일러, 라이브러리 및 기타 빌드 도구 구성을 사용하여 자동화되고 재현 가능한 소프트웨어 빌드.
  • 회귀 테스트 및 새로운 기능 테스트를위한 자동화 된 반복 가능한 시스템 테스트
  • 기타 자동적이고 정기적 인 조치 (예 : 번역가가 확인하고 기술 저자가 사용자 매뉴얼에 통합 할 수 있도록 지원되는 모든 언어로 지속적으로 업데이트되는 샘플 스크린 샷).

모든 경우에 개별 개발자 일회성으로 할 수 있지만 개발자 시간을 잘 활용하지 못하거나 자동화 된 빌드와 동일한 구성 제어를 보장 할 수 없습니다.


자동화는 실력이 아닙니다. 마지막으로 아래 데이비드 복의 대답과 동일 댓글 (죄송합니다, 내 의견은, 내가을 downvoted 시간에 분실 된 단지 그것을 발견)
Tensibai

3

이전에 소프트웨어 개발 및 구현에 대한 활동은 부서 간 긴밀한 통합이 필요하지 않았습니다. 그러나 오늘날에는 모든 부서 (개발, IT 운영, 품질 보증 등)를 긴밀히 협력해야합니다.

개발자에게 변화는 그들이 지불하는 것입니다. 비즈니스는 항상 현대 세계에 맞게 변경해야합니다. 이러한 이해를 통해 개발자는 가능한 최대 변경 횟수를 생성 할 수 있습니다. IT 전문가는 변화에 해를 끼치는 이해가 다릅니다. 그들 각각은 그것이 올바르게 작동하여 비즈니스에 도움이된다고 생각합니다. 실제로, 우리가 그것들을 개별적으로 고려한다면, 그들은 둘 다 맞습니다.

모든 직원은 자신이 단일 프로세스의 일부라는 것을 이해해야합니다. DevOps는 사고를 육성하여 모든 사람의 개인적인 결정과 행동이 단일 목표의 실현을 향해야한다는 것을 깨달을 수 있습니다. 그리고 성공은 개별 역할의 성공이 아니라 전체 개발-배달주기를 기준으로 측정해야합니다. 개발자와 유지 보수 전문가 간의 긴밀한 협력의 결과로, 두 분야의 최고 성과를 달성하고 사용자의 이익을 위해 이들을 결합한 새로운 세대의 엔지니어가 구성됩니다. 이는 개발, 구성 관리, 데이터베이스 관리, 테스트 및 인프라 관리에 경험이있는 부서 간 팀의 모습에서 나타납니다.

따라서이 방법론은 SaaS뿐만 아니라 유용합니다.


0

전혀. 이 스레드에 대한 훌륭한 예가 이미 있지만 내 일화를 공유하고 싶습니다. 2001 년에 CD 제작과 관련된 릴리스로 소프트웨어 프로젝트를 물려 받았습니다. 릴리스 프로세스에 대한 문서에는 이전 엔지니어가 문서화 한 40 (!) 단계가 포함되어 있습니다. 여기에는 "이 구성 파일을 열고 41 행에서 .jar 파일의 이름을 변경하여 버전 번호를 포함하십시오. 새로운 릴리스 ".

우리는 빌드 프로세스의 모든 단계를 적극적으로 자동화하여 수작업으로 작성된 지침을 bash로 스크립트 된 'patch'와 같은 것으로 대체했습니다. 프로젝트 파일을 패치 가능하게 만들기 위해 타사 설치 도구 공급 업체와 티켓을 열어야했습니다.

프로세스가 자동화되면 'CD Jukebox'를 구입했습니다. 매일 밤 테스트가 끝나면 빌드 머신은 자동으로 새 설치 CD를 만듭니다. 우리 테스터는 다음날 아침에 와서 디스크를 잡고 모든 것이 설치 가능한지 확인할 수있었습니다.

소프트웨어를 서비스로 배포 할 수있을 때 피드백 루프가 더 엄격하지만 자동화, 피드백, 사이클 시간, 소규모 릴리스 등의 핵심 원칙이 모두 적용됩니다.


이것은 자동화와 관련이 있지만 어떤 식 으로든 devops 조직과는 관련이 없습니다. 나는 어디에서나 많은 징계 팀에 대한 언급을 보지 못하고 그들이 상속하는 것을 자동화하는 것입니다.
Tensibai

이것은 2001 년이었습니다. DevOps가 사용되기 오래 전입니다. 이것은 자동화 만이 아니라 결국 DevOps의 'Culture'라는 레이블이 붙은 것과 동일한 방식으로 프로젝트 관리를 간소화했다고 생각합니다. 따라서 SaaS 조직 외부의 DevOps 태도의 예입니다.
David Bock

DevOps는 자동화 나 프로젝트 관리에 관한 것이 아닙니다. 그것은 사일로 기반 조직을 근절하기위한 것입니다. 죄송합니다.이 답변이 실제로 질문과 관련이 있다고 생각하지 않습니다 (이것은 그다지 흥미롭지 않다는 것을 의미하지는 않지만 올바른 장소에 있지는 않습니다. 실제로 어디에있을 수 있는지 알지 못합니다. 나중에)
Tensibai

CD를 일관되고 신속하게 잘라 내면 QA로부터 이전보다 훨씬 더 빠르게 피드백을받을 수 있습니다. 이것은 사일로를 줄였습니다. 활동에 대한 중앙 집중식 예산 주변의 불화를 막기까지 1 년 또는 2 년이 걸렸기 때문에이를 제거하지는 못했지만 확실히 Makig에서 중요한 단계였습니다. 또한 릴리스 프로세스가 중단 된시기를 훨씬 빨리 알았습니다. 나는 DevOps에 대한 나의 개인적인 길로 이와 같은 많은 작은 것들을 인정합니다.
David Bock

이 마지막 의견은이 질문에 대한이 답변에 더 의미가 있습니다. 포함하도록 편집 해야합니다. 여전히이 형식에 맞지 않는다고 생각하지만이 비공개 베타의 전반적인 진화를 관찰하면 내 위치가 잘못 된 것 같습니다. ... 그것은 당신에게 달려 있습니다. 정보를 편집하지 않고
다운 보트
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.