Модульная архитектура: как превратить фавелы в уютные коттеджи

Оставить комментарий

Как упорядочить хаос с помощью модульной архитектуры, dev.by узнал у DevOps-инженера компании ISsoft Артёма Синицы.

Читать далее…

Понятие модульной архитектуры встречается во многих технических дисциплинах. Обычно под этим подразумевается наличие определённого модуля с характеристиками и входными/выходными параметрами, который постоянно используют. А модульная архитектура облачных инфраструктур — это просто нижний уровень архитектуры бизнес-приложения.

Почему на проектах лучше строить именно модульную архитектуру?

Модульная архитектура ускоряет первичное развёртывание инфраструктуры и сокращает трудозатраты на поддержку и развитие в будущем. Если строить облачный сервис не задумываясь, добавлять задачи и накапливать их, то уже через непродолжительное время ваша инфраструктура превратиться в хаотический набор домиков с разным дизайном: фавелы.

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

Какой у тебя опыт в ИT?

С двадцати лет я занимаюсь работой с инфраструктурами и их автоматизацией. В 2014 году я пришёл в компанию ISsoft инженером-программистом. И последние четыре года занимаюсь модным словом DevOps. По сути, я работаю над разворачиванием инфраструктур, автоматизацией внутренних процессов в команде и тем, что принято называть Continuous Integration и Continuous delivery.

Своими знаниями и опытом я поделюсь на конференции ISsoft Insights, которая пройдёт 2 июня в Минске. Расскажу, как наш отдел начинал строить модульную архитектуру облачной инфраструктуры, с какими вызовами мы сталкивались, какие практические задачи решали. А в результате: как мы смогли собрать законченные архитектурные модули, которые многократно облегчают старт любого проекта.

Есть ли ограничения для применения модульной архитектуры?

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

Какие знания требуются, чтобы разобраться в теме?

Нужны знания скорее широкие, чем глубокие. Нужно понимать, как работают операционные системы и облачные сервисы, представлять, как писать код, хотя бы на скриптовых языках (Python, JavaScript). Пригодится компетенция в IPA облачных сервисов и знания абстракций, IPA и элементов к этим абстракциям, нужно уметь уверенно всем этим оперировать.

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

Насколько универсальны решения, о которых ты говоришь?

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

В работе я фокусируюсь на облачной платформе Amazon Cloud, обоснованно считая её технологическим лидером. В нашем случает охват Amazon платформы можно назвать не полным, потому что там больше 100 сервисов, из которых 30% покрывают 80% наших задач.

Мы планируем сделать решение кроссплатформенным, чтобы получалась более высокоуровневая абстракция, для возможности разворачивания и использования её на любом облаке.

Кому в команде необходимо знать про модульную архитектуру?

BackEnd, DevOps специалистам. А ещё архитекторам, если они есть.

Что бы ты хотел донести своим докладом аудитории?

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

Эта публикация подготовлена в партнёрстве с ISsoft

Что такое партнёрский материал?

Иностранное производственное унитарное предприятие «ИССОФТ СОЛЮШЕНЗ»
УНП 190819327 


Читать на dev.by