[OpenInfra Days Korea 2018] (Track 3) - CephFS with OpenStack Manila based on...
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
1. “ 카카오는 오픈스택 기반으로
5000VM을 어떻게 운영하고 있을까? ”
하 현 (Raymon.ha)
raymon.ha@kakaocorp.com
2. 하 현 ( Raymon.ha )
클라우드 엔지니어
2012년 1월부터 현재까지 약 4년 간 오픈스택 기반 클라우드플랫폼 개발 및 운영
틈틈이, OpenStack Bug report, Fix, Blueprint Contribution 활동
前) LG CNS 클라우드플랫폼팀
- Swift 기반 오브젝트 스토리지 서비스 구축
- 오픈스택 기반 Private/Public Cloud 개발/운영
現) 카카오 클라우드컴퓨팅셀(Cloud Computing Cell) 소속
- Cinder backend Storage CEPH 구축 및 운영
- 오픈스택 기반 Private Cloud 개발/운영
- 가장 최근에는 Juno 버전을 Kilo버전으로 업그레이드 진행중
발표자 소개
4. Requirements
개발자曰: 원래 이런건 다 되는거 아닌가요?
- 빠른 개발 주기, Time to market이 중요함
- 많은 서비스 런칭
- 개발자가 원할때 빠르게 서버 제공
- 인프라의 이슈로 개발이 늦어져서는 안됨
- 서버나 네트워크는 잘 모르겠다. 알아서 해주면 좋겠다.
출처) kakaocorp.com 서비스 등록 기준
5. Kakao Private Cloud
Legacy Operation vs Cloud Operation
How to Develop + Operation with OpenStack
DevOps Style Management
이런 이야기를 하려고 합니다
7. Current Usage
(2015년 12월 기준)
Created : 약 2900 VM
Deleted : 약 2000 VM
Running : 약 900 VM
평균 매 8분마다 1개 VM 이 생성되거나 삭제됨
Compute Node: 약 700대
VM : 약 5000대
Ceph : 약 200TB
출처) 카카오 infra portal
Keystone tenants : 약 1000개
Keystone users : 약 1300 명
9. OpenStack Global Survey
출처) Openstack Survey, 2015 (https://www.openstack.org/assets/survey/Public-User-Survey-Report.pdf)
How many physical compute nodes
to OpenStack clouds have?
How many instances in an
OpenStack deployment?
10,000 to 99,999
7%
21. But, as you know,
OpenStack Automation is “Really hard work”
https://www.openstack.org/summit/tokyo-2015/videos/presentation/ntt-
communications-automate-deployment-and-benchmark-for-your-openstack-with-
chef-cobbler-and-rally (1분 30초)
*100
22. Why?
Complex system of many components and OSS
OpenStack is fast moving
테스트 환경 vs 서비스 환경
하드웨어 자동화
레거시 시스템
OpenStack is one of the system within IDC
24. User/Project
Inhouse sso plugin 모듈 개발
- 카카오 사내 인증 시스템 사용자 인증을 거쳐 자동으로 OpenStack keystone user 생성
프로젝트는 개별 사용자가 직접 생성
- 신규 생성 및 기존 프로젝트 참여
[identity]
driver = kakao.openstack.keystone.inhouse_sso_auth.Identity
auto_create_user = true
default_project = demo
member_role = Member
email_postfix = @kakaocorp.com
system_users = admin,nova,quantum,neutron,cinder,glance,
heat,ceilometer,swift,docker-registry,
heat_domain_admin,sahara
keystone.conf
25. Domk
OpenStack 내에서 생성된 VM의 hostname을 사내 DNS 서비스에 도메인 네임 등록하도록 자동화
오픈스택의 Designate 프로젝트와 유사한 기능 구현
27. Pool
Compute node 를 Resource Pool 로 관리
Production Pool
발주
투입
Compute nodes
Standby
Physical host
HW 검수
OS 셋팅
Openstack 설치Service
Compute nodes
L 기준으로 node 증설
Pool 부족 시, 신규 발주
30. What is Kfield?
OpenStack Build, Test, Deploy 자동화
개발자 개별 개발 환경 배포에 사용
Production 배포에 사용
Chef cookbooks + ansible playbooks
내부 OpenStack mirrored repo를 통해 OpenStack code 배포
31. Kfield details
kvm
Libvirt
LB DB/MQ compute02 swift
Vagrant up
GitHub
Openstack mirror repo
Dev#1, individual test node
Kfield
git clone
/home/kfield
compute02controller
copy
33. Develop Process
Kfield Your git repo
Github
1. fork
Your local dev
2. Git clone
Kfield/master Your/master
Your/master
3. branch
feature/CCC-001
Your/feature/CCC-001
Your/feature/CCC-001
4. Develop any feature
Run unit test
5. Git commit
jenkins
Fail?
Succes?
Github
Code Review
7. Pull Request
Good?
Bad?
Request Fix
6. Build
Test
8. Merge
34. CI/CD pipline develop to production
Staging ProductionDevelop
Build
Chef-server
Web hook
Commit Deploy
Upload
Deploy
OpenStack mirror repo
Version Control
Kfield
Run Test
Slave
Clone
36. 우리의 Cloud는?
VM, Network 와 같은 구현물(implementation)에 최우선을 둠
OpenStack 서비스에 문제가 있어도 VM, Network와 같은
구현물에는 영향을 끼치면 안됨
API 기반 (= programmable)
인스턴스는 휘발성
절대 죽지않는 시스템?
시스템이 죽더라도 서비스가 유지되는 아키텍처
Reduce process, remove complexity