[DevOps]
1.비즈니스의 속도와 소프트웨어의 역할 변화로 인한 애자일 사고 방식, 데브옵스
가. 데브옵스 정의 : DevOps는 개발자(Dev)와 운영자(Ops)가 상호 협력해가면서 비즈니스의 가치를 실현하는 개념
나. 데브옵스 등장 배경
-비즈니스가 빠르게 변화하고 있으며, 소프트웨어가 비즈니스 그 자체에 공헌해야한다는 요구가 커지고 있음
-이런 요구사항에 맞게 기존 폭포수 모델 개발 방식에서 애자일 개발 방식을 채택하고 있음, (Scrum), 익스트림 프로그래밍(XP)
-빠르게 개발하고 빈번하게 릴리즈하고 싶은 애자일 성향의 개발자와 시스템을 안정적으로 운용하기 위해 변화를 주고 싶지 않은 운영자의 대립 구조에서 데브옵스 사고방식 등장
다. 비즈니스 가치를 계속해서 전달하기 위해 개발자(Dev)와 운영자(Ops)가 집중해야 하는 것
-조직의 문화
1. 상호 존중(Respect)
2. 상호 신뢰(Trust)
3. 실패에 대한 건전한 태도(Healthy attitude about failure)
4. 상대를 비난하지 않기(Avoiding Blame)
-도구
1. 자동화된 인프라(Automated Infrastructure)
2. 버전 관리 시스템의 공유(Shared version control)
3. 원스텝 빌드와 배포(One step build and deploy)
4. 피처 플래그(Feature flags)2
5. 지표 데이터3의 공유(Shared metrics)
6. IRC와 인스턴트 메신저 봇4(IRC and IM robots)
2.조직에서의 데브옵스 적용과 추진
가. 조직에 데브옵스 적용
-조직에서 데브옵스 도구 도입시, 도구에 집중하는 것이 아니라 어떤 프로세스를 개선해야하는 지 먼저 파악해야함
-이러한 경우, 탑다운 방식으로도 데브옵스적인 사고가 요구될 수 있음. (예를 들어, 인사팀에서의 채용에 애자일 프로세스 적용 등)
나. 데브옵스 도구 도입
-버전 관리 : 빈번한 릴리즈로 릴리즈에 대한 버전 관리가 가장 중요( 깃, 에스브이앤)
-프로젝트 관리 도구 : 새로운 요구사항이나 요청 추적(레드마인)
-테스트 자동화 : 테스트 시간 최소화로 더 빠르게 개발, 배포 가능. 유닛테스트(JUnit, PHPUnit), GUI 테스트(Selenium)
-CI 도구 : Jenkins, CircleCI
-가상환경구축도구 : 개발 환경과 운영 환경이 달라서 발생하는 오류 최소화를 위함 (Vagrant)
-프로비저닝도구 : 인프라 구축 자동화, 인프라 구축 과정을 문서 기반에서 스크립트 기반으로 변경 등 (Chef, Ansible)
-모니터링 도구 : 시스템 모니터링을 넘어 비즈니스 모니터링에도 적용 가능(Sensu, Zabbix, Nagios)
다.도구도입의 올바른 접근 방법
-도입 이유를 명확히 한다. : 현재 직면한 과제를 명확히 파악하고, 해당 과제를 해결할 수 있는 도구를 도입할 것
-도구는 사실상 표준인 것을 선택한다 : 레퍼런스가 많은 도구
-한 번에 많은 도구를 도입하지 말고 교육과 정착을 확인한다 : 도구의 활용도를 높이기 위한 지속적인 교육
-유지보수는 스스로 한다 : 플러그인 도입 등은 자체 진행
[DevSecOps]
1. DevSecOps 개요
가. DevSecOps 정의
DevOps와 Security가 결합된 개념으로, DevOps 프레임 워크에 보안을 공동의 책임으로 간주하고 개발부터 운영까지의 전 Life Cycle에 걸쳐 빌트인 된 보안 기반을 구축하는 것
DevSecOps는 정보보안팀, 개발팀, 운영팀 간의 지속적인 협업
나. DevSecOps 필요성
정보보안팀, 개발팀, 운영팀 간의 협업으로 보안상의 결함과 취약점을 조기에 노출시킴으로써 프로그램 수정에 필요한 시간을 단축시키고 재작업 비용을 낮춤
보안 사고의 위험도 감소 가능
서비스 다운이나 중요 고객정보의 유출 최소화
다. DevSecOps 현황
개발 전 과정에 보안 점검을 진행하는 경우가 늘어나고 있음
미국 기업 중에서 98%가 DevOps에 보안을 적용할 계획이거나 이미 적용
DevSecOps 시장은 2017년의 1.2억 달러 에서 연평균 약 34%씩 성장
다만, 전통적인 보안솔루션 업체들은 아직까지 End-Point와 경계 보안에 주력하고 있고, DevSecOps 를 위한 SonarQube, Clair, Vault, Gauntlt 등의 도구들은 아직 점유율이 높지 않음
2. 성공적인 DevSecOps 선결 조건
첫째, 조직 전체의 보안에 대한 사고의 전환이 필요합니다. -> 보안은 공동의 책임이라는 인식
둘째, 업무 프로세스를 재배치해야 합니다. -> 개발 프로세스 초기부터 보안 을 분석하고 테스트해야 함
셋째, 효율성과 정확성을 위한 자동화가 필요합니다. -> 보완 관련 프로세스의 자동화 및 단순화
넷째, 소프트웨어 Tool에 대한 현명한 선택이 필요합니다. -> DevOps CI/CD Pipeline과 각종 보안 관련 Tool 의 API 등을 통한 연계
-클라우드 시대의 DevSecOps 의 성공적인 도입을 위하여서는, 보안 점검 툴의 개선이 뒷받침되어야 하며 자동화된 프로세스 에 적용 가능토록 다양한 API를 제공해야 함
'정보관리기술사' 카테고리의 다른 글
(IT이슈) 블록체인 기술과 보안 고려사항 (0) | 2020.11.19 |
---|---|
(IT이슈) SW안전 , Safety-Critical System (0) | 2020.11.19 |
(IT 이슈) XR(Extended Reality) (0) | 2020.11.19 |
(IT 이슈) 딥페이크 (0) | 2020.11.04 |
(IT 이슈) 대기업참여제한제도 (0) | 2020.11.02 |