본문 바로가기

松泉, 인생글, 바라보기

바라보기, 찾기, DevOps, 데브옵스, Development, Operations

728x90
반응형

바라보기, 찾기, DevOps, 데브옵스, Development, Operations

 

데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다. 데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다.-위키백과


데브옵스의 목적은 전반적인 배포 파이프라인에 걸쳐있다. 여기에는 개선된 배치(deployment) 주기를 포함하며 다음으로 이어질 수 있다:

  • 제품 출시까지 걸리는 기간(time to market) 단축
  • 새로운 판의 더 낮은 실패율
  • 픽스 간 짧아진 리드 타임(상품 생산 시작부터 완성까지 걸리는 시간)
  • 복구 시 더 빠른 평균 시간 (새로운 릴리스의 충돌 및 그 밖에 현재의 시스템를 비활성화하는 상황에서)

단순한 프로세스들은 데브옵스 접근을 사용하여 더 프로그래밍 가능하게 되고 유동적으로 되고 있다.[1] 데브옵스는 운영 프로세스의 예측 가능성, 효율성, 보안, 유지보수 가능성을 극대화하는 것이 목적이다. 더 가끔씩 자동화가 이러한 목표를 지원한다.


데브옵스 툴체인

 
  1. 계획 - 목적을 수행하기 앞서 방법이나 절차 등을 미리 생각하여 계획.
  2. 코드 - 코드 개발 및 검토, 버전 관리 도구, 코드 병합
  3. 빌드 - 지속적 통합(CI) 도구, 빌드 상태
  4. 테스트 - 테스트 및 결과가 성능을 결정
  5. 패키지 - 애플리케이션 디플로이 이전 단계
  6. 릴리스 - 변경사항 관리, 릴리스 승인, 릴리스 자동화
  7. 구성 - 인프라스트럭처 구성 및 관리, IaC(Infrastructure as Code) 도구
  8. 모니터링 - 애플리케이션 성능 모니터링, 최종 사용자 경험.

DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다. 기존의 소프트웨어 개발 및 인프라 관리 프로세스를 사용하는 조직보다 제품을 더 빠르게 혁신하고 개선할 수 있습니다. 이러한 빠른 속도를 통해 조직은 고객을 더 잘 지원하고 시장에서 좀 더 효과적으로 경쟁할 수 있습니다.-aws

DevOps 모델에서는 개발팀과 운영팀이 더 이상 "사일로"에 묶여 있지 않습니다. 때로는 이 두 팀이 단일팀으로 병합되어 엔지니어가 개발에서 테스트, 배포, 운영에 이르기까지 전체 애플리케이션 수명 주기에 걸쳐 작업하고 단일 기능에 한정되지 않은 광범위한 기술을 개발합니다.

일부 DevOps 모델에서 품질 보증팀과 보안팀 또한 애플리케이션 수명 주기에 걸쳐 개발 및 운영과 좀 더 긴밀하게 통합됩니다. DevOps 팀 전체가 보안을 중점으로 두는 경우 때때로 DevSecOps라고 불립니다.

이러한 팀에서는 DevOps 방식을 사용하여 속도가 느리고 수동으로 수행되던 프로세스를 자동화합니다. 또한, 애플리케이션을 안정적으로 빠르게 운영하고 개선하는 데 도움이 되는 기술 스택과 도구를 사용합니다. 이러한 도구 덕분에 엔지니어는 이전 같았으면 다른 팀의 도움이 필요했을 코드 배포 또는 인프라 프로비저닝과 같이 작업을 독립적으로 수행할 수 있으며, 따라서 팀의 작업 속도가 더욱 빨라집니다.

소프트웨어와 인터넷은 쇼핑에서 엔터테인먼트 그리고 뱅킹에 이르기까지 전 세계와 산업을 변화시켰습니다. 이제 소프트웨어는 비즈니스를 지원하는 것에 그치지 않고, 비즈니스의 모든 부분에서 핵심적인 구성 요소가 되었습니다. 기업은 온라인 서비스 또는 애플리케이션으로 제공되는 소프트웨어를 통해 온갖 종류의 디바이스에서 고객과 상호 작용합니다. 또한, 소프트웨어를 사용하여 물류, 통신, 운영 등과 같은 가치 체인의 모든 부분을 혁신함으로써 운영 효율성을 향상합니다. 20세기에 실제 상품을 제조하는 기업이 산업 자동화를 통해 제품의 설계, 생산 및 전달 방법을 혁신한 것과 마찬가지로, 오늘날의 기업은 소프트웨어를 구축하고 제공하는 방법을 혁신해야 합니다.

DevOps로 전환하기 위해서는 문화와 사고방식의 변화가 필요합니다. 간단하게 말하자면 DevOps는 기존에 사일로에 묶여 있던 개발과 운영이라는 두 팀 간의 장벽을 없애줍니다. 일부 조직에서는 개발팀과 운영팀이 나뉘어 있지 않고 엔지니어가 두 업무를 모두 수행할 수도 있습니다. DevOps에서는 두 팀이 함께 작업하여 개발자의 생산성과 운영의 안정성을 모두 최적화합니다. 두 팀은 자주 소통하고, 효율성을 높이고, 고객에게 제공하는 서비스의 품질을 향상하기 위해 최선을 다합니다. 최종 고객의 요구와 자신이 어떻게 이러한 요구를 해결하는 데 공헌할 수 있는지 생각함으로써 일반적으로 명시된 역할 또는 직책의 범위를 넘어 서비스에 대한 완전한 주인의식을 갖습니다. 품질 보증팀 및 보안팀도 이 두 팀과 긴밀하게 통합될 수 있습니다. DevOps 모델을 사용하는 조직은 어떻게 구성되어 있든, 전체 개발 및 인프라 수명 주기를 스스로의 책임으로 간주하는 팀들로 구성됩니다.

조직이 소프트웨어 개발과 인프라 관리 프로세스의 자동화 및 간소화를 통해 더 빠르게 혁신할 수 있도록 지원하는 몇 가지 주요 방식이 있습니다. 이러한 방식 대부분은 적절한 도구를 사용해 수행됩니다.

기본 방식 중 하나는 소규모 업데이트를 자주 수행하는 것입니다. 이 방식을 통해 조직은 고객을 위해 더 빠르게 혁신할 수 있습니다. 이러한 업데이트는 기존 릴리스 방식에서 수행되는 낮은 빈도의 업데이트보다 일반적으로 좀 더 증분적인 특성을 갖습니다. 소규모로 자주 업데이트하면 각 배포의 위험이 줄어듭니다. 팀에서 오류의 원인이 되는 최근 배포를 확인할 수 있으므로 더 빠르게 버그를 해결할 수 있습니다. 업데이트 소요 시간과 규모는 다르지만, DevOps 모델을 사용하는 조직은 기존 소프트웨어 개발 방식을 사용하는 조직보다 훨씬 더 자주 업데이트를 배포합니다.

또한, 조직은 마이크로 서비스 아키텍처를 사용하여 애플리케이션의 유연성과 혁신의 속도를 높일 수 있습니다. 마이크로 서비스 아키텍처는 복잡한 대규모 시스템을 간단하고 독립적인 프로젝트로 결합 해제합니다. 애플리케이션은 많은 개별 구성 요소(서비스)로 분할되며, 각 서비스는 단일 목적 또는 기능으로 한정되고 피어 서비스 및 전체 애플리케이션과는 별개로 운영됩니다. 이 아키텍처는 애플리케이션 업데이트를 위한 조정 오버헤드를 줄이고, 각 서비스가 이를 담당하는 작고 민첩한 팀과 연결되면 조직이 좀 더 신속하게 움직일 수 있습니다.

하지만 마이크로 서비스와 릴리스 빈도 증가의 조합은 배포 수를 현저히 늘려 운영 문제로 이어질 수 있습니다. 따라서 지속적 통합 및 지속적 전달과 같은 DevOps 방식을 사용하면, 이러한 문제를 해결하고 조직이 안전하고 안정적인 방식으로 신속하게 업데이트를 제공할 수 있습니다. 코드형 인프라 및 구성 관리와 같은 인프라 자동화 방식은 잦은 변경에 대해 컴퓨팅 리소스를 탄력적이고 대응적으로 유지하는 데 도움이 됩니다. 또한, 모니터링과 로깅의 사용도 엔지니어가 애플리케이션 및 인프라의 성능을 추적하여 문제에 신속하게 대응할 수 있게 하는 데 도움이 됩니다.

이러한 방식들을 함께 사용하면 조직이 더 빠르고 안정적으로 고객에게 업데이트를 제공할 수 있습니다. 다음은 주요 DevOps 방식의 개요입니다.


 

다음은 DevOps 모범 사례입니다. 

아래에서 각각의 사례에 대해 자세히 알아보십시오.

 

DevOps란?

DevOps는 소프트웨어 개발 및 IT 운영 팀의 작업을 결합하고 자동화함으로써 고품질의 소프트웨어를 보다 빠르게 제공합니다.

DevOps는 근본적으로 더 우수한 품질의 소프트웨어를 더 신속하게 딜리버리하기 위한 소프트웨어 개발 프로세스이자 조직 문화적 변화를 가리킵니다. 이를 위해 개발 팀과 IT 운영 팀의 활동을 자동화하고 통합합니다. 이 두 조직은 지금까지 개별적으로, 즉 각자의 사일로 내에서 작업하곤 했습니다.

현실적으로 최상의 DevOps 프로세스 및 문화는 개발 및 운영의 영역에 머무르지 않고 모든 애플리케이션 이해 관계자, 이를테면 플랫폼/인프라 엔지니어링, 보안, 컴플라이언스, 거버넌스, 위험 관리, LOB(line-of-business), 최종 사용자, 고객 등의 의견을 소프트웨어 개발 라이프사이클에 반영합니다.  

DevOps는 수 개월 또는 수 년마다의 거대한 애플리케이션 전체 코드 릴리스에서부터 매일 또는 하루에 몇 번씩 빈번하게 릴리스되는 반복적인 작은 특성 또는 기능적 업데이트에 이르기까지 과거 20년이 넘는 동안의 소프트웨어 딜리버리 사이클의 진화의 현재 상태를 나타냅니다.

궁극적으로, DevOps는 빈번하고 혁신적인 새로운 기능과 중단 없는 성능 및 가용성에 대한 소프트웨어 사용자의 끊임없이 증가하는 요구사항을 충족시키는 것입니다.-IBM

 

https://www.ibm.com/kr-ko/topics/devops

 

 

 

DevOps란? | IBM

DevOps는 소프트웨어 개발 및 IT 운영 팀의 작업을 결합하고 자동화함으로써 고품질의 소프트웨어를 보다 빠르게 제공합니다.

www.ibm.com

 

 

데브옵스(DevOps)란?ㅣ클라우드 엔지니어, 데브옵스 엔지니어가 하는 일

 

데브옵스(DevOps)란?

데브옵스의 정의에 대해 찾아보시면 개발과 운영을 합친 것이라는 표현을 볼 때가 있습니다. 용어부터 개발을 뜻하는 Development에서 DEV를, 운영을 뜻하는 Operations에서 OPS를 가져왔죠. 더 디테일하게 들어가면,

“단순한 개발과 운영의 통합이 아니며, 하나의 언어나 기술을 뜻하는 것도 아니며, 개발과 운영이 가지는 간극을 줄이는 시도로써 하나의 문화이자 방법론으로 볼 수 있다.”

라는 표현도 볼 수 있는데요. 데브옵스를 처음 접하는 분들에게는 여전히 한 번에 와닿지 않는 설명일 수 있습니다.


데브옵스(DevOps) 중요성이 커지는 이유

앞서 소개한 데브옵스 엔지니어가 하는 일의 공통점은 “현대의 모든 서비스(APP)가 겪을 수밖에 없는 문제를 해결하기 위한 시도”라는 것입니다.

필수적인 단계의 문제를
해결하는 데브옵스 솔루션

기업은 여러 가지 서비스를 제공하고, 사용자는 애플리케이션을 통해서 서비스를 소비하는 것이 현대의 일반적인 패턴이라고 할 수 있습니다. 서비스 제공자(기업)는 자신들의 서비스를 애플리케이션 사용자(고객)에게 전달하기 위해서 반드시 겪을 수밖에 없는 과정들이 있습니다. 이러한 과정은 기업의 비즈니스가 채팅 서비스든, 음식을 배달하는 것이든, 중고 거래를 하는 것이든, 그 어떤 비즈니스 영역을 다루는지와 상관없이 모두 겪게 됩니다. 그리고 그 과정들에는 해결해야 하는 문제가 존재하고 데브옵스 기반의 기술이 이 문제를 해결하는 데 도움이 되기 때문에 시간이 갈수록 수요가 증가하고 있는 것입니다.

https://www.codestates.com/blog/content/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

데브옵스(DevOps)란?ㅣ클라우드 엔지니어, 데브옵스 엔지니어가 하는 일

오늘날 많은 기업이 중요하게 생각하는 데브옵스(DevOps)가 무엇인지, 데브옵스 엔지니어 및 클라우드 엔지니어가 하는 일은 무엇인지, 모든 비즈니스가 겪을 수밖에 없는 단계(개발, 배포, 운영)

www.codestates.com

 


 

DevOps 정의

개발(Dev)과 운영(Ops)의 합성어인 DevOps는 고객에게 지속적으로 가치를 제공하도록 지원하는 사람, 프로세스 및 기술의 합집합입니다.

팀에는 DevOps가 어떤 의미일까요? DevOps는 개발, IT 운영, 품질 엔지니어링, 보안 등 이제껏 서로 단절되었던 역할들이 서로 조율하고 협업하여 더욱더 안정적이고 뛰어난 제품을 생산할 수 있도록 지원합니다. DevOps 방식과 도구를 비롯한 DevOps 문화를 도입하는 팀은 고객 요구 사항에 더 효과적으로 대응하고, 더욱 안심하고 애플리케이션을 빌드하며, 비즈니스 목표를 더 빨리 달성할 수 있습니다.-MS, azure

https://azure.microsoft.com/ko-kr/resources/cloud-computing-dictionary/what-is-devops

 

DevOps란? DevOps 설명 | Microsoft Azure

DevOps는 무엇이며, DevOps 방식과 역할이 자동화와 협업을 개선하여 고객을 위해 더 나은 제품을 만드는 데 어떤 도움이 되는지 알아보세요.

azure.microsoft.com

 

반응형