Книга «Створення микросервисов»

Привіт, Хаброжители! У нас вийшла нова книга Сема Ньюмена.

image Книга присвячена програмуванню микросервисов — невеликих автономних компонентів, що дозволяють добитися модульності та відмовостійкості будь-якої програми. Теорія мікро-сервісів тісно пов'язана з філософією Unix, сприяє поліпшенню архітектури будь-яких додатків, що дає можливість уникати громіздкого і заплутаного коду. Ця книга допоможе читачеві заново поглянути на багато, здавалося б, важкорозв'язні проблеми, масшта-бировать будь-які проекти, ювелірно розробляти навіть найскладніші системи.

Ця книга сповнена конкретних прикладів використання микросервисов, зібраних по всьому світу, включаючи їх застосування в таких організаціях, як Netflix, Amazon, Gilt і REA group, прийшли до думки, що збільшена автономність цієї архітектури дає їх командам величезні переваги.



Для кого написана ця книга

Тематика книги досить велика, що, власне, відповідає масштабами наслідків застосування архітектур микросервисов, що володіють високим ступенем деталізації. Книга призначена для тих, хто цікавиться аспектами проектування, розробки, впровадження, тестування та обслуговування систем. А ті, хто вже приступив до роботи з архітектурами, що володіють високим ступенем деталізації, створюючи додатки з нуля або розбиваючи на більш дрібні частини існуючу монолітну систему, знайдуть у ній масу корисних практичних порад. Книга допоможе і тим, хто хоче дізнатися, в чому тут справа, щоб зрозуміти, чи підходять їм микросервисы чи ні.

Навіщо я (Сем Ньюмен) написав цю книгу

Тема прикладних архітектур зацікавила мене багато років тому, коли я працював над тим, щоб допомогти людям прискорити установку їх програмних продуктів. Я зрозумів, що якщо у фундаментальній конструкції системи відсутня можливість легкого внесення змін, то допомога технологій, що дозволяють автоматизувати інфраструктуру, тестування і безперервну доставку, буде носити досить обмежений характер.

У той самий час для досягнення подібних цілей, а також для підвищення можливостей масштабування, ступеня автономності команд розробників або більш ефективного впровадження нових технологій експерименти по створенню архітектур з високим ступенем деталізації проводилися багатьма організаціями. Мій власний досвід, а також досвід колег по ThoughtWorks та іншим організаціям дозволив підтвердити той факт, що використання великої кількості сервісів з власними незалежними життєвими циклами створює дуже багато проблем, які потребують вирішення. У багатьох відношеннях ця книга представлялася мені своєрідною службою одного вікна, що допомагає охопити найрізноманітніші теми, необхідні для розуміння микросервисов, — все, що могло б суттєво допомогти мені у минулі часи!

Світ микросервисов сьогодні

Микросервисы — вельми динамічна тема. Хоч ідея і не нова (незважаючи на новизну вживаного терміна), накопичений по всьому світу досвід поряд з новими технологіями істотно вплинули на самі способи її використання. З-за високого темпу змін у даній книзі я намагався зосередитися радше на ідеях, ніж на конкретних технологіях, знаючи, що подробиці реалізації завжди змінюються швидше, ніж покладені в їх основу роздуми. І тим не менше я сповнений сподівань, що буквально через кілька років ми вникнемо глибше в суть областей застосування микросервисов і порядок їх ефективного використання.
Хоча я доклав всі свої сили до того, щоб передати в цій книзі основну суть цієї тематики, якщо у вас з'явився до неї серйозний інтерес і ви хочете бути в курсі останній віянь, будьте готові до того, щоб присвятити її вивчення не один рік.

Структура книги

Основа книги здебільшого тематична. Тому ви можете довільно вибирати для вивчення теми, які становлять для вас найбільший інтерес. Хоча основні положення та ідеї я постарався розкрити в початкових розділах, хочеться вірити в те, що навіть досить досвідчений читач знайде для себе що-небудь цікаве у всіх главах без винятку. Якщо ж ви хочете заглибитися у вивчення деяких більш пізніх глав, я настійно рекомендую переглянути главу 2, стосується великого характеру самої теми, а також дає уявлення про прийняту мною структурі викладу матеріалу.
Для новачків в цій області голови вибудувані таким чином, що їм, як я сподіваюся, буде мати сенс прочитати всю книгу від початку до кінця. Ось короткий огляд всього, що розглядається у даній книзі.

Розділ 1. Микросервисы. Починається з введення в микросервисы із зазначенням їх переваг, так і деяких недоліків.
Розділ 2. Архітектор розвитку. Присвячена труднощів компромісів в архітектурах і різноманіттю все, що потрібно осмислити при використанні микросервисов.
Розділ 3. Як моделювати сервіси. Починається з визначення меж микросервисов з використанням в якості допоміжних засобів, що направляють думки в потрібне русло, технологій, запозичених з проектування, заснованого на областях застосування.
Глава 4. Інтеграція. У цій главі починається занурення в конкретні технологічні наслідки по мірі розгляду найбільш підходящих нам різновидів технологій забезпечення спільної роботи сервісів. У ній також більш глибоко розглядається тема користувальницьких інтерфейсів і інтеграції з застарілими і вже готовими комерційними програмними засобами (COTS-продуктами).
Глава 5. Розбиття моноліту на частини. Багато фахівців розглядають микросервисы в якості своєрідного антидоту від великих, слабо піддаються змінам монолітних систем. Саме це питання і буде детально розглянуто в даній главі.
Глава 6. Розгортання. Хоча ця книга носить здебільшого теоретичний характер, деякі теми у ній були підняті під впливом останніх змін у таких технологіях, як розгортання, яке і стане предметом розгляду.
Глава 7. Тестування. Дана глава присвячена поглибленого розгляду теми тестування, до якої слід ставитися з підвищеною увагою, коли мова зайде про розгортання кількох окремих сервісів. Особливо буде відзначено роль, яку у сприянні забезпечення якості програмних засобів можуть зіграти контракти, засновані на запити споживачів.
Глава 8. Моніторинг. Тестування програмного засобу перед розгортанням не допомагає, якщо проблеми виявляються під час його роботи в виробничому режимі, тому в даній главі досліджуються можливості моніторингу систем, що володіють високим ступенем деталізації, і методи, що дозволяють впоратися з труднощами, властивими розподіленим системам.
Глава 9. Безпека. У даній главі досліджуються аспекти безпеки микросервисов і розглядаються методи, що дозволяють виконувати аутентифікацію і авторизацію користувача по відношенню до сервісу і сервісу — по відношенню до іншого сервісу. Безпека в обчислювальних системах є дуже важливою темою, однак багато її охоче ігнорують. Хоча я ні в якому разі не вважаю себе фахівцем в галузі безпеки, але все ж сподіваюся, що цей розділ допоможе вам принаймні обміркувати деякі аспекти, про які потрібно знати при побудові систем, зокрема систем на основі микросервисов.
Глава 10. Закон Конвея і проектування систем. Основна увага в цьому розділі приділяється взаємодії організаційної структури та архітектури. Багато організацій вже зрозуміли, що якщо не домагатися в цьому питанні гармонії, то виникнуть суттєві труднощі. Ми спробуємо дістатися до самих глибин цієї дилеми і розглянемо кілька різних способів пов'язування проектування системи зі структурою команд.
Глава 11. Масштабування микросервисов. У даній главі досліджується порядок всіх попередніх дій в умовах розширення системи, що дозволяє впоратися з постійно зростаючими ймовірностями збоїв, що виникають в умовах використання великої кількості сервісів, а також при великих обсягах трафіку.
Глава 12. Коротко про все. У заключній главі робиться спроба виділити основні риси, що відрізняють микросервисы від всього іншого. У ній перераховані сім принципів микросервисов, а також підведені підсумки з ключових моментів книги.

Про автора

Сем Ньюмен — інженер з компанії ThoughtWorks, де в даний час поєднує роботу над клієнтськими проектами з рішенням архітектурних завдань для внутрішніх систем ThoughtWorks. Сему доводилося працювати з компаніями всього світу в різних предметних областях, найчастіше займатися одночасно і розробкою і підтримкою. Якщо запитати Сема, чим він займається, то він відповість: «Працюю з людьми, щоб створювати все більш і більш класні програмні системи». Сем Ньюмен — автор статей, доповідей на конференціях, час від часу він бере участь у розробці вільних проектів.

Більш докладно з книгою можна ознайомитися на сайті видавництва
Зміст
Уривок

Для Хаброжителей знижка 25% по купону — Микросервисы
За фактом оплати паперової книги відправляємо на e-mail електронні версії книг, при покупці електронної книги — всі доступні версії відправляються користувачам.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.