카카오 클라우드 서비스
카카오에서의 클라우드 정의 : We make Services which make service // 서비스를 만드는 서비스
클라우드 플랫폼 팀 소개
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
1) 애플리케이션 플랫폼 파트 //
Application Platform as a Service (aPaaS)
- 애플리케이션 개발·배포환경을 제공하는 PaaS
- 애플리케이션 서비스를 위한 개발·배포 환경을 제공하는 클라우드 서비스
1. KCP // Kakao Cloud Portal
- 카카오 클라우드 연관 시스템들을 허들 없이 간편하게 사용하게 만든 포털 시스템
- 클라우드 서비스의 최적화된 관리를 위하여 다양한 관리 시스템들을 사용자에게 제공
2. SSO // KakaoCloud SSO
- 카카오 클라우드 서비스 통합을 위한 key service로 9rum templete등과 연동
- oauth2 프토로콜을 사용한 SSO(Single Sign-On)제공
- 인증 성공 시 카카오 클라우드 API에 접근 가능한 통합 토큰 발급
3. Kakao Cloud Service
- 9rum-template, 9rum-DS들을 활용한 9rum Cloud Portal의 컴포넌트성 서비스
- 신구 서비스가 개발될 때마다 서비스의 최적화된 관리를 위해 서비스 개발 진행 중
4. Runway // A-PaaS
- 개발한 소스 저장소를 등록하면 자동으로 빌드, 배포, 웅영을 하게 해주는 완성형 애플리케이션 플랫폼
5. K2hub
- Kubernetes 상에 배포를 하기 위한 패키지 관리 도구의 helm의 차트를 저장
- 사내 kubernetes 플랫폼인 dkos에 배포할 수있는 기능을 제공해주는 앱마켓 제품
6. API Gateway
- 클라우드 제품들에서 제공하는 api에 접근하는 통일된 방법을 제공
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
2) 클라우드 S&M 플랫폼 파트
S = Storage
M = messaging
1. Tenth2 : 분산 파일 스토리지
일반적인 범용 파일 시스템과 거의 유사한 기능 지원
NFS 마운트 형태로 사용 가능
DKOSv3(k8s) 사용시 사내 표준 pv 스토리지
2. Kage : 분산 오프젝트 스토리지
파일명과 같은 메타데이터가 불필요한 경우 사용하는 오브젝트 단위저장소 // 카카오톡 대화방에 보내느 사진 등..
3. Wcache : 분산 웹 캐시 시스템
HTTP 서버 앞단에서 대량의 트래픽을 받아주는 캐시 시스템
4. Redicoke : redis 프로토콜과 호환되는 KV 저장소
대부분의 redis 커맨드를 그대로 사용 가능
클러스터링, 샤딩등은 내부적으로 알아서 처리됨
기본적으로 Persistency 보장
5. Tscoke : 시계열 데이터 저장소
promethous의 백앤드 저장소로 사용 가능 // 프로메테우스
최근 데이터는 메모리 캐싱하여 빠른 응답 속도 지원
내부적으로 redicoke 사용 >> redicoke의 장점을 그대로 활용
6. Varlog : sequential data를 처리하는데 특화된 저장소
데이터의 일관성과 순서를 보장하는 특성을 갖는 제품
transaction log, write-ahead log, distributed queue
kav(kafka-on-varlog) : varlog 위에 kafka 호환 레이어를 추가
7. Vault
DB접속 정보, API 토큰, 데이터 암호화 Keyㅡㅇ과 같은 민감 정보를 안전하게 보관하기 위한 저장소를 개발하고 운영
오픈소스 Vault(vaultproject.io)제품에 카카오 내부 인파르(인증, 스토리지등)를 연동할 수 있게 커스터마이징해서 사용
전 공동체가함게 사용ㅎ아려면 적절한 권한 관리가 필요하여, 오픈소스 버전과는 다르게 카카오 Vault만의 전용 웹 콘솔도 개발하여 운영함
8. KPusher
사용자 단말기와 통신하는 메시지 처리 제품을 직접 만들고 운영하면서 카카오뿐만 아니라전 공동체를 지원
통일된 방법으로 ios와 안드로이드 단말기에 push 알림 메시지를 전송하는 시스템을 직접 개발하고 운영
카카오톡을 비롯한 전 카카오 공동체의 서비스에서 push 알림을 보낼때 사용함
kakao developers를 통해 공개된 API를 이용해 외부 업체에서도 사용함.
9. KIMS
SMS,MMS와 FAX 메시지등을 전송하는 시스템을 직접 개발하고 운영
일반 SMS뿐만아니라 TTS(Text To Speech) 메시지 전송도 가능 (메시지 내용을 텍스트로 입력하면 수신자에게 전화를 걸어 음성으로 알려줌
10. Intellicall
카카오택시, 카카오대리, 카카오헤어샵 등의 서비스를 사용하는 050 안심번호도 처리
일반 전화번호를 050 전화번호에 매핑해서 서비스에 활용하고, 일정시간이 지난 후에 매핑을 해제해서 다른 요청에 재활용하는 등의 역할
11. Vanin
핸드폰 SMS을 이용한 본인인증을 수행하는 시스템을 직접 개발하고 운영함.
카카오계정 회원가입 단계에서 본인 확인을 수행할때 사용
인증 절차의 UI 커스터마이징이 가능하며, 신용카드와 아이핀과 같은 추가 본인 인증 수단에 대한 지원 개발
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
3) 클라우드 네이티브 파트
0. OpenStack based Infrastructure as a Service
- 사내에서 자유롭게 VM 기반의 자원을 생성
- 다양한 사내 자원 ( Load Balancer, DNS, Volume 서비스 등) 을 추상화해서 API로 제공함으로 리소스 간의 유연한 연결을 제공함
1. OpenStack
오픈스택버전 stein을 기반으로 카카오 사내 자원들을 결합하기 위한 여러 커스텀 비즈니스 로직을만듭니다.
2. Infra as Code
리소스를 추상화해서 서비스로 제공하는 서비스를 배포, 관리하기 위해서 코드로 추상화합니다.
3. R&D
클라우드 리소스의 가용성, 성능, 신뢰성을높이기 위해서 시스템 레벨의 깊이 있는 분석과 개선을 실시합니다.
4. DKOS
Kubernetes Cluster as a Service
- 쿠버네티스(K8S)를 사용자에게 클러스터 단위로 제공함
- 추상화된 다양한 리소스를 엮어서 사용자가 애플리케이션과 서비스를 손쉽게 배포하고 운영할 수 있도록 제공
5. Kubernetes
사용자가 스스로 쿠버네티스 클러스터를 손쉽게 생성할 수 있스비다.여러가지 커스텀 컨트롤러를 내장하고 있어서 카카오내 서비스의 여러 자원들을 유연하게 연결합니다.
6. Multi Cluster
사용자는 사내 인증 시스템과 연계되어 인증되며 인가된 권한에 따라서 여러 클러스터로 서비스를 배포하고 관리할 수 있습니다.
7. R&D
쿠버네시트 사용성, 성능, 기능을 향상시키기 위해서 끊임없이 아이디어를 제시하고 이를 실제 제품에 적용하도록 노력합니다.
8. D2hub
Container Image Registry Service
- 깃헙 저장소를 연결하여 저장소 내 저장된 DockerFile를 통해서 도커 컨테이너 이미지를 자동 또는 수동으로 생성
- 퍼블릭 도커 허브의 이미즈르 미러링해서 사내 사용자들이 제한없이 퍼블릭 이미지를 사요할 수 있도록 제공함
9. Docker Registry
Docker Registry 기반으로 도커이미지 자동 빌드 기능을 제공함.
사내 인증 시스템으로 인증되며 인가된 권한에 따라서 이미지 접근을 제어합니다.
10. Security Inspect
사내보안 도구와 연계하여 빌드된 이미지와 각종 취약점 감시를 실시하며 이를 사용자에게 알립니다.
11. Deployment Support
쿠버네티스의 세부 내용을 몰라도 도커 이미지와 DKOS 클러스터만 있으면 사용자의 서비스를 손쉽게 배포하고 운영할 수 있습니다.
12. KARGO
Kubernetes Based Advanced Deployment Service
- 사용자의 쿠버네티스 클러스터에 도커 이미지와 YAML 만으로 원하는 서비스 배포 가능
- 블루/그린(Blue/Green), 카나리(Canary), A/B등과 같은 다양한 배포 전략 지원
13. Building Manifest
쿠버네티스와 세부 사항을 몰라도 원하는 도커 이미지를 원하는 형태로 배포할 수 있는 매니패스트를 자동 생성할 수 있습니다.
14. Deployment Strategy
블루/그린, 카나리, A/B와 같은 다양한 배포 전략을 활용하여 새로운 서비스르 안전하게 배포할 수 있느 방법을 제공합니다.
15. Pipeline as a Service
클라우드 네이티브와 CI/CD를 지원할 수 있는 사용자 설정 가능한 파이프라인 서비스를 제공합니다.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
4) 클라우드 데이터 플랫폼 파트
KEMI
Kako Event Metering and MonItoring
- KEMI-Stats : Cloud Resource의 Metric Event, 수집, 저장, 조회, 알림
- Cluster Status & CUOTA : KEMI-Stats에서 나온 알림을 기반으로 클러스터 HEALTH를 제공하거나, 저사용 VM을 찾아내고 이를 자동 삭제할 수 있게 해줌
- KEMI-Log : PM/VM 또는 Caas로부터 발생하는 Log Event를 받아, 서비습 별 대칭 스토리지로 실시간/배치로 적재하고 이를 기반으로 알람과 조회 서비스를 제공함
- Log Analysis : Log Event를 elasticsearch에 자동 적재해서 kibana를 통해 분석할 수 있게 한 서비스
- Log based Alerting : LogEvent를 기반으로 sqllibe한 룰을 통해 알람서비스를 제공
KOCOON
KakaO COntainer based service mONitoring : CaaS(k8s) 안에서 telemetry의 모든 것을 해결
- KOCOON on k8s : k8s내에 helm 챠트 설치를 통해 monitoring, logging 서비스를 제공합니다.
- Rule based Alarm : critcal한 서비스 이슈에 대해서 자동으로 알림을 보낼 수 있게 되어습니다.
- Metric & Log Dashboard : 클러스터내 서비스의 Metric & Log Event를 손쉽게 조회할 수 있는 dashboard를 제공합니다.
Exbi
KEMI로 수집된 데이터를 기반으로 한 OLAP / BI 서비스
Data Catalog & ETL pipline & Lineage
- Data Catalog & ETL Pipeline : 데이터를 조회하고 검색할 수 있는 Data Catalog를 제공하고, Data ETL pipline 또한 지원합니다.
- BI Dashboard : 대시보드를 통해 query를 할 수 있고, visualization dashboard를 제공합니다.
Kabinet // Kakao + Cabinet
Mysql, Postgresql, MongoDB 등을 SaaS 형태로 제공
- DB 생성 : IAM프로젝트와 연계하여 제공되는 스펙에 맞게 Database를 생성할 수 있습니다.
- DB 스키마 & 유저 관리 : kABINET 웹을 통해생성한 DB에 생성/삭제할 수 있으며 DB유저도 생성가능합니다. 생성된 스키마에 대한 권한을 DB유저에게 부여할 수 있습니다.
KEAP : Kakao Event AirPort
이벤트 버스로서 서비스 간 이벤트 중재자 역할을 하는 서비스
클라우드 서비스들을 이벤트 기반으로 연동
- Event Gateway : 각 서비스별로 이벤트 타입을 정리해서 KEAP에 이벤트를 전달할 수 있습니다.
- Event Routing : 이벤트 타입별로 룰과 액션을 정의하여 특정 대상으로 이벤트를 전달할 수 있습니다.
FaaS에선 타입 등을 통해서 후속 처리를 할 수 있습니다.