7 ª Ñ v 1 ; ø Ü Ü 1 1 … · •etcd • zookeeper • mongodb • elastic search • mysql...

Post on 20-Jul-2020

1 views 0 download

transcript

(Tad)

Why Docker?

• GlusterFS, Ceph FS / RDB

• …

Benefits From Docker

• Deployment

• Update

• Universal Method among various OS

Why Use Docker

Deployment

Normal Deployment

• Uniq Method For various DB

• Dependance Problem

• OS Support (CoreOS, CentOS, Debian, etc.)

• Standard Tuning Method

• Ansible, Fleet

• Server Resource Pool

• Deployment Template (Systemd-unit-file)

How

• etcd

• zookeeper

• mongodb

• elastic search

• mysql

• hadoop

• ceph

• glusterFS

• kafka

• nsq

Support DB

ExampleDescription=mongo-bds-uba-rs After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 Restart=always ExecStartPre=-/usr/bin/docker rm mongo-bds-uba-rs ExecStart=/usr/bin/docker run \\ --name mongo-bds-uba-rs \\ -p 1301:27017 \\ -v /hdd1/bds-uba-rs:/data/db \\ dhub.yunpro.cn/library/mongo:3 \\ --storageEngine wiredTiger \\ --replSet bds-uba-rs

ExecStop=/usr/bin/docker kill mongo-bds-uba-rs [Install] WantedBy=multi-user.target

Upgrade

Normal Upgrade

• Rollback Solution

• Dependance Confliction

• Complicated Documents

But• Small Version

• usually can upgrade directly

• Big Version

• re-import in required OR making compatible scripts to upgrade

• like: ceph, mongo engine switch

ExampleDescription=mongo-bds-uba-rs After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 Restart=always ExecStartPre=-/usr/bin/docker rm mongo-bds-uba-rs ExecStart=/usr/bin/docker run \\ --name mongo-bds-uba-rs \\ -p 1301:27017 \\ -v /hdd1/bds-uba-rs:/data/db \\ PRIVATE-REGISTRY/library/mongo:3.2 \\ --storageEngine wiredTiger \\ --replSet bds-uba-rs

ExecStop=/usr/bin/docker kill mongo-bds-uba-rs [Install] WantedBy=multi-user.target

Scaling

Example[Unit] Description=mongo-shard After=docker.service Requires=docker.service [Service] TimeoutStartSec=0 Restart=always ExecStartPre=-/usr/bin/docker rm mongo-shard ExecStart=/usr/bin/docker run \

--name mongo-shard \ -p 1201:27018 \ -v /data/shard:/data/db \ PRIVATE-REGISTRY/library/mongo:3 \ --storageEngine wiredTiger \ --shardsvr

ExecStop=-/usr/bin/docker kill mongo-shard [Install] WantedBy=multi-user.target

Support DB• Redis Cluster

• Mongo Shard

• ElasticSearch

• Hadoop

• NSQ

• Kafka

Auto Failover backup

Support DB• etcd failover

• zookeeper failover

• mongoDB replication

• redis master-slave

• mysql master-slave

Example

• Mongo Replication HDD broken

• Select Available Server From Servers Pool

• Start Replication Docker Instance

• Mongo Client Remove Old One and Add New One

Auto Balance

Example

• Mongos

• Using DNS to Round-Robin

• Increase Mongos to handle more connections and traffic

Benchmark

Why Docker

• Easy To deploy in temporary servers

• More Connections

• More Operations to generate

• Build Once and run anywhere

Benchmark

• More Connections and operations to DB

Problems

Problems• MongoDB no Master

• MongoDB Connections Over 20,000

• MongoDB Tuning

• Ceph RDB Volume Support Problem

Thank You

We Are Hiring!

http://www.goyoo.com