카카오에서의 trove 운영사례

23
카카오에서의 Trove 운영사례 정원천 (hardy.jung) 카카오 클라우드컴퓨팅셀 [email protected]

Upload: won-chon-jung

Post on 21-Jan-2018

264 views

Category:

Software


3 download

TRANSCRIPT

Page 1: 카카오에서의 Trove 운영사례

카카오에서의 Trove 운영사례

정원천 (hardy.jung)

카카오 클라우드컴퓨팅셀

[email protected]

Page 2: 카카오에서의 Trove 운영사례

Trove (Open stack Database as a service) 란?

The OpenStack Open Source Database as a Service Mission

To provide scalable and reliable Cloud Database as a Service provisioning functionality for both relational and non-relational

database engines, and to continue to improve its fully-featured and extensible open source framework.

Page 3: 카카오에서의 Trove 운영사례

Trove에서 제공하는 Database

Page 4: 카카오에서의 Trove 운영사례

Trove 특징

• 단일 명령어로 여러 종류의 DB 관리

• 쉬운 데이터베이스 생성

• 확장 가능한 소스 구조

Page 5: 카카오에서의 Trove 운영사례

Trove와 일반 VM의 차이

• 현황관리

• 단일 명령으로 여러 종류의 데이터 베이스 관리

• 인스턴스 생성시 자동으로 데이터 볼륨추가

• 쉬운 Replica 추가

• 자동 클러스터 생성

Page 6: 카카오에서의 Trove 운영사례

Trove 아키텍처

Trove API

Trove TaskManager

Trove Conductor

Trove GuestAgent

DataBaseMessage Queue

Controller Node VM

Cinder

GlanceData Volume

Trove-GuestImage (mysql)

Trove-GuestImage(redis)

DB

Swift

Backup Data

Backup Data

Page 7: 카카오에서의 Trove 운영사례

Trove 사용 현황

인스턴스 : 750개

Region : 4개

제공 DB

관리 인원 : ?

Page 8: 카카오에서의 Trove 운영사례

Trove 도입 목적

• 기존 사내 DBaaS 문제점 보완

• 개발자들에게 실서비스용 DB와 유사한 개발용 데이터 베이스를 쉽게 제공

• DBA들의 개발용 DB 관리 부담 감소

Page 9: 카카오에서의 Trove 운영사례

설치(Openstack)

• Openstack 이 처음인데요?

Page 10: 카카오에서의 Trove 운영사례

설치(Trove Controller)

• Trove Controller node 설치• Trove-api• Trove-taskmanager• Trove-conductor

Page 11: 카카오에서의 Trove 운영사례

설치 (클라우드의 꽃은 이미지)

Base

Image

Kpartx,

mount,

chroot

Install

Trove-

guestagent

Install DBBuild

Image

Upload to

glance

Test

Page 12: 카카오에서의 Trove 운영사례

Custom database(Postgresql Plus Advanced Server) 지원

• /trove/guestagent/datastore

• /trove/guestagent/strategies • trove.conf 에 추가

Page 13: 카카오에서의 Trove 운영사례

실행중인 VM에 작업

Trove VM

Trove VM

Trove VM

Trove VM

Ansible

• 업그레이드• 패치

Page 14: 카카오에서의 Trove 운영사례

Openstack 버전 업그레이드

Juno Kilo Liberty Mitaka

Page 15: 카카오에서의 Trove 운영사례

Openstack 버전 업그레이드

Old version

setup

New version

cookbook &

Image

Upgrade

Controller

Upload

Image

Upgrade

trove vm

Page 16: 카카오에서의 Trove 운영사례

때로는 필요한 기능에 대한 패치

• Redis 백업/복원

• Mysql utf8mb4 지원

• Horizion 패치

Page 17: 카카오에서의 Trove 운영사례

더 필요했던 부분

• 자동 일일백업

Page 18: 카카오에서의 Trove 운영사례

운영

• 잔여 메세지 큐 비우기

Page 19: 카카오에서의 Trove 운영사례

운영

• 전체 현황 대시보드

Page 20: 카카오에서의 Trove 운영사례

그외 이슈

• vm이 정상생성되지 않아요• vm쿼터가 부족• ip할당이 안됨

• 사용자가 trove 인스턴스를 nova 에서 지워요

• 사용자가 직접 db 를 조작하고 싶어해요

• 사용자가 인스턴스 안에 별도 스크립트를 돌려요• 사용자가 인스턴스 내에 설치한 파이썬 라이브러리랑 trove-guestagent가 충돌나기도 함

• 한글 프로젝트명은 안되요.

Page 21: 카카오에서의 Trove 운영사례

We are hiring

• https://careers.kakao.com/jobs

[email protected]

Page 22: 카카오에서의 Trove 운영사례

Q&A

Page 23: 카카오에서의 Trove 운영사례

감사합니다