Как стать автором
Обновить
105.95

Как освоить Linux за 64 часа, и почему я инвестировал в этот проект 1.5 года своей жизни

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров54K

Привет, Хабр! Меня зовут Павел, и я расскажу вам о том, как можно быстро выйти из Матрицы освоить Linux. Мне повезло принять участие в крутом проекте по разработке учебного курса для службы каталога ALD Pro, которую Астра создала на замену MS Active Directory, но перед тем, как я начну эту увлекательную историю,

Позвольте кратко представиться

Сколько лет я себя помню, меня всегда интересовали компьютеры. Еще до школы я гонял на машинке «Микроша», у которой вместо дисковода был кассетный магнитофон, а при загрузке новых игр звучал леденящий душу саундтрек, как у Spectrum. Потом отец достал у кого-то с рук более продвинутую игрушку с дисководом на 5,25 дюйма в фанерном исполнении =) Ну а моим настоящим первым PC стал Celeron 600 (он же Кселерон, Суслерон, а временами даже Сельдерей).

Cвою карьеру в IT я начал в далеком 2011 году в компании GDC, которая входила в группу ICL и работала с Fujitsu, оказывая сервис премиум-класса для зарубежных заказчиков. И как часто бывает, только вчера я защитил диплом, а сегодня у меня в активе уже супруга, двое детей, закрытая ипотека и 12 лет успешного опыта на ведущих должностях по обеспечению поддержки Windows-инфраструктуры у самых крупных и требовательных заказчиков. За это время было много всего, довелось даже рубить лес на 100+ доменов, 250+ контроллеров и 100+ тыс. активных пользователей. Было много и линукса, но специализировался я все же на винде, а тут вдруг санкции, импортозамещение и майкрософт уже не торт.

В этот момент ко мне постучались ребята из Астры и предложили войти в состав большой команды на два десятка профессионалов из мира Linux и Windows, которых собрали для исследования лучших практик замещения хорошо известных мне технологий. В этой команде мне отводилась роль Нео - я должен был загрузить в себя результаты передовых исследований, переосмыслить их с учетом своего опыта сопровождения Windows в кровавом энтерпрайзе, и сделать The Matrix Revolutions написанием открытого курса для таких же парней, как и я сам. Серьезно рассмотрев это предложение, я немедленно согласился =)

В итоге это решение стоило мне полтора года жизни, на протяжении которых мы каждый день сражались с различными ограничениями, разбирались, как на самом деле работают технологии, которыми привыкли пользоваться в Windows, и шаг за шагом совершали необходимые открытия, которые сохранят сотни или даже тысячи человеко-часов на местах. Понимал ли я на самом деле, на что согласился, когда пошел за этим белым кроликом? Не очень. Буду ли я жалеть о своем решении? Никогда! У нас получился отличный экшн с классическим хэппи эндом!

Желаю вам приятного лампового прочтения =)

Имя нам легион

Как Windows-админу выжить в эпоху замещения

Задачу мы видели в разработке курса, с помощью которого можно будет быстро переобучать тысячи Windows-администраторов (довольно амбициозно, не правда ли?) на стек Astra Linux и ALD Pro. Зачем так много, спросите вы? Ответ довольно прост.

Еще пять лет назад, когда проектов импортозамещения было сравнительно немного, компании могли набирать сильные команды Linux-инженеров извне, конкурируя с другими участниками рынка за счет повышения заработных плат. Но в масштабах всей страны, когда организации тысячами переходят на российские продукты, такая стратегия уже не работает. Последнее время и так наблюдалось стабильное повышение спроса на линуксоидов, а за прошедшие 1.5 года, пока мы работали над курсом, количество публикуемых вакансий выросло еще как минимум на 60+ процентов. Поэтому указанная проблема требовала системного решения — только переподготовка, только хардкор.

Основной фишкой курса должен был стать необычный подход к объяснению материала. Идея была в том, чтобы не учить Линуксу с нуля, как будто наша целевая аудитория - это неофиты, которым только вчера выдали их первую в жизни корпоративную кружку. Мы решили оттолкнуться от того теоретического и практического базиса, который уже есть у матерых Windows-админов. Например, зачем рассказывать про какие-то абстрактные идентификаторы UID/GID в сферическом вакууме, если намного эффективнее будет сравнить их с идентификаторами безопасности SID из Windows, подчеркивая их общие особенности и делая акценты на различиях — букв будет, конечно, побольше, но восприниматься материал станет намного легче.

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

Курс дает фундаментальные понятия платформы Linux, качественно структурирован, снабжен схемами и описаниями механик. Материалы сопровождаются сравнениями и отсылками к OS/AD Microsoft, что помогает администраторам Microsoft адаптироваться к новой для себя платформе.

Спасибо организаторам и преподавателям за глубокую проработку курса и увлекательную подачу материала.

– Намазов Руслан,
ООО «Программное Ателье»

Кстати, мы действительно старались избегать сложных академических формулировок и рассказывали о технологиях так, как если бы этот диалог состоялся с коллегами в курилке. Тринадцатый сезон TBBT не обещаем, но местами будет действительно весело =)

Закон Парето 20/80

Как не грузить лишней информацией

Оглядываясь назад, оказалось, что за 12 лет потрясающей карьеры не все дни были одинаково потрясающими, и иногда приходилось лезть в такие дебри и придумывать настолько откровенные костыли оригинальные решения, о которых не то что рассказывать, а лучше даже не вспоминать. В общем, чтобы не вываливать на слушателя весь свой богатый внутренний мир, начать нужно было с того, чтобы по принципу «двадцать на восемьдесят» отобрать 20% материала, который смог бы обеспечить 80% результата, или как говорят университетские препы, набросать тематическое планирование.

Я не стал изобретать велосипед, поэтому проштудировал мировые бестселлеры по администрированию Windows Server и скомпилировал из них обобщенный список, из которого затем, опираясь на свой опыт, добавил лишнее и убрал недостающее. Но эксперимент был бы неполным, если бы я не проделал то же самое с материалами по Linux, и тут у меня появились первые сомнения... С чего бы вдруг архивированию уделяют столько внимания? Откуда такой холивар про пакетные менеджеры? Мы провели в команде серию встреч по обсуждению этих вопросов, и продвинутые линуксоиды подтвердили, что эта кроличья нора на самом деле глубже, чем кажется на первый взгляд. Вот черт, кто бы мог подумать, что айноды так похожи на записи MFT, но о том, что они могут заканчиваться, нужно подумать еще до форматирования диска.

В итоге после обсуждения планирования с Linux-экспертами список тем немножко набрал в весе, но если присмотреться к нему повнимательнее, то станет очевидно, что там определенно нет ничего лишнего! Курс состоит из двух частей и включает 32 модуля, которые рассчитаны на 64 часа работы с учебным материалом, и еще столько же времени хорошо бы уделить выполнению практических заданий. Первая часть курса посвящена администрированию автономных рабочих мест, которые используются вне домена, потому будет полезна абсолютно всем, кто участвует в проектах импортозамещения. Однако темы модулей подобраны таким образом, чтобы охватить обязательный минимум, необходимый для обслуживания рабочих мест в составе домена, поэтому успешное освоение первых двадцати модулей является обязательным условием для изучения материалов второй части.

Спойлер первой части

Начали мы с демонстрации принципиальных отличий Linux от Windows, чтобы помочь матерым виндузятникам структурировать свой первый опыт общения с этой системой. Мы опросили десятки инженеров и отразили все самые ключевые сдвиги парадигмы, которые нужно принять как можно раньше, чтобы погружение в мир линукса прошло максимально безболезненно эффективно. Например, если посчитать время, которое бывшие Windows-админы потратили на отладку проблем, связанных с регистром символов в именах файлов, то мы получим настолько большое значение, что эту особенность Linux можно будет по праву назвать самым популярным тайм-киллером.

Первой темой было введение в операционные системы. С полезностью исторической справки можно, конечно, поспорить, но мы посчитали крайне важным отразить наши представления о том, как появился Linux, чтобы не возникало иллюзий, что просто много хороших людей самоорганизовались и построили звездолет, на котором улетели к Альфа Центавре. Правильное понимание причин и следствий помогает снять сразу целое множество вопросов. Далее была установка системы, работа с графикой и командной строкой – это все понятно, а вот модуль по работе со справкой нас попросили добавить коллеги из технической поддержки, чтобы к ним было поменьше глупых вопросов простых обращений, и чтобы наши пользователи всегда знали, как можно быстро вспомнить то, что не знал, а потом ещё и забыл.

При написании учебных модулей я использовал не только книги, рекомендованные ведущими экспертами, но и собственные наработки компании, а также результаты передовых исследований нашей рабочей группы. Все непонятные моменты мы разбирали внутри команды, чтобы я мог их правильно отразить в учебных материалах, что значительно повысило их ценность даже для знающих линуксоидов. Например, материалов по настройке прав доступа в Linux много, но оказалось, что практически нигде не объясняется, как на самом деле работает этот алгоритм. Чтобы оценить масштаб бедствия, спросите у ваших знакомых инженеров, сможет ли владелец файла Меровинген прочитать его содержимое, если Мастер ключей установит на файл права 004 (спойлер: не сможет). К счастью, в нашей команде были знающие люди, поэтому, если вы всегда хотели узнать, как работают права доступа в Linux, но не знали, у кого спросить, то обязательно почитайте про UGO и посмотрите диаграммы алгоритмов. Материалы курса просто нашпигованы подобными инсайтами, чем объясняются такие отзывы:

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

Поразило то, что он оказался очень полезным и специалисту, который до этого времени работал только с Windows и не был знаком с Linux, и второму нашему сотруднику, который уже лет 20 как работает преимущественно с Linux и очень комфортно чувствует себя в этой среде. На удивление, он тоже нашел для себя много интересных и полезных моментов в этом курсе.

Огромное спасибо вашей команде за организацию этого обучения. Надеемся, что это не последний курс и не последнее обучение, а только начало нового интересного направления в экосистеме Астры.

– Софья К.,
Директор по развитию Origin Security

Очень концептуальным получился модуль про управление программным обеспечением в Linux и пакетные менеджеры, без информации которого инженеры Windows оказываются совершенно беззащитными в мире Linux и могут окирпичить свою инфраструктуру просто установкой неправильных обновлений. Понимание того, что все эти проблемы с зависимостями являются всего лишь "обратной стороной медали" повторного использования кода, которое в мире открытого ПО доведено до абсолюта, сильно упростит жизнь, а вопрос "зачем нужны все эти репозитории?" отпадет сам по себе. По указанным причинам эта тема рекомендована к обязательному и, что не менее важно, очень вдумчивому изучению.

Не менее фундаментальным оказался модуль по сетям TCP/IP, материалы которого важны для уверенного сопровождения инфраструктуры домена, где большинство компонентов взаимодействуют между собой по компьютерной сети даже в тех случаях, когда находятся на одном хосте. К сожалению, на обывательском уровне все знают, что такое эти Интернеты, а в базовых вопросах маршрутизации ориентируются уже только два админа из десяти, и дело тут даже не в наличии или отсутствии сертификатов CCNA/MTNA, так как в стране достаточно ребят, у кого с бумажками все хорошо, а со знаниями не очень.

Вторая часть курса была нашей основной целью, ради которой все затевалось, и она посвящена в основном вопросам администрирования домена ALD Pro на базе службы каталога FreeIPA, но мы затронули и другие подсистемы продукта, такие как сервер репозиториев (Reprepro), файловый сервер (Samba), принт-сервер (CUPS), сервер аудита (syslog-ng), сервер мониторинга (Zabbix).

Спойлер по второй части

Больше всего мы гордимся материалами четвертого и пятого модулей, в которых раскрываются наиболее важные аспекты работы службы каталога. В четвертом модуле мы объясняем, как устроен контроллер домена FreeIPA в целом и каждый из его компонентов – LDAP, DNS, Kerberos – в отдельности. В пятом модуле мы даем исчерпывающий ответ на вопрос, что такое служба SSSD и как именно Linux-компьютер работает в составе домена. Мы подробно рассматриваем работу ключевого протокола аутентификации Kerberos, утилит для работы с билетами и доступные журналы, что очень поможет в решении любых нештатных ситуаций.

Еще можно отметить шестой модуль, в котором мы подробно рассказываем о том, как работают групповые политики в домене, так как именно централизованное управление позволяет упростить администрирование и уменьшить дрейф настроек, что положительно сказывается на общей безопасности ИТ-инфраструктуры. Программный комплекс ALD Pro разработан на базе FreeIPA, но кроме базовых политик этой службы каталога (правил HBAC и SUDO, политик паролей и др.) в системе по аналогии с MS AD реализованы политики для управления окружением пользователей и компьютеров за счет интеграции с одной из лучших систем управления конфигурациями Salt Stack. Пожалуй, реализация групповых политик от ALD Pro является сейчас единственным решением на отечественном рынке, которое способно предоставить сопоставимый с MS AD уровень удобства, надежности и производительности.

В части групповых политик мы все-таки не уложились в один модуль и вернулись к этому вопросу в последнем (по списку, но не по значимости) модуле, в котором рассмотрели политики установки программного обеспечения и работу подсистемы репозиториев. Между тем, основная ценность последнего модуля заключается в разделе, который посвящен вопросам интеграции, ведь для того чтобы извлечь максимальную выгоду от внедрения службы каталога, вам нужно интегрировать с ней как можно больше корпоративных приложений. Это позволит сократить количество паролей, которые нужно запоминать пользователям, и упростит администрирование прав доступа. Команда ALD Pro вкладывает очень много усилий в расширение экосистемы за счет интеграций как с собственными продуктами компании, так и решениями сторонних вендоров. На данный момент доступно уже более сорока готовых, хорошо проработанных интеграций с наиболее востребованными приложениями, и этот список постоянно расширяется.

Между тем, многие интеграторы отдают предпочтение нашим усилиям по развитию сценариев гибридного развертывания с MS Active Directory. Мы подробно разобрали возможности интеграции с MS AD через механизм доверительных отношений Kerberos и возможности нашего модуля глобального каталога, который расширяет этот сценарий, позволяя использовать доверительные отношения в двустороннем режиме. Но мы обязательно дополним эту информацию материалами о том, как правильно присоединять Windows-компьютеры к домену ALD Pro (FreeIPA) и какие потрясающие возможности гибридного развертывания открываются с использованием нашего модуля синхронизации.

Разведка боем

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

Мы созванивались каждый день, но это не были механические стендапы, когда за 15 минут нужно отбарабанить о том, что сделал, делаешь и будешь делать. Наши встречи напоминали больше посиделки друзей, на которых каждый мог похвалиться успехами, поделиться сомнениями и запросить помощи у товарищей. Руководитель, конечно, следил за тем, чтобы встречи не затягивались больше часа, и у каждого оставалось достаточно времени для индивидуальной работы, но фасилитация не заключалась в банальном контроле за таймингом, и он стал для нас настоящим лидером: активно участвовал в беседах, помогал наводящими вопросами, предлагал альтернативные направления для исследований и управлял приоритетами задач, чтобы при необходимости сфокусировать в одной точке достаточное количество усилий, чтобы продвинуться в решении даже тех задач, которые изначально казались невозможными. Работать в таком режиме было крайне непросто, но это было интересно, и мы все с теплотой вспоминаем это время.

Однако, если бы мы проверяли свои наработки только на лабораторных стендах без обратной связи от инженеров с полей, то им была бы грош цена в базарный день. Поэтому мы оперативно делились своими наработками с департаментом внедрения и инженерами третьей линии поддержки, а также участвовали в отладке проблем, возникающих в продуктивных средах заказчиков. Эти активности были для нас разведкой боем, которая помогла нам получить действительно работающие рецепты и понимать их ограничения. Например, именно так нашей команде удалось выявить влияние службы winbind на автоматическое обнаружение сервисов на контроллерах домена.

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

Но в итоге руководитель убедил меня, что в тех случаях, когда речь идет не о вечном двигателе, любая задача достижима, если выделить достаточное количество ресурсов. Он предложил подключить к проведению мастер-классов всю нашу команду: каждый архитектор должен был взять по две-три наиболее близкие для себя темы, сделать вычитку материалов или даже их полную переработку, а затем провести по ним мастер-классы в соответствии с утвержденным графиком. На остальных мастер-классах архитекторы должны были присутствовать в роли ассистентов, чтобы помочь с ответами на вопросы и дополнить объяснения ведущего при необходимости. Моя же основная роль заключалась не столько в проведении закрепленных за мной мастер-классов, сколько в координации всех участников и последующей доработке материалов с учетом предложений от коллег.

Этот день я запомню надолго. Первый мастер-класс состоялся 12 февраля 2024 года, на нем присутствовало 15 участников и еще столько же ассистентов. Наши слушатели, конечно, немного удивились такому вниманию с нашей стороны, но согласились принять участие в этом эксперименте и активно помогали. Арсений Р., спасибо тебе за дельные вопросы. Иван Ч., спасибо за помощь в исправлении опечаток. Олег Ф., спасибо за найденные ошибки в тестах. Яков Ш., спасибо за дельные предложения по улучшению материалов. Ладно, буду закругляться. Ребята, если вы читаете эти строки, передаю всем вам большой респект!

Формат занятий предполагал ежедневные двухчасовые онлайн-встречи с архитектором от продуктовой команды в роли ведущего и самостоятельную работу, включающую выполнение тестов и практических заданий. Пробные мастер-классы подсветили проблемные моменты, которым нужно было уделить дополнительное внимание. В рамках пилотной группы наша команда проделала колоссальную работу по улучшению материалов, разработке презентаций и подготовке практических заданий. Порой контент претерпевал настолько большие изменения, что я переставал узнавать его и знакомился с ним по-новому, но все эти изменения пошли курсу только на пользу! В разработку этого курса мной было вложено дофига много усилий, помноженных на 18 месяцев непрерывной работы, и это не считая 10+ человеко-лет исследований, результаты которых были встроены в содержание учебных модулей, и бессчетного количества внутренних материалов, доступных ранее только на закрытых ресурсах компании.

Ошибка, которая привела нас к успеху

После завершения первого потока мы взяли небольшую передышку для доработки материалов, после чего запустили второй поток для финишной полировки контента. Мастер-классы для второго потока я проводил уже только с двумя напарниками - Ильей Б. и Эдуардом С. – но такой рабочей группы было достаточно, чтобы мы могли выделять время и на подготовку к мастер-классам, и на доработку материалов. По завершению второго потока, мы планировали уже опубликовать материалы в открытом доступе, но тут случилась ошибка, которая сделала нам нервы, но открыла большие возможности. При формировании очередной группы наше предложение стало известно слишком большому количеству технологических партнеров, и мы получили больше 500 заявок на участие в программе, но провести такое количество мастер-классов не было никакой возможности.

На самом деле мы были приятно удивлены столь большому интересу и решили не упускать такую возможность путем организации в группе Telegram массовой онлайн-переподготовки, формат которой разработали совместно с нашим департаментом обучения. Процесс был организован следующим образом: раз в два-три дня мы выкладывали очередной модуль в отдельном чате (топике) и закрепляли за ним одного из архитекторов продуктовой команды, кто отвечал на любые вопросы участников. По прошествии нескольких дней чат блокировался для комментариев, чтобы участники не откладывали ознакомление с модулем на другую жизнь в долгий ящик. Для обсуждения вопросов, не относящихся к конкретному модулю, всегда была доступен чат «Курилка» (Не забываем, что Минздрав предупреждает: курение вредит вашему здоровью).

В таком формате наш курс прошли несколько сотен человек, а каждый публикуемый файл набирал до 600 просмотров и 300 скачиваний, а более 200 человек сдали наш выпускной тест, подтверждающий высокий уровень владения технологиями. Чтобы помочь участникам сохранить мотивацию, в материалы курса встраивались пасхалки (нужно было найти секретный ключ, расшифровать архив и т.д), за разгадку которых выдавался мерч и другие приятные ништяки. А наиболее внимательные участники собрали даже целую коллекцию, вот, например, трофеи, которые настрелял Евгений С.

В настоящее время эта группа превратилась в сообщество "ALD Proфессионалы", в котором уже более 1100 участников из числа системных администраторов, архитекторов и технических пресейлов. Мы все участвуем в проектах импортозамещения и помогаем друг другу решать технически сложные вопросы в области внедрения и сопровождения доменных решений. Вступить в группу может любой желающий, мы всегда рады новым участникам. Чтобы подать заявку, достаточно перейти в группу и нажать кнопку JOIN. После принятия заявки вы сможете просматривать чаты, оставлять реакции, скачивать материалы, но для того, чтобы участвовать в беседах, вам нужно будет подтвердить минимальный уровень владения технологиями, пройдя тестирование.

Три, два, один – поехали!

Для публикации материалов в открытом доступе на первое время был выбран формат веб-сайта, и в работе с материалами мы решили придерживаться современного подхода Docs as Code, за что большой респект Эдуарду С., который был моей правой рукой на протяжении всей работы над курсом.

Подробнее о Docs as Code

В соответствии с подходом Docs as Code техническая документация создается с применением тех же инструментов, которые используются при разработке программного кода:

  • тексты пишутся в простом редакторе с использованием языков разметки reStructuredText;

  • файлы хранятся в системе контроля версий на gitflic.ru;

  • документы компилируются в целевой формат (HTLM, PDF и др.), как программный код, при помощи генератора документации Sphinx. С момента появления Sphinx в 2008 году, он был принят многими крупными проектами, такими как Python, Django, Jinja, Flask, SaltStack, FreeIPA, SSSD, Bugzilla. Скорее всего, вы уже не раз сталкивались с результатами работы этого генератора на страницах сайта readthedocs.com

Указанный подход дал нам ряд преимуществ:

  • за счет использования системы контроля версий упростился процесс совместной работы и отслеживания изменений;

  • переход на язык разметки повысил структурированность документов и позволил создавать файлы в разных целевых форматах;

  • с помощью веток системы контроля версий у нас появилась возможность сопровождать документацию сразу для нескольких версий продукта.

Вместе с тем, подход Docs as Code не является серебряной пулей, и вам нужно принять ряд существенных недостатков:

  • для внесения изменений техническим писателям нужно будет освоить навыки разметки документов на языке reStructuredText и работы с системой контроля версий, что значительно повышает порог вхождения;

  • отказ от WYSIWYG-редакторов негативно сказывается на производительности работы авторов, что особенно заметно при редактировании текстов с большим количеством таблиц и рисунков, т.к. после внесения каждой правки желательно компилировать документ, чтобы проверить, как эти правки будут отображаться в целевых форматах;

  • настройка генераторов для получения документов в целевых форматах потребует много времени у высококвалифицированных администраторов и разработчиков.

Материалы курса являются публичными, и, при желании, вы можете принять участие в их развитии.

Публикация курса состоялась 7 ноября, и мы стали свидетелями крайне высокого интереса к материалам со стороны сообщества, и этот интерес даже не думает утихать. За прошедшее время раздел посетило более 30 тысяч человек, которые суммарно просмотрели более 170 тысяч страниц. Каждый день у нас более тысячи просмотров, а значительное количество посетителей сидят на сайте часами, изучая модуль за модулем. И это не считая того, что у пользователей есть возможность скачать все материалы одним pdf-файлом. Недавно мы провели опрос в нашем сообществе и можем сказать, что если бы наш фильм был бы на кинопоиске, то набрал бы 8,5 баллов из десяти.

Вместо эпилога

Работа над этим курсом доставила мне искреннее удовольствие, и я хотел бы поблагодарить всех, кто участвовал, помогал и поддерживал нас. Спасибо Анатолию Лысову за то, что пригласил в проект и стал наставником и старшим товарищем. Спасибо Вячеславу Н. и его команде за то, что продолжает эту сложную работу и готовит обновление материалов для следующих версий продукта. Спасибо Алексею Ф. и Евгению П. за помощь в выявлении потребностей заказчиков в результатах качественных исследований компонентов используемого технологического стека и выделении ресурсов на формирование группы Research & Integration для выполнения этих работ.

Кстати, я с Эдуардом сейчас работаю над созданием открытого курса по еще одному продукту от Астры, но это уже совсем другая история, о которой мы с удовольствием расскажем в одной из следующих статей, если эта публикация соберет достаточное количество лайков =) Так что не скупитесь на свои реакции!

Теги:
Хабы:
+39
Комментарии80

Публикации

Информация

Сайт
astra.ru
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия