Прошло больше года с релиза Service Fabric и вокруг него возникло множество заблуждений, возникающих из-за недопонимания по ключевым вопросам. Пока я готовился к нашему новому OpenHack и общался с партнёрами, увидел статью, в которой автор собрал воедино все ключевые мифы и развеял их. Она настолько меня вдохновила, что я решил перевести её для вас.
Общаясь с разными компаниями, я слышал все варианты того, чем является Service Fabric и чем не является. По своей сути, это система управления развёртываниями. Система создаёт версионированное, подготовленное к развёртыванию приложение, для отсылки на связанный набор системных ресурсов. У серверов в системе нет имён и вы можете считать их набором ресурсов. Так что вместо отсылки своего приложение на определённую машину, вы просто посылаете его на кластер. Он уже управляет тем, где разместить эти сервисы, чтобы равномерно распределить нагрузку по доступным ресурсам. Service Fabric также управляет откатом развертывания, если служба не инициализируется.
Microsoft такая компания, которая любит давать разработчикам «простые кнопки». Это одна из вещей, которая мне нравится при работе с их продуктами. У них есть умные инженеры, которые решают в продуктах сложные инфраструктурные проблемы, таким обрвзом, что вам ими заниматься не надо. Service Fabric один из таких продуктов. Service Fabric SDK содержит отличный набор инструментария для построения больших сложных систем. Он позволяет это делать без большого количества обычных накладных расходов и сохраняет время на размышления, что же и как делать. Межсервисная коммуникация, распределённые паттерны, паттерны масштабирования, сервисное обнаружения — всё уже встроено. Так что перестаньте переделывать это ещё раз и ещё раз и ещё раз.
У вас есть свой собственный коммуникационный стек? Просто не любите Microsoft? Отличные новости! Вам не обязательно использовать их SDK. Ни один из них, правда. Вы можете использовать любой коммуникационный стек, любой коммуникационный протокол или технологию. Всё что вам необходимо, это зарегистрировать ваше приложение, чтобы оно находилось через службу имён.
Чеееегоооо? Знаю, это выглядит несколько эксцентрично для Microsoft, но вы действительно можете запустить Service Fabric на Linux. Вы также можете запустить на Service Fabric приложение на Java, Node, Ruby или на любом другом языке, который вы хотите использовать. Потому что, помните, по своей сути, это система управления развёртываниями.
Предполагается, что у вас должен быть Azure, чтобы использовать Service Fabric, что даже близко не лежит к действительности. Вы можете воспользоваться Service Fabric в своём собственном центре данных или в любом другом поставщике облачной инфраструктуры. Конечно, в этом случае вам придётся самостоятельно управлять собственным кластером, но это понятный компромисс.
Если я слышу, как кто-то говорит «Я бы не использовал Service Fabric, так как я использую контейнеры», я начинаю кричать. Я вижу множество проблем с текущим пониманием технологии контейнеров в целом, что находится за рамками этой статьи. Но если вы действительно считаете, что контейнеры это то, что вам обязательно нужно (напишите мне на LinkedIn, я буду рад узнать, почему вы так думаете), просто знайте, что вы можете использовать Service Fabric для управления развёртыванием контейнеров, также как развёртыванием ваших приложений. Service Fabric имеет отличную поддержку контейнеров, несмотря на то, что контейнеры по прежнему не решают 99% сложностей создания распределённых система с зависимостями времени исполениня. Service Fabric SDK позволяет решить эти сложности.
Как я уже писал до ката, мы сейчас активно готовимся к новому формату мероприятий — трёхдневный интерактивный практический воркшоп — OpenHack. Он будет проходить в Москве 22-24 марта. Если вам интересно «потрогать» и научиться работать с контейнерами и микросервисами, присоединяйтесь к нам. Всё как всегда бесплатно, без смс, но с регистрацией.
Что такое Service Fabric в реальности?
Общаясь с разными компаниями, я слышал все варианты того, чем является Service Fabric и чем не является. По своей сути, это система управления развёртываниями. Система создаёт версионированное, подготовленное к развёртыванию приложение, для отсылки на связанный набор системных ресурсов. У серверов в системе нет имён и вы можете считать их набором ресурсов. Так что вместо отсылки своего приложение на определённую машину, вы просто посылаете его на кластер. Он уже управляет тем, где разместить эти сервисы, чтобы равномерно распределить нагрузку по доступным ресурсам. Service Fabric также управляет откатом развертывания, если служба не инициализируется.
Service Fabric — это SDK для микросервисов
Microsoft такая компания, которая любит давать разработчикам «простые кнопки». Это одна из вещей, которая мне нравится при работе с их продуктами. У них есть умные инженеры, которые решают в продуктах сложные инфраструктурные проблемы, таким обрвзом, что вам ими заниматься не надо. Service Fabric один из таких продуктов. Service Fabric SDK содержит отличный набор инструментария для построения больших сложных систем. Он позволяет это делать без большого количества обычных накладных расходов и сохраняет время на размышления, что же и как делать. Межсервисная коммуникация, распределённые паттерны, паттерны масштабирования, сервисное обнаружения — всё уже встроено. Так что перестаньте переделывать это ещё раз и ещё раз и ещё раз.
Вам не обязательно использовать этот SDK
У вас есть свой собственный коммуникационный стек? Просто не любите Microsoft? Отличные новости! Вам не обязательно использовать их SDK. Ни один из них, правда. Вы можете использовать любой коммуникационный стек, любой коммуникационный протокол или технологию. Всё что вам необходимо, это зарегистрировать ваше приложение, чтобы оно находилось через службу имён.
Вам не обязательно использовать .NET или Windows
Чеееегоооо? Знаю, это выглядит несколько эксцентрично для Microsoft, но вы действительно можете запустить Service Fabric на Linux. Вы также можете запустить на Service Fabric приложение на Java, Node, Ruby или на любом другом языке, который вы хотите использовать. Потому что, помните, по своей сути, это система управления развёртываниями.
Вы можете использовать Service Fabric у себя в датацентре, в Azure или AWS
Предполагается, что у вас должен быть Azure, чтобы использовать Service Fabric, что даже близко не лежит к действительности. Вы можете воспользоваться Service Fabric в своём собственном центре данных или в любом другом поставщике облачной инфраструктуры. Конечно, в этом случае вам придётся самостоятельно управлять собственным кластером, но это понятный компромисс.
Вы можете использовать контейнеры
Если я слышу, как кто-то говорит «Я бы не использовал Service Fabric, так как я использую контейнеры», я начинаю кричать. Я вижу множество проблем с текущим пониманием технологии контейнеров в целом, что находится за рамками этой статьи. Но если вы действительно считаете, что контейнеры это то, что вам обязательно нужно (напишите мне на LinkedIn, я буду рад узнать, почему вы так думаете), просто знайте, что вы можете использовать Service Fabric для управления развёртыванием контейнеров, также как развёртыванием ваших приложений. Service Fabric имеет отличную поддержку контейнеров, несмотря на то, что контейнеры по прежнему не решают 99% сложностей создания распределённых система с зависимостями времени исполениня. Service Fabric SDK позволяет решить эти сложности.
Как я уже писал до ката, мы сейчас активно готовимся к новому формату мероприятий — трёхдневный интерактивный практический воркшоп — OpenHack. Он будет проходить в Москве 22-24 марта. Если вам интересно «потрогать» и научиться работать с контейнерами и микросервисами, присоединяйтесь к нам. Всё как всегда бесплатно, без смс, но с регистрацией.