1
GitLab
DevSecOps
Everyone can contribute
유 근준: Solution Architect
2
DevOps
3
DevOps
● 소프트웨어 공학
● Centralised vs Distributed
● 애자일 선언 (Agile Manifesto)
○ Individuals and interactions
○ Working Software
○ Customer collaboration
○ Responding to change
인문학
● 정치 철학
● 기준을 세우고 그것을 따르려는 자 vs 끝임없이 그
기준을 무너뜨리려 자
● The Communist Manifesto
4
DevOps 도덕경 17장.
● 太上下知有之 其次親而譽之 其次畏之 其次侮之
● 가장 좋은 나라는 그 나라에 임금이 있다는 것만 알고 있다.
● 두번째로 좋은 나라는 사람들이 임금을 칭찬 한다.
● 그 다음 좋은 나라는 사람들이 임금을 두려워 한다.
● 그 다음은 사람들이 임금을 무시 한다.
이상적인 메니지먼트 시스템
이상적인 방법론
5
너무 많고 복잡한 툴체인들
배포 사이클과 팀원들 간의 불필요한 충돌을 줄이 십시오.
Manage Plan Create Verify Package Secure Release Configure Monitor Defend
6
Manage Plan Create. Verify. Package Secure. Release. Configure. Monitor. Defend
Since 2016 Since 2011 Since 2011 Since 2012 Since 2016 Since 2017 Since 2016 Since 2018 Since 2016 Coming soon:
Cycle
Analytics
DevOps Score
Audit
Management
Authentication
and
Authorization
Kanban
Boards
Project
Management
Agile Portfolio
Management
Service Desk
Source Code
Management
Code Review
Wiki
Snippets
Web IDE
Continuous
Integration
(CI)
Code Quality
Performance
Testing
Container
Registry
Maven
Repository
NPM Registry
SAST
DAST
Dependency
Scanning
Container
Scanning
License
Management
Continuous
Delivery (CD)
Release
Orchestration
Pages
Review Apps
Incremental
Rollout
Feature Flags
Auto DevOps
Kubernetes
Configuration
ChatOps
Serverless
Metrics
Logging
Cluster
Monitoring
Runtime
Application
Security
IDS/IPS
Honeypots
Storage
Security
SIEM
Data loss
prevention
Cyber Threat
Hunting
UEBA
전체 DevSecOps lifecycle을 모두 지원하는 Single Application
7
오픈소스 모델을 따르는 GitLab의 진정한 힘
Leader in the Forrester CI Tools WaveTM
The Forrester Wave™ is copyrighted by Forrester Research, Inc. Forrester and Forrester Wave™ are
trademarks of Forrester Research, Inc. The Forrester Wave™ is a graphical representation of Forrester's call on
a market and is plotted using a detailed spreadsheet with exposed scores, weightings, and comments. Forrester
does not endorse any vendor, product, or service depicted in the Forrester Wave. Information is based on best
available resources. Opinions reflect judgment at the time and are subject to change.
CONTINUOUS INNOVATION
매달 22일에 신규 버젼 출시
Everyone can contribute
2200+ code 기여자 확보 - 코어팀
CO-CREATION WITH USERS &
CUSTOMERS
제품에 관련된 모든 개발 현황들이 GitLab issue로 공개
OPEN ECOSYSTEM
내제된 모든 기능들이 오픈소스 기술
A LARGE USER BASE
수백만명의 사용자
8
Gitlab은 빠른 개발 사이클과 협업을 가능하게 합니다.
9
Auto DevOps 데모
https://about.gitlab.com/handbook/marketing/product-marketing/demo/#auto-devops-oct-2018---113
10
GitLab Auto DevOps
Create MonitorVerify Package Release Configure
Just commit. GitLab Auto DevOps does the rest.
Merge
Build
Code Quality
Test
Secure
Container
Registry
Review App
Deploy
SAST
Dependency
Container
License
DAST
Infra Config
Scale
Response
System
Custom
Perf Testing
+ +
11
Manage Plan Create. Verify. Package Secure. Release. Configure. Monitor. Defend
Since 2016 Since 2011 Since 2011 Since 2012 Since 2016 Since 2017 Since 2016 Since 2018 Since 2016 Coming soon:
Cycle
Analytics
DevOps Score
Audit
Management
Authentication
and
Authorization
Kanban
Boards
Project
Management
Agile Portfolio
Management
Service Desk
Source Code
Management
Code Review
Wiki
Snippets
Web IDE
Continuous
Integration
(CI)
Code Quality
Performance
Testing
Container
Registry
Maven
Repository
NPM Registry
SAST
DAST
Dependency
Scanning
Container
Scanning
License
Management
Continuous
Delivery (CD)
Release
Orchestration
Pages
Review Apps
Incremental
Rollout
Feature Flags
Auto DevOps
Kubernetes
Configuration
ChatOps
Serverless
Metrics
Logging
Cluster
Monitoring
Runtime
Application
Security
IDS/IPS
Honeypots
Storage
Security
SIEM
Data loss
prevention
Cyber Threat
Hunting
UEBA
A single application for the entire DevSecOps lifecycle
Auto DevOps
12
New Trends - DevSecOps
• Dev is already consuming Ops and is likely to consume Security.
• 개발은 이미 운영을 집어 삼켜 버렸고, 세큐리티까지 집어 삼키려고 하고
있다.
13
Continuous security = Iterative app sec to match iterative
dev
Merge to
Master
GitLab security testing
In pipeline report
Security Dashboard
View
Security
team
14
Planning & Creating
(개발단계)
15
개발자 중심의
이슈보드
16
이슈에서 MR생성 - 추천
관련된 다른 이슈들이나
MR을 묶을 수 있음
17
해당 CL대한 모든 정보를
MR에서 확인 가능.
18
수정사항에 대한 모든
정보 제공
19
그래픽한 파이프라인
20
Verify
(검증 단계)
21
이 모든 테스트들이 페러럴하게 동작:
- Code quality
- Container scanning
- Dependency vulnerability
- License compliance
- SAST
- Developer defined tests
테스트 단계까지 끝나면
수정사항을 포함한 빌드
앱이 K8S의 리뷰환경에
배포
동적분석 (DAST)
22
MR에서 리뷰 환경에
있는 앱에 연결
23
24
라이센스 검사
(검증/보안 단계)
25
라이센스 검증 리포트
확인 가능
26
사용하는 라이센스 정보
확인
28
보안 취약성
( 보안 검증 단계)
29
보안 검색 결과 확인
30
보안 취약성 검사
결과 리스트.
31
더 자세한 취약성
내용
검색된 취약성 수정을
위한 이슈 생성이나,
관련되 이슈가 있는지
확인 가능
취약성 무시
32
어느 소스코드가
취약성에
노출됐는지 알려줌
33
34
Security scanning deep dive
Links:
● https://docs.gitlab.com/ee/user/application_security/
SAST Container scanningDependency scanning
OWASP ZAP
DAST
35
협업
36
GitLab + Review Apps = 협업과 리뷰는 일상이 됩니다.
운영팀
QA팀
UX팀, 프로덕트 메니져
보안팀
개발팀, 팀리더, 코드오너
37
Group Security Dashboard
(Security Analysts)
38
Group security
dashboard 제공.
그룹은 여러 프로젝트나
서브그룹의 조합
39
각종 필터
옵션.
40
전사 보안팀들 다른
팀들의 협업.
취약성에 대한
이슈 표시
무시처리된 취약성도
표시
41
Remediation
(개발팀 단계)
42
취약성에 대한 patch가
있으면 패치를 다운로드 할
수 있음
별도의 MR로도
처리가능
43
Coming soon:
자동 다운로드
자동 수정
44
배포환경 스케일 아웃
45
Auto DevOps 설정
Pod 스케일 아웃
46
변수 값 설정
“PRODUCTION_REPLICAS”
변수
47
변수값에 따른 스케일링
48
Scaled Environment
● 예: Gitlab 프로덕션
환경
49
GitLab + Kubernetes = 배포와 롤백 편리성
실시간 모니터링
실시간 확인
롤아웃 관리
문제시 언제든 중지
재배포 기능 Zero 다운타임 롤백
50
앱 모니터링
51
19 Sept 2018, 2:36AM
각각의 라인들은
Commit을 의미함
52
퍼포먼스에 문제를
일으킨 Commit에
대한 자세한 내용
확인
53
모든 Kubernetes를 지원하는 Auto DevOps 템플렛
https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml
54
감사합니다
Gitlab: @gyoo
Email: gyoo@gitlab.com

DevSecOps 그리고 협업 - GitLab