rozwijanie mikrousług w pythonie. budowa, testowanie, instalacja i skalowanie scan.mobi

(15567 KB) Pobierz
Spis tre ci
O autorze
O korektorze merytorycznym
Przedmowa
Wst p
Rozdzia 1. Czym s mikrous ugi?
Geneza architektury SOA
Podej cie monolityczne
Podej cie mikrous ugowe
Zalety mikrous ug
Rozdzielenie zakresów odpowiedzialno ci
Mniejsze projekty
Skalowanie i wdra anie
Wady mikrous ug
Nielogiczny podzia aplikacji
Wi cej interakcji sieciowych
Powielanie danych
Problemy z kompatybilno ci
Skomplikowane testy
Implementacja mikrous ug w j zyku Python
Standard WSGI
Biblioteki Greenlet i Gevent
Platformy Twisted i Tornado
Modu asyncio
Wydajno kodu
Podsumowanie
9
10
11
15
17
18
19
22
24
24
24
25
26
26
27
27
28
28
29
29
31
33
34
36
38
Kup książkę
Poleć książkę
Spis tre ci
Rozdzia 2. Platforma Flask
Jaka wersja Pythona?
Obs uga zapyta w platformie Flask
Kierowanie zapyta
Zapytanie
Odpowied
Wbudowane funkcjonalno ci platformy Flask
Obiekt session
Zmienne globalne
Sygna y
Rozszerzenia i po redniki
Szablony
Konfiguracja
Konspekty
Obs uga b dów i diagnostyka kodu
Szkielet mikrous ugi
Podsumowanie
39
40
41
44
47
49
50
51
51
52
53
55
56
58
59
62
64
Rozdzia 3. Cykl doskona y: kodowanie, testowanie, dokumentowanie
Rodzaje testów
Testy jednostkowe
Testy funkcjonalne
Testy integracyjne
Testy obci eniowe
Testy ca o ciowe
Pakiet WebTest
Narz dzia pytest i tox
Dokumentacja programistyczna
Ci g a integracja
System Travis CI
System ReadTheDocs
System Coveralls
Podsumowanie
65
67
67
70
72
72
75
76
78
80
84
85
86
86
88
Rozdzia 4. Aplikacja Runnerly
Aplikacja Runnerly
Historie u ytkowników
Struktura monolityczna
Model
Widok i szablon
Zadania wykonywane w tle aplikacji
Uwierzytelnianie i autoryzowanie u ytkowników
Zebranie elementów w monolityczn ca o
Dzielenie monolitu
Us uga danych
Standard Open API 2.0
Dalszy podzia aplikacji
Podsumowanie
89
89
90
91
92
93
96
99
102
104
105
106
108
110
4
Kup książkę
Poleć książkę
Spis tre ci
Rozdzia 5. Interakcje z innymi us ugami
Wywo ania synchroniczne
Sesje w aplikacji Flask
Pula po cze
Pami podr czna i nag ówki HTTP
Przyspieszanie przesy ania danych
Wnioski
Wywo ania asynchroniczne
Kolejki zada
Kolejki tematyczne
Publikowanie i subskrybowanie komunikatów
Wywo ania RPC w protokole AMQP
Wnioski
Testy
Imitowanie wywo a synchronicznych
Imitowanie wywo a asynchronicznych
Podsumowanie
111
112
113
116
117
120
124
125
125
126
130
130
131
131
131
133
135
Rozdzia 6. Monitorowanie us ug
Centralizacja dzienników
Konfiguracja systemu Graylog
Wysy anie logów do systemu Graylog
Dodatkowe pola
Wska niki wydajno ciowe
Wska niki systemowe
Wska niki wydajno ciowe kodu
Wska niki wydajno ciowe serwera WWW
Podsumowanie
137
138
139
142
145
146
146
148
150
151
Rozdzia 7. Zabezpieczanie us ug
Protokó OAuth2
Uwierzytelnienie oparte na tokenach
Standard JWT
Biblioteka PyJWT
Uwierzytelnianie za pomoc certyfikatu X.509
Mikrous uga TokenDealer
Stosowanie us ugi TokenDealer
Zapora WAF
Platforma OpenResty: serwer Nginx i j zyk Lua
Zabezpieczanie kodu
Sprawdzanie odbieranych zapyta
Ograniczanie zakresu dzia ania aplikacji
Analizator Bandit
Podsumowanie
153
154
156
156
158
160
162
165
167
169
174
175
178
179
181
5
Kup książkę
Poleć książkę
Spis tre ci
Rozdzia 8. Wszystko razem
Tworzenie interfejsu za pomoc biblioteki ReactJS
J zyk JSX
Komponenty ReactJS
Biblioteka ReactJS i platforma Flask
Bower, npm i Babel
Wspó dzielenie zasobów mi dzy domenami
Uwierzytelnianie u ytkowników i autoryzowanie zapyta
Komunikacja z us ug danych
Uzyskiwanie tokena Strava
Uwierzytelnienie w kodzie JavaScript
Podsumowanie
183
184
185
186
189
190
193
195
195
196
198
199
Rozdzia 9. Spakowanie i uruchomienie Runnerly
Narz dzia pakuj ce
Kilka definicji
Pakowanie projektów
Wersje projektu
Udost pnianie projektu
Rozpowszechnianie projektu
Uruchamianie mikrous ug
Zarz dzanie procesami
Podsumowanie
201
202
203
204
211
213
215
218
220
223
Rozdzia 10. Us ugi kontenerowe
Czym jest Docker?
Docker od podstaw
Uruchamianie aplikacji Flask na platformie Docker
Kompletny system — OpenResty, Circus i Flask
Platforma OpenResty
Mened er Circus
Wdro enia kontenerowe
Docker Compose
Klastrowanie i prowizjonowanie kontenerów
Podsumowanie
225
226
227
229
231
232
233
236
237
239
241
Rozdzia 11. Instalacja w chmurze AWS
Chmura AWS
Kierowanie zapyta — Route53, ELB i AutoScaling
Wykonywanie kodu — EC2 i Lambda
Gromadzenie danych — EBS, S3, RDS, ElasticCache i CloudFront
Powiadamianie — SES, SQS i SNS
Prowizjonowanie i uruchamianie — CloudFormation i ECS
243
244
245
246
247
248
250
6
Kup książkę
Poleć książkę
Zgłoś jeśli naruszono regulamin