-
[2019.08.29] if(kakao) dev2019, Day1후기/세미나 2019. 9. 27. 18:02728x90반응형
올해는 하루가 아닌 이틀로 열렸다. 이틀 추첨 신청을 했으나 첫번째 날만 당첨이 되었다. 하루도 안된 사람들이 많은 걸 보니 이번에도 운이 좋았던 것 같다.
program
Day1.
09:00 참가 등록 10:00 KeynoteVIDEO
11:00 카카오에서 컨테이너를 사용하는 방법
오픈소스 데이터베이스, 흐르는 은행 데이터에 빨대를 꽂아보다.
서비스 장애를 극복하는 게임플랫폼 구축하기 (Build a fault tolerant system)
리액트: 그것마저 결정해주마
서버 성능테스트 Tip - 사례를 통해 얻은 교훈들
12:00 클라우드를 위해 변화하고 있는 카카오 데이터센터 네트워크
Telemetry on K8S
초당옥수수의 취소를 막아라! : 수만 건의 주문을 1초내에 처리하는 기술
FE 개발자가 브라우저를 확장하기
컨테이너 CI/CD를 하나의 Jenkins pipeline으로으로 관리하기
12:45 점심시간 14:00 Massive Computing in Cloud and kakao
Microservice에서 쏟아지는 로그를 Perl5를 사용하여 로그수집기들로 잘 보내고 활용하기
Practical Microservices in gRPC Go feat. GraphQL, Kafka(서포터즈 기사 개발기)
프론트엔드 기술로 동료들 삶의 질 높여주기 (카카오뱅크 Fun 프로젝트 개발기)
카카오뱅크 모바일앱 DevOps
15:00 카카오톡 적용 사례를 통해 살펴보는 카카오 클라우드의 Kubernetes as a Service
Airflow를 활용하여 아름다운 데이터 파이프라인 구성하기
돈이 오고가는 금융프로젝트인 펌 뱅킹 서비스에서의 코틀린 적용 사례
안드로이드 빌드: 설탕 없는 세계
자동화된 클라우드를 위하여
16:00 클라우드 환경에서의 Serverless Service 개발
광고 데이터 처리 시스템 소개
광고서버 연대기
다음웹툰의 UX (New tab : Top)
카카오 애플리케이션 모니터링 NEO
17:00 행사 종료 Day2.
09:00 참가 등록 10:00 KeynoteVIDEO
11:00 블록체인 제품 생태계를 구성해보자
처음 설치부터 클러스터 관리까지, 3000대의 운영 노하우로 만든 카카오 Elasticsearch 운영 방법론 소개와 자동화 솔루션 시연
둥꿍둥꿍 느낌 아는 음악 바텐더
금융사기 잡는 카카오뱅크의 데이터 사이언스
성인 이미지 세계에서 살아남는 방법
12:00 Klaytn 플랫폼 및 SDK 소개
밑바닥부터 시작하는 쇼핑 데이터 엔지니어링 고군 분투기
Buffalo: Open Source Project for Recommender System
Under the hood: Bot engine
README.ocr: 딥러닝 기반 문자인식 프로젝트
12:45 점심시간 14:00 클레이튼을 이용한 블록체인 서비스/DX 개발기
카카오에서는 어떻게 OpenJDK를 활용하고있을까?
카카오와 다음의 컨텐츠들은 어떻게 분류되고 있을까?
기계 독해 및 웹검색에 기반한 한국어 오픈 도메인 질의 응답 시스템
TensorRT를 이용한 카카오 OCR 모델 Inference 성능 최적화
15:00 Klaytn 성능 향상 대장정 - 1000만 account 극복기
App initialization with priority queue
상품 카탈로그 자동 생성 ML 모델 소개
Korean의 Korean 체험기
비주얼컴퓨팅을 활용한 카카오맵
16:00 카카오의 오픈소스 관리 시스템 : Olive 로 오픈소스를 요리하다
모던 C++ 윈도우 데스크탑 클라이언트 개발
데이터 관점에서 본 광고랭킹의 실제적인 문제들
2019년 카카오 번역 서비스 개편
카카오 대리 시공간 데이터를 이용한 강화학습 및 최적화
17:00 행사 종료 link: https://if.kakao.com/2019/program
현장 사진
필기
Keynote (10:00)
Part 1. 카카오 CTO, 신정환 / Mayden
- 카카오기술 - 수많은 생활의 접점에서 편리한 삶을 위해
- 삶을 성장시킨 카카오의 서비스
- 카카오톡, 챗봇 주문
- 카카오 i
- 현대차 신형 소나타에 탑재
- 아이파크
- 카카오뱅크
- 카카오맵
- 3d sky view / 초정밀 위치 정보 / Visual Computing
- 로드뷰: 플래시에서 HTML5로 전환함
- 과거와 현재의 로드뷰를 한 화면에서 볼 수 있음
- 초정밀 위치 정보: 10cm 단위
- 사내 클라우드 / 데이터 센터
- 카카오 개발자 센터 (kakao developers)
- 메시지 전송 API 오픈
- kakao i developers
- 봇 엔진, 머신러닝 기능 추가
- 빅데이터 공개 / 카카오 아레나
- 버팔로, 추천 시스템
- 카카오 기술 공유 사이트
Part 2. 카카오 뱅크 CTO. 정규돈 / Gd
- 1,000만 고객 달성
- 전체 은행 앱 방문자수 1위
- 아이폰 사용자 약 40%
- 앱 출시 후, 다른 은행 앱들도 심플해짐
- 오픈소스 기반 은행 시스템 개편
- 어떻게 혁신을 했을까?
- 모바일
- 간결한 인터페이스
- 모바일 최적화 컨텐츠
- 기술주도
- 모바일
- Safe Place + Banking License -> Utility
- 비즈니스 재정의 수준으로 재설계
- 카카오뱅크, 로빈훗, 레모네이드 인슈어런스
- 모바일 완결성
- 기술에 대한 다른 시각
- Goldman Sachs
- JP Morgan
- ...
- 기술중심 전략을 바탕으로 개발자 역할을 확장
- 카카오뱅크 구성원: 개발 41%, 서비스/상품 20%, 고객서비스 18%, 기타 21%
- Culture
- 창의성, 자기주도성, 수평 커뮤니케이션
- 모바일에 대한 다른 접근 + 기술 기반 전략 및 문화 -> 차별화된 새로운 금융 버시브
카카오에서 컨테이너를 사용하는 방법 (11:00, 정원천(hardy.jung) / 카카오, R1)
- 카카오 컨테이너 플랫폼 현황
- 카카오톡, 다음, 멜론, 카카오T 등등 (거의 다)
- 컨테이너 오케스트레이터만 있으면 될까?
- 클러스터를 생성하기 위한 서버
- VM (by OpenStack)
- PM
- 모니터링
- Metric: Prometheus, Grafana
- Log: Fluentd, ElasticSearch
- Telemetry on K8S
- 외부에서 들어오는 트래픽의 처리
- DNS, Load Balancer, HA
- 보안
- 컨테이너 이미지 보안
- 출시 전 서비스 보안 진단
- 주기적인 취약점 점검
- 클러스터 외부로의 접근 제한 관리
- 다른 컴포넌트
- D2hub, DKOS, K2Hub, Cloud App Launcher
- 여러 관계 부서의 협력이 필수
- 클라우드, 인프라, 네트워크, 보안 ...
- 클러스터를 생성하기 위한 서버
- D2Hub
- 기능: 이미지 저장, 인증/권한 관리, Mirror 제공, 보안검수
- 기본 이미지: 리눅스 시스템 엔지니어들의 경험을 바탕으로 생성 및 배포
- DKOS
- 필요이유: Runway의 커스터마이징이 힘들었음
- DKOSV2: Mesos를 사용해 클러스터를 제공
- DKOSV3: kubernetes를 사용해 운영 클러스터 없이 모든 클러스터를 독립적으로 구성
- 기술 이슈
- CNI
- Calico -> Direct Server Return이 안됨
- XDP/eBPF기반의 Cilium 선택
- Cilium에서 성능 저하 발생: 10g -> 1g. Vxlan으로 인한 대역폭 감소 이슈
- 데이터 저장이 필요한 경우?
- VM: Openstack Provider를 이용
- PM: Tenth NFS 지원
- 접근 제한이 걸린 외부 자원에 대한 접근 처리
- IP ACL 허용이 되면 신규 워커 노드를 클러스터에 자동으로 추가
- CNI
- K2Hub
- Helm 차트 저장소
- Cloud App Launcher
- 소스만 등록하면 빈ㄹ드해서 컨테이너를 실행해 주는 서버리스 서비스
- 등장 이유
- DKOS는 많은 자원을 사용
- Kubernetes 사용이 어려움
- Knative
- 소스 빌드: buildpacks
- 맺음말
- D2hub TODO
- Ruby -> Go
- 아키텍처 단순화
- DKOS TODO
- Kubernetes 클러스터 마이그레이션
- Container Runtime 고민
- 네트워크 아키텍처 개선
- 워커노드 오토스케일링(VM, PM)
- 금융 클라우드
- K2hub TODO
- Operator 지원
- 오픈소스
- 컨테이너를 잘 사용하기 위해서는?
- 컨테이너에 대한 지식
- 컨테이너 오케스트레이터에 대한 지식
- 변화에 적극적인 개발 문화
- 관리 업무는 줄지 않아요 (플랫폼 관리자에게는)
- D2hub TODO
클라우드를 위해 변화하고 있는 카카오 데이터센터 네트워크 (12:00, 서상덕(milo.seo) / 카카오, R1)
- 카카오 데이터센터 네트워크의 구성변화 (물리적/논리적)
- Kakao Network Engineering Part.
- 현황
- 네트워크 3,000+
- 물리서버: 60,000+
- VM: 40,000+
- Container 80,000+
- 2016년부터 새롭게 만들어진 DC Network
- Traditional Enterprise Datacenter -> L3 fabric
- BGP Datacenter
- L3 fabric + (금융수준의) 보안을 위해
- K8S / OpenStack을 위해
- Cloud Platform 지원정책
- Cloud 화를 위한 네트워크 구성 정책
- Cloud Platform 지원을 위한 네트워크 운영 정책
- Link Consolidation w 10G
- Kubernetes (Overlay)
- Cloud Platform 지원정책
- Provisioning & Control
- RSW provisioning
- Policy 배포 (ACL/ Prefix)
- Ansible - NMS가 네트워크를 직접 컨트롤
- Monitoring
- ELK as a flow decoder
- Traffic >> 가공 >> log
- 자유롭게 트래픽을 검색
- MDA - NMS 및 네트워크 데이터 허브
- ELK as a flow decoder
- 다음 세대 DC Network
- 데이터센터 네트워크에 대한 요구사항의 변화
- 저비용, 고효율, 안정성, 표준화
- Cloud, Self-Service, 민첩성
- Multi-tenancy?
- Design Concept
- VRF (lite)
- MPLS L3 VPN
- EVPN (VXLAN/MPLS)
- SONiC / OCP
- 데이터센터 네트워크에 대한 요구사항의 변화
- Summary
- 최신의 APP 및 클라우드가 지속 확장되기 위해서는 먼저 적절한 네트워크 구조확보가 필수
- 새롭게 설계/구축되고 있는 카카오 데이터센터..
Practical Microservices in gRPC Go feat. GraphQL, Kafka(서포터즈 기사 개발기) (14:00, R3)
- 서포터즈 기사 / 강태훈(travis.kang) / 카카오모빌리티
- 제품 개발 복잡도의 세가지 요소: 요구사항, 사람, 기술
- 생각의 정리부터
- 어떻게 설계 / 구상
- RFC (request for comment) 사용
- 어떻게 설계 / 구상
- 프로그래밍 언어
- Java의 장단점
- 투표 후 Go로 결정
- Go 의존성 주입, FX
- 서비스 구조
- 카카오 T대리 monolith: wheel-webapp
- 너무 복잡!
- MSA
- 가급적 작은 부분만 책임지자
- 작은 배포를 자주 하고 싶다
- 기획자와 커뮤니케이션도 용이
- 하나의 API 호출이 여러개로 쪼개짐 -> API Gateway
- MS간 네트워크 통신 비용 -> DC 내부 비용
- 카카오 T대리 monolith: wheel-webapp
- 서비스 계층
- RESTful vs gRPC: gRPC가 성능이 좋음
- gRPC UI, gRPC Gateway
- IDL Registry
- 테스트튼 어떻게?
- 부하 테스트
- ghz로 gRPC Load Test
- nGrinder로 HTTP Load Test
- 통합 테스트
- Docker compose
- Postman
- 부하 테스트
- if kafka / 양진선(david.y) / 카카오모빌리티
- MSA에서 Kafka 사용으로 얻은 이점
- 서비스간 메시지 흐름 단순화
- 메시지의 영속성을 보장, 유실 방지
- 패킷 오버헤드 감소
- 자유로운 메시지 처리
- 하나의 이벤트 메시지를 동시에 여러 서비스에서 소비
- 메시지 버저닝
- MSA에서 Kafka 사용으로 얻은 이점
- API Gateway / 이하건(brian.lee) / 카카오모빌리티
- GraphQL
- 구현체로 Node.js 사용
- Middleware 활용
- 서비스 모니터링 / 문주성(ether.moon) / 카카오모빌리티
- 서비스 지연 발생 -> 롤백
- 모니터링 시스템 부재의 원인과 대책
- Prometheus
- 이벤트 모니터링과 알림에 사용되는 오픈소스 메트릭 수집 도구
- Pull 방식의 메트릭 수집
- 일정 주기마다 수집
- Grafana
- 유려하게 시각화 가능한 오픈소스
- 모니터링 시스템 구조도
- 장애의 원인은?
- work-service MS가 stage 모드로 연결되어 있었음...
- 작은 서비스의 사소한 실수가 전체 제품에 영향
- Zipkin
- 지연 시간 문제를 해결하는데 필요한 타이밍 데이터를 수집하기 위한 오픈소스 분산 추적 시스템
- Legacies / 김민영(zest.ly) / 카카오모빌리티
- 원하는 것
- 레거시의 변화를 최소화
- 마이크로 서비스로 분리
- 해야할 것
- 써킷브레이커 패턴
- 레거시 로컬 환경 구축
- 원하는 것
- 성과 / 강태훈(travis.kang) / 카카오모빌리티
돈이 오고가는 금융프로젝트인 펌 뱅킹 서비스에서의 코틀린 적용 사례 (15:00, 강현식(kaka.wesome) / 카카오페이, R3)
- Who are you?
- 펌뱅킹: VAN사와 API 통신을 한다
- Target
- 자바 중급 개발자
- 코틀린을 쓰고 싶은 사람
- Why Kotlin
- Consise - 간결하다
- Safe - 안전하다
- Interoperable - 기존 JVM 코드와 100% 상호 호환승을 가진다
- Tool-friendly - 만든곳이 Jetbrains다!
- 그 외
- DSL, Coroutine, Delegate, Reified, Smart Cast, Operator Overloading ...
- 코틀린을 적용하면서 있었던 문제점들
- Lombok
- QueryDSL
- JPA Entity
- 스프링빈 Proxy
- Jackson Class Serialize/Deserialize
- Spring AOP return type Nullable
클라우드 환경에서의 Serverless Service 개발 (16:00, 김준휘(james.j) / 카카오게임즈, R1)
- 발표 배경
- 확장성, 가용성 / 인프라 관리, 비용 -> Serverless Service
- 게임 사전예약
- 한시적 서비스
- 유연한 확장성
- API 형태 제공 필요
- Serverless 란?
- 서버관리 불필요
- 유연한 확장성을 통한 고가용성 확보
- 종량제 과금방식으로 인한 비용 효율화
- Serverless in Cloud
- Lambda와 API Gateway를 통한 서비스 로직 처리
- 이슈 및 개선 사항
- API 보안을 위한 방법
- 알 수 없는 Host에서 API 호출 발생
- HTTPS, CORS, 비대칭 암호화, 압축 및 난독화, 이상징후 모니터링
- Cold Start로 인한 응답 지연 사례
- Cold Start란? 처음 Lambda Function 실행 시 느린 응답을 가지는 현상 (1.5 ~ 3초)
- CloudWatch의 Event를 통해 일정 시간마다 Lambda Function, warm up 이벤트 호출
- QoS를 위한 Lambda의 Concurrency 설정
- 리전 별 동시에 실행 가능한 모든 Lambda Function의 수
- 중요 Labmda Function의 Concurrency 확보를 통한 QoS 보장
- 불필요한 Lambda Function의 Concurrency 제한을 통한 QoS 보장
- RDS의 비용 관리 이슈
- DynamoDB 성능
- On-Demand Mode
- 처리 요청에 따라 자동으로 확장되어 안정적인 성능 보장
- 테이블당 최대 40,000개의 r/w capacity
- On-Demand Mode
- DynamoDB 성능
- In Memory Cache 활용방법
- API 보안을 위한 방법
- 향후 발전 사항
- 실시간 Serverrless Service
- Serverless 채팅 서비스 개발 검토
- API Gateway의 WebSocket API: Connection 정보 관리
- 실시간 Serverrless Service
- Q & A
느낀점
쿠버네티스를 비롯한 클라우드가 핫한지 관련된 발표가 많았고 내용도 재미있었다. 예전에 인프라 신청할 때 부탁하던 분의 발표(세션: 카카오에서 컨테이너를 사용하는 방법)도 들었고, 앞으로 카카오의 클라우드 활용 방안에 대한 이야기도 흥미로웠다. 쿠버네티스를 활용해 배포가 더 쉽고 안정적으로 되게 해보고 싶다.
Deview와 다르게 부스가 다채롭지 않았고(= 기념품이 많지 않았고), 카카오와 카카오 계열사들의 부스만 있고 채용에 관한 진행과 스티커 배부 정도만 하였다.
카카오 FE Meetup이라는 이벤트도 진행했다. 카카오 FE 개발자들의 인사이트를 공유하는 자리였다. 사전에 신청을 받아 진행되었는데 신청했다가 떨어져서 아쉽게 들어보지는 못했다.
또한 dev profile이라는 것이 새로 생겼다(모바일에서만 확인 가능). 몇가지 설문과 이름을 넣어서 자신만의 이미지 프로필을 만들어 주는 간단하지만 재미있는 서비스다(위 사진 중 첫번째 튜브 사진).
카카오가 구글처럼 더 개발자에 대해 지원을 하려는 모습이 보기 좋았다. 카카오뿐만 아니라 네이버 & 라인, 쿠팡, 배민 등 다른 IT 선도 기업들도 개발자들의 생태계에 도움을 주는 환경을 만들어 주면 좋겠다.
반응형'후기 > 세미나' 카테고리의 다른 글
[2019.11.16] KSUG 2019년 하반기 세미나 <당신의 자바를 한단계 올려드립니다> (0) 2019.12.24 [2019.10.29] Deview 2019, Day2 (0) 2019.12.24 [2019.06.25] 널리 세미나 (7차) (0) 2019.06.27 [2018.10.11~12] Deview 2018 (0) 2018.10.22 [2018.09.04] if(kakao) dev2018 (0) 2018.09.25