Как технический консерватизм помогает нам масштабироваться быстрее и лучше
Опубликовано: 2022-07-21В Intercom мы нацелены на будущее и предпринимаем смелые шаги для его достижения. Но когда мы принимаем технические решения, нам нравится быть консервативными.
На практике быть технически консервативным выглядит как повторное использование существующих технологий и фреймворков в нашем стеке или продвижение проверенных шаблонов и решений. Мы ценим это знакомство, потому что понимаем, что важные проблемы, которые необходимо решить, — это те, которые обеспечивают ценность для клиентов или бизнеса.
Вместо того, чтобы оценивать новые технологии и тратить время на уже решенные операционные проблемы, которые в конечном счете не приносят никакой пользы для клиентов, мы можем сосредоточиться на улучшении продукта, создавая, выпуская и итерируя решения.
Это шестой пост из серии, посвященной нашим принципам работы с продуктом . Здесь Вахид обсуждает наш инженерный принцип «Будь технически консервативен».
У технического консерватизма есть много долгосрочных преимуществ.
Этот принцип лучше всего иллюстрируется несколькими примерами из прошлых лет, демонстрирующими, как « Технически консервативный подход» позволяет нам быстро масштабироваться, не создавая при этом ограничений. Ранее я рассказывал о нашем опыте разработки нашей системы отчетности, где мы оценивали преимущества внедрения в наш стек нового хранилища данных — Redshift. Это означало бы введение в нашу систему базы данных нового типа, которая никогда не тестировалась в реальных условиях. Кроме того, нам пришлось бы тратить много времени на накопление операционных знаний, поддержку кластеров в производственной среде и решение непредвиденных проблем, связанных с эксплуатацией Redshift в масштабе.
« Мы использовали нашу существующую инфраструктуру, чтобы ускорить процесс примерно с шести месяцев до шести недель»
В конце концов, мы решили, что знакомое хранилище данных лучше подходит для этой работы. Мы использовали нашу существующую инфраструктуру Elasticsearch, которая поддерживает большинство поисковых возможностей Intercom, чтобы ускорить процесс примерно с шести месяцев до шести недель.
Первоначальная версия системы отчетности была выпущена несколько лет назад, поэтому у нас была возможность поразмышлять о некоторых долгосрочных преимуществах нашего применения технического консерватизма в этом случае:
Решили проблему клиента быстрее
Использование существующей инфраструктуры позволило нам не тратить время на ознакомление с новым хранилищем данных и устранение всех неизбежных проблем. Мы смогли немедленно сосредоточиться на проблеме клиента, которую нужно было решить, и быстро отгрузили товар, сократив время доставки более чем на четыре месяца.
Мы максимально использовали время команды
Наша команда по инфраструктуре данных смогла по-прежнему сосредоточиться на небольшом, знакомом наборе технологий вместо того, чтобы распределяться между несколькими технологиями. В результате у них было и остается больше времени для обеспечения работоспособности наших существующих систем и оптимизации использования каждой технологии.
« Поскольку наш набор технологий относительно невелик, улучшения происходят регулярно»
Мы увеличили ценность текущих улучшений
Поскольку наш набор технологий относительно невелик, улучшения происходят регулярно. В продукте используются эти технологии, поэтому влияние этих улучшений распространяется на все, что создано на их основе. Небольшое улучшение может оказать огромное положительное влияние на весь продукт.
Больше команд внесли больше вклада
Использование общих технологий означает, что больше инженеров и команд чувствуют себя уверенно и имеют возможность работать с ними. Мы наблюдали частые улучшения продукта для создания отчетов командами всей компании, а не только одной командой, владеющей определенной частью системы.
Помните, что принципы — это не правила, это рекомендации
Принципы — это невероятный способ сплочения команд, который дал отличные результаты для Intercom. Но бывают случаи, когда лучше не следовать им. По мере роста компании существует риск того, что некоторые члены команды будут следовать принципам догматически или неправильно их интерпретировать. По умолчанию технический консерватизм не должен означать, что мы никогда не вводим что-то новое.
«Технический консерватизм означает предпочтение технологии, которая уже есть в вашем стеке, но только в том случае, если это лучший вариант».
Технический консерватизм означает предпочтение технологии, которая уже есть в вашем стеке, но только в том случае, если это лучший вариант. В некоторых ситуациях существующая технология может оказаться непригодной. Если он не может ответить на следующие вопросы, мы можем посмотреть дальше и оценить альтернативы:
- Позволит ли новый инструмент масштабировать ваш бизнес более эффективно?
- Позволит ли это вашей команде или организации двигаться быстрее и быстрее приносить пользу?
- Решает ли это проблему клиента, которую нельзя решить с помощью существующих инструментов?
Если вы ответите «да» на любой из этих вопросов, возможно, стоит подумать о внедрении этого нового инструмента. Недавно в Intercom был пример, ответивший «да» на все три вопроса.
Пользователи или клиенты наших клиентов являются основой платформы Intercom. По мере того, как мы росли, росли и наши клиенты, и их потребности в том, сколько пользовательских данных они хранят в Intercom. В то время огромное количество пользовательских данных приводило к проблемам с масштабированием нашего текущего хранилища пользовательских данных, и чтобы мы могли продолжать поддерживать существующих и новых клиентов, нам нужно было переосмыслить наше текущее решение. Это в конечном итоге привело нас к внедрению новой технологии в наш стек — вот как мы пришли к этому решению.

Мы масштабировались быстрее, чем позволяло наше хранилище данных
Мы использовали MongoDB примерно пять лет, и у нас были операционные шрамы, чтобы доказать это. Мы оптимизировали каждый аспект его владения и эксплуатации — от типа оборудования, на котором он работал, до запросов, которые мы на нем выполняли. Мы были в точке убывающей отдачи и видели сильные сигналы того, что через пару лет она перестанет быть пригодной для использования и может даже стать узким местом в росте компании.
«Регулярно думайте о траектории своего бизнеса и спрашивайте : « Приведет ли нас сюда то, что привело нас туда?» '. Это позволит вам быть активным в своем выборе, а не реагировать».
Именно здесь ключевое значение имеет сильная, дальновидная техническая стратегия. На данный момент у нас было достаточно данных, чтобы предположить, что нам может понадобиться оценить другой подход, и у нас была взлетно-посадочная полоса для этого. Регулярно думайте о траектории своего бизнеса и спрашивайте: «Приведет ли нас сюда то, что привело нас туда?». Это позволит вам быть активным в своем выборе, а не реагировать на него, и снизит риски, связанные с неизвестными неизвестными, связанными с внедрением новой технологии.
Наша технология замедляла нашу команду
В Intercom мы стремимся использовать меньше программного обеспечения. В данном случае, несмотря на то, что мы внедряли новую технологию с неизвестными неизвестными, внедрение DynamoDB позволило нам сделать именно это.
Раньше мы самостоятельно управляли масштабированием MongoDB вместе с кодом для балансировки нагрузки — значительные накладные расходы для команды. Часть привлекательности DynamoDB заключалась в том, что ею управлял поставщик AWS. Это означало, что, несмотря на первоначальные затраты на его внедрение, в конечном итоге это будет дешевле и сэкономит команде огромное количество времени и усилий.
«Отказ от догматизма в отношении технического консерватизма позволил нам заменить технологию с большими накладными расходами и ограниченными возможностями»
Это может показаться нелогичным, но внедрение новой технологии в конечном итоге привело к тому, что мы стали использовать меньше программного обеспечения. Отсутствие догматизма в отношении технического консерватизма позволило нам заменить технологию с большими накладными расходами и ограниченными возможностями новой технологией, которая была менее обременительна в эксплуатации и более масштабируема.
Мы были безжалостны к требованиям
Иногда нам требовалось, чтобы MongoDB выполняла сложные и дорогостоящие запросы, которые ставили под угрозу доступность и производительность более распространенных, но менее сложных запросов. При оценке DynamoDB мы поняли, что она не будет поддерживать эти сложные и дорогостоящие запросы, но будет намного лучше выполнять более простые и распространенные запросы.
Мы уже в основном использовали Elasticsearch для выполнения сложных запросов, и необходимость миграции вынудила нас пересмотреть и более тщательно определить возможности, которые нам нужны от нашего пользовательского хранилища, и в конечном итоге позволила нам повысить производительность для его основного варианта использования: извлечения отдельных пользовательских записей.
«Размышляя о замене технологии, не считайте само собой разумеющимся, что вы будете использовать новую технологию таким же образом»
Думая о замене технологии, не считайте само собой разумеющимся, что вы будете использовать новую технологию таким же образом. Ваши требования, скорее всего, со временем значительно изменятся, а остальная часть стека эволюционирует или усовершенствуется, так что варианты использования станут более узкими. Это откроет возможности для внедрения более целенаправленных и эффективных технологий или передачи некоторых технологий поставщику.
Заставьте ваши принципы работать на ваш бизнес, а не наоборот
Технический консерватизм — отличный инструмент, позволяющий вашим командам сосредоточиться на том, что важно — решении проблем клиентов и создании ценности, не тратя драгоценные ресурсы на ответы на вопросы, на которые уже были даны ответы.
Однако если вы станете слишком твердым в убеждении, что внедрение новых технологий — это плохо, это может помешать вам воспользоваться преимуществами технологий, которые помогут вам запускать меньше программного обеспечения и более легко и быстро масштабироваться. Важно применять этот принцип таким образом, чтобы он лучше всего работал для вашей команды и вашего бизнеса в долгосрочной перспективе.
Вы заинтересованы в том, чтобы присоединиться к команде инженеров Intercom? Узнайте больше и посмотрите наши открытые вакансии здесь.