Как биоинформатики Genotek разработали сервис генеалогических деревьев
История о том, как биоинформатики российского стартапа в области исследований ДНК Genotek с помощью технологий serverless помогают клиентам строить генеалогические деревья.
От анализа генома к генеалогическим деревьям
Геном человека состоит из трёх миллиардов нуклеотидов. Сейчас каждый человек может расшифровать свой геном и сравнить его с геномами людей, у которых все предки принадлежат к одному этносу, чтобы узнать о своём происхождении. И, конечно, анализ генома позволяет находить родственников. Если есть два человека, у которых геномы на 50% идентичны, то можно с высокой уверенностью говорить, что это родитель и ребенок или это родные братья/сёстры. Если совпадений меньше, это более дальние родственники. Так, например, сравнивая ДНК, можно найти своих четвероюродных братьев или сестёр.
Компания Genotek предоставляет передовые геномные технологии в единой системе: от получения образцов ДНК до подготовки результатов генетико-медицинских тестов, персонифицированных медицинских рекомендаций, рекомендаций по образу жизни и генеалогической информации. В компании хранится много генетических данных клиентов, с помощью которых вот уже пять лет люди ищут своих родственников.
А теперь с помощью нового сервиса любой пользователь Genotek в личном кабинете может бесплатно создать своё генеалогическое древо и даже объединить его с деревьями-родственниками. Специальный алгоритм проверяет общие связи, а затем создаёт общее дерево. Всё это реализовано в Yandex.Cloud с помощью бессерверных технологий и функций.
Как разрабатывались генеалогические деревья
В Genotek работают front-end и back-end разработчики, веб-программисты и DevOps-инженеры, а также биоинформатики, которые и занимаются анализом ДНК. Однако, так как генеалогические деревья тесно связаны с поиском родственников по генетическим данным, за разработку сервиса взялась именно команда биоинформатиков. И несмотря на то, что у них не было большого опыта в разработке приложений, им удалось относительно легко и быстро создать новый сервис, опираясь на serverless-технологии и управляемые решения Yandex.Cloud.
Что такое Serverless
Serverless-технологии реализуют подход «функция как услуга», при котором для выполнения каждого запроса (вызова функции) автоматически создается отдельный контейнер или виртуальная машина с нужными характеристиками, уничтожающиеся после выполнения.
Преимущества Serverless-подхода:
Все serverless-сервисы проектируются так, чтобы код конкретной функции выполнялся даже при временной потере доступности нескольких дата-центров.
Разработчик конечного решения получает автоматическое масштабирование и отказоустойчивость, а разрабатываемые им приложения превращаются в совокупность отдельных функций запускающихся по необходимости.
- При увеличении количества пользователей сервиса не нужно поднимать новые виртуальные машины или настраивать балансировку — просто автоматически создаются дополнительные экземпляры функции, которые выполняются параллельно.
Фронтенд работает с Yandex Cloud Functions как с API — по запросу функция забирает нужные данные из базы и строит деревья для каждого конкретного пользователя под каждый его запрос. Функция может редактировать и изменять эти данные, а все действия логируются.
Также, для работы нового сервиса взяли три управляемые базы данных:
- Yandex Managed Service for MongoDB — для хранения данных.
- Yandex Managed Service for ClickHouse — для хранения истории изменений.
- Yandex Managed Service for Elasticsearch — для логов.
При этом сотрудникам Genotek не пришлось задумываться о производительности, обслуживании и масштабировании баз данных.
Применение serverless-подхода позволило биоинформатикам сосредоточиться только на написании или интеграции кода для решения главных задач сервиса, что позволило им выпустить новый продукт без специфических навыков. К тому же, теперь они могут совершенствовать сервис, просто добавляя новые функции.
Что дальше
Сейчас в сервис генеалогических деревьев добавлено около 100 000 человек. В будущем с помощью Yandex Cloud Functions пользователям будут рассказывать о новых родственниках на основании данных из ДНК-тестов, появится возможность загружать фотографии и другие файлы, а также импортировать и экспортировать генеалогические деревья в формате GEDCOM.
Подписывайтесь на блог Yandex.Cloud, чтобы узнавать еще больше новостей и историй об IT и бизнесе.
Другие истории, которые активно читают наши подписчики: