Медленно: как упростить переход на архитектуру микросервисов
Было много разговоров о преимуществах перехода от устаревших инфраструктур и монолитных приложений к микросервисным архитектурам. Преимущества микросервисов, безусловно, очень привлекательны для большинства предприятий, где сохранение актуальности и непрерывная доставка программного обеспечения идут рука об руку. Многие монолитные приложения раздуваются функциями в течение своего жизненного цикла, что приводит к ненужной сложности кода приложения и может даже ухудшить работу пользователей с обновлениями, которые могут пойти не так.
Многие люди склонны забывать, что быстрый переход от устаревшей инфраструктуры к чему-то современному — сложная задача. Это не то, что можно сделать за одну ночь, и для реализации потребуется значительное количество изменений. Переход на микросервисы не решит всех проблем, с которыми сталкивается предприятие. Необходимо будет учитывать расходы, проводить обучение, разрабатывать приложения, соответствующие новой инфраструктуре, и так далее. Именно здесь вступает в действие гибридная инфраструктура, потому что она может предложить лучшее из обоих миров без особых жертв.
Исполнительный директор Docker Бен Голуб назвал мнение о том, что унаследованная инфраструктура и микросервисная инфраструктура должны работать отдельно, «бимодальной ИТ-ошибкой». На Dockercon 16 он отметил, что «по мере того, как люди внедряют Docker, он уже не просто предназначен для новых приложений микросервисов нового поколения. Хотя очевидно, что основные варианты использования находятся в таких областях, одним из наиболее распространенных вариантов использования Docker является перенос устаревших приложений на микросервисы. И столь же распространенным вариантом использования является контейнеризация устаревших приложений».
Когда изменения управляемы, вы становитесь гибкими. В случае перехода на микросервисы гибридная инфраструктура очень удобна. Многие компании имеют локальные серверы, в которые были вложены значительные средства и которые все еще можно использовать. Взятие знакомых устаревших монолитных приложений и их упаковка в контейнеры делает переход намного более плавным, чем создание совершенно новых приложений для микросервисов.
Наиболее очевидным преимуществом контейнеров является то, что они избавляют от проблем совместимости и делают приложения переносимыми. Еще одним преимуществом является то, что монолитные приложения можно разделить на набор сервисов, которые упакованы в отдельные контейнеры, составляющие единое целое. Таким образом, каждую услугу можно разрабатывать отдельно и масштабировать в соответствии со спросом, а также сделать обновления более эффективными. Таким образом, если спрос на определенное приложение низкий или если это уже простое монолитное приложение без большого количества функций, оно может оставаться в устаревших инфраструктурах без необходимости нести расходы на миграцию.
Управление изменениями
Как упоминалось ранее, изменениями необходимо управлять. Поддержание гибридной архитектуры не обходится без проблем. Управление изменениями позволит вам делать осторожные, поэтапные обновления вашей инфраструктуры. Если ошибка сделана, ее легче исправить, когда она меньше. По мере того, как ваша команда постепенно привыкает к новой инфраструктуре, ошибки, допущенные позже, не будут такими разрушительными.
Наряду с управлением изменениями необходимо применять определенные методы, чтобы держать все под контролем и обеспечивать бесперебойную работу. Давайте посмотрим, как вы можете достичь этой цели.
Иметь ясное видение
Имея доступ к обеим инфраструктурам, важно, чтобы члены вашей команды знали, что происходит. DevOps поощряет командную работу и среду для совместной работы, и становится еще более актуальным, когда вы используете гибридную инфраструктуру. Убедитесь, что все синхронизированы и им предоставлена правильная информация о проектах, над которыми они работают, иначе будет информационная перегрузка.
Использование решения для мониторинга может позволить вам иметь хорошее представление о работе вашей инфраструктуры, не создавая хаоса. Таким образом, вы можете видеть, какое приложение нужно масштабировать в любой момент в зависимости от спроса, а также знать, над чем нужно поработать.
Сделайте это знакомым
Убедитесь, что члены команды хорошо обучены новым, незнакомым технологиям, которые внедряются. С внедрением микросервисов не следует торопиться. Как только вы убедитесь, что каждый член команды находится на одной волне, микросервисы можно внедрять поэтапно и взаимодействовать с устаревшей инфраструктурой. Таким образом, все не боятся всех новых интерфейсов и кода и будут знать, что делать в случае возникновения инцидента.
Будь проворным, но делай это медленно
Как только контроль установлен, непрерывная доставка может быть намного более плавной благодаря гибридной инфраструктуре. Поначалу вашей команде может быть сложно понять концепцию гибкости, поскольку при использовании микросервисов все может быть быстрее по сравнению с монолитными приложениями. Вот почему так важно внедрять микросервисы поэтапно. Несколько приложений или несколько функций одновременно можно разрабатывать отдельно, чтобы они работали как микросервис для практики. Это может помочь членам вашей команды понять, как быть более гибкими и создавать код быстрее, чем раньше. Важным аспектом плавного перехода является наличие плана или схемы, состоящей из целей и шагов для перехода к гибридной инфраструктуре. Таким образом, каждый имеет представление о том, чего он пытается достичь.
Инструменты, которые могут помочь с гибкостью, — это те, которые автоматизируют доставку нового кода. Это поможет конвейеру разработки быть плавным и свободным. Обычно эти инструменты содержат панель инструментов, которая также дает вам представление о ходе разработки, что в целом может быть очень полезным.
Хорошая подушка безопасности
Гибкость — это здорово, когда речь идет о том, чтобы быть впереди конкурентов и помогает вашим приложениям оставаться актуальными. Но если вы не будете осторожны, могут возникнуть проблемы с надежностью. Вот почему так важно убедиться, что культура DevOps сильна в вашей рабочей среде. Разработчики и операционные группы должны постоянно сотрудничать. Нельзя допускать слепых зон. Операции должны знать, что планируют разработчики, чтобы они знали, для чего предназначено новое обновление, инструмент или приложение. Допуск их на этапе разработки не только позволит им выяснить проблемы с надежностью на более раннем этапе, но также заставит их меньше бояться изменений из-за опасений по поводу стабильности.
Внедрение инструмента управления инцидентами также является хорошей идеей. Это заставляет всю команду вздохнуть с облегчением, так как это может ощущаться как своего рода страховочная сетка. Когда что-то ломается — а это произойдет — члены команды могут получить уведомление на свой компьютер или мобильное устройство, и это можно быстро исправить, где бы люди ни находились в любое время.
Переход к гибридной инфраструктуре — это определенно отличная идея. Он сочетает в себе лучшее из обоих миров: гибкость микросервисов и удобство монолитных приложений. После тщательного использования практик вы можете получить в свое распоряжение гибкую инфраструктуру, которая позволит вам сделать большой и важный шаг в будущее, не прыгая в пустоту.