Читаем Создание микросервисов онлайн бесплатно
Создание микросервисов
Компьютеры и Интернет / Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет
Сэм Ньюмен
Создание микросервисов
2016
Переводчик
Технический редактор
Литературный редактор
Художники
Корректоры
Верстка
Сэм Ньюмен
Создание микросервисов. — СПб.: Питер, 2016.
ISBN 978-5-496-02011-4
© ООО Издательство "Питер", 2016
Предисловие
Микросервисы представляют собой такой подход к распределенным системам, при котором поддерживается использование сотрудничающих друг с другом сервисов с высокой степенью детализации и с собственными жизненными циклами. Поскольку моделирование микросервисов ведется преимущественно вокруг бизнес-областей, они позволяют избегать проблем, проявляющихся в традиционных архитектурах, имеющих высокий уровень связанности компонентов. В микросервисах также интегрируются новые технологии, появившиеся в последнее десятилетие, что помогает им обходить те подводные камни, которые возникают при реализации многих сервис-ориентированных архитектур.
Эта книга полна конкретных примеров использования микросервисов, собранных по всему миру, включая их применение в таких организациях, как Netflix, Amazon, Gilt и REA group, пришедших к мысли, что возросшая автономность этой архитектуры дает их командам огромные преимущества.
Для кого написана эта книга
Тематика книги довольно обширна, что, собственно, соответствует масштабам последствий применения архитектур микросервисов, обладающих высокой степенью детализации. Книга предназначена для тех, кто интересуется аспектами проектирования, разработки, развертывания, тестирования и обслуживания систем. А те, кто уже приступил к работе с архитектурами, обладающими высокой степенью детализации, создавая приложения с нуля или разбивая на более мелкие части существующую монолитную систему, найдут в ней массу полезных практических советов. Книга поможет и тем, кто хочет узнать, в чем тут дело, чтобы понять, подходят им микросервисы или нет.
Зачем я написал эту книгу
Тема прикладных архитектур заинтересовала меня много лет назад, когда я работал над тем, чтобы помочь людям ускорить установку их программных продуктов. Я понял, что если в фундаментальной конструкции системы отсутствует возможность легкого внесения изменений, то помощь технологий, позволяющих автоматизировать инфраструктуру, тестирование и непрерывную доставку, будет носить весьма ограниченный характер.
В то же самое время для достижения подобных целей, а также для повышения возможностей масштабирования, степени автономности команд разработчиков или более эффективного внедрения новых технологий эксперименты по созданию архитектур с высокой степенью детализации проводились многими организациями. Мой собственный опыт, а также опыт коллег по ThoughtWorks и другим организациям позволил подтвердить тот факт, что использование большого количества сервисов с собственными независимыми жизненными циклами создает очень много проблем, требующих решения. Во многих отношениях эта книга представлялась мне своеобразной службой одного окна, помогающей охватить самые разные темы, необходимые для понимания микросервисов, — все, что могло бы существенно помочь мне в былые времена!
Мир микросервисов сегодня
Микросервисы — весьма динамичная тема. Хоть идея и не нова (несмотря на новизну применяемого термина), накопленный по всему миру опыт наряду с новыми технологиями существенно повлияли на сами способы ее использования. Из-за высокого темпа перемен в данной книге я старался сконцентрироваться скорее на идеях, чем на конкретных технологиях, зная, что подробности реализации всегда изменяются быстрее, чем положенные в их основу размышления. И тем не менее я полон ожиданий, что буквально через несколько лет мы еще глубже вникнем в суть областей применения микросервисов и порядок их эффективного использования.
Хотя я приложил все свои силы к тому, чтобы передать в этой книге основную суть затронутой тематики, если у вас появился к ней серьезный интерес и вы хотите быть в курсе самых последний веяний, будьте готовы к тому, чтобы посвятить ее изучению не один год.
Структура книги
Основа книги по большей части тематическая. Поэтому вы можете произвольно выбирать для изучения темы, которые представляют для вас наибольший интерес. Хотя основные положения и идеи я постарался раскрыть в начальных главах, хочется верить в то, что даже достаточно искушенный читатель найдет для себя что-нибудь интересное во всех главах без исключения. Если же вы хотите углубиться в изучение некоторых более поздних глав, я настоятельно рекомендую просмотреть главу 2, касающуюся обширного характера самой темы, а также дающую представление о принятой мною структуре изложения материала.
Для новичков в данной области главы выстроены таким образом, что им, как я надеюсь, будет иметь смысл прочесть всю книгу от начала до конца.
Вот краткий обзор всего, что рассматривается в данной книге.
•
•
•
•
•
•
•
•
•
•
•
•
Соглашения, принятые в этой книге
В тексте книги действуют следующие типографские соглашения:
Служит признаком новых понятий.
Моноширинный шрифт
Используется для листингов программ, а также для ссылок на программные элементы в виде переменных или названий функций, баз данных, типов данных, переменных среды, инструкций и ключевых слов внутри абзацев.
Моноширинный полужирный шрифт
Служит для выделения команд или другого текста, который должен быть набран самим пользователем.
Показывает текст, который должен быть заменен предоставляемыми пользователем значениями или значениями, определяемыми контекстом.
Благодарности
Эта книга посвящается Линде Стивенс (Lindy Stephens), без которой книги бы просто не существовало. Она воодушевила меня начать этот путь, поддерживала в течение всего полного стрессовых ситуаций периода написания книги и проявила себя партнером, лучше которого я бы не смог себе даже пожелать. Мне хотелось бы посвятить эту книгу также своему отцу, Говарду Ньюману (Howard Newman), который всегда был рядом со мной. Эта книга посвящается им обоим.
Мне хотелось бы выделить Бена Кристенсена (Ben Christensen), Вивека Субраманьяма (Vivek Subramaniam) и Мартина Фаулера (Martin Fowler) за подробные отзывы в процессе написания книги и оказание помощи в формировании ее облика. Мне также хочется поблагодарить Джеймса Льюиса (James Lewis), с которым мы выпили немало пива, обсуждая идеи, представленные в данной книге. Без их помощи и консультаций эта книга представляла бы жалкую тень самой себя.
Кроме того, помощь и отзывы о ранних версиях книги поступали и от многих других людей. Особенно хочется поблагодарить (не придерживаясь какого-либо определенного порядка) Кейна Венейблса (Kane Venables), Ананда Кришнасвами (Anand Krishnaswamy), Кента Макнила (Kent McNeil), Чарльза Хайнса (Charles Haynes), Криса Форда (Chris Ford), Айди Льюиса (Aidy Lewis), Уилла Темза (Will Thames), Джона Ивса (Jon Eaves), Рольфа Рассела (Rolf Russell), Бадринатха Янакирамана (Badrinath Janakiraman), Даниэля Брайанта (Daniel Bryant), Яна Робинсона (Ian Robinson), Джима Уэббера (Jim Webber), Стюарта Глидоу (Stewart Gleadow), Эвана Ботчера (Evan Bottcher), Эрика Суорда (Eric Sword), Оливию Леонард (Olivia Leonard) и всех остальных коллег из ThoughtWorks и других организаций, которые помогли мне пройти этот длинный путь.
И в заключение я хочу поблагодарить всех специалистов издательства O’Reilly, включая Майка Лукидиса (Mike Loukides), за оказанное мне доверие, моего редактора Брайана Макдональда (Brian MacDonald), Рэйчел Монаган (Rachel Monaghan), Кристен Браун (Kristen Brown), Бетси Валишевски (Betsy Waliszewski) и всех других, кто помог мне в том, о чем я сам и не догадывался.
Об авторе
Сэм Ньюмен — инженер из компании ThoughtWorks, где в настоящее время совмещает работу над клиентскими проектами с решением архитектурных задач для внутренних систем ThoughtWorks. Сэму доводилось работать с компаниями со всего мира в самых разных предметных областях, зачастую заниматься одновременно и разработкой, и поддержкой ПО. Если спросить Сэма, чем он занимается, то он ответит: «Работаю с людьми, чтобы создавать все более и более классные софтверные системы». Сэм Ньюмен – автор статей, докладов на конференциях, время от времени он участвует в разработке свободных проектов.
От издательства
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты sivchenko@minsk.piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
1. Микросервисы
Поиски наилучших способов построения систем велись многие годы. Мы изучали истоки, внедряли новые технологии и наблюдали за тем, как технологические компании новой волны работают в разных направлениях, создавая IT-системы, радующие как клиентов, так и разработчиков.




