• 0 Items - 0.00лв.
    • Количката е празна

Java в облака

Spring Boot, Spring Cloud и Cloud Foundry

Share

Какво отличава традиционните компании от такива като Amazon, Netflix и Etsy? Тези компании усъвършенстваха изкуството на разработка на приложения за облачна среда, за да поддържат конкурентното си предимство и да се задържат много пред конкуренцията. Това практическо ръководство показва на Java/JVM разработчиците как по-бързо да изграждат по-добър софтуер, използвайки Spring Boot, Spring Cloud и Cloud Foundry.

Много организации вече се захванаха с изчисления в облака, ориентирана към тестването разработка, микросървиси и непрекъсната интеграция и разгръщане. Авторите Джош Лонг и Кени Бастани изцяло ви потапят в средствата и методологиите, които ще ви помогнат да трансформирате съществуващите си приложения в приложения, напълно интегрирани в облака.

В четири части тази книга обяснява:
 Основите: каква е мотивацията за мислене в термините на облака; как да конфигурирате и тествате Spring Boot приложение; как да прехвърлите съществуващите си приложения в облака;
• Микросървиси: как да изградите HTTP и RESTful услуги със Spring; как да маршрутизирате заявки в разпределената ви система; как да изградите гранични услуги по-близо до данните;
• Интеграция на данните: как да управлявате данните си със Spring Data и как да интегрирате разпределени услуги с поддържката, която Spring предоставя за ориентирани към събития, концентрирани около съобщения архитектури;
• Експлоатация: как да направите системата си наблюдаема; как да използвате брокери на услуги, за да свържете запазващи състоянието услуги; каква е голямата идея зад непрекъснатото разгръщане.

 

 „Ако изграждате облачни приложения, това е вашето най-важно ръководство за Java екосистемата. В него е покрито всичко – изграждането на гъвкави услуги, управлението на потока от данни (посредством REST и асинхронни събития), тестването, разгръщането и критичната задача за наблюдаемостта.“

— Даниел Брайънт, Софтуерен разработчик и технически директор в SpectoLabs

 

„Предричам, че всички, които участват в това приключение в облачните технологии, независимо дали едва започват, или почти са стигнали до целта, ще спечелят от разбирането и прилагането на изчистеното проникновение и познаниe в Java в облака.“

— д-р Дейв Сиер, сътрудник на Spring Framework и съосновател и сътрудник на Spring Boot и Spring Cloud

Година

2019

Корици

Меки

Преводач

Петя Иванова

Страници

608

Формат

160х230

Съдържание

Предговор от Джеймс Уотърс…8
Предговор от Род Джонсън…10
Въведение…13
Благодарности…18

Част I. Основи
Глава  1. Приложения в облака…21
Историята на Amazon…21
   Обещанието на платформата…23
Шаблоните…26
Мащабируемост…27
Надеждност…28
Гъвкавост…28
Историята на Netflix…29
Микросървиси…32
   Разделяне на монолита…34
   Netflix OSS…35
   Java в облака…36
Дванадесетте фактора…36
Кодова база…38
   Зависимости…39
   Конфигурация…39
   Поддържащи услуги…40
   Изграждане, разпространение, изпълнение…40
   Процеси…41
   Обвързване на портовете…41
   Паралелност…41
   Наличност…42
   Функционална съвместимост между развой и експлоатация…42
   Log файлове…43
   Процеси за администриране…43
Обобщение…43

Глава 2. Bootcamp: въведение в Spring Boot и Cloud Foundry…44
Какво представлява Spring Boot?…44
Запознаване със Spring Initializr…44
Въведение в Spring Tool Suite…53
   Инсталиране на Spring Tool Suite (STS)…54
   Създаване на нов проект със Spring Initializr…55
Ръководствата на Spring…59
   Следване на ръководствата в STS…62
Конфигурация…63
Cloud Foundry…78
Обобщение…92

Глава 3. Конфигурация в стила на дванадесетфакторните приложения …93
Объркващото смесване на понятието „конфигурация“…93
Поддръжка в Spring Framework…94
Класът PropertyPlaceholderConfigurer…94
   Абстракцията Environment и анотацията @Value…95
   Профили…98
Конфигурация в Boot стил…100
Централизирана, проследима конфигурация със Spring Cloud Configuration Server…103
Конфигурационният сървър Spring Cloud Config …103
   Spring Cloud Config клиенти…105
   Защита…107
Опресняване на конфигурацията…107
Обобщение…111

Глава 4. Тестване…112
Подготовка на тестове…113
Тестване в Spring Boot…113
Интеграционно тестване…116
Парчета за тестове…116
   Имитиране в тестовете…117
   Работа с контейнера за сървлети в @SpringBootTest…122
   Парчета…123
Цялостно тестване …131
Тестване на разпределени системи…132
   Тестване чрез ориентиран към консуматора контракт…135
   Spring Cloud Contract…136
Обобщение…144

Глава 5. Пренесеното в облака приложение…146
Контрактът…146
Мигриране на средите на приложенията…147
   Готови пакети за изграждане…147
   Адаптирани пакети за изграждане…148
   Контейнеризирани приложения…150
Фино рефакториране, за да се пренесе приложението в облака…151
Обръщение към поддържащи услуги…152
   Постигане на паритет на услугите със Spring…154
Обобщение…167

Част II. Уеб сървиси
Глава 6. REST интерфейси…168
Модел за зрелост на Леонард Ричардсън…169
Обикновени REST API със Spring MVC…170
Съгласуване на съдържанието…173
   Четене и запис на двоични данни…174
   Google Protocol Buffers…177
Обработка на грешки…183
Хипермедия…185
   Тип на медията и схема…192
Версионност на интерфейса…192
Документиране на REST API…196
Клиентската страна …201
REST клиенти за директно наблюдение и взаимодействие…202
   RestTemplate…204
Обобщение…211

Глава 7. Маршрутизация…212
Абстракцията DiscoveryClient…214
Маршрутизиращи услуги на Cloud Foundry…224
Обобщение…230

Глава 8. Гранични услуги…231
Услугата Greetings Service…232
Една проста гранична услуга…234
Netflix Feign…236
Филтриране и проксиране с Netflix Zuul…239
Адаптиран Zuul филтър…250
Гарантиране на сигурност в граничната зона…254
OAuth…256
Приложения за слоя на услугите…257
   HTML5 и JavaScript Single-Page приложения…258
   Приложения без потребители…258
   Доверени клиенти…259
Spring Security…259
Spring Cloud Security…265
Сървър за авторизацията Spring Security OAuth…265
   Защитаване на Greetings Resource Server…271
   Изграждане на защитено с OAuth Single-Page приложение…278
Обобщение…286

Част III. Интеграция на данните
Глава 9. Управление на данните…287
Моделиране на данните…287
   Релационни системи за управление на бази данни (RDBMS)…289
   NoSQL…290
Spring Data…290
Структура на Spring Data приложение…291
   Домейн –  клас…291
   Хранилища…291
   Организиране на Java пакети за данните от домейна…292
   Поддържани хранилища…294
Достъп до данни от RDBMS с JDBC…295
Поддръжка за JDBC в Spring…296
Примери за Spring Data…299
Spring Data JPA…302
Услугата Account Service…302
   Използване на профили за различни източници на данни…302
   Интеграционни тестове…310
Spring Data MongoDB…312
Услугата Order Service…312
   Интеграционни тестове…318
Spring Data Neo4j…320
   Услугата Inventory Service…321
   Интеграционни тестове…331
Spring Data Redis…334
   Кеширане…334
Обобщение…339

Глава 10. Обмен на съобщения…340
Ориентирани към събития архитектури със Spring Integration…341
   Точки за достъп за обмен на съобщения…343
Изграждане на сложна система от прости компоненти…344
Брокери на съобщения, мостове,  шаблон на съревноваващи се получатели и пресъздаване на събития…352
Дестинация от тип публикуване-абониране…352
   Дестинация от тип от-точка-до-точка …353
Spring Cloud Stream…354
Stream създател на съобщения…355
   Stream получател на съобщения …360
Обобщение…362

Глава  11. Пакетни процеси и задачи…363
Пакетни натоварвания…363
Spring Batch…364
Първата ни пакетна обработка…365
Планиране изпълнението на задания…375
Отдалечено разпределяне на Spring Batch задание чрез обмен на съобщения…376
Управление на задачи…385
Съсредоточена около процесa интеграция с Workflow…387
Разпределение с обмен на съобщения…402
Обобщение…402

Глава 12. Интеграция на данните…403
Разпределени транзакции…404
Изолиране на провали и елегантно разпадане …404
Сага шаблон…410
CQRS (Сегрeгация на отговорностите на команди и запитвания)…411
Услугата за подаване на жалби (Complaints API)…414
   Услугата за статистика за жалби (Complaint Statistics API)…426
Spring Cloud Data Flow…428
Потоци…430
   Задачи…434
REST API…435
   Запознайте се с Data Flow клиентите…435
Обобщение…450

Част IV. Експлоатация
Глава 13. Наблюдаемата система…451
Вие го създавате, вие го изпълнявате…453
Мистериозни убийства с микросървиси…454
Дванадесетфакторна екплоатация…455
Новият контракт…456
Наблюдаемост…458
Наблюдаемост и анализ при push и pull подход…458
Прихващане на текущия статус на приложението със Spring Boot Actuator…459
Метрики…461
Консолидиран поглед върху метриките…471
   Измерения на метричните данни…472
   Предоставяне на метрики от  Spring Boot приложение…473
Идентифициране на услугите чрез точката за достъп /info…475
Проверка на състоянието…477
Журналиращи събития…480
Журналиране нa приложението…484
Извеждане на логовете …485
Указване на ниво на журналиране…486
   Разпределено проследяване…491
   Намиране на следи със Spring Cloud Sleuth…492
   Колко данни са достатъчни?…493
   OpenZipkin: Една снимка е по-ценна от хиляди следи…494
   Проследяване на други платформи и технологии…501
Панели…501
Наблюдение на даунстрийм услуги с Hystrix Dashboard…502
   Проектът Spring Boot Admin на Codecentric …506
   Панелът Microservices Dashboard на Ordina…509
   Приложението AppsManager на Pivotal Cloud Foundry…511
Възстановяване …512
Обобщение…515

Глава 14. Брокери на услуги…517
Животът на поддържащата услуга…518
Изгледът откъм платформата…521
Имплементиране на брокер на услуги с проекта Spring Cloud  Cloud Foundry Service Broker…522
Прост брокер на услуги Amazon S3…523
   Каталогът на услугите…524
   Управление на инстанции на услуги…525
   Обвързвания на услуги…532
   Защита на брокера на услуги…536
Разгръщане…537
Разпространение с BOSH  …537
   Разпространение с Cloud Foundry…538
Регистриране на брокера на услуги Amazon S3…540
Създаване на инстанции на услугата Amazon S3…541
Използване на инстанции на услуги…542
S3 клиентско приложение…544
Да видим как работи всичко това…547
Обобщение…548

Глава 15. Непрекъсната доставка …549
Отвъд непрекъснатата интеграция…549
Джон Оллспоу, работил за Flickr и Etsy…551
   Адриан Кокфорт, работил за Netflix…552
   Непрекъснатата доставка в Amazon…553
Конвейерът…554
Тестване…556
Непрекъсната доставка за микросървиси…557
Инструменти…558
Concourse…558
Контейнери…559
Непрекъснато доставяне на микросървиси…559
Инсталиране на Concourse…560
   Основна структура на конвейер…561
Тестване чрез ориентиран към консуматора контракт…574
Конвейер за микросървиса user…575
Данни…578
Към експлоатация!…579

Приложение. Използване на Spring Boot с Java EE…580
Съвместимост и стабилност…580
Инжектиране на зависимости с JSR 330 (и JSR 250)…582
Използване на Servlet API в Spring Boot приложение…584
Изграждане на REST API с JAX-RS (Jersey)…591
JTA и управление на XA транзакции…593
Разгръщане в Java EE среда…604
Обобщение…606