-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Enterprise integration patterns: 1st variant
- Loading branch information
Showing
2 changed files
with
176 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<!doctype html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> | ||
<title></title> | ||
<link rel="stylesheet" href="dist/reset.css"> | ||
<link rel="stylesheet" href="dist/reveal.css"> | ||
<link rel="stylesheet" href="dist/theme/simple.css"> | ||
<link rel="stylesheet" href="plugin/highlight/monokai.css"> | ||
</head> | ||
<body> | ||
<div class="reveal"> | ||
<div class="slides"> | ||
<section data-markdown="eip.md"> | ||
</section> | ||
</div> | ||
</div> | ||
<script type="application/javascript" src="dist/reveal.js"></script> | ||
<script type="application/javascript" src="plugin/notes/notes.js"></script> | ||
<script type="application/javascript" src="plugin/markdown/markdown.js"></script> | ||
<script type="application/javascript" src="plugin/highlight/highlight.js"></script> | ||
<script type="application/javascript"> | ||
Reveal.initialize({ | ||
controls: true, | ||
progress: true, | ||
history: true, | ||
center: true, | ||
|
||
plugins: [ RevealMarkdown, RevealHighlight ] | ||
}); | ||
</script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,142 @@ | ||
# Enterprise Integration Patterns | ||
|
||
## Používání návrhových vzorů | ||
|
||
--- | ||
|
||
## Osnova | ||
|
||
* Vzory nejsou vynalézány, ale rozpoznávány v praxi | ||
* Komunikace po síti není spolehlivá | ||
* Komunikace po síti je pomalá | ||
* Každá aplikace je odlišná | ||
* Aplikace se postupně mění | ||
* Komunikace v současnosti: mikroslužby a serverless řešení | ||
* Architektura založená na mikroslužbách | ||
* Příklady řešení komunikace ve světě mikroslužeb | ||
|
||
--- | ||
|
||
## Návrhové vzory pro enterprise systémy | ||
|
||
* Enterprise systém založený na mikroslužbách | ||
* Používá se relativně malá sada ustálených způsobů | ||
- vzorů | ||
* Vzory nejsou vynalézány, ale rozpoznávány v praxi | ||
* Standardizace | ||
- slovní popis | ||
- grafická podoba | ||
* Snaha vyhnout se slepým uličkám | ||
- ty již někdo prozkoumal za nás | ||
- (a zaplatil za to) | ||
|
||
--- | ||
|
||
## Mikroslužby | ||
|
||
* Vytvářeny různými týmy | ||
- odlišné ekosystémy (programovací jazyk, prostředky) | ||
- odlišné způsoby nasazení | ||
* Požadavky + implementace se postupně mění | ||
* Přidávání dalších služeb | ||
* + další náklady | ||
- monitoring | ||
- alerting | ||
|
||
--- | ||
|
||
## Komunikace mezi mikroslužbami | ||
|
||
* Koordinace mezi mikroslužbami | ||
* Komunikace mezi mikroslužbami | ||
* Typicky řešeno posíláním zpráv | ||
- informace o událostech | ||
- příkazy | ||
- dotazy | ||
* Synchronní či asynchronní zpracování | ||
* Distribuované transakce | ||
|
||
--- | ||
|
||
## Komunikační strategie | ||
|
||
* Ad-hoc | ||
* Bez nutnosti použití message brokera | ||
* S použitím message brokera | ||
* Využití dalších technologií | ||
- sběrnice | ||
- streaming | ||
|
||
--- | ||
|
||
## Požadavek-odpověď | ||
|
||
![com-1](images/com-01-request_reply.png) | ||
|
||
--- | ||
|
||
## Požadavek-odpověď | ||
|
||
* často zneužíváno | ||
- polling | ||
* spojení | ||
- stálé | ||
- nebo pro jedinou dvojici požadavek/odpověď | ||
|
||
--- | ||
|
||
## Oboustranná komunikace | ||
|
||
* navázání připojení | ||
- typicky stálé připojení | ||
* dvojice uzlů | ||
* posílání zpráv oběma směry | ||
|
||
--- | ||
|
||
## Surveyor | ||
|
||
* poslán požadavek na odpověď | ||
* časový limit | ||
* v časovém intervalu jsou sbírány odpovědi | ||
* service discovery, hlasovací algoritmy atd. | ||
|
||
--- | ||
|
||
## Message brokeři | ||
|
||
* ActiveMQ (Artemis) | ||
* RabbitMQ | ||
* IBM MQ | ||
* Amazon SQS (broker jako služba) | ||
* ... | ||
|
||
--- | ||
|
||
## Komunikační strategie a message brokeři | ||
|
||
--- | ||
|
||
### Publish-subscribe | ||
|
||
![com-3](images/com-03-pub-sub.png) | ||
|
||
--- | ||
|
||
### Push-pull | ||
|
||
![com-4](images/com-04-push-pull.png) | ||
|
||
--- | ||
|
||
## Apache Kafka | ||
|
||
--- | ||
|
||
--- | ||
|
||
## Architektura lambda | ||
|
||
--- | ||
|
||
## Architektura kappa |