company_banner

Приостановка облака для новых пользователей

    С первого числа мы закрываем возможность установки новых машин. Новых клиентов мы уже прекратили принимать.

    Существующие виртуальные машины существующих клиентов будут обслуживаться далее без изменений. Так же просьба не делать «машины про запас» — мы прекратили приём новых клиентов не от добрых обстоятельств.

    Причина — мы перешли границы рассчитанных мощностей, а переписывание архитектуры «на ходу» — ужасная практика. В связи с этим решено взять таймаут и перестать гнаться за отделом рекламы (кстати, по этой причине мы и замолкли на Хабре — надеялись чуть снизить поток приходящих). Однако, люди приходили — и доходило до смешного, в одной из долго и тщательно выписываемых компонент мы закладывались на потолок в приблизительно 10к коннектов. Тестирование/исправление (процесс preproduction) затянулся на месяц… И к моменту, когда мы выкатили эту компоненту, оказалось, что она уже «в притык» (6-9к коннектов в секунду). А ведь писали мы её несколько месяцев!

    И стало очевидно, что мы просто не справляемся. Решение о прекращении приёма новых клиентов далось не сильно легко (ну вы понимаете, споры в стиле «а с чего вам зарплату платить?» и т.д.), но здравый технический смысл победил здоровую жадн устремлённость к успеху компании.

    Сколько займёт переработка? Планируемый срок — около 2-3 месяцев, сколько реально потребуется — не знаю. Во-первых, потому что придётся серьёзно переделывать архитектуру, централизованные БД окончательно будут удалены; децентрализация всего и вся — задача крайне нетривиальная.

    С большой вероятностью мы не сможем изменить существующую конфигурацию, так что будет запущена вторая копия облака. Как будет выглядеть миграция клиентов из первой во вторую — опять же, не знаю (пока даже не думал).

    read error


    Теперь об авариях. Да, нам так повезло, что произошли три несвязные аварии подряд. Одна в воскресенье, вторая во вторник, третья в пятницу. Кто виноват? Ну, зависит от того, кто спрашивает, но по-сути — мы. Все отказы были связаны с программным обеспечением (не нашим); мы даже не можем кивать в сторону кривых электриков, уборщиц и прочих козлов отпущения.

    Для тех, кому интересно, как это выглядит (извините за качество, не до качественной съёмки было):

    Авария 1 — 150 клиентов:
    Аптайм на момент аварии — 4 месяцев 24 дня. С момента ввода в эксплутацию первый сбой.

    Авария 2 — 391 клиент:
    Аптайм — 6 месяцев 4 дня (с момента предыдущей аварии. Тогда из-за бага в NFS-сервере пришлось принудительно перезагрузить все виртуальные машины и просить людей убрать упоминание NFS из /etc/fstab).

    Авария 3 — 398 клиентов.
    То же самое хранилище; Аптайм на момент аварии — 2 дня 4 часа.

    Устранение подобных узких мест — вторая задача, которую мы будем решать во время взятого таймаута.

    В предполагаемой нами модели хранения клиентских данных мы не рассчитывали на полное и безоговорочное прекращение работы ядра системы. Контролируемую перезагрузку, падение конкретных сервисов, смерть дисков в многократно резервированном рейде (и даже смерть SAS-контроллера) мы предусматривали. А вот такого «доброго» нет.

    Это была наша ошибка. И за эту ошибку отвечаю я, так как я положился на то, что мы хотя бы сможем узнать об остановке работы сервиса. В ходе работ над облаком это будет одна из основных задач, над которыми я буду работать.

    А в чём проблема?


    Когда случается авария, то клиенты начинают делать множество телодвижений. Перезапускать машины, пытаться их многократно включить и выключить.

    Визуально ничего не происходит, на на самом деле, внутри, система-то всё помнит. В результате очередь задач для некоторых машин доходит до 50-100 задач. И если мы научились объединять одинаковые задачи (если клиент попросил ребут три раза, значит нужно всего лишь один раз перезагрузить), то разнобой задач всё-таки выполняется как сказали. Да, если вы сказали перезагрузить машину, выключить, включить, перезагрузить, выключить и включить, то именно так и будет сделано.

    А когда таких клиентов несколько сотен… Получается неприятно. Особенно, когда все запросы приходят почти одновременно. У мастера пула банальным образом не хватало ресурсов. То есть 800% загрузки процессора и очередь на несколько сотен заданий.

    А вот разделять мастера пула на нескольких мы просто не готовы совсем. Пока что. Это одна из задач с которой мы будем думать.

    upd: статью опубликовали без моего участия, картинки будут завтра.
    Selectel
    149.83
    ИТ-инфраструктура для бизнеса
    Share post

    Comments 36

      +21
      Держитесь, ребята! Желаем вам как можно скорее вернуться в строй.

      Когда случается авария, то клиенты начинают делать множество телодвижений.

      Как показывает практика, это очень трудно победить организацией пула задач и разбором очереди. Но это побеждается волевым решением и ручным запретом всех действий на время аварии (запретом в смысле совсем: выдаем пользователю сообщение о запрете и ничего не ставим в очередь).
        +1
        Я тоже не понимаю почему так отключили управление машинами: всё равно ничего запустить не удалось. Да и знал бы что всё так — не стал бы вообще пытаться запускать.
          0
          «почему не отключили», конечно
            0
            Не должно быть такого. Тикет пишите.
              0
              Да зачем, всё работает уже.
          +6
          >Контролируемую перезагрузку, падение конкретных сервисов, смерть дисков в многократно резервированном рейде (и даже смерть SAS-контроллера) мы предусматривали. А вот такого «доброго» нет

          Если я не ошибаюсь, это называется запроектная авария. Ну что поделать, невозможно предусмотреть всего и вся. Ведь до относительно недавнего времени считалось, что взрыв реактора на АЭС — невозможен потому что невозможен никогда. Время и человек доказали обратное — возможно все.

          Держитесь. И держите нас в курсе, если не сложно.
            +14
            Признание своих ошибок делает вам честь. Уверен, что вы справитесь с этими проблемами.
              +2
              Ну вот, буквально полчаса назад я зарегался и пытался пополнить счет, как мне ответили «Пополнение баланса облака, а также создание машин для новых клиентов временно приостановлено».

              Обидно =(
                –9
                Я так понимаю, когда облако проектировали/разворачивали, опять изобретали велосипед и теперь огребаете? Или просто знаний не хватило чтобы нормально запустить?

                У вас 500 клиентов (или сколько там, ну сотни в любом случае) — придел под который система была спроектирована? You fucking kiddin me? Простите, но это детский сад какой-то.
                  +8
                  м… нет, речь идёт о нескольких тысячах. Сбои коснулись двух хранилищ из 8.
                  0
                  Уверен у вас все получится, сбои с файловой системой очень не приятная штука.
                  Несколько раз терял контент в вашем облаке. Благо всегда делаю бекапы на dropbox :)
                    +3
                    А где фотки?
                      0
                      У меня был постстрессовый отдрых, я нагло прогулял понедельник на работе. Добрые люди опубликовали черновик. Фотографии у меня на нокле, ща добавлю.
                      +6
                      Чем всё это грозит старым клиентам? С одной стороны вы пишете, что обслуживание будет без изменений — это радует. С другой — «не делайте машины про запас» и про «недобрые обстоятельства». У вас есть какой-то запас прочности, но его может не хватить, насколько я понимаю? Вы будете как-то апгрейдить старую систему или после создания новой потихоньку переводить на неё клиентов из старой?

                      В любом случае, успехов вам и попутного ветра. И, конечно же, респект за подробные комментарии и за то, что ни на кого не сваливаете ответственность. Хочется и дальше пользоваться вашим замечательным облаком, над которым работают порядочные, ответственные и честные люди.
                        +2
                        Поясняю: некоторые операции у нас o(n) от числа машин. До определённого момента это была очень комфортная аппроксимация, сейчас она стала некомфортной. То есть + 100-200 машин мы не заметим, а если каждый клиент сделает себе про запас десяточек, то просто тормознётся часть операций по управлению машинами. Она и сейчас подтормаживает (время исполнения больше 3с), а станет просто ещё дольше.
                          0
                          Понял, спасибо. Поскольку это потенциальные торможения по некритичным для работы машин операциям — успокоили.
                        +4
                        Коллеги, успехов! И скорейшего преодоления возникших сложностей.
                          +6
                          Радует что компания заботится о клиентах, а не гонится за прибылью.
                            +1
                            Когда клиенты «несколько раз теряют контент» (цитата), а «разворачивать бэкап слишком долго и ради вас одного мы этим заниматься не будем» (не цитата, вольный пересказ) — это забота о клиентах? Когда менее чем с 500 клиентами весь хостинг дико проседает по производительности и тупо падает — это забота о клиентах? Мое ИМХО, это называется «ошибка проектирования». Если с 400 клиентами такие факапы случаются — что же будет, когда их будет несколько тысяч?

                            Я уж не говорю о том, что прекращение приема новых клиентов — это фактически закрытие бизнеса.

                            Можете минусовать, но для меня это звучит как какая-то дикость. В этом бизнесе нужно постоянно бежать, чтобы оставаться на месте. Прекращение развития, тем более на несколько месяцев — это приговор. Конкуренты сожрут и не подавятся.

                            Я считаю, что за такие факапы того, кто проектировал всю эту инфраструктуру — нужно как минимум уволить. Это ж надо — «гладко было на бумаге, да забыли про овраги»!
                              +21
                              Молодого, недавно назначенного менеджера компании IBM, руководство вызвало на ковер. Еще бы! Он совершил сделку, на которой фирма потеряла 10 миллионов долларов. Когда сотрудник понял свою ошибку, было уже поздно, деньги уплыли.

                              Зайдя в кабинет, и, чувствуя свою вину, он, не ожидая того, что ему скажут, произнес:

                              — Я понимаю, что вы вправе меня уволить, и, признавая свою вину, принимаю ваше решение.

                              — Уволить? — произнёс руководитель. — Мы только что потратили 10 миллионов на ваше обучение и не вправе разбрасываться такими ценными кадрами. Идите работать!
                                +1
                                Красивая, но совершенно нереалистичная байка.
                                +14
                                Какие 500 клиентов? 500 виртуалок у нас было в конце января 2010, когда мы только-только начинали.

                                Указанные в статье цифры — это число пострадавших.
                              +4
                              Смешанные чувства после прочтения. С одной стороны я пострадавший почти во всех авариях, которые были в облаке Селектела за все время. С другой стороны огромный лимит лояльности, заложенный благодаря стараниям amarao, пока не исчерпался.

                              Я и сам нахожусь в похожей ситуации, как amarao с коллегами. Ситуация, когда времени и ресурсов меньше, чем нужно, а задачи масштабные и с большим количеством пользователей. Так что хорошо понимаю всю неприятность сложившихся обстоятельств.

                              Конечно, желаю по-быстрее справиться со сложностями. На данный момент, к сожалению, положиться на это облако нельзя (у конкурентов все-таки было аварий поменьше). В облаке хостится мой личный сервер, для которого допустимы небольшие даун-таймы. Рабочий сервер (который уже больше года хостится на Селектеле в виде выделенного сервера, аптайм 260 дней) до сих пор не перевел на облако. Очевидно, что сейчас дата переноса отодвигается очень значительно.

                              Ждем…
                                +4
                                Что самое классное, так это то что я попал под все три раздачи.
                                У меня 2 сервака и 1 облако. В двух случаях из этих трёх подохли базы данных… Долго всё восстанавливал, но это моя ошибка из-за кривых дампов. Самая печальная авария из этих трёх — последняя. Сервер был недоступен с 4+ ночи до 18+.

                                После всего этого задумался переезжать с селектела, но пока не знаю куда. Всё понимаю, но порой очень расстраивали ответы тех. поддержки… Ребята, я понимаю что вы не администрируете клиентские сервера… но вроде как после аварии можно было и посодействовать восстановлению похеренных данных…
                                  +2
                                  Вот поэтому я настоял и мы всё таки поставили свою стойку в хорошем датацентре в европе. Уже третий год пошел без даунтайма. Там рядом под боком Orange и SFR сидит (мобильный оператор) для них 5 минут это блин миллионы, да, платим дорого, ну и хрен с ним.
                                    +1
                                    Радует, когда компания признает свои ошибки.

                                    Вот компания в которой я работаю, когда обосрется, почти всегда делает вид что ничего не произошло и что все в порядке. Это так раздражает.

                                    Спасибо вам за открытость. :)
                                      0
                                      > децентрализация всего и вся — задача крайне нетривиальная
                                      оо, это ад и погибель, если не заложено изначально в архитектуру :)
                                        0
                                        Тулстек облака — это очень и очень много. В каких-то местах заложено, в каких-то нет, в каких-то есть, но частично.

                                        В принципе, объём децентрализации там вполне описуемый, но на живую мы это менять точно не будем.
                                        0
                                        Сделайте платными операции с машинами.
                                          +10
                                          И вход в панель управления тоже. Че мелочится-то.
                                          0
                                          Это по этой причине трансфер облачного сервера на другой акк временно невозможен?
                                            0
                                            Это одна из причин. При трансфере криво переносится потребление, до новой модели списаний никаких переносов не планируется.
                                            0
                                            Удачи, чините.

                                            Попытайтесь заранее, т.е. сейчас понять с чем нажрался Амазон, что бы избежать их ошибок.
                                              +1
                                              смотрю вас все еще колбасит
                                              так у вас железный сбой или технологический?
                                                0
                                                Коллеги, удачи и терпения. В итоге все сделаете как должно быть.
                                                  0
                                                  Здравствуйте!

                                                  Произошел сбой, затронувший оборудование, на котором выполнялась Ваша виртуальная машина.
                                                  Данные не пострадали, однако в данный момент проводятся работы по восстановлению, в связи с чем виртуальная машина может быть некоторое время недоступна.

                                                  Приносим извинения за доставленные неудобства!


                                                  какого черта? это теперь каждую неделю такое будет?

                                                  Only users with full accounts can post comments. Log in, please.