11.3. Microservices Distributed Systems

  • Niezależne domeny awarii

  • Możliwość pisania w wielu językach

  • Równoległość komponentów (concurrency)

  • Brak globalnego zegara i możliwości jednoznacznego określenia czasu i kolejności

  • zapewnienie spójności kosztem dostępności

  • zapewnienie wysokiej dostępności kosztem spójności

  • wzajemnie się wykluczające

  • nie ma ACID!: Atomicity, Consistency, Isolation, Durability

  • Dwufazowe Commity

  • Brak transakcyjności

  • Zastosować mechanizm rekompensacji (np. raz w nocy usuwać zduplikowane dane)

  • Brak gwarancji, że komunikat wysłany do hosta zostanie wysłany tylko raz (np. jeżeli dwa razy zostanie wysłany komunikat przez bankomat o naliczeniu opłaty, to operacja zostanie wykonana przez bank tylko raz)

11.3.1. BASE

  • Basically

  • Available (w większości możemy wykonać pewne operacje)

  • Soft State (tylko operacje, których stan możemy odbudować, np. przez przegenerowanie cache)

  • Eventually consistent (system jest pomiędzy stanem spójnym i niespójnym)

11.3.2. 8 błędnych założeń

  • Deutsch, P. The Eight Fallacies of Distributed Computing. Year: 1991. 1

  • Sieć jest niezawodna

  • Opóźnienia w sieci są zerowe

  • Przepustowość sieci jest nieskończona

  • Sieć jest bezpieczna

  • Topologia sieci się nie zmienia

  • Istnieje tylko jeden administrator

  • Koszt transportu jest zerowy

  • Sieć jest jednorodna

11.3.3. Sieć jest niezawodna

  • sieć w serwerowni jest niezawodna

  • MTBF routera jest 50k h

  • netsplit w publicznych cloudach są normalne

  • zwiększa się latency

11.3.4. Opóźnienia w sieci są zerowe

  • opóźnienia w sieci są zerowe

11.3.5. Przepustowość sieci jest nieskończona

  • przepustowość sieci jest nieskończona

11.3.6. Sieć jest bezpieczna

  • większość aplikacji jest chroniona z zewnątrz

  • brak szyfrowania wewnątrz sieci

11.3.7. Topologia sieci się nie zmienia

  • przeliczenie BGP i zmiana spanning tree

  • ścieżki sieciowe się zmieniają

  • pojawiają się nowe instancje

11.3.8. Istnieje tylko jeden administrator

  • różni ludzie z różną wiedzą

  • inaczej konfigurują maszyny

  • jeden serwer może być lepiej skonfigurowany

11.3.9. Koszt transportu jest zerowy

  • narzut czasowy na serializację, deserializację, stos TCP

  • czas transportu po medium jest niezerowy

11.3.10. Sieć jest jednorodna

  • sieć składa się z różnych urządzeń

  • mogą być różnie stabilne

  • mogą mieć różne charakterystyki

11.3.11. References

1

Deutsch, P. The Eight Fallacies of Distributed Computing. Year: 1991.