itec - qua trinh phat trien he thong bigdata

Post on 15-Apr-2017

1.547 Views

Category:

Technology

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

Quá trình phát triển của hệ thống BigData @

niconicoBùi Hồng Hà

http://bit.ly/itec-bigdata-event

2

Nội dung• Giới thiệu bản thân• Giới thiệu qua về nicovideo• Quá trình phát triển hệ thống bigdata (hệ thống X)

• Bối cảnh lịch sử - quá trình phát triển• Thiết kế dữ liệu

• Một số bài học thu được

3

Giới thiệu bản thân• Bùi Hồng Hà• Kỹ sư hệ thống (infrastructure engineer)• Dwango (2012 – 2016)

• Thiết kế vận hành Nicovideo (và các dịch vụ nhỏ khác)• Thiết kế - xây dựng - vận hành hệ thống X

• Sở thích• Đọc sách• Viết lách http://kipalog.com/users/BuiHongHa/mypage

5

Giới thiệu về niconico• Ra đời năm 2006• “Youtube” Nhật Bản.• Website rank 8 toàn Nhật Bản. Alexa rank: 78• Quy mô người dùng

• 55 triệu người dùng đăng ký• 2.5 triệu người dùng trả tiền

• Mô hình kinh doanh • Subscription• 5$ / tháng

• Tổng số dịch vụ: ~ 50

6

Nicovideo

7

Truyền hình trực tiếp

8

Tranh ảnh – truyện tranh

9

Kênh giao lưu

10

Công nghệ nicovideo (2006 ~ 2014)• Kiến trúc monolithic• LAMP (Linux – Apache – Mysql – PHP)• Máy chủ on-premises

• 4000 – 5000 máy chủ• 3 datacenters

11

Công nghệ nicovideo (2014 ~ 2016)• Kiến trúc

• Chuyển từ monolithic sang hướng dịch vụ (service oriented)

• Công nghệ• PHP Scala• MySQL MariaDB• Apache / Varnish -> nginx

• Máy chủ• On-premises-> Cloud (Amazon / Azure)

12

Quá trình thiết kế và phát triển của hệ thống X

13

Tại sao bài nói này lại về quá trình?• Không có kiến thức tổng quan

• Chia sẻ case-studies

• Phân tích sự việc dựa trên ngữ cảnh• Không có hệ thống ”lởm”• “Those who do not learn history are doomed to repeat it”

• Quyết định của người thiết kế hệ thống là bài học vô giá

14

BigData là gì?

15

Định nghĩa của Gartner• Đặc điểm dữ liệu

• High-volume• High-velocity• High-variety

• Hệ thống: cần hệ thống xử lý dữ liệu mang tính đột phá• Khả năng phân tích thông tin

• Hỗ trợ quá trình ra quyết định• Tự động hoá quy trình

16

Hệ thống X để làm gì?• Xu hướng bigdata

• 2011 – 2012 buzzword• Các cty công nghệ Nhật trong giai đoạn này đều xây dựng hadoop cluster

• Nhu cầu phân tích dữ liệu của chính công ty• Thời gian người dùng xem 1 video là bao lâu?• Nhóm người dùng (độ tuổi, vùng miền, sở thích, thiết bị)• Thông tin thanh toán

• Người dùng của hệ thống X?• Nhân viên kế hoạch• Nhân viên kinh doanh

19

Lược sử• 2012: 10 nodes

• 4T * 10 ~ 40TiB

• cuối 2013: 24 nodes tính toán • CPU Intel Xeon 12 cores (HT), 8T * 24 ~ 192TiB

• 2014: 48 nodes• Intel Xeon 24 cores (HT), 10T (1*10) * 48 nodes ~ 480TiB

• 2015: 96 nodes• ToR (Top of Rack) 10G• Xeon 24 cores (HT), 30T (3T * 10) * 48 nodes• 1.9PB

20

2012 - 2013

21

Bối cảnh năm 2012 - 2013• BigData buzzword

• I keep saying that the sexy job in the next 10 years will be statisticians – Hal Varian

• Hadoop release (2011)

• BigData là lĩnh vực hoàn toàn mới• Chưa có công ty ở Nhật nào triển khai chưa có knowhow• Tài liệu không có nhiều

22

Vấn đề năm 2012 - 2013• Xem con số ở đâu?

• Bộ phận kinh doanh / kế hoạch không có nguồn số liệu

• SRE là người đảm nhận trích xuất dữ liệu• Không phải nhiệm vụ• Dùng các tools: sed / awk / grep / count / SQL... Chạy trực tiếp trên máy chủ

ảnh hưởng trực tiếp đến dịch vụ• Không đảm bảo được tính chính xác của con số

23

Giải pháp của năm 2012 - 2013• Xây dựng “data warehouse” riêng phục vụ cho việc phân tích dữ liệu• Start small

• Không tính đến high-availability• Front không tính đến tính phát triển. • Không dùng tool opensource

24

Kiến trúc năm 2012 - 2013• 1 batch server

• Storage gắn ngoài RAID-5 15T• 1 front server chuyên compile pig ra

Java jar.• Chạy webapp tự viết (CakePHP)• User dùng web interface để

chạy job• 1T storage• 30 users

• 10 nodes tính toán• 8T * 10 ~ 80TiB• CDH2

26

2014 (Năm ít biến động)

27

Bối cảnh năm 2014• Kỳ vọng ngày càng tăng cao

• 1 dịch vụ nhiều loại log gây áp lực lên dung lượng storage• Thời gian chạy job đòi hỏi ngắn lại đòi hỏi nâng cấp cluster

• Hợp đồng với datacenter kết thúc

28

Các vấn đề của năm 2014• Dự toán eo hẹp

• Các máy tính đời 2012 hết hạn bảo hành cần thay mới• Log tích luỹ trong hơn 3 năm (360T / 480T)

• Số lượng máy chủ nhiều (1 máy * 10 đĩa cứng SATA * 48 máy == 480)• Hỏng đĩa cứng trở thành việc hàng tuần• Khi đĩa cứng hỏng máy ngừng phục vụ dịch vụ số lượng cores không đủ• Network / CPU bắt đầu trở thành bottleneck của hệ thống

29

Kiến trúc năm 2014• 48 nodes tính toán

• 10TiB * 48 ~ 480TiB• 12 cores * 48 = 576 cores• CDH5.3

• Provision tools• Chef• Một phần các cài đặt tại OS

layer được thực hiện ở PXE kickstart

• Vấn đề CRC

32

2015 – 2016 (Đột phá)

33

Bối cảnh 2015 - 2016• Hầu hết các log file đều đã được lưu trữ trên hệ thống X

• Đến lúc cải tiến và nâng cấp hệ thống• Knowhow việc nâng cấp vận hành hệ thống

• Stream processing• Công nghệ container trở thành tâm điểm

• docker

• Cloud computing

34

Vấn đề gặp phải• Tính sẵn sàng của hệ thống chưa được cải thiện• Stream processing là công nghệ hoàn toàn mới• Docker là công nghệ mới• Các dịch vụ mới bắt đầu được triển khai trên cloud

36

Giải quyết 1: sử dụng lxc containerContainer là công nghệ không mới.

Chi tiết: http://kipalog.com/tags/LXC

38

Giải quyết 2: sử dụng đĩa cứng 3T• Tránh việc nâng cấp hệ thống qua từng năm

• Việc xin kinh phí rất phiền phức• Quá trình nâng cấp và mở rộng tốn rất nhiều cost.

• Tránh dùng công nghệ cũ• Đĩa cứng 3T dần trở nên phổ biến. • 1 máy chủ có thời gian khấu hao là 5 năm dùng công nghệ cũ trong 5 năm

39

Giải quyết 3: thêm streaming layer• Streaming layer được phát triển mang tính thử nghiệm• Streaming layer dùng fluentd

• Fluentd do người Nhật phát triển• “Người người nhà nhà” dùng fluentd knowhow có nhiều• Cấu hình và sử dụng đơn giản

40

Kiến trúc hệ thống 2015 - 2016

42

Các vấn đề còn tồn đọng• Vấn đề của streaming layer

• Fluentd không được thiết kế để phục hồi khi có sự cố• Fluentd không đáp ứng đủ hiệu năng• Fluentd không được thiết kế để routing log qua internet• Không join được với master data

• Vấn đề batch• SPOF ở batch server• Thiếu cơ chế quản lý job batch

• Vấn đề của lxc• Vấn đề về chuẩn hoá kiểu dữ liệu

43

Star-Schema trong Data warehouse

** The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling

44

Thiết kế schema• Dữ liệu như access log là dữ liệu “thô”

• Không có schema• Gây khó khăn trong việc phân tích

• Sử dụng storage như kudu để tăng tốc

45

Bài học cá nhân• The management question, therefore, is not whether to build a

pilot system and throw it away. You will do that. […] Hence plan to throw one away; you will, anyhow. – Fred Brooks

• Nguyên tắc 40% cho các hệ thống đang phát triển• Thiết kế để hệ thống phát triển

• Không có SPOF• Có phương án phục hồi khi gặp sự cố

• Định kỳ viết ra knowhow của mình và chia sẻ cho mọi người

46

Tương lai của BigData?

47

I asked Doug that question

48

He said he doesn’t know …

49

Một số nguồn tài liệu• https://amplab.cs.berkeley.edu/• https://databricks.com/blog• Hadoop / Spark Mailing list• https://dancres.github.io/Pages/• Gartner / McKinsey / … Reports

50

Cảm ơn các bạn đã lắng nghe !

top related