|
Chmury obliczeniowe otworzyły nowe możliwości projektowania aplikacji korporacyjnych. Obecnie konstruuje się je z małych, lekkich i zorientowanych na proces komponentów, nazywanych mikrousługami. Tworzone w ten sposób aplikacje są skalowalne i łatwe do zarządzania, a przy tym niezwykle elastyczne i wykorzystujące dostępne zasoby w wyjątkowo efektywny sposób. Jak łatwo się przekonać, projektowanie i implementacja mikrousług otwierają przed programistami Javy bardzo obiecujące perspektywy!
Niniejsza książka jest przeznaczona dla programistów Javy, którzy znają podstawowe pojęcia dotyczące mikrousług i chcą tworzyć funkcjonalne aplikacje biznesowe w tej technologii. Przedstawiono tu najważniejsze zasady realizacji dużych projektów, zaprezentowano ważne szczegóły dotyczące konfiguracji środowiska programistycznego i ciągłej integracji, które ułatwią wdrażanie mikrousług. Opisano zalety i sposoby wykorzystania biblioteki Spring Security. Przedstawiono dobre praktyki projektowania mikrousług, a także techniki ich debugowania, tak aby bez problemu można było zaprojektować i wdrożyć aplikację w środowisku korporacyjnym.
Niektóre zagadnienia omówione w książce:
- środowiska programistyczne i narzędzia do projektowania mikrousług
- różne technologie wdrażania mikrousług
- zabezpieczanie mikrousług, w tym uwierzytelnianie i autoryzacja
- testowanie mikrousług za pomocą klientów REST
- tworzenie interfejsów użytkownika w technologii Angular JS
- typowe problemy związane z projektowaniem mikrousług i ich rozwiązywanie
Mikrousługi — sprytne rozwiązania biznesowe dla dużych korporacji!
Rodziały:
- Zespół wydania oryginalnego
- O autorach
- O recenzencie
- Przedmowa
- Zakres treści
- Co przyda Ci się w trakcie lektury
- Dla kogo jest ta książka
- Konwencje
- Przykłady kodu do pobrania
- Errata
- Piractwo
- Rozdział 1. Koncepcja rozwiązania
- Rozwój mikrousług
- Omówienie architektury monolitycznej
- Problemy architektury monolitycznej i ich rozwiązania w mikrousługach
- Jednowymiarowa skalowalność
- Wycofanie wersji produkcyjnej w razie problemów
- Problemy związane z wdrażaniem nowych technologii
- Mikrousługi a metodyki zwinne
- Łatwość tworzenia oprogramowania da się lepiej!
- Budowanie mikrousług kolejność wykonywania działań
- Wdrażanie mikrousług w kontenerach na przykładzie Dockera
- Kontenery
- Docker
- Architektura Dockera
- Kontener Dockera
- Wdrażanie
- Podsumowanie
- Rozdział 2. Konfiguracja środowiska programistycznego
- Konfiguracja Spring Boot
- Omówienie technologii Spring Boot
- Dodajemy Spring Boot do przykładowego projektu
- Dodajemy wbudowany serwer Jetty
- Przykładowa aplikacja typu REST
- Piszemy klasę kontrolera REST
- @RestController
- @RequestMapping
- @RequestParam
- @PathVariable
- Uruchamianie przykładowej aplikacji
- Konfiguracja procesu budowania aplikacji
- Uruchomienie narzędzia Maven
- Wykonywanie polecenia w terminalu
- Testowanie API za pomocą rozszerzenia Postman
- Prawidłowe przypadki testowe
- Nieprawidłowe przypadki testowe
- Instalacja i konfiguracja środowiska NetBeans
- Źródła
- Podsumowanie
- Rozdział 3. Projektowanie sterowane modelem dziedziny
- Podstawy projektowania sterowanego modelem dziedziny
- Pojęcia, terminy, definicje
- Wszechobecne słownictwo
- Wielowarstwowa architektura
- Warstwa prezentacji
- Warstwa aplikacji
- Warstwa dziedziny
- Warstwa infrastruktury
- Artefakty związane z projektowaniem sterowanym modelem dziedziny
- Encje
- Obiekty wartości
- Usługi
- Agregaty
- Repozytorium
- Fabryka
- Moduły
- Projektowanie strategiczne i jego założenia
- Ograniczony kontekst
- Integracja ciągła
- Mapa kontekstu
- Współdzielone jądro
- Relacja klient-dostawca
- Wzorzec konformisty
- Warstwa ograniczająca przekłamania
- Niezależne ścieżki
- Usługa otwartego hosta
- Wzorzec destylacji
- Przykładowa usługa dziedziny
- Implementacja encji
- Implementacja repozytorium
- Implementacja usługi
- Podsumowanie
- Rozdział 4. Implementujemy mikrousługę
- Omówienie systemu OTRS
- Opracowywanie i implementacja mikrousług
- Mikrousługa Restaurant
- Klasa kontrolera
- Klasy usług
- Klasy repozytorium
- Klasy encji
- Usługi użytkowników i rezerwacji
- Rejestracja i wykrywanie usług (usługa Eureka)
- Wykonanie
- Testowanie
- Źródła
- Podsumowanie
- Rozdział 5. Wdrażanie i testowanie
- Podstawy architektury mikrousług w Netflix OSS
- Równoważenie obciążenia
- Równoważenie obciążenia po stronie klienta
- Równoważenie obciążenia po stronie serwera
- Wyłącznik automatyczny a monitorowanie
- Stosowanie metod awaryjnych aplikacji Hystrix
- Monitorowanie usług
- Konfiguracja pulpitu Hystrix
- Konfiguracja aplikacji Turbine
- Wdrażanie mikrousług za pomocą kontenerów
- Instalacja i konfiguracja
- Maszyna Dockera z 4 GB pamięci
- Budowanie obrazów Dockera za pomocą Mavena
- Uruchamianie Dockera za pomocą Mavena
- Testy integracyjne z Dockerem
- Wysyłanie obrazu do rejestru
- Zarządzanie kontenerami Dockera
- Źródła
- Podsumowanie
- Rozdział 6. Mikrousługi a bezpieczeństwo
- Dodanie obsługi protokołu SSL
- Uwierzytelnianie i autoryzacja
- OAuth 2.0
- Specyfikacja OAuth 2.0 krótko i na temat
- Role w OAuth 2.0
- Właściciel zasobów
- Serwer zasobów
- Klient
- Serwer autoryzacji
- Klient rejestracji OAuth 2.0
- Rodzaje klientów
- Klienty poufne
- Klienty publiczne
- Aplikacja webowa
- Aplikacja agentowa
- Aplikacja natywna
- Identyfikator klienta
- Uwierzytelnianie klientów
- Końcówki protokołu OAuth 2.0
- Końcówka autoryzacji
- Końcówka tokena
- Końcówka przekierowania
- Rodzaje uprawnień OAuth 2.0
- Grant kodu autoryzacji
- Żądania i odpowiedzi kodu autoryzacji
- Grant niejawny
- Żądania i odpowiedzi grantu niejawnego
- Grant hasła właściciela zasobu
- Żądania i odpowiedzi grantu hasła właściciela zasobu
- Grant danych uwierzytelniających klienta
- Żądania i odpowiedzi grantu danych uwierzytelniających klienta
- Implementacja OAuth z wykorzystaniem Spring Security
- Grant kodu autoryzacji
- Granty niejawne
- Grant hasła właściciela zasobu
- Grant uprawnień klienckich
- Źródła
- Podsumowanie
- Rozdział 7. Użytkowanie mikrousług za pomocą aplikacji webowej
- Ogólne założenia frameworka AngularJS
- MVC
- MVVM
- Moduły
- Dostawcy i usługi
- Zakresy
- Kontrolery
- Filtry
- Dyrektywy
- Router interfejsu użytkownika UI-Router
- Implementacja funkcji systemu OTRS
- Lista restauracji/strona domowa
- index.html
- app.js
- restaurants.js
- restaurants.html
- Wyszukiwanie restauracji
- Widok szczegółów restauracji z opcją rezerwacji
- Strona logowania
- Potwierdzenie rezerwacji
- Konfiguracja aplikacji webowej
- Źródła
- Podsumowanie
- Rozdział 8. Dobre praktyki i istotne reguły tworzenia mikrousług
- Właściwy sposób myślenia
- Dobre praktyki i przydatne reguły
- Nanousługa (niezalecana), rozmiar i monolityczność
- Ciągła integracja i wdrażanie
- Automatyzacja testów end-to-end
- Automonitorowanie i logowanie
- Oddzielny magazyn danych dla każdej mikrousługi
- Granice transakcji
- Narzędzia i frameworki do tworzenia mikrousług
- Netflix Open Source Software (OSS)
- Budowanie Nebula
- Wdrażanie i dostarczanie Spinnaker i Aminator
- Rejestracja i wykrywanie usług Eureka
- Komunikacja usług Ribbon
- Wyłącznik automatyczny Hystrix
- Serwer graniczny Zuul
- Monitoring operacyjny Atlas
- Usługa monitorowania stabilności Simian Army
- Monitorowanie zasobów AWS Edda
- Monitoring wydajności hosta Vector
- Zarządzanie rozproszoną konfiguracją Archaius
- Planista dla Apache Mesos Fenzo
- Koszt i wykorzystanie chmury Ice
- Pozostałe narzędzia bezpieczeństwa Scumblr i FIDO
- Źródła
- Podsumowanie
- Rozdział 9. Rozwiązywanie problemów
- Obsługa logów i stos ELK
- Krótkie wprowadzenie
- Elasticsearch
- Logstash
- Kibana
- Konfiguracja stosu ELK
- Instalacja Elasticsearch
- Instalacja Logstash
- Instalacja Kibany
- Wskazówki dotyczące implementacji stosu ELK
- Zastosowanie skorelowanych ID dla wywołań usług
- Jak rozwiązać ten problem?
- Zależności i wersje
- Zależności cykliczne i ich wpływ
- Trzeba je analizować podczas projektowania systemu
- Zarządzanie różnymi wersjami
- Dowiedz się więcej
- Źródła
- Podsumowanie
Najniższa cena z 30 dni przed obniżką 36,75zł
|