개발(Development)과 운영(Operations)의 합성어입니다.
DevOps (개발 및 운영 조합)는 개발 (응용 프로그램 / 소프트웨어 엔지니어링), 기술 운영 및 품질 보증 (QA) 부서 간의 통신, 협업 및 통합을 촉진하는 데 사용되는 일련의 프로세스, 방법 및 시스템을 총칭하는 용어입니다.
“소프트웨어 개발자 (Dev)”와 “IT 운영 기술자 (Ops)”간의 커뮤니케이션과 협력을 중요시하는 문화, 운동 또는 협약입니다. “소프트웨어 제공”및 “아키텍처 변경”프로세스를 자동화함으로써 소프트웨어를보다 빠르고 자주 그리고 안정적으로 구축, 테스트 및 릴리스 할 수 있습니다.
소프트웨어 산업은 소프트웨어 제품과 서비스를 제 시간에 제공하기 위해서는 개발과 운영이 긴밀히 협력해야한다는 점을 점점 더 인식하고 있기 때문에 등장했습니다.
정의 관점에서 devops는 실제로 개발, 운영 및 유지 보수 및 QA가 효율적으로 협업 할 수있는 프로세스입니다. DevOps는 개발, 기술 운영 및 품질 보증 (QA)의 교차점으로 생각할 수 있습니다.
데브 옵스
응용 프로그램 릴리스에 대한 DevOps 영향
많은 기업에서 응용 프로그램 게시는 여러 팀이 관련된 스트레스가 많고 위험이 높은 활동입니다. 그러나 DevOps 기능이있는 조직에서는 다음과 같은 이유로 응용 프로그램 릴리스의 위험이 매우 낮습니다.
(1) 변화의 범위를 축소
기존의 폭포수 모델과 비교하여 민첩하거나 반복적 인 개발을 채택하면 릴리스가 빈번하고 릴리스 당 변경 횟수가 줄어 듭니다. 배포가 빈번하게 이루어 지므로 각 배포는 프로덕션 시스템에 큰 영향을 미치지 않으며 응용 프로그램은 점차 부드러운 속도로 증가합니다.
(2) 석방 조정 강화
강력한 릴리스 코디네이터를 통해 개발과 운영 간의 기술 격차와 커뮤니케이션 격차를 해소합니다. 스프레드 시트, 원격 회의 및 엔터프라이즈 포털 (위키, 공유 지점)과 같은 협업 도구를 사용하여 모든 관련 사람들이 변경 내용을 이해하고 최선을 다하도록합니다.
(3) 자동화
강력한 배포 자동화 방법은 배포 작업의 반복성을 보장하고 배포 오류 가능성을 줄입니다.
기존 개발 방법 (대개 “분기”또는 “연도”단위)의 대규모 및 드문 릴리스와 비교할 때 민첩한 방법으로 릴리스 빈도 (일반적으로 “일”또는 “주”단위)가 크게 증가했습니다. .
DevOps를 달성하려면 무엇이 필요합니까?
위에서 언급했듯이 툴 체인이 열리므로 툴을 자연스럽게 준비해야합니다. 도구 유형과 해당 불완전한 목록은 다음과 같습니다.
코드 관리 (SCM) : GitHub , GitLab, BitBucket, SubVersion
빌드 도구 : Ant , Gradle, maven
자동 배포 : Capistrano, CodeDeploy
연속 통합 (CI) : Bamboo, Hudson, Jenkins
구성 관리 : Ansible, Chef, Puppet, SaltStack, ScriptRock GuardRail
컨테이너 : Docker , LXC, AWS와 같은 타사 공급 업체
오케스트레이션 : Kubernetes, Core, Apache Mesos, DC / OS
서비스 등록 및 발견 : Zookeeper 등
스크립트 언어 : Go,Python,Ruby,Shell
로그 관리 : ELK, Logentries
시스템 모니터링 : Datadog, Graphite, Icinga, Nagios
성능 모니터링 : AppDynamics, New Relic, Splunk
스트레스 테스트 : JMeter, Blaze Meter, loader.io
조기 경고 : PagerDuty, Pingdom,제조업체 소유 AWS SNS
HTTP 가속기 : Varnish
메시지 버스 : ActiveMQ, SQS
응용 프로그램 서버 : Tomcat, JBoss
웹 서버 : Apache, Nginx, IIS
데이터베이스 : MySQL, Oracle 및 PostgreSQL과 같은 관계형 데이터베이스, cassandra, mongoDB 및 redis와 같은 NoSQL 데이터베이스
프로젝트 관리 (PM) : Jira, Asana, Taiga, Trello, Basecamp, Pivotal Tracker
도구의 선택은 회사의 비즈니스 요구와 기술 팀에 따라 다릅니다.
DevOps 성공의 핵심은 회사 조직이 협업에 유리한지,개발자와 운영 및 유지 보수 담당자들이 서로 커뮤니케이션하며 서로 배울 수 있으므로 생산성을 올려줍니다. 그리고 영업과 개발자 사이에도 협업이 존재합니다.
이런 방식으로 엔지니어는 공통 플랫폼 (즉, 도구 체인)을 사용하여 일관성과 품질을 향상시킵니다.