Пост ностальгии: как мы начинали Acronis в МФТИ и на чердаке аэрологической обсерватории

от автора


2006 год, Долгопрудный. Празднуем чей-то день рождения. Александр Черных, Александр Голубов, Валерий Белоус, Дмитрий Чепель

Для меня компания начиналась с четырех человек. Это я с братом Олегом, Юра Пер и руководитель Максим Цыпляев. До этого мы вместе работали в «Физтех-софте» под его руководством. Тогдашний наш продукт назывался PTS BootWizard, потом он стал Acronis BootWizard, а потом — Acronis OS Selector. В принципе это был продукт, включающий базовый набор технологий, который можно было развивать дальше.

С 2000 года мы работали уже в новой компании под названием SWSoft, делавшей ASP Linux. Собственно, у владельца «Физтех-софта» была выкуплена технология, (в т.ч. ресайзера и BootWizard) и команда.

Помню, в самом начале компы у нас были очень крутые по тем временам: по два жестких диска по 20 Гб и ЭЛТ-мониторы по 17 дюймов. Тяжёлые, мы их потом часто носили из-за переездов. Писали на С++ на Watcom, часть кода была под DOS на ассемблере. В самом начале вообще кода под винду не было.

Разница между “Физтех-софт” и SWsoft была очевидна по таким деталям, например, как кормежка. В “Фихтех-софте” мы ели за свой счет и как придется. А вот в SWsoft все уже было понятно и удобно организовано: были тетушки, которые готовили еду, приносили ее. Вкусная, такая домашняя еда. Компания оплачивала.

Вернёмся чуть назад к ASP Linux — собственно, компании SWSoft нужен был ресайзер для инсталлятора, искали команду, которая сможет выполнить эту задачу. Так вышли на нас. Ресайз мы умели.

SWSoft в тот период уже открыла офис на Физтехе, и мы нашей дружной разработкой просто переехали на пару этажей. Сидели в отдельном помещении — в лабораторном корпусе МФТИ. Потом уже линейка продуктов на базе тогда написанного кода начала продаваться, и SWSoft выделил будущий Acronis в отдельную компанию. Так мы там и оказались.

Новое название появилось в январе 2001 года (тогда же зарегистрировали домены COM и RU), хотелось по алфавиту, чтобы попадать вверх по сортировкам – поэтому — «AC». Семантической нагрузки особой нет: из словаря выписали несколько понравившихся слов, потом как-то это придумали. Официально же компания появилась в 2003 году. В этот же момент определились с управлением: Сергей Работал непосредственно с Максом, Макс де-факто всем руководил тогда. Стас Протасов выступал как внешний консультант. Сегодня Стас руководит всей разработкой, Сергей — генеральный директор, Макс Цыпляев и Илья Зубарев — сооснователи.

Почти сразу в 2001 взяли Диму Бойцова на сайт, Леша Катков пришел. Довольно скоро стало нужно переезжать в другой корпус, не помещались уже совсем. Пришел Макс Лядвинский и стал делать технологию снепшотов, чтобы бэкапить живую винду на посекторном уровне. Он до этого работал над драйверами и кернельными вещами. Библиотеку он писал дома по вечерам и долго искал применение. В виндах тогда не было собственных снепшотов, и у других производителей ПО для бэкапа тоже их не было. Из конкурентов тогда были Нортон, Веритас, Пауеэрквест. Мы обошли их всех по низкому уровню и сделали снепшоты первыми.

Юра Пер как раз занимался тем, что делал быстрый ресайз. Нужно было за минимальное время превратить один раздел в другой — расположенный иначе и изменённого размера. Минимизировали количество копирований данных: если исходные и конечные области пересекаются, то по возможности старались не трогать данные. В виндах тогда своего инструмента не было, только позже появился довольно неуклюжий (только в большую сторону и с ограничениями), и потом он практически не развивался.

У FAT16 были разные размеры кластеров: код умел изменять произвольным образом в большую или меньшую сторону, соответственно, можно было увеличить FAT16-раздел до диких объёмов и попутно конвертировать его в FAT32. Для FAT просто писали в первую дырку: составлялась карта перемещений, сначала виртуально, а потом шли сами перемещения, причём в процессе перемещения блоков с данными (например, при сдвиге директории), сразу менялись номера кластеров на новые. Новая таблица размещений лежала в оперативной памяти, поэтому при аварийном отключении питания данные перемешивались. Было важно не трогать рубильник в процессе.

Менять начало раздела в меньшую сторону быстро особо никто не умел, это более сложная задача. Кстати, именно ASP Linux в 2000 для своего инсталлятора, первого умеющего корректно «отодвигать» винду и делать свой раздел «на лету», работал как раз с нашим кодом – именно этот код я и писал, и именно по этой причине он был выкуплен вместе с командой.

Сложно было с графической библиотекой: надо было либо самим писать (но оконную библиотеку делать долго), либо подобрать: QT уже был (но молодой и ущербный, без полноэкранных вариантов), «Цинк» не развивался, оставался «Фокс».

Олег параллельно клепал продукты. Тогда срок на продукт с учётом уже имеющейся низкоуровневой базы был совершенно фантастический по сегодняшним меркам — на что-то было 2 недели, например. Нам нужна была линейка и быстро. Сейчас 50 человек могут делать продукт несколько месяцев, а тогда один человек сел и за две недели написал, потом уже другой документирует, и можно продавать.

Например, первый релиз Acronis Disk Director (который тогда назывался Acronis Partition Expert) представлял собой чистый GUI к нашим DOS-библиотекам работы с диском, а все остальное было написано. Потом мы начали переносить код под Win. Или, например, Acronis True Image, ресайзеры. Надо было сделать просто пошаговый мастер, интерфейс, который давал входные команды на библиотеку. Идея-то была проста, все компоненты для реализации уже были, нужен был только GUI. Утрируя, при желании можно было «на коленке» за 1 день написать, но до того момента никто из конкурентов не додумался и не написал. Вот так мы первые позволили делать бэкап просто и восстанавливать просто. После того, как продукт стал популярным, мы его неоднократно доделывали, совершенствуют и сегодня, но первая версия была собрана быстро, за примерно 2-3 недели полностью.

Тесты тогда делались прямо на машинах разработчиков: и сами тестировали, и поддержку сами делали — и руководство писали, и сборки бинарников тоже сами. Сейчас всё это отдельные люди делают, а тогда минут 20 в день у меня уходило на ответы на вопросы по почте из Германии, Японии и Штатов.

Мы с Юрой делали технологии работы с диском на низком уровне. Чтение-запись, бэкап, восстановление. Юра — настоящий гуру файловых систем и их поддержки. Я ковырялся с дисками на почти физическом уровне: структура разделов, чтение-запись, отложенное выполнение операций. То же взаимодействие с драйвером снепшотов. Была поддержка FAT, потом NTFS, ext2, ext3. Ещё была поддержка систем Sun, IBM.

Контроль версий делался через CVS: утром выкачиваешь, а вечером сначала выкачиваешь, потом коммитишь. Потом, когда людей стало больше, стало сложнее с ней: настройки были не самые очевидные, для работы нужно было страшную строку ввести. Она хоть и под винду была, но ноги росли из *nix. Существовал CVS у нас довольно долго. В самом начале у нас был один линуксовый сервер, который одновременно выполнял функции гейтвея, почтового сервера, файлового сервера и CVS. На SVN пришли поздно, когда людей и кода стало больше. Примерно в 2006–2007 году. Тогда не было и ревью — любой мог что угодно написать, и это шло в релиз без проверок другими участниками. Хотя по шапке, конечно, друг от друга на тестах огребали. Юнит-тестов не было, было только авторское тестирование. Пасхалок не было, как-то не принято было. QA в современном понимании не было, Денис Дементьев отвечал и за баги, и за поддержку. Позже, в 2002 появился выделенный QA — Валера Дроздов из «Фалькона» пришел, он был у них за главного. Мы ещё «взяли в аренду» Владимира Симонова, а потом он остался у нас. До сих пор один из ключевых разработчиков под Мак и *nix.

Багов всегда было достаточно, ничто не идеально: мы постоянно работали с разным железом, разными BIOS, с низким уровнем. Выходила новая версия винды, приходилось затачиваться под её особенности. BIOS тогда обновлялись с дискеты, и у всех были разные версии. Часто было, что ты программу отлаживаешь там же, где пишешь, на той же машине. Настроил, запустил, начинаешь уменьшать или увеличивать раздел — и всё, накрываешь его. Виртуализации тогда толком не было.

Надо сказать, что 2002 год, с точки зрения бэкапа, уже был довольно развитым. Это не «самое важное на дискеты и в сейф», были уже разные ветки технологий. Чаще всего сохраняли резервные данные на жесткий диск локально, например, на второй физический диск в системнике или на скрытый раздел своего. Была поддержка CD и DVD, чуть позже потребовались ленты, когда пришло много корпоративных клиентов. Кстати, с точки зрения разработки, корпоративный бэкап был не так интересен, там тысячи доделок под конкретные требования. А домашний бэкап — это был космос, там постоянно делались важные функции, которые всем нужны, и каждая новая итерация была заметно лучше предыдущей. Это очень вдохновляет.

Были загрузочные дискеты с восстановлением и загрузочные ZIP-дискеты. Наш продукт предлагал всё сохранить, а потом записать диск для аварийной загрузки. Если у пользователя был только дисковод 1,44, ему требовалось 4 дискеты, и при загрузке они вставлялись по очереди. CD пошли позже, причём тогда основные продажи были в виде коробок, и в нашей коробке уже был CD, с которого можно было загрузиться для восстановления. Потом русские умельцы из него наделали много вот таких штук:

Позже, с выходом «висты», поменялось очень много в технологиях. Тогда мы переписывали почти весь стек, сделали Try&Decide, когда можно было войти в специальный режим и фиксировать все изменения, а потом их откатить, если не нравятся. Круто было пробовать новый вирусняк. Помню, Олег как раз для Try&Decide делал бутменю, которое перед загрузкой виндов предлагает откатить или применить.

Офисы менялись. Сначала из МФТИ мы переехали в Центральную аэрологическую обсерваторию: у нас был весь шестой чердачный этаж. Было удобно, просторно: куча комнат пустых, никто не сидел поначалу. Потом народ набрали, заполнилось. Помню, нас ещё по тревогам всех на улицу выгоняли, учения шли регулярно и жёстко. Кстати, до нас там сидели химики какие-то, кажется, или фармацевты, точно не помню. На дверях оставались их таблички. Мы потом между собой части офиса так и называли в шутку.

С интернетом было тяжело: тогда трафик был лимитирован. Все знали, кто и сколько качал. Потом, позже, было сложно привыкнуть, что новые люди качали целые (!) жёсткие диски и считали это нормой.


2007 год – собралась сильная команда разработки. Макс Аммосов, Валерий Белоус, Дмитрий Чепель, Григорий Зубанков, Николай Попов, Александр Фомичев, Анна Тюрюмова, Алексей Косарчук

Потом в 2007 году переехали на «Савёловскую». Там был огромный ангар примерно 50х50 метров, а наше помещение было кустарным образом сделано буквально под потолком огромного комплекса. Там внизу был то ли рынок, то ли торговый центр, а нам настелили пол, и образовался этаж без окон. В этот период у нас стало заметным разделение на менеджеров и разработчиков. Почему заметно — мы как раз закупали новые экраны, и менеджерам стали выдавать ЖК, а у нас ещё были ЭЛТ. По ЖК-монитору можно было определить, что человек в компании новичок. Хотя первые ЖК мы поставили ещё в Долгопрудном, градация была заметна. Тогда же образовалась вся линейка и более-менее устоялся стек технологий.

Потом мы очень усиленно работали над важным продуктом — Acronis Backup & Recovery (тогда он назывался Acronis Echo Enterprise Server). Тогда было два офиса, мы переезжали в наш текущий на Алтуфьевском шоссе. Мы с Юрой дежурили по очереди в каждом — нужно было, чтобы везде был эксперт. По дням распределилось —понедельник, среда, пятница — я там, он — тут.

А потом переехали все, и началась современная история.

ссылка на оригинал статьи https://habrahabr.ru/post/281533/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *