배경
운용팀과 개발팀의 대립으로 시스템 개발이나 운용이 원활하게 진행되지 않는 경험은 어느 기업에서도 있을 것입니다.

DevOps는 전통적인 소프트웨어 개발과 인프라 관리 프로세스를 사용하는 것보다 빠른 속도로 제품의 진보와 향상을 달성하고 기업이 애플리케이션과 서비스를 빠르게 전달할 수 있도록 문화적인 기본 방침, 연습, 도구가 결합되어 있습니다. 이 가속화를 통해 기업은 고객에게 더 나은 서비스를 제공하고 시장 경쟁력을 높일 수 있습니다.
DevOps 란?
데브옵스(DevOps)는 소프트웨어의 개발(Development)과 운영(Operations)의 합성어로서, 소프트웨어 개발자와 정보기술 전문가 간의 소통, 협업 및 통합을 강조하는 개발 환경이나 문화를 말한다.

데브옵스는 소프트웨어 개발조직과 운영조직간의 상호 의존적 대응이며 조직이 소프트웨어 제품과 서비스를 빠른 시간에 개발 및 배포하는 것을 목적으로 한다.

Source – 위키피디아 : https://ko.wikipedia.org/wiki/%EB%8D%B0%EB%B8%8C%EC%98%B5%EC%8A%A4
DevOps의 이점
속도
빠르게 서비스를 반영하여 고객을 위한 혁신을 추진할 수 있어 변화하는 시장에 보다 잘 적합하며 비즈니스 성과를 보다 효율적으로 얻을 수 있습니다.
신속한 릴리즈
릴리즈 주기와 속도가 단축되어 제품 혁신과 개선이 더욱 빨라집니다. 신속하게 새로운 기능을 출시하거나 버그를 수정하고 고객의 요구에 신속하게 대응할 수 있으므로 경쟁 우위를 높일 수 있습니다.

지속적인 통합 과 지속적인 전달 은 빌드에서 배포까지 소프트웨어 릴리스 프로세스를 자동화하는 기술입니다.
신뢰성
애플리케이션 업데이트 및 인프라 변경에 대한 품질이 보장되므로 최종 사용자 경험을 긍정적으로 유지하면서 보다 신속한 속도로 안정적인 배포가 가능합니다.

지속적인 통합 과 지속적인 전달 과 같은 기술을 사용하여 각 변경 사항이 기능적이고 안전한지 테스트합니다. 모니터링 및 로깅 기술은 실시간 성능 정보를 항상 파악하는 데 도움이 됩니다.
확장성
규모에 맞는 인프라 및 개발 프로세스를 운영하고 관리합니다. 자동화 및 무결성은 복잡한 시스템이나 변화하는 시스템을 효율적으로 관리하고 위험을 줄이는 데 도움이 됩니다.

예를 들어 Infrastructure as Code 는 개발, 테스트 및 프로덕션 환경을 반복 가능하고 보다 효율적인 방식으로 관리하는 데 도움이 됩니다.
협업 문화 향상
DevOps의 문화적 모델을 기반으로 보다 효과적인 팀을 구축하고 소유권과 책임 등의 가치를 강조합니다.

개발 팀과 운영 팀은 긴밀하게 공동 작업 하고, 많은 책임을 공유하며, 각 워크플로우가 결합됩니다. 이렇게하면 비효율성을 줄이고 시간을 절약 할 수 있습니다
보안
통제와 컴플라이언스를 준수하면서 빠르게 마이그레이션할 수 있습니다. 자동화된 컴플라이언스 정책, 세밀한 제어 및 구성 관리 기술을 사용하여 보안을 유지하면서 DevOps 모델을 배포할 수 있습니다.

예를 들어 Infrastructure as Code 및 코드 정책 을 사용하여 규모에 맞는 규정 준수를 정의하고 상황을 추적할 수 있습니다.

 

 
DevOps 개발 방법
 
지속적 통합(CI: Continuous Integration):
지속적 통합(CI/CD) 은 자동화된 빌드 및 테스트를 수행하는 것입니다. 빌드와의 테스트를 하루에 빈번하고 자동적으로 실시 가능하게 해, DevOps에는 빠뜨릴 수 없는 기법입니다. 코드 결함을 신속하게 발견하고 수정할 수 있으므로 단기간에 고품질 시스템을 개발할 수 있습니다. 이 반복을 연속 통합이라고 합니다.
지속적인 전달 (CD : Continuous Delivery) :
지속적인 전달은 빌드 배포를 자동화하는 릴리스 파이프 라인을 만들고 코드가 변경 될 때마다 자동으로 프로덕션 배포를 준비하는 것입니다. . 지속적인 전달을 통해 변경사항이 성공적으로 전달되고 사용자 가치에 집중할 수 있습니다.
연속 배포(Continuous deployment; CD):
배포가 자동화되어 높은 빈도로 최신 기능을 계속 제공하는 것입니다. 시장 변화에 신속하게 대응하는 기업은 지속적인 배포를 하고 있으며, 최신 소프트웨어를 사용자가 항상 이용할 수 있도록 되어 있습니다.
지속적인 모니터링 및 로깅
시스템에 문제가 발생하면 실시간으로 발견하고 수정해야합니다. 이를 위해 필요한 기술이 지속적인 모니터링입니다. 지속적으로 모니터링함으로써 문제의 원인을 근본적으로 신속하게 파악하고, 시스템 정지를 사전에 방지하고 사용자 측에 발생할 수 있는 문제도 최소화할 수 있습니다. 프로덕션 환경을 모니터링하는 데 사용하는 것과 동일한 도구를 개발 환경에 도입하면 프로덕션에 들어가기 전에 성능 문제를 감지할 수 있습니다.
지속적인 피드백
지속적인 피드백은 서비스에 대한 사용자의 의견과 요청을 지속적으로 받아들이고 개발에 반영하는 것입니다. 채팅이나 이메일로 문의, SNS에서의 코멘트도 지속적인 피드백으로 개발에 도입할 수 있습니다.

 
DevOps 도구
DevOps 도구는 DevOps 문화를 형성하는 과정과 사람을 위한 도구입니다. DevOps는 제품을 구매해서 설치했다고 “DevOps 도입” 이라고 말할 수 없습니다.

소스 코드 관리: Git (GitLab, GitHub), Bitbucket
구성 관리 : Puppet, Chef, Ansible, CFEngine
릴리즈 관리: Jenkins, Travis, CircleCl, TeamCity, Gradle, Bamboo
오케스트레이션 : Mesos, Zookeeper, Kubernetes
모니터링, 가상화, 컨테이너화 : OPENMARU APM, Nagios, Icignia, Monit, OpenStack, Vagrant, AWS, Docker, Kubernetes
로그 및 애플리케이션 수명 주기 분석 : Elastic Search , Kibana

 

 

 

Tag Archive for: DevOps

OpenShift 와 OpenStack 의 차이점과 적합한 경우는 무엇일까요?
Red Hat Ansible 소개자료 , 브로셔 , 데이터시트 다운로드
DevOps ( development & operations) 발표 자료 다운로드
DevOps완전정복-발표자료공유
OWASP (The Open Web Application Security Project)