mikroserwisy — Sam Newman “Mikroserwisy to koncept architektoniczny który w założeniu ma na celu rozprzęgnięcie rozwiązania poprzez jego dekompozycje funkcjonalną na mniejsze elementy, komunikujące się między sobą poprzez lekkie mechanizmy, często HTTP
mikroserwisy Niewielki problem biznesowy Niezależny; niezależnie wdrażany Działający we własnym procesie Zarządzający swoimi danymi Integrujący się z wykorzytaniem powszechnych interfejsów
są fajne mikroserwisy są fajne Czysty kod Tworzymy moduły które mają pojedynczą odpowiedzialność Są szybsze niż monolity Łatwiejsze w zarządzaniu Łatwiejsze do skalowania Docker, docker, docker, docker potencjalnie szybsze do wdrożenia, szybsze w działaniu nie wszyscy pracują na pojedynczym code-basie tutaj gdzieś powinien pojawić się Docker
) collection of task-oriented or dedicated systems that pool their resources and capabilities together to create a new, more complex system which offers more functionality and performance than simply the sum of the constituent systems
of systems system of systems (… ) collection of task-oriented or dedicated systems that pool their resources and capabilities together to create a new, more complex system which offers more functionality and performance than simply the sum of the constituent systems
ku mikroserwisom droga ku mikroserwisom — Christopher Alexander “ Piecemeal Growth to proces budowy krok po kroku, umożliwiający ciągłą ewaluację istniejącego systemu oraz elastyczne podejmowanie decyzji jaki powinien być kolejny krok.
checklist microservices checklist Niewielki problem biznesowy Niezależny; niezależnie wdrażany Działający we własnym procesie Zarządzający swoimi danymi Integrujący się z wykorzytaniem powszechnych interfejsów
James Lewis “ We define libraries as components that are linked into a program and called using in-memory calls, while services are out-of-process components who communicate with remote procedure calls
driven contracts consumer driven contracts (… ) drives the development of the Provider from its Consumers point of view, which means consumer describes what and how it wants to receive the information (in a form of a contract) and then provider implements the service following the given contract.
checklist microservices checklist Niewielki problem biznesowy Niezależny; niezależnie wdrażany Działający we własnym procesie Zarządzający swoimi danymi Integrujący się z wykorzytaniem powszechnych interfejsów
Tanenbaum — Consistency protocols (2007) “(… ) as every parent of a small child knows, converting a large object into small fragments is considerably easier than the reverse process.
computing distributed computing Leslie Lamport — Jakaś mailing lista Microsoft 1987 A distributed system is one in which the failure of a computer you didn’t even know existed can render your own computer unusable.
of distributed computing fallacies of distributed computing — 1994 - 1998 (is) a set of assertions made by L Peter Deutsch and others at Sun Microsystems describing false assumptions that programmers new to distributed applications invariably make
Service Discovery / Load balancing Każdy serwis rejestruje się w centralnym repozytorium, gdzie inne serwisy szukają informacji o dostępności usług. Pozostałe serwisy samodzielnie decydują z którą z dostępnych instancji odbywa się komunikacja. Server-Side Service Discovery / Load balancing
Service Discovery / Load balancing Każdy serwis rejestruje się w centralnym repozytorium, gdzie inne serwisy szukają informacji o dostępności usług. Pozostałe serwisy samodzielnie decydują z którą z dostępnych instancji odbywa się komunikacja. Server-Side Service Discovery / Load balancing Każdy serwis rejestruje się w centralnym repozytorium. Pozostałe serwisy odwołują się do repozytorium (pojedynczy adres sieciowy), które wewnętrznie przekierowuje ruch do jednej z dostępnych instancji.
theorem (cap theorem) brewer’s theorem (cap theorem) — 1998 (… ) it is impossible for a distributed computer system to simultaneously provide all three of the following guarantees: Consistency, Availability and Partition tolerance.
Spójność. Każdy odczyt to najświeższe, ostatnio zapisane dane lub błąd. Availability Dostępność. Każdy odczyt zakończony jest sukcesem, nie ma gwarancji że dane które otrzymaliśmy są najświeższe. Partition tolerance
Spójność. Każdy odczyt to najświeższe, ostatnio zapisane dane lub błąd. Availability Dostępność. Każdy odczyt zakończony jest sukcesem, nie ma gwarancji że dane które otrzymaliśmy są najświeższe. Partition tolerance Odporność na podział. System kontynuuje działanie pomimo awarii sieci i braku komunikacji pomiędzy węzłami.
theorem pacelc theorem — Daniel J. Abadi 2012 Ignoring the consistency/latency tradeoff of replicated systems is a major oversight [in CAP], as it is present at all times during system operation, whereas CAP is only relevant in the arguably rare case of a network partition.
CPU cycle 0.4 ns 1 s Level 1 cache access 0.9 ns 2 s Main memory access (DDR DIMM) ~100 ns 4 min SSD I/O 50–150 μs 1.5–4 days Rotational disk I/O 1–10 ms 1–9 months Internet call SF to NYC 65 ms 5 years
~ http://jakub.marchwicki.pl SegFault - wszystko co potrzebujesz wiedzieć aby awansować 26.04.2019 - Łódź http://segfault.events “ absolutnie niedogmatyczne podejście do programistycznych mód, alergia na bullshit, olewczy stosunek dla autortetów