4. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
애플리케이션을 개발해요. 우리에게 필요한 것은 무엇?
• 애플리케이션 기능 정의
• 에코 시스템들과의 관계 파악(토폴로지 정의)
• 통신 방식 정의
• HTTP/1.1, HTTP/2, gRPC, TCP, UDP, FTP, w/TLS
• Unicast/Multicast/Broadcast, Sync/Async
• 요청-응답(Request-Response) 모델
• 발행-구독(Pub-Sub) 모델
• 각 계층에 적합한 솔루션 선정
• 구성원들 기술 스택과 도입비용(Money) & 관리비용(Learning Curve, MGMT Effort) 고려
• 타겟 시스템의 민감도에 따른 제반사항도 검토
• 개발 랭귀지, 프레임웍, 패키지 라이브러리 선택
5. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
애플리케이션을 개발해요. 우리에게 필요한 것은 무엇?
• 스피드~ (Time to Market / Agile)
• As-WAS : 투자계획, 보고, 입찰/평가/선정, 발주, 선적, 입고, OS/계정 생성, 패키지/미들웨어 설
치…
• Cloud =
• 기능 정의 → 로드맵 수립 → 스프린트~
• 신속한 전개와 확장
6. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
어떻게 만들죠?
• Cloud Native 하게
• 클라우드의 특징을 최대로 활용하고 대응할 수 있도록 어플리케이션을 구축하고 실행하는 접근
방식
• Cloud Native Computing Foundation (CNCF) Definition / 2015 Linux Foundation 에서 결성
• Cloud Native 기술은 퍼블릭, 프라이빗, 그리고 하이브리드 클라우드와 같은 현대적, 동적인 환
경에서 확장 가능한 애플리케이션을 개발하고 실행할 수 있게 해준다. 컨테이너, 서비스 메쉬,
마이크로서비스, 불변(Immutable) 인프라, 그리고 선언형(Declarative) API가 이러한 접근 방식
의 예시들이다.
• 이 기술은 회복성, 관리 편의성, 가시성을 갖춘 느슨하게 결합된 시스템을 가능하게 한다. 견고
한 자동화 기능을 함께 사용하면, 엔지니어는 영향이 큰 변경을 최소한의 노력으로 자주, 예측
가능하게 수행할 수 있다.
• https://github.com/cncf/toc/blob/main/DEFINITION.md#%ED%95%9C%EA%B5%AD%EC%96%B4
7. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
어떻게 만들죠?
• Cloud Native – Main Tenets
• DevOps
• 소프트웨어 제공과 인프라 변경을
자동화하기위한 개발자와 운영자간의 협업체계
• Continuous Delivery
• 빠르고 안정적인 릴리즈
• Microservices
• HTTP API를 통해 통신하는 소규모 독립 서비스 모음의 아키텍처
• Containers
• 단일 서버를 하나 이상의 격리된 컨테이너로 동적 분할하여 경량 가상화를 제공
8. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
어떻게 만들죠?
• Cloud Native 특징을 고려
• 분산 환경 (Micro Service Architecture)
• 확장성 (유연성)
• 트래픽 증가 가속, 대용량 트래픽 유입
• GSLB(Global Region 서비스), CDN(Static 컨텐츠), Dynamic 컨텐츠 네트워크 가속
• Data Cache, Read Replica
• 내결함성 (고가용성/복원력)
• 장애 상황 대비 : 이중화(SPOF 단일지점장애 회피), 백업/복제, 재해복구센터
• 보안성
• 시스템자산 보호
• DDOS Attack, 어뷰징, 해킹, 보안취약점으로부터 보호
• 데이터자산 보호
10. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
디자인해요 <Application>
• Layered Architecture
• 전형적인 엔터프라이즈 애플리케이션 표준
N-계층 아키텍처
• 역할에 따라 수평적으로 계층을 나눔
11. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
디자인해요 <Application>
• Hexagonal Architecture
• 최근 비즈니스 애플리케이션은
프레젠테이션 계층 및 퍼시스트턴스 계층
외에 다양한 시스템과 인터페이스를
필요로 함
• 레이어 간의 원하지 않는 종속성이나
비즈니스 로직으로 인한
사용자 인터페이스 코드의 오염을 방지
19. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
패키징하고 배달해요 <CI/CD>
• CI
• Code Quality Process
• Code 품질 점검, 취약점 진단, 스타일 점검,
유닛테스트
• SonarQube
• 지속적인 검사까다로운 이슈 탐지
• 20개 이상의 프로그래밍 언어 지원
• DevOps 도구와 통합가능
• 소스 품질의 중앙 집중화
• Container 취약점 스캔
20. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
패키징하고 배달해요 <CI/CD>
• CD
• 배포전략 : Blue/Green, Canary
• Roll Out / Roll Back
• ArgoCD
21. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
건강을 유지해요 <Monitoring/Alert/TroubleShooting>
• 헬스체크
• 네트워크, 런타임 인스턴스, CPU/Mem 리소스, 애플리케이션 프로세스(데몬), 의존관계의 서비
스 및 자원
• 성능모니터링, 알람
• 트러블슈팅 - 성능이슈, 오류 또는 장애 발생 원인 분석
• 로깅과 분산 트레이싱
• Zipkin, Jaeger, Datadog
22. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
실전 데뷔 <Go Live!>
• 서비스 런칭은 서비스 계정으로
• 보안성 검토
• 망 보안 – 보안인증서(TLS)
• 사용자 접근제어 - 인증 / 인가
• 보안 취약점
• DDOS/Abusing
• 통합테스트
• 의존관계에 있는 시스템
23. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
실전 데뷔 <Go Live!>
• 성능/부하/마라톤 테스트
• 목표 TPS/시나리오 수립
• 성능 튜닝 - 스케일 아웃
• 미들웨어 (워커 스레드,
프로세스 조정,)
• 애플리케이션 (DB Query,
DB Connection Pool)
• 리소스
• 주의사항
• 의존관계 시스템에 부하를
가중시킬 수 있음
• 더미서버 또는 더미코드
24. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
실전 데뷔 <Go Live!>
• Chaos Engineering
• 분산환경에서 각종 장애 조건을 견딜 수 있는 시스템의 신뢰성을 확보하기 위한
엔지니어링 기법
• Netflix : Chaos Monkey(Instance) / Gorilla(Zone) / Kong(Region), KubeMonkey
• Gremlin
25. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
실전 데뷔 <Go Live!>
• Chaos Engineering 실험 결과 측정
• 장애 감지 시간?
• 문제 인지 및 최초 알림 시간
• 사내 전체 전파 시간?
• 자동 롤백 시작 시점?
• 부분 복구 시간?
• 수동 문제 해결 및 복구 시간?
• 전체 복구 및 안정화 시간?
26. sohyeong_lee@emart.com, 이소형(조이∙파트너) - D/T본부AI/ML담당, 제목 없음, 2022-04-21T16:22:02
다음 이야기
• Argos <부적절 리뷰 필터> 개발 이야기
• AI DevOps Application 편 – 유니콘에 올라탄 FastAPI
• AI DevOps Cloud Infra편 – AWS EKS와 서비스메쉬
• Chaos Engineering/Fail-Over/Troubleshooting 편
• Goldmine <상품검색> 서비스 오픈 후기