Несколько недель назад я перешел в новую компанию в качестве системного администратора Linux, они собираются начать проект по переносу инфраструктуры производственных серверов из центра обработки данных в Amazon AWS.
Они следуют концепции "наш трафик определяет дизайн нашей системы"; это означает, что, поскольку сервер не перегружен, мы можем использовать его для предоставления нескольких служб, даже если одна служба, такая как RabbitMQ, не перегружена, она может использоваться двумя разными приложениями, и это не вызовет никаких конфликтов. Что ж. , этот архитектор отлично работал последние четыре года, обслуживая миллион пользователей в день, и они собираются использовать его в новой инфраструктуре.
Я верю в "дизайн нашей системы должен привлекать наш трафик"; это означает, что группа серверов должна быть разработана для обслуживания только одного приложения, даже если оно не перегружено, а одна база данных должна обслуживать только одно приложение, что поможет в отладке любой будущей проблемы, имея отдельные журналы для каждого приложения и чистый архитектор. Но они считают, что это будет стоить больше денег и потребует большего обслуживания без добавленной стоимости.
Итак, должен ли наш трафик управлять дизайном нашей системы или дизайн нашей системы управлять нашим трафиком?
Разъяснение, которое поможет мне следовать правильным путем, либо следовать их путем, либо находить для них веские причины следовать моим.
В небольших средах рентабельно иметь несколько служб, работающих на меньшем количестве серверов.
При работе с большими объемами с точки зрения администрирования проще разделить услуги, поскольку вы можете быстро выявлять, сдерживать и решать проблемы с более узким игровым полем.
Размещение этих приложений в среде контейнера (например, Docker) также даст вам возможность изменять количество контейнеров и, следовательно, количество подключений, которые вы можете обслуживать по мере необходимости. Это можно сделать на вычислительном движке Google с помощью правил, и я считаю, что это то же самое, что и служба контейнеров Amazons EC2, я не использовал AWS, поэтому не могу сказать наверняка.