Advertisement
Guest User

Untitled

a guest
Aug 3rd, 2020
43
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.10 KB | None | 0 0
  1. Главная инфраструктура веб-сайта Stack Overflow находится в центре обработки данных, расположенном в Н1,ю-Йорке. Если в центре обработки данных происходит авария или отказ в обслуживании, то запускается дублирующее оборудование и программное обеспечение, находящееся в Колорадо. Дубликат в Колорадо - это полноценная работоспособная копия, за исключением того, что она находится в режиме резервирования и ждет активации.
  2.  
  3. Обновления базы данных в Нью-Йорке копируются в Колорадо. Запланированное переключение на оборудование, расположенное в Колорадо, не приведет к потере данных. В случае незапланированного отказа - например, в результате выхода из строя системы энергопитания - система потеряет приемлемо малое количество обновлений.
  4.  
  5. Процесс аварийного восстановления довольно сложен. Необходимо перейти на другой сервер базы данных. Службы необходимо перенастроить. Это отнимает много времени и требует навыков от четырех разных групп. Каждый раз, когда это происходит, возникают совершенно новые проблемы, требующие специальных решений.
  6.  
  7. Другими словами, процесс аварийного восстановления сопряжен с риском. Когда Том работал в компании Stack Oveгflow, его первая мысль была "Я надеюсь, что такой сбой произойдет не на моем дежурстве".
  8.  
  9. Вести автомобиль пьяным опасно, поэтому мы стараемся этого не делать. Аварийное восстановление рискованно, значит, мы должны избегать этого. Правильно?
  10.  
  11. Нет, неправильно. Есть разница между поведением и процессом. Рискованное поведение является опасным по своей природе; оно не может стать менее рискованным. Вождение в пьяном виде - опасное поведение. Оно не может стать менее опасным, его можно только избегать. Аварийное восстановление - рискованный процесс. Его можно сделать менее рискованным, если выполнять его чаще.
  12.  
  13. Однажды в компании Stack Overflow произошел сбой, на восстановление после которого понадобилось десять часов. Инфраструктура в Нью-Йорке стала значительно отличаться от инфраструктуры в Колорадо. Код, который должен был обеспечить гладкий переход, потерпел неудачу, потому что был проверен в идеальных условиях и подвел в реальной среде. Обнаружились неожиданные зависимости, в некоторых случаях создавая абсурдные ситуации, напоминающие порочный круг, которые должны были быть разрешены моментально.
  14.  
  15. Это десятичасовое суровое испытание было результатом применения стратегии больших скачков. Поскольку отказы случались редко, возникли перекос инфраструктуры, зависимости и устаревший код. Кроме того, произошло накопление невежества: новые сотрудники не имели опыта аварийного восстановления, а остальные потеряли практические навыки.
  16.  
  17. Для того чтобы решить эту проблему, группа решила чаще выполнять аварийное восстановление. Интервал между аварийными восстановлениями зависел от количества накопленных изменений и других факторов, которые приводили к проблемам при аварийном восстановлении. Вместо того чтобы допускать неограниченное увеличение этого интервала, группа решила сделать его коротким.
  18. Вместо того чтобы ждать следующего реального бедствия, чтобы выполнить аварийное восстановление, они стали моделировать аварии.
  19.  
  20. Концепция моделирования аварийного восстановления на работающей системе может показаться странной, но лучше обнаружить ошибки и другие проблемы в управляемой ситуации, а не в чрезвычайной. Обнаружение ошибки в чрезвычайной ситуации, возникшей в 4 часа утра, неприятно, потому что те, кто может ее устранить, могут быть недоступными, а если они доступны, то, конечно, недовольны, что их разбудили. Иначе говоря, лучше обнаружить проблему в субботу в 10 часов утра, когда все бодры, доступны и сосредоточены.
  21.  
  22. Если школьники могут делать пожарные учения один раз в месяц, то, конечно, системные администраторы могут практиковать аварийное восстановление несколько раз в год. Группа начала отрабатывать практические навыки по аварийному восстановлению каждые два месяца, пока процесс не был усовершенствован.
  23.  
  24. В ходе каждого учения возникали проблемы с кодом, документацией и процедурами. Каждая проблема регистрировалась и устранялась до следующего учения. Сначала учения длились пять часов, потом - два часа, а в конечном счете они продолжались один час незаметно для пользователей.
  25.  
  26. В ходе учений были обнаружены изменения инфраструктуры, которые не были скопированы в Колорадо, и код, который не восстанаnлиnался должным образом. Были идеmифицированы новые службы, которые не могли nосстанавливаться без проблем. Был выявлен процесс, который мог быn, выполнен только одним конкретным инженером. Если бы он был в отпуске или недоступен, то компания оказалась бы в сложном положении. Он был единственным, кто мог устранить проблему.
  27.  
  28. В течение года были выявлены все эти проблемы. Код был заменен, были разработаны более точные предварительные тесты, а практические учения дали каждому члену команды, обеспечивающей надежность информационных систем (SRE - Site Reliabllity Engineering), возможность глубже изучить процесс аварийного восстановления. В конечном счете весь процесс был упрощен и стал проще для автоматизации. Компания Stack Overflow получила следующие выгоды.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement