Я є власником і керую візуальним веб-сайтомoptimizer.com /. Додаток пропонує фрагмент коду, який мої клієнти вставляють на свої веб-сайти для відстеження певних показників. Оскільки фрагмент коду - це зовнішній JavaScript (у верхній частині коду сайту), перш ніж показати веб-сайт клієнта, веб-переглядач відвідувача зв’язується з нашим сервером додатків. У випадку, якщо наш сервер додатків не працює, браузер намагатиметься встановити з'єднання перед тим, як він вичерпається (як правило, 60 секунд). Як ви можете собі уявити, ми не можемо дозволити собі запускати сервер додатків за будь-якого сценарію, оскільки це негативно вплине на досвід роботи не лише відвідувачів нашого веб-сайту, але й відвідувачів веб-сайтів наших клієнтів!
Зараз ми використовуємо механізм відмови DNS з одним резервним сервером, розташованим в іншому центрі обробки даних (фактично на іншому континенті). Тобто ми відстежуємо наш сервер додатків з 3-х окремих місць, і як тільки він виявляється вниз, ми змінюємо запис, щоб вказувати на резервну копію IP-адреси сервера. Це добре працює для більшості браузерів (оскільки наш TTL - 2 хвилини), але IE кешує DNS протягом 30 хвилин, що може бути вбивцею угоди. Дивіться це нещодавнє повідомлення нашого vizualeveoptimizer.com/split-testing-blog/maximum-theoretical-downtime-for-a-website-30-minutes/
Отже, які налаштування ми можемо використати, щоб забезпечити майже миттєвий відмову у випадку, якщо центр обробки даних зазнає великих відмов? Я читаю тут www.tenereillo.com/GSLBPageOfShame.htm що наявність декількох записів A - це рішення, але ми не можемо дозволити собі синхронізацію сеансу (поки що). Іншою стратегією, яку ми вивчаємо, є наявність двох записів A, одна вказує на сервер додатків, а друга - на зворотний проксі (розташований в іншому центрі обробки даних), який вирішує основний сервер додатків, якщо він працює, і резервний сервер, якщо він працює. Чи вважаєте ви цю стратегію розумною?
Щоб бути впевненим у своїх пріоритетах, ми можемо дозволити собі затримати власний веб-сайт або додаток, але ми не можемо дозволити веб-сайту клієнтів сповільнюватися через наш час простою. Отже, якщо наші сервери додатків не працюють, ми не збираємось реагувати на відповідь програми за замовчуванням. Навіть пустої відповіді буде достатньо, нам просто потрібно, щоб браузер завершив HTTP-з'єднання (і більше нічого).
Довідка: я прочитав цю тему, яка була корисною serverfault.com/questions/69870/multiple-data-centers-and-http-traffic-dns-round-robin-is-the-only-way-to-assure