bazy danych - ciągłość działania, spójność danych...

23
Bazy danych - ciągłość działania, spójność danych i disaster recovery Daniel Polek-Pawlak Jarosław Zdebik

Upload: doanduong

Post on 01-Mar-2019

223 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Bazy danych - ciągłość działania, spójność danych i disaster recovery

Daniel Polek-PawlakJarosław Zdebik

Page 2: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging
Page 3: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Plan Prezentacji

● Wprowadzenie - podstawy.● Co oznacza utrata danych dla niedużego sklepu. ● Czy dostępność danych i baz danych to to samo.● Jak zagwarantować dostępność danych dla dla portalu z ponad

miliardem odsłon miesięcznie. ● Jak nad tym wszystkim panować.

Page 4: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Wprowadzenie - Backup na poziomie FSBackup na poziomie file systemu:

- Cyklicznie wykonywany jest backup

- Całkowity / Przyrostowy

- Backup wysyłany jest na inny serwer / do chmury

- Baza danych to ciągle modyfikowany plik (kilka

plików + pamięć)

- Nie jesteśmy w stanie zagwarantować konsystencji

danych odtworzonych z backupu

-

- Zatrzymanie maszyny :(

- Dump bazy :)

- Dump bazy obciąża bazę - wpływa na wydajność

- Synchronizacja Backupu bazy i FS

-

Page 5: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Wirtualizacja - rozwiązuje wszystkie problemy?Backup na poziomie maszyny wirtualnej:

- Robimy snapshot całej maszyny

- Cyklicznie

- Wysyłany na zdalny serwer / do chmury

- Zakładamy, że mamy zrobione to dobrze ;)

- HV wysyła instrukcje do OS VS

- FS Freeze / chwilowe zatrzymanie maszyny

- Baza danych jest konsystentna *

- Użytkownicy mogą być wylogowani. (AWS)

- Snapshot jest stosunkowo duży

- Możemy “przemycić” błędy na file systemie

Page 6: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Średni sklep - sprzedaż

Koszyk (avg v) = 160 zł

L. zamówien = 30

Dzienny obrót = 4 800 ZŁ

Marża = 960 zł

20 - 22B

RPO - Punkt w czasie do którego mamy przywrócić dane (ile danych stracimy)

RTO - Czas w jakim mamy przywrócić dane (Ile czasu zajmie nam przywrócenie danych)

Page 7: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Czas kopiowania danych z backupu a RTO

Koszyk (avg v) = 160 zł

L. zamówien = 30

Dzienny obrót = 4 800 ZŁ

Marża = 960 zł

GB 1 Gbps 100 mbps minimalne straty

5 40 sekund 7 minut ~

50 7 minut 1 godzina 10 minut 200 zł

100 14 minut 2 godziny 20 minut 400 zł

200 28 minut 4 godziny 40 minut 1 000 zł

500 1 godzina 7 minut 11 godzin 7 minut 2 200 zł

Page 8: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Co oznacza dostępność danych dla portalu

A. MySQL (400)B. PostgreSQL (100)C. Oracle (11)D. NoSQL (100): redis, mongoDB, Couchbase E. BigData (1,7 PT HDD, 2064 CPU Cores, 9 TB RAM)

Środowisko rośnie ...

Odporność na awarie, Odporność na błędy ludzkie, Dostępność (wydajność), Odporność na Ataki, Spójność danych - pomiędzy bazami.

Page 9: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

ArchitekturaBaz

Page 10: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Skala Ruchu

45000 queries/sec

600000 rows/sec

Ilość danych w jednej bazie niejednokrotnie przekracza 1000 GB

Przykład dla jednej wybranej bazy

Page 11: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Bezpieczeństwo Danych (Replikacja)● chroni przed awariami sprzętu nie błędami ludzkimi● monitorowanie opóźnień replikacji ● ruch modyfikujący trafia do mastera

Page 12: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Bezpieczeństwo Danych (Backup i Recovery)

● Backupy należy wykonywać dedykowanymi narzędziami (sprawdzanie błędów, konsystencja danych, backup online, kompresja)

● Backupy należy BEZWZGLĘDNIE testowo odtwarzać cyklicznie!● Codziennie wykonujemy pełny backup plus archivelogi (RPO)● Archivelogi wysyłane co 15 minut na zdalny serwer● Backupy wykonywane i na M (noc) i na S (12h później w dzień)● Jeden backup trzymany na lokalnym serwerze (M i S), dodatkowo wysyłany

na zdalne serwery● Polityka trzymania backupów

Page 13: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Bezpieczeństwo Danych (Backup i Recovery)

● Ustawienie wagi dla baz (SLA/OLA) - którą bazę odtwarzamy jako pierwszą w chwili awarii?

● Lvm snapshot na bazach z myisam (mylvmbackup)● Dbtool (backup, odtworzenie, przepięcie M-S) - wsparcie NOC

Page 14: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Monitoring (24 godziny na dobę)● Icinga - ponad 30 checków (długie transakcje, obciążenie, opóźnień replikacji

ale też: zmiany obiektów na bazie, zmiany konfiguracji, co urosło w bazie)● Statystyki - ponad 500 metryk (użycie indeksów, buforów, tabel

tymczasowych ...)● Baza centralna - monitoring innych baz● NOC

Page 15: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Środowiska Bazodanowe● Dev - do testów/zabawy, można psuć do woli (po to są)● Itg - integracja kodu wielu developerów● Staging - testy wydajnościowe● Pre-Prod/RC/ UAT - testy użytkowe, import danych produkcyjnych ● Prod - nie dotykamy, świadoma polityka wdrożeń

Page 16: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Wydajność i Bezpieczeństwo Danych

● Proxy dla baz - proxy chroniące bazy● Hermes - konsystencja danych pomiędzy bazami● Baza centralna - monitoring wszystkich zmian

Page 17: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

DBPROXY (ochrona baz)

A. Pula połączeń do bazB. Cachowanie (mcrouter - pomocne w razie awarii)C. Agregacja zapytańD. Master/slave/shardingE. Security (sql injection trudne do wykonania), własny protokółF. Kto się może łączyćG. Transakcje globalneH. Wsparcie dla różnych baz MySQL, Oracle, PostgreSQL

Page 18: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

HERMES

A. JavaB. Równoległe przetwarzanie

komunikatówC. Przenosi dane między bazami

Page 19: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

HERMES

Page 20: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Baza Centralna

Monitoruje zmiany na bazach, stan bazy i replikacji

Bazę centralną dodatkowo sprawdza niezależny system monitoringu

Page 21: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Jak nad tym wszystkim zapanować

● Rozproszone środowiska● Automatyzacja ● Wirtualizacja● Autorskie narzędzia / skrypty automatyzujące ● Standaryzacja (Sprzęt, Os, Software)

Page 22: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

Jak nad tym wszystkim zapanować

Page 23: Bazy danych - ciągłość działania, spójność danych ...gigacon.org/wp-content/uploads/2017/12/Gigacon-6.12.2017-1-interia.pdf · Itg - integracja kodu wielu developerów Staging

DZIĘKUJEMY ZA UWAGĘ