Книга Криса Ричардсона «Микросервисы»

Недавно прочитал книгу Криса Ричардсона «Микросервисы», о которой и хотел рассказать в этом посте. Это довольно объемная книга, в ней больше 500 страниц, и в оригинале она называется «Microservices Patterns with examples in Java», что более точно описывает содержание книги. В этой книге действительно упор сделан на типичные шаблоны проектирования при использовании микросервисной архитектуры. Основное содержание книги крутится вокруг выдуманной компании, которая разрабатывает сервис по доставки еды из ресторанов. У них уже есть написанное на Java монолитное приложение, и разработчики решили его разбить на микросервисы. В книге описываются, какие сложности при это могут возникнуть, как спроектировать взаимодействующую систему монолитов, и какие приемы для решения различных типичных проблем можно использовать.

На мой взгляд самая интересная информация в книге распределена неравномерно. Все самое полезное идет в первых двух третях книги, когда очень подробно разбираются шаблоны, которые решают проблемы взаимодействия микросервисов, а ближе к концу книга становится более поверхностной и больше про DevOps, эти последние главы можно использовать скорее как трамплин для изучения других технологий, чтобы понять, в какую сторону копать дальше.

Читать далее ‘Книга Криса Ричардсона «Микросервисы»’ »

Про книгу «Kubernetes для DevOps»

В последнее время я решил разобраться с Kubernetes. Как правило, когда нужно изучить что-то новое, я предпочитаю это изучать по книгам, а не по разрозненным статьям в интернете. Чтобы понять, что такое Kubernetes и с чем его едят, купил книгу Джона Арундела и Джастина Домингуса «Kubernetes для DevOps». Когда заказывал эту книгу, то меня немного смущало это самое «для DevOps», я боялся, что там упор будет именно на практики DevOps с использованием Kubernetes, а не на сам Kubernetes (в оригинале книга называется «Cloud Native DevOps with Kubernetes. Building, Deploying, and Scaling Modern Applications in the Cloud»). К счастью, мои опасения не оправдались, и книга посвящена в первую очередь Kubernetes, а DevOps-у отведено место только в последней четверти книги.

Эта книга предназначена для тех, кто никогда до этого не запускал Kubernetes и не знает, с какой стороны к нему подступиться. В книге очень аккуратно описываются разные аспекты работы с Kubernetes на примере развертывания очень маленького веб-приложения на Go (буквально, Hello World, поэтому Go знать не обязательно). При этом желательно иметь представление, что такое Docker и как с ним работать, что такое Dockerfile, но и это все кратко, буквально самый минимум, рассказывается в начале книги.

Читать далее ‘Про книгу «Kubernetes для DevOps»’ »

Книга Джульена Вехена «Безопасный DevOps»

В последнее время я больше стал заниматься разработкой для серверной части веб-приложений, короче говоря, бэкендом. И хотя я не особо люблю заниматься админскими делами (самый страшный сон для меня — это искать проблему, почему что-то не работает в сети), но иногда приходится заниматься настройкой серверов, планированием структуры микросервисов и тому подобными делами. Ну и куда ж сегодня без DevOps-а? Грань между программистами и админами размывается, и по крайней мере нужно разбираться, как аккуратно должно развертываться приложение на серверах, каким образом взаимодействуют микросервисы и т.п. И в этом деле меня всегда беспокоит безопасность. Как делать это правильно? На какие грабли наступали другие разработчики, чтобы не повторять хотя бы элементарные ошибки? Держа в голове эту цель я начинал читать книгу Джульена Вехена «Безопасный DevOps».

Автор этой книги c 2013 года работает в Mozilla и занимается безопасностью облачных сервисов. Собственно безопасности и облакам посвящена книга. Конкретно про DevOps в ней сказано не так много (в основном в первой половине книги), зато рассматривается безопасность на различных уровнях, начиная с того, какие типичные ошибки допускают разработчики приложений, что позволяет злоумышленнику провести атаку, и до безопасности на уровне предприятия.

Читать далее ‘Книга Джульена Вехена «Безопасный DevOps»’ »

Книга Эдриена Моуэта «Использование Docker»

Я давно посматривал на Docker, но до недавнего времени нигде его не применял на практике, а недавно меня убедили, что для сборки OutWiker его вполне можно использовать вместо виртуальных машин. Правда, для меня до сих пор остается загадкой, можно ли 32-битные контейнеры запускать в 64-битной системе (именно по этой причине для сборки я использовал полноценные виртуальные машины вместо контейнеров), но некоторое время назад такая надобность отпала.

Новые для себя технологии я обычно изучаю по книгам. Сначала я прочитал пару небольших книжек про Docker на английском языке в электронном виде (это были книги Karl Matthias and Sean P. Kane «Docker: Up and Running» и James Turnbull «The Docker Book»), а потом понял, что хотелось бы иметь что-то в бумажном виде. В бумажном виде на русском языке попалась книга Эдриена Моуэта с незамысловатым названием «Использование Docker». И, пожалуй, эта книга мне понравилась даже больше первых двух.

Читать далее ‘Книга Эдриена Моуэта «Использование Docker»’ »

Книга Сэма Ньюмена «Создание микросервисов»

book_sozdanie_mikroservisovВ последнее время я решил прокачать свои знания в той области, которую называют DevOps (от слов development и operations) — области, объединяющей в себе разработку, тестирование и развертывание программного обеспечения. Недавно я уже писал обзор очень интересной книги на эту тему — Непрерывное развертывание ПО. В продолжение этой темы мне попалась довольно свежая книга Сэма Ньюмена «Создание микросервисов», вышедшая в этом году.

Микросервисы — логичное развитие архитектуры современных веб-приложений, когда монолитное приложение разбивается на множество взаимодействующих между собой небольших приложений (или сервисов), каждое из которых выполняет какую-то часть работы. Особенность микросервисов заключается в том, что каждый из микросервисов выполняет лишь небольшую часть работы, при этом каждый микросервис может запускаться на отдельном выделенном ему сервере, более того, такая архитектура является даже предпочтительной, хотя никто не запрещает на одном сервере запускать несколько микросервисов.

Читать далее ‘Книга Сэма Ньюмена «Создание микросервисов»’ »

Книга Дж. Хамбла и Д. Фарли «Непрерывное развертывание ПО»

neprerivnoe_razvertivanie_po

За последнее время накопилось много прочитанных книг, о которых хочется написать обзоры. Все-таки полтора часа, проводимые в метро ежедневно, способствуют чтению, может быть не всех книг, но достаточного их количества.

В этом посте речь пойдет о книге, которую я прочитал последней, и которая заставила по-новому взглянуть на разработку проектов, которыми я занимаюсь. Это книга Джеза Хамбла и Дэвида Фарли «Непрерывное развертывание ПО. Автоматизация процессов сборки, тестирования и внедрения новых версий программ». Сама книга уже довольно старая, ее русский перевод вышел в 2011 году и, похоже, что оригинал был издан в том же году, но почему-то до этого я про нее ничего не слышал и наткнулся на нее случайно.

Основная идея книги заключается в том, что при разработке программного обеспечения (не важно, пишете вы десктопные приложения или веб-сервисы), сборке и развертыванию программ нужно уделять не меньшее внимание, чем написанию основного кода. Главная мысль в книге, которую пропагандируют авторы — это создание конвейера сборки и развертывания приложений. Что представляет из себя этот конвейер? После каждого изменения, отправленного, в репозиторий, сервер непрерывной интеграции (Continuous Integration, CI) должен выполнять последовательность определенных действий, тестируя код на каждом шаге, и немедленно сообщать об обнаруженных проблемах программистам. Последовательность действий выглядит таким образом (картинка взята из книги).

conveyer

Читать далее ‘Книга Дж. Хамбла и Д. Фарли «Непрерывное развертывание ПО»’ »