Page protected with pending changes

DevOps

DevOps

DevOps는 소프트웨어 개발(Dev)과 IT 운영(Ops)을 결합한 일련의 작업 방식입니다.시스템 개발 라이프 사이클의 단축과 높은 소프트웨어 품질[1]지속적인 제공을 목표로 하고 있습니다.DevOps는 Agile 소프트웨어 개발을 보완합니다. 몇 가지 DevOps 측면은 Agile 방법론에서 비롯되었습니다.

정의.

"개발"과 "운영"에 대한 용어와 개념의 교차 기능 조합(및 포트만테오)인 것 외에, 학계와 실무자들은 "DevOps"[a][b][c][d]라는 용어에 대한 보편적인 정의를 개발하지 않았다.대부분의 경우 DevOps는 공유 소유권, 워크플로우 자동화 및 신속한 피드백과 같은 주요 원칙을 특징으로 합니다.

학계의 관점에서 CSIRO소프트웨어 엔지니어링 연구소의 3명의 컴퓨터 과학 연구원인 Len Bass, Ingo Weber 및 Liming Zhu는 DevOps를 "시스템 변경에서 정상 가동까지의 시간을 줄이면서 높은 품질을 보장하기 위한 일련의 관행"으로 정의할 것을 제안했습니다.「ty」[5]를 참조해 주세요.

단, 이 용어는 여러 컨텍스트에서 사용됩니다.가장 성공적인 DevOps는 특정 프랙티스, 문화 변경 및 [6]툴의 조합입니다.

역사

1993년 TINA-C는 소프트웨어 개발과 (텔레콤) 서비스 [7]운영을 결합한 서비스 라이프사이클 모델을 정의했습니다.

2009년 벨기에 겐트에서 devopsdays라는 이름의 첫 번째 컨퍼런스가 열렸다.이 컨퍼런스는 벨기에의 컨설턴트, 프로젝트 매니저, 민첩한 실무자인 Patrick Debois에 [8][9]의해 설립되었습니다.그 회의는 이제 다른 [10]나라로 퍼졌다.

2012년,[11][12] Puppet의 Alanna Brown에 의해 DevOps 보고서가 구상되어 시작되었습니다.

2014년 현재, Nicole Forsgren, Gene Kim, Jez Humble 등에 의해 연례 DevOps 보고서가 발행되었습니다.그들은 DevOps의 채택이 [13][14]가속화되고 있다고 말했다.또한 2014년에는 Lisa Crispin과 Janet Gregory가 테스트 및 DevOps에 [15][16]대한 장을 포함한 More Agile Testing이라는 책을 집필했습니다.

2016년에 처리량(배치 빈도, 변경 리드 타임) 및 안정성(평균 복구 시간, 변경 실패율)에 대한 DORA 지표가 DevOps 보고서에 [11]발표되었습니다.

다른 접근법과의 관계

DevOps 실무의 기본 아이디어 중 상당수는 린과 데밍계획-실행-체크-Act 사이클과 같은 다른 잘 알려진 실무에서 영감을 얻거나 반영되어 있으며, Toyota Way와 부품 및 배치 [17]크기를 세분화하는 Agile 접근 방식을 통해 구현되었습니다.1990년대 ITIL의 "하향식" 프로그레시브 어프로치와 경직된 프레임워크와는 달리 DevOps는 소프트웨어 엔지니어가 소프트웨어 엔지니어의 요구를 [18]고려하여 만든 "하향식"이며 유연한 프랙티스입니다.

민첩성

현대 DevOps와 자동화된 빌드 및 테스트, 지속적인 통합, 지속적인 제공과 같은 몇 가지 표준 DevOps 관행에 대한 동기는 1990년대, 공식적으로 2001년까지 거슬러 올라가는 신속한 변화를 위한 세계에서 비롯되었습니다.Extreme Programming과 같은 방법을 사용하는 민첩한 개발 팀은 애플리케이션과 관련된 운영/인프라스트럭처 책임(대부분 자동화)을 수반하지 않는 한 "고가의 소프트웨어를 [19]조기에 지속적으로 제공하여 고객 만족"을 얻을 수 없었습니다.Scrum은 2000년대 초에 주요 Agile 프레임워크로 부상했고 많은 Agile 팀의 엔지니어링 관행을 생략했기 때문에 운영/인프라 기능을 자동화하려는 움직임은 Agile에서 분리되어 오늘날의 DevOps로 확장되었습니다.현재 DevOps는 개발된 소프트웨어가 Agile을 통해 개발되었든 다른 방법론을 통해 개발되었든 상관없이 개발된 소프트웨어의 배포에 초점을 맞추고 있습니다.

ArchOps

ArchOps는 운영 [20]배포를 위해 소스 코드 대신 소프트웨어 아키텍처 아티팩트에서 시작하여 DevOps 실무의 확장을 제공합니다.ArchOps에 따르면 아키텍처 모델은 소프트웨어 개발, 배포 및 운영 분야에서 최고 수준의 엔터티입니다.

CI/CD

자동화는 DevOps 성공을 위한 핵심 원칙이며 CI/CD는 중요한 구성 요소입니다.[21]또한 팀 간 및 팀 간의 협업 및 커뮤니케이션이 개선되어 시장 출시 기간을 단축하고 위험을 [22]줄일 수 있습니다.

사이트 신뢰성 엔지니어링

2003년에 Google은 고품질의 최종 사용자 [23]경험을 유지하면서 대규모 고가용성 시스템에 새로운 기능을 지속적으로 출시하는 접근방식인 사이트 신뢰성 엔지니어링(SRE)을 개발했습니다.SRE는 DevOps의 개발보다 앞서지만, 일반적으로 서로 관련이 있는 것으로 간주됩니다.

도요타 생산 시스템, 린 사고, 카이젠

TPS라는 약자로도 알려진 도요타 생산 시스템은 지속적인 개선, 카이젠, 흐름 및 소규모 배치에 초점을 맞춘 린 사고 방식의 영감을 주었습니다.빠른 피드백 생성, 무리 지어 문제 해결을 위한 Andon 코드 원리는 TPS에서 [24][25]비롯되었습니다.

DevSecOps, 보안 왼쪽으로 이동

DevSecOps는 보안 프랙티스를 DevOps 접근법에 통합할 수 있도록 DevOps를 확장한 것입니다.기존의 일원화된 보안 팀 모델과 달리 각 제공 팀은 소프트웨어 전송에 올바른 보안 제어를 포함할 수 있습니다.보안 프랙티스와 테스트는 개발 라이프 사이클 초기에 수행되므로 "좌회전"이라는 용어를 사용할 수 있습니다.보안은 스태틱, 소프트웨어 구성 및 다이내믹의 3가지 주요 영역에서 테스트됩니다.

스태틱 애플리케이션보안테스트(SAST)를 통해 코드를 스태틱하게 체크하는 것은 보안에 특히 중점을 둔 화이트박스 테스트입니다.이러한 정적 코드 분석을 수행하려면 프로그래밍 언어에 따라 다른 도구가 필요합니다.소프트웨어 구성을 분석합니다.특히 라이브러리와 그 버전은 CERT 및 기타 전문가 그룹이 발표한 취약성 목록과 대조됩니다.클라이언트에 소프트웨어를 제공할 때는 라이선스와 배포된 소프트웨어(특히 카피레프트 라이선스)의 조합에 중점을 둡니다.동적 테스트는 블랙박스 테스트라고도 합니다.소프트웨어는 내부 기능을 알지 못한 채 테스트됩니다.DevSecOps에서는 Dynamic(DAST; 동적) 또는 침투 테스트라고 불리는 기능이 있습니다.목표는 특히 사이트스크립팅이나 SQL 주입 등의 오류를 조기에 발견하는 것입니다.위협 유형은 오픈 웹 애플리케이션 보안 프로젝트(: TOP10)[26]에 의해 공개됩니다.한편, 특히 Microservices Interactive Application Testing(IAST; 마이크로 서비스 인터랙티브응용 프로그램테스트)에서는 자동 기능 테스트를 실행할 때 어떤 코드가 실행되는지 체크하는 데 도움이 되기 때문에 어플리케이션 내의 취약성을 검출하는 데 초점을 맞추고 있습니다.SAT 및 DAST와 달리 IAT는 애플리케이션 내에서 작동합니다.

문화의 변화

DevOps 이니셔티브는 개발 [1]및 제공 프로세스에서 운영, 개발자테스터가 협업하는 방식을 변화시킴으로써 기업에 문화적[27] 변화를 가져올 수 있습니다.이러한 그룹이 통합적으로 작동하도록 하는 것은 엔터프라이즈 DevOps를 [28][29]채택하는 데 있어 중요한 과제입니다.DevOps는 툴체인과 [30]마찬가지로 문화에 관한 것입니다.

마이크로 서비스

원칙적으로 어떤 아키텍처 스타일로든 DevOps를 실행할 수 있지만, 마이크로 서비스 아키텍처 스타일은 지속적으로 배치된 시스템을 구축하기 위한 표준이 되고 있습니다.소규모 서비스는 지속적인 리팩터링을 [31]통해 개별 서비스의 아키텍처를 구현합니다.

DevOps 자동화

또한 조직 내에서 일관성, 신뢰성 및 효율성을 지원하며 일반적으로 공유 코드 저장소 또는 버전 제어를 통해 사용할 수 있습니다.DevOps 연구원 Ravi Teja Yarlagada는 "DevOps를 통해 모든 기능을 간단한 [32]코드를 사용하여 중앙에서 수행, 제어 및 관리할 수 있다는 가정이 있습니다."라고 가정합니다.

버전 관리를 통한 자동화

많은 조직이 버전 제어를 사용하여 가상 머신, 컨테이너화(또는 OS 레벨 가상화), CI/CD같은 DevOps 자동화 기술을 강화하고 있습니다.DevOps: 은행 도메인에서 툴 체인 개발이라는 백서는 동일한 프로젝트를 수행하는 개발자 팀이 "모든 개발자는 동일한 코드 베이스를 변경해야 하며 때로는 동일한 파일도 편집해야 합니다.효율적인 작업을 위해서는 엔지니어들이 충돌을 피하고 코드베이스 [33]이력을 유지할 수 있는 시스템이 있어야 한다"며 Git 버전 관리 시스템과 GitHub 플랫폼을 예로 들었다.

GitOps

GitOps는 DevOps에서 [34][35][36]발전했다.배포 구성의 특정 상태는 버전 제어(예:[37][38][39] Git 사용)입니다.구성 변경은 코드 검토 방법을 사용하여 관리할 수 있으며 버전 제어를 사용하여 롤백할 수 있습니다.

「 」를 참조해 주세요.

메모들

  1. ^ Dyck et al. (2015) "우리가 아는 바로는 릴리스 엔지니어링과 DevOps라는 용어에 대한 통일된 정의는 없습니다.그 결과 많은 사람들이 자신의 정의를 쓰거나 다른 사람에게 의존하기 때문에 그 [2]용어들을 혼동하게 됩니다.
  2. ^ Jabbari et al. (2016) "개별 연구가 DevOps를 [3]일관되게 정의하지 않기 때문에 이 연구의 연구 결과는 정의가 필요하다는 것을 보여주었다."
  3. ^ Erich et al. (2017) "DevOps 연구에 다양한 차이가 있음을 알게 되었다.DevOps가 다루는 개념이나 DevOps의 [4]정의 방법에 대한 합의가 이루어지지 않았습니다."
  4. ^ Erich et al. (2017) "우리는 학술 [4]문헌에서 DevOps의 특성에 대한 합의가 거의 없다는 것을 발견했다."

레퍼런스

  1. ^ a b Loukides, Mike (7 June 2012). "What is DevOps?". O'Reilly Media.
  2. ^ Dyck, Andrej; Penners, Ralf; Lichter, Horst (19 May 2015). "Towards Definitions for Release Engineering and DevOps". Proceedings of the 2015 IEEE/ACM 3rd International Workshop on Release Engineering. IEEE: 3. doi:10.1109/RELENG.2015.10. ISBN 978-1-4673-7070-7. S2CID 4659735.
  3. ^ Jabbari, Ramtin; bin Ali, Nauman; Petersen, Kai; Tanveer, Binish (May 2016). "What is DevOps?: A Systematic Mapping Study on Definitions and Practices". Proceedings of the 2016 Scientific Workshop. Association for Computing Machinery.
  4. ^ a b Erich, F.M.A.; Amrit, C.; Daneva, M. (June 2017). "A Qualitative Study of DevOps Usage in Practice". Journal of Software: Evolution and Process. 29 (6): e1885. doi:10.1002/smr.1885. S2CID 35914007.
  5. ^ Bass, Len; Weber, Ingo; Zhu, Liming (2015). DevOps: A Software Architect's Perspective. ISBN 978-0134049847.
  6. ^ Muñoz, Mirna; Negrete Rodríguez, Mario (April 2021). "A guidance to implement or reinforce a DevOps approach in organizations: A case study". {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  7. ^ 채프먼, M., Gatti, N: 서비스 라이프 사이클 모델, TINA '93, 페이지I-205-I-215, 1993년 9월
  8. ^ Mezak, Steve (25 January 2018). "The Origins of DevOps: What's in a Name?". devops.com. Retrieved 6 May 2019.
  9. ^ Debois, Patrick (9 October 2008). "Agile 2008 Toronto". Just Enough Documented Information. Retrieved 12 March 2015.
  10. ^ Debois, Patrick. "DevOps Days". DevOps Days. Retrieved 31 March 2011.
  11. ^ a b Alana Brown; Nicole Forsgren; Jez Humble; Nigel Kersten; Gene Kim (2016). "2016 State of DevOps Report" (PDF). Puppet Labs, DORA (DevOps Research. Retrieved 6 May 2019.
  12. ^ "Puppet - Alanna Brown". Puppet Labs. Retrieved 27 April 2019.
  13. ^ Nicole Forsgren; Gene Kim; Nigel Kersten; Jez Humble (2014). "2014 State of DevOps Report" (PDF). Puppet Labs, IT Revolution Press and ThoughtWorks. Retrieved 27 April 2019.
  14. ^ "2015 State of DevOps Report" (PDF). Puppet Labs, Pwc, IT Revolution Press. 2015. Retrieved 6 May 2019.
  15. ^ "More Agile Testing" (PDF). October 2014. Retrieved 6 May 2019.
  16. ^ Crispin, Lisa; Gregory, Janet (October 2014). More Agile Testing. ISBN 9780133749571. Retrieved 6 May 2019.
  17. ^ Klein, Brandon Thorin (1 May 2021). "The DevOps: A Concise Understanding to the DevOps Philosophy and Science". doi:10.2172/1785164. OSTI 1785164. S2CID 236606284. {{cite journal}}:Cite 저널 요구 사항 journal=(도움말)
  18. ^ "The History and Evolution of DevOps Tom Geraghty". Retrieved 29 November 2020.
  19. ^ "Principles behind the Agile Manifesto". agilemanifesto.org. Retrieved 6 December 2020.
  20. ^ Castellanos, Camilo; Correal, Dario (15 September 2018). Executing Architectural Models for Big Data Analytics. Lecture Notes in Computer Science. Vol. 11048. pp. 364–371. doi:10.1007/978-3-030-00761-4_24. ISBN 978-3-030-00760-7.
  21. ^ Humble, Jez; Farley, David (2011). Continuous Delivery: reliable software releases through build, test, and deployment automation. Pearson Education Inc. ISBN 978-0-321-60191-9.
  22. ^ Chen, Lianping (2015). "Continuous Delivery: Huge Benefits, but Challenges Too". IEEE Software. 32 (2): 50–54. doi:10.1109/MS.2015.27. S2CID 1241241.
  23. ^ Beyer, Betsy; Jones, Chris; Petoff, Jennifer; Murphy, Niall Richard (April 2016). Site Reliability Engineering. O'Reilly Media. ISBN 978-1-4919-2909-4.
  24. ^ DevOps, Brent Aaron Reed, Willy Schaub, 2018-11-14의 DNA 분석.
  25. ^ DevOps 핸드북:기술 조직에서 세계적인 수준의 민첩성, 신뢰성 및 보안을 만드는 방법, Gene Kim, Patrick Debois, John Willis, Jez Humble, 2016
  26. ^ OWASP TOP10, 오픈 웹 애플리케이션 보안 프로젝트, 2021-11-25에 액세스했습니다.
  27. ^ Emerging Technology Analysis: DevOps a Culture Shift, Not a Technology (Report). Gartner.
  28. ^ "Gartner IT Glossary – devops". Gartner. Retrieved 30 October 2015.
  29. ^ Jones, Stephen; Noppen, Joost; Lettice, Fiona (21 July 2016). Proceedings of the 2nd International Workshop on Quality-Aware Dev Ops - QUDOS 2016 (PDF). pp. 7–11. doi:10.1145/2945408.2945410. ISBN 9781450344111. S2CID 515140.
  30. ^ Mandi Walls (25 September 2015). "Building a DevOps culture". O'Reilly.
  31. ^ Chen, Lianping; Ali Babar, Muhammad (2014). "2014 IEEE/IFIP Conference on Software Architecture". The 11th Working IEEE/IFIP Conference on Software Architecture(WICSA 2014). IEEE. pp. 195–204. doi:10.1109/WICSA.2014.45. ISBN 978-1-4799-3412-6.
  32. ^ Teja Yarlagadda, Ravi (9 March 2021). "DevOps and Its Practices". SSRN 3798877.
  33. ^ Morisio, Maurizio (16 April 2021). DevOps: development of a toolchain in the banking domain. Politecnico di Torino (laurea). Retrieved 16 August 2021.
  34. ^ "Getting Started with GitOps". TheNewStack.io. 13 December 2021. Retrieved 5 April 2022.
  35. ^ "GitOps Workflows and Principles for Kubernetes". ContainerJournal.com. 1 April 2022. Retrieved 5 April 2022.
  36. ^ "Kubernetes at Scale without GitOps Is a Bad Idea". TheNewStack.io. 7 March 2022. Retrieved 5 April 2022.
  37. ^ "Top 5 Challenges in Modern Kubernetes Testing". TheNewStack.io. 11 March 2022. Retrieved 5 April 2022.
  38. ^ "The world's largest telcos are now embracing GitOps. Deutsche Telekom explains why".
  39. ^ "Can 'shift left' in DevOps pipelines go too far?". Techtarget.com. Retrieved 5 April 2022.

추가 정보

  • Davis, Jennifer; Daniels, Ryn (30 May 2016). Effective DevOps : building a culture of collaboration, affinity, and tooling at scale. Sebastopol, CA: O'Reilly. ISBN 9781491926437. OCLC 951434424.
  • Kim, Gene; Debois, Patrick; Willis, John; Humble, Jez; Allspaw, John (7 October 2015). The DevOps handbook : how to create world-class agility, reliability, and security in technology organizations (First ed.). Portland, OR. ISBN 9781942788003. OCLC 907166314.
  • Forsgren, Nicole; Humble, Jez; Kim, Gene (27 March 2018). Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations (First ed.). IT Revolution Press. ISBN 9781942788331.