Опыт работы in-house: что это такое и в чем преимущества такого опыта?
Фриланс. Это работа на нескольких заказчиков и на различных проектах. Фрилансер сам себе ищет работу на специализированных биржах, отталкиваясь от своих умений. Поэтому работа может быть весьма разнообразной.
Удаленная работа (remote job). Эт о та работа, которая выполняется дистанционно. Это может быть официальная работа в компании, а может быть и фриланс. Может быть один заказчик, а может быть несколько.
Инхаус — обычная работа в офисе.
Инхау с — что это?
Очень часто это т термин понимают дословно, то есть «in house» — значит «в доме». Поэтому думают, что инхау с — это работа из своего дома. Но это совсем не так, инхау с — это официальная работа в офисе.
Сам термин «инхау с » может относиться к разным видам деятельности, но мы рассмотрим его с точки зрения программирования, то есть как такой вид деятельности отражается на программистах.
Инхау с очень часто применяется в IT-индустрии. В основном такой вид деятельности используют крупный и средний бизнес. Но также инхау с пользуется популярностью у стартапов. Почему так происходит? Потому что инхау с обладает рядом преимуществ.
Преимущества инхау с
Когда IT-деятельность осуществляется в офисе, у этого есть ряд преимуществ:
все разработчики во влечены в рабочий процесс, так как они целый день занимаются задачами по программированию и ничем особо не отвлекаются;
Из недостатков такой модели можно выделить следующие :
иногда бывает сложно найти именно того разработчика, который нужен прямо сейчас в команду, потому что нет возможности объективно оценивать соискателей;
в инхау с зарплата специалиста редко бывает «ниже рыночной», что не скажешь про удаленных сотрудников или фрилансеров;
если нужно существенно расширить штат, то также нужно будет расширять и офис (или открывать новый), такой проблемы нет при удаленной организации труда;
Если же начинать программировани е с нуля и идти по этому пути самостоятельно в качестве инди-разработчика, то путь до опытного программиста будет длиннее, чем если поработать какое-то время инхау с в хорошей компании.
Заключение
Инхау с — это быстрый опыт, стабильность, постоянная работа, а если компания успешная, то это еще и престиж. Удаленка или фриланс — это больше свободного времени, иногда вообще больше свободы и меньше зависимости от начальства, больше свободы творчества, практически нет ограничений. Поэтому это как весы: на одной чаше — опыт и стабильность, а на другой — свобода в разных ее проявлениях. Что для вас ценнее и какая чаша весов «перевесит» — к той модели организации своей деятельности и нужно стремиться!
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Инхаус VS внешнее агентство: плюсы, минусы, рекомендации
Инхаус или внешнее рекламное агентство — с кем сотрудничать бренду? Рассмотрим плюсы и минусы перехода на инхаус.
В последние несколько лет производство рекламы инхаус стало мировым трендом. В конце 2018 года американская Ассоциация национальных рекламодателей обнаружила, что 78% ее членов имеют собственные агентства, по сравнению с 58% в 2013 году и 42% в 2008 году. С 2013 по 2018 спектр услуг, которые предоставляют инхаус-агентства, расширился: это не только креатив для традиционных и цифровых медиа, но и креативная и медийная стратегия, контент-маркетинг, аналитика данных и SMM.
Многие ведущие международные бренды, такие как Mastercard, L’Oréal, Getty Images, Revlon разработали собственные инхаус-агентства. Некоторые из них работают по гибридным моделям, когда часть рекламных работ производится внутри, часть отдается на аутсорс, а другие представляют собой диджитал-агентства полного спектра.
В целом, согласно исследованию Bannerflow и Digiday, 90% брендов движутся в направлении инхаусинга. При этом большинство брендов, которые перевели маркетинговые усилия инхаус, полагают, что затраты на создание внутреннего агентства окупаются.
Крупнейший международный рекламодатель Procter&Gamble взял курс на сокращение агентских расходов с 2014 года
У Unilever также есть собственное инхаус-агентство под названием U-studio
Unilever запустил его в 2016 году, и сейчас оно представлено в более чем 20 странах. Уже через год после запуска расходы компании на рекламные агентства сократилисьна 17%. В 2018 году, благодаря работе агентства, компании удалось сэкономитьна маркетинге € 500 млн.
Участники исследования Bannerflow и Digiday отмечают следующие преимущества инхаус-агентств:
НАШ ОПЫТ ГОВОРИТ, ЧТО СПИСОК ПРЕИМУЩЕСТВ ЭТИМ НЕ ОГРАНИЧИВАЕТСЯ. ВОТ САМЫЕ ВАЖНЫЕ ИЗ НИХ.
В 2018 году 87% респондентов были обеспокоены уровнем финансовой прозрачности во внешних агентствах, в 2019 это оставалось главной проблемой для 56% брендов. В инхаус-команде эта проблема сходит на нет.
Контролировать всю деятельность внутренней команды (а значит, стратегию и расходы на маркетинговые активности) проще, чем внешнего агентства, особенно если подрядчиков несколько.
Сотрудники инхаус-агентства больше вовлечены во все процессы, они лучше понимают продукт, ценности, культуру и философию бренда, чем внешние консультанты.
Отсутствие конфликта интересов
Внешнее агентство может иметь отношения с одним из конкурентов бренда, и это может быть еще одной головной болью для компании.
Сотрудники внешнего агентства обычно работают на нескольких проектах, они распределяют время между несколькими клиентами. Штатные же сотрудники все силы посвящают одному проекту — следовательно, производительность в инхаус-командах выше. К тому же сотрудники агентства работают бок о бок с другими членами команды и всегда могут лично обсудить проблемы или идеи — это ускоряет процессы.
Список преимуществ выше выглядит вдохновляюще, но на деле при внедрении in-house маркетинга бизнес сталкивается с трудностями. В частности, только 31% брендов, внедривших инхаус-маркетинг, утверждают, что это было несложно; 44% полагают, что это «было не без вызовов, но стоило того», а для 25% это стало настоящим испытанием.
ПОЭТОМУ СЛЕДУЕТ УЧЕСТЬ ПРОБЛЕМЫ, КОТОРЫЕ ВОЗНИКАЮТ ПРИ ПОСТРОЕНИИ ВНУТРЕННЕЙ КОМАНДЫ.
За месяцы самоизоляции и карантина мир изменился. И от брендов, и от агентств требуется максимум усилий, чтобы остаться на плаву. Американская Ассоциация национальных рекламодателей уже опросила бренды о том, как продвигается работа с креативными сообщениями в период пандемии — ожидаемо, 92% сказали, что поменяли работу над креативами. Но интересно, что 55% опрошенных брендов назвали свои инхаус-агентства самым важным ресурсом для производства новых креативных активов — и лишь 26% назвали так внешние агентства.
КАКИЕ ПРЕИМУЩЕСТВА ДЛЯ КОМПАНИЙ ДАЮТ ИНХАУС-АГЕНТСТВА ВО ВРЕМЯ КРИЗИСА?
Тенденция уводить маркетинговую деятельность внутрь компании набирает обороты и не собирается сворачиваться из-за кризиса. Но решение о создании инхаус-агентств должно приниматься взвешенно. Чтобы такое агентство работало эффективно, нужны профессиональная команда, понятная экономика и настроенные процессы.
Если вы решите организовать собственное инхаус-агентство, помните:
«Создавая СБЕР Маркетинг как инхаус агентство полного цикла, мы ориентировались на лучшие глобальные практики. Для нас было важно сэкономить деньги Сбербанка, повысить эффективность наших маркетинговых инвестиций, но главное — это, конечно, сохранять внутри группы ключевую экспертизу для цифрового бизнеса в современных условиях — в маркетинге, в управлении привлечением клиентов и цифровыми продажами через performance, в креативе, который определяет лицо бренда. Мы увидели существенный эффект уже в первые полгода работы, получив в performance результат на 20% лучше амбициозного плана при реализации 80% бюджета. А ведь мы поставили высокие цели по KPIs и снизили стоимость контракта. Я считаю, что сегодня строить свой in-house marketing hub — правильная кризисная стратегия, которая даст плоды в следующие 2−3 года. СБЕР Маркетинг прошёл этот путь и начал работать на внешних клиентов как рыночное агенство. Теперь развитие in-house услуг один из сервисов, который мы предоставляем клиентам».
«Мы — рыночное агентство со всеми преимуществами инхаус-агентства, поскольку наш учредитель — банк. У нас есть специализированные подразделения внутри, которые ориентированы на задачи банка и Экосистемы, а есть подразделения, ориентированные на внешний рынок. Такая модель позволяет задействовать все преимущества инхауса и в то же время успешно работать на внешнем рынке».
Если вы хотите создать свое инхаус-агентство — напишите нам
Мы поможем подобрать специалистов и наладить процессы так, чтобы вы почувствовали все преимущества инхаус-команд и не столкнулись с их недостатками.
Финансовая сфера
Инхаус vs аутсорсинг: как финтех развивает ДБО
Банковская сфера движется к цифровизации, повышению качества и ускорению обслуживания с помощью IT-решений. При этом классические банки рискуют уступить позиции более гибким финансово-технологическим — финтех-компаниям. В перспективе, согласно прогнозу Bain&Company, к 2020 году до 30% прибыли перетечет от традиционных банков в финтех-сектор. Как не допустить устаревания банковских продуктов и чем может помочь аутсорсер?
Генеральный директор SimbirSoft
Инхаус или аутсорсинг — какой путь лучше?
На встречах с нашими партнерами мы видим разные подходы, зачастую радикальные: например, только инхаус или только аутсорсинг. Каждый бизнес стремится найти идеальную формулу, узнать, как правильно организовать разработку, когда следует привлекать аутсорсеров.
Ведущие банки предпочитают самостоятельно разрабатывать программное обеспечение, практически создавая IT-компанию внутри своей структуры — так называемую инхаус-команду. Лидеры отрасли, такие как Сбербанк, «Тинькофф», Альфа-Банк и другие, развивают свои финтех-проекты, дистанционное банковское обслуживание (ДБО), мобильные приложения. В банковских инхаус-командах работают тысячи разработчиков. Гиганты обращаются к аутсорсингу с частными задачами: например, при необходимости ускорить релиз — когда продукт оказывает непосредственное влияние на продажи, на этапе активного маркетинга или при продвижении на высококонкурентном рынке.
Бизнес второго и третьего эшелонов больше рассчитывает на инхаус. Это удобно, если команда невелика, имеет всего один продукт и занимается только его поддержкой. У работы инхаус-команды есть свои особенности.
• Заказчик, как правило, ожидает, что инхаус-разработка обойдется дешевле, а специалисты с учетом привычных, устоявшихся условий будут готовы работать за меньшие деньги. В идеальных условиях экономия на инхаус-разработке возможна, но если на проекте возникли ошибки, то их исправление собственными силами обходится дороже, чем аутсорсинг. При.
Вечный спор: фрилансер, агентство или инхаус-команда?
Любое digital-агентство рано или поздно напишет статью о выборе между подрядчиком и инхаус-командой. Мы решили поддержать эту славную традицию и обозначить свое мнение. Отойдем от традиционных тезисов, что отдел в штате – это дорого, все фрилансеры безответственные, а единственный верный вариант – обратиться в агентство. Каждый случай индивидуален, и нужно исходить из потребностей и бюджета.
Фрилансеры
Главные конкуренты digital-агентств и студий. Пока взрослые пугают детей страшилками, агентства пугают клиентов фрилансерами – закажете контент, а горе-специалист исчезнет с оплатой или сделает плохо. Но проблема в том, что сделать плохо может даже топовая студия, которой заплатят пару миллионов рублей, или собственный штат маркетологов.
Фрилансеры постоянно в поиске клиентов. Они публикуют объявления в социальных сетях, на биржах, в телеграм-каналах и в чатах. Большинство фрилансеров – голодные до заказов, поэтому сами выйдут на вас. Расскажите, какая услуга нужна, и готовьтесь выбирать. Есть отдельная прослойка специалистов с прокаченным личным брендом и хорошей репутацией, к которым приходят по сарафанному радио. Им уже не нужно самостоятельно искать заказчиков и браться за первый попавшийся проект.
Плюсы
+ Нет посредников и дополнительных звеньев в цепи заказчик-исполнитель. Вы находите фрилансера или он откликается на объявление, договариваетесь о сотрудничестве и сразу начинаете работу. В этом диалоге нет места менеджерам по продажам, аккаунт- и проджект-менеджерам. Вы передаете пожелания напрямую исполнителю и обсуждаете задачу только с ним, минуя третьих лиц.
+ Удобно, если вы ищите подрядчика на небольшую задачу – разовую или постоянную. Например, создание баннера или написание 20 постов в месяц для аккаунта ногтевой студии. Крупные и сложные задачи лучше доверять команде, где распределены роли и у каждого своя зона ответственности. Один фрилансер не проведет маркетинговое исследование и не возьмет на себя продакшн рекламного ролика под ключ.
+ Нет дополнительных затрат, как с агентствами и собственным штатом. Вы работаете напрямую с исполнителем, соответственно, не оплачиваете комиссию за услуги. Также вы не тратите бюджет на зарплату, больничные, отпускные, декретные и не организуете рабочие места. Если сами займетесь поиском фрилансера, сэкономите еще и на HR.
Минусы
— Придется взять на себя юридическую сторону вопроса. Некоторые заказчики не хотят платить страховые взносы и налоги, поэтому отмахиваются от договоров. Но стоит исполнителю исчезнуть с деньгами, и они меняют точку зрения. Фрилансер может быть оформлен как самозанятый или ИП, но это необязательно. Если хотите обезопасить себя, заключайте договор подряда (ст. 702 ГК РФ) или возмездного оказания услуги (ст. 779 ГК РФ). Первый вариант подойдет, если результат работы овеществлен (например, вам сделали сайт). Второй – если нет овеществленного результата (например, вы прошли курсы по созданию сайтов).
— Человеческий фактор. Если фрилансер заболеет, внезапно уйдет в отпуск и работа застопорится, это станет вашей проблемой. Решать ее также придется вам: ждать или искать другого исполнителя.
Агентства
Digital-агентства отличаются прежде всего масштабом – от трех SMM-менеджеров, которые объединились в команду, до компаний, работающих с гигантами уровня Nike и IKEA. От масштаба зависит качество сервиса и, конечно же, цена за услуги. Небольшие студии, работающие с парикмахерскими за углом и ларьками шаурмы, сделают дешево и без лишних расшаркиваний перед клиентом. Студиям сегмента премиум придется отдать космическую сумму, которую не потянет малый и средний бизнес. Помимо услуги, вы заплатите за бренд и репутацию.
Что касается скиллов персонала, здесь все не так очевидно. Дизайнер из провинциального агентства может сделать за 10 тыс. рублей логотип, как в студии Артемия Лебедева. Качественный результат возможен и за небольшой ценник, нужно только найти подходящего подрядчика.
Для сравнения мы возьмем средние агентства, которые занимают основную часть рынка.
Плюсы
+ В агентстве найдется сотрудник практически на любую задачу, будь то SEO, SERM или SMM. Не нужно искать дополнительного подрядчика, если захотите попробовать новый способ продвижения. Агентство сразу обозначит, какой способ будет эффективен для вашей компании. Тогда не придется тратить деньги на провальные идеи.
+ Вся головная боль по административным вопросам переходит подрядчику. На ваш проект не хватает ресурсов? Агентство придумает, как решить вопрос: переработками персонала, перераспределением нагрузки, наймом или привлечением внештатных сотрудников. Специалист, который работает с проектом, уходит в отпуск? Агентство найдет замену или поставит ему задачу сдать часть проекта заранее.
+ Условия сотрудничества указаны в договоре. И заказчик, и подрядчик по умолчанию защищены. В идеальном мире, где обе стороны честны друг с другом и заинтересованы в результате, договор поможет отрегулировать спорные моменты. В реальном мире договор может быть отпиской для заказчика или кабалой для подрядчика, поэтому нужно внимательно ознакомиться с ним и указать на недостающие или лишние пункты.
Минусы
— Нет так называемого индивидуального подхода и погружения в продукт. Агентства предлагают стандартные решения без свежих идей, новаторства и креатива. Сотрудники делают жизнеспособные сайты и выполняют контент-планы, у них по десять задач от разных клиентов в день и нет времени, чтобы погружаться с головой именно в ваш проект. Такой минус не будет проблемой, если у вас четкие и понятные цели – оформить профиль в Instagram или настроить контекстную рекламу. Если задача подразумевает разработку концепции, работу со смыслами, сложный продакшн – найдите другой вариант.
— Между заказчиком и исполнителем всегда есть посредники: менеджеры по продажам, аккаунт- или проджект-менеджеры. Нужно грамотно выстроить коммуникацию, чтобы посредник передавал пожелания и правки заказчика сразу и в точности.
Инхаус-команды
Инхаус-маркетинг стал трендом во время пандемии, и, возможно, этот тренд останется с нами надолго. Журнал Digiday выпустил статью The state of in-housing 2021, в которой собрал мнения более 200 европейских маркетологов. 64% опрошенных утверждают, что маркетинговый отдел в их компании расширился в 2020 году. 59% уверены, что инхаус повышает прозрачность процессов, а 58% говорит об уменьшении трат на подрядчиков. На российском рынке похожая тенденция: бизнес все чаще доверяет маркетинг собственной команде. При этом владельцы исходят из разных причин – недоверие к подрядчикам, негативный опыт, финансовая выгода и пр.
Плюсы
+ Сила инхаус-команды – в знании внутренней кухни и продукта. Штатные специалисты понимают его сильные, слабые стороны и всегда в курсе процессов, происходящих в компании. Их не нужно погружать в проект, как фрилансера или агентство.
+ Инхаус гарантирует мгновенную реакцию на любые изменения. Взаимодействие внутри команды не предполагает кучи согласований, как в работе с подрядчиками. Ситуативный маркетинг лучше получается в инхаус-командах, когда сотрудники могут быстро откликнуться на инфоповод и придумать креатив.
+ Иллюзия контроля и дисциплины. Некоторым владельцам компаний спокойнее, когда отдел маркетинга находится под боком. Кажется, будто свои сотрудники ошибаются меньше, чем подрядчики. При необходимости с ними проще отрегулировать ситуацию: лишить премии или, наоборот, увеличить зарплату ценному специалисту.
Минусы
— При выборе собственного отдела маркетинга появляется список затрат: организация рабочего места, наем сотрудников, зарплаты, больничные, отпуска и дополнительные плюшки для повышения мотивации. Такие затраты окупятся, если в компании много потоковых задач, которые проще выполнять инхаус, чем передавать подрядчикам.
— Сложно охватить разные способы продвижения, если у вас не крупный бизнес. В идеальном мире один сотрудник отвечает за свое направление. В реальном – средний интернет-маркетолог умеет вести соцсети, несколько раз настраивал контекстную рекламу и что-то слышал про SEO. Поэтому если вы соберете инхаус-команду из многостаночников, это приведет к средним результатам. Плюс – взаимозаменяемость и экономия, минус – один человек не может одинаково хорошо разбираться во всех направлениях.
Кто сделает качественно?
Нет однозначного ответа, потому что все зависит от конкретного исполнителя, его скиллов и ответственности.
Фрилансер может оказаться школьником, который подрабатывает вместо домашки по алгебре, а может – профессионалом с крутыми кейсами.
Агентство может оказаться предприимчивой конторой, которая отдает задачи новичкам с биржи, а может – компанией с высоким уровнем экспертизы.
Собственный отдел маркетинга может оказаться кучкой бездельников, отсиживающих часы за зарплату, а может – сильной и слаженной командой.
Кто сделает выгодно?
Нет однозначного ответа, потому что одну и ту же задачу разные фрилансеры, агентства и инхаус-команды выполнят за разный ценник.
Кто может накосячить?
Кто угодно: и фрилансер с биржи, которому заплатили 500 рублей, и агентство с миллионным контрактом. Вопрос только в последствиях и способе устранения. С фрилансером, который завалил проект, вы навряд ли не встретитесь в суде. С агентством – вполне вероятно.
Как тогда выбирать между фрилансером, агентством и отделом маркетинга?
Определите пул задач для исполнителей. Например, создание контента для блога компании, ведение соцсетей и продвижение в поисковиках.
Проанализируйте, что уже делается в этом направлении. Возможно, не придется начинать с нуля.
Определите объем задач, распределите на три группы: мелкие и будут быстро выполнены, проектные и на них требуется примерно пара месяцев или ежедневные.
Решите, сколько денег готовы потратить.
Избавьтесь от стереотипов и оценивайте варианты с позиции критического мышления. У каждого варианта есть плюсы и минусы, нет гарантий, что выбранный сработает на 100%.
Будьте гибкими и помните об альтернативах. Модели «инхаус + агентство», «инхаус + фрилансер», «агентство + фрилансер» могут быть работоспособными, если наладить коммуникацию и четко разделить зоны ответственности.
Как с помощью DevOps построить полноценную inhouse-разработку — опыт ВТБ
Практики DevOps работают. Мы убедились в этом сами, когда сократили время установки релизов в 10 раз. В системе FIS Profile, которую мы используем в ВТБ, установка теперь занимает не 90 минут, а 10. Время сборки релиза снизилось с двух недель до двух дней. Число постоянных дефектов внедрения при этом упало почти до минимума. Чтобы уйти от «ручного труда» и устранить зависимость от вендора, нам пришлось пройти через работу с костылями и найти неожиданные решения. Под катом — подробная история о том, как мы построили полноценную внутреннюю разработку.

Пролог: DevOps — это философия
За минувший год с небольшим мы провели немалую работу по организации внутренней разработки и внедрения практик DevOps в ВТБ:
Поначалу алгоритм реализации казался простым и понятным:
Казалось бы, вполне себе энергоэффективный путь к требуемому результату: вот DevOps, вот метрики производительности команды, вот набранная экспертиза… Но на практике мы получили очередное подтверждение того, что DevOps — это все-таки про философию, а не «прикрутить к процессу gitlab, ansible, nexus и далее по списку».
В очередной раз проанализировав план действий, мы поняли, что строим внутри себя некий аутсорс вендора. Поэтому в описанный выше алгоритм добавили реинжиниринг процессов, а также наработку экспертизы по всему маршруту разработки для достижения ведущей роли в этом процессе. Не самый простой вариант, но таков путь идеологически правильной разработки.
С чего начинается inhouse-разработка
Работать предстояло с далеко не самой дружелюбной системой. Архитектурно она представляла собой одну большую нереляционную СУБД, состояла из множества отдельных исполняемых объектов (скриптов, процедур, батчей и т. д.), которые вызывались по необходимости, и работала по принципу черного ящика: получает запрос — выдает ответ. Среди других сложностей стоит отметить:
Миграция репозитория и автотесты
Первая задача DevOps — репозиторий. О предоставлении доступа договорились быстро, но нужно было выполнить миграцию из текущего SVN с одной trunk-ветвью в целевой для нас Git с переходом на модель из нескольких ветвей и проработкой Git Flow. А еще у нас 2 команды со своей инфраструктурой плюс часть команды вендора за границей. Пришлось жить с двумя Git’ами и обеспечить синхронизацию. В такой ситуации это было меньшее из зол.
Миграция репозитория неоднократно откладывалась, выполнили ее только к апрелю не без помощи коллег из фронт-линии. С Git Flow решили для начала не мудрить, остановились на классической схеме с hotfix, develop и release. От master (он же prod-like) решили отказаться. Ниже мы объясним, почему такой вариант оказался для нас оптимальным. В качестве рабочего использовали внешний репозиторий, принадлежащий вендору, единый для двух команд. Он синхронизировался с внутренним репозиторием по расписанию. Теперь с Git и Gitlab можно было заниматься автоматизацией процессов.
Вопрос автотестов решился на удивление легко — нам предоставили готовый фреймворк. С учетом особенностей системы вызов отдельной операции представлял собой понятную часть бизнес-процесса и параллельно являлся unit-тестом. Оставалось подготовить тестовые данные и задать нужный порядок вызова сценариев с оценкой результатов. По мере наполнения перечня сценариев, сформированного на основе статистики выполнения операций, критичности процессов и существующей методики регресса, начали появляться автотесты. Теперь можно было начинать заниматься построением pipeline.
Как было: модель до автоматизации
Сложившаяся модель процесса внедрения — отдельная история. Каждая доработка вручную передавалась в виде самостоятельного инкрементального установочного пакета. Далее шла ручная регистрация в Jira и ручная установка на среды. Для отдельных пакетов все выглядело понятно, но с подготовкой релиза дела обстояли сложнее.
Сборка выполнялась на уровне отдельных поставок, которые являлись самостоятельными объектами. Любое изменение — новая поставка. Помимо прочего, к 60–70 пакетам основного состава релиза добавлялось 10–15 технических — версий, полученных при добавлении или исключении чего-либо из релиза и отражении изменений прода внерелизами.
Объекты внутри поставок пересекались между собой, особенно в части исполняемого кода, который был уникален менее чем наполовину. Было множество зависимостей как от уже поставленного кода, так и от того, установка которого только планировалась.
Для получения нужной версии кода требовалось строго соблюдать порядок установки, в ходе которой объекты многократно перезаписывались физически, некоторые по 10–12 раз.
После установки партии пакетов приходилось вручную выполнять инструкции по инициализации настроечных параметров. Релиз собирал и устанавливал вендор. Состав релиза уточнялся практически до момента внедрения, что влекло за собой создание «развязочных» пакетов. В результате заметная часть поставок переезжала из релиза в релиз со своим хвостом «развязок».
Теперь понятно, что при таком подходе — сборке релизного пазла на уровне пакетов — единая master-ветвь не имела практического смысла. Установка на прод занимала от полутора до двух часов ручного труда. Хорошо, что хотя бы на уровне установщика задавался порядок обработки объектов: поля и структуры заезжали раньше, чем данные для них и процедуры. Впрочем, это работало только в рамках отдельного пакета.
Логичным результатом такого подхода были обязательные дефекты установки в виде кривых версий объектов, лишнего кода, пропущенных инструкций и неучтенных взаимовлияний объектов, которые лихорадочно устранялись после релиза.
Первые обновления: сборка по коммиту и доставка
Автоматизацию начали с передачи кода через трубу по такому маршруту:
Данный вариант запустили в июле. Трудности перехода повлекли за собой некоторое недовольство вендора и фронт-линии, но за следующий месяц нам удалось убрать все шероховатости и наладить процесс в командах. У нас появилась сборка по коммиту и доставка.
В августе удалось выполнить первую установку отдельного пакета на прод средствами нашего pipeline, а с сентября все без исключения установки отдельных внерелизных пакетов выполнялись через наше средство CD. Кроме того, нам удалось достичь доли inhouse задач в 40% состава релиза при меньшей по численности, чем у вендора, команде — это определенный успех. Оставалась самая серьезная задача — собрать и установить релиз.
Финальное решение: кумулятивные установочные пакеты
Мы прекрасно понимали, что скриптовать инструкцию вендора — так себе автоматизация, нужно было переосмыслить сам процесс. Решение лежало на поверхности — собирать кумулятивную поставку из релизной ветви со всеми объектами нужных версий.
Начали с proof of concept: собрали руками релизную поставку по составу прошедшего внедрения и выполнили ее установку на наших средах. Все получилось, концепция оказалась жизнеспособна. Далее решили вопрос со скриптованием инициализирующих настроек и включением их в коммит. Подготовили новый пакет и проверили его уже на средах тестирования в рамках обновления контура. Установка была успешной, хоть и с обширным рядом замечаний от команды внедрения. Но главное, что нам дали добро на выход в продуктив в ноябрьском релизе с нашей сборкой.
Сборщик установочного пакета написали свой, справились за неделю. Потом пришлось дорабатывать установщик из core-функциональности системы, благо она open-source. После ряда проверок и доработок результат признали успешным. Тем временем оформился состав релиза, для корректной установки которого пришлось выравнивать тестовый контур с продуктивом, написали для этого отдельный скрипт.
Естественно, к первой установке было много замечаний, но в целом код «заехал». А уже примерно с третьей установки все стало неплохо смотреться. Контроль состава и версионность объектов отслеживали отдельно в ручном режиме, что на данном этапе было вполне оправданно.
Дополнительная сложность заключалась в большом количестве внерелизов, которые приходилось учитывать. Но с Prod-like ветвью и Rebase задача стала прозрачной.
С первого раза, быстро и без ошибок
К моменту релиза мы подошли с оптимистичным настроем и более чем десятком успешных установок на разные контуры. Но буквально за сутки до срока оказалось, что вендор не выполнил работы по подготовке релиза к установке принятым способом. Если по каким-то причинам наша сборка не зайдет, то релиз будет сорван. Причем нашими стараниями, что особенно неприятно. Путей для отступления у нас не было. Поэтому мы продумали альтернативные варианты, подготовили планы действий и начали установку.
Удивительно, но весь релиз, состоящий из 800 с лишним объектов, заехал корректно, с первого раза и всего за 10 минут. Целый час мы выверяли логи в поисках ошибок, но не нашли ни одной.
Весь следующий день в релизном чате царила тишина: никаких проблем внедрения, кривых версий или «левого» кода. Даже как-то неловко было. Позже вылезли отдельные замечания, но на фоне других систем и предыдущего опыта их количество и приоритетность были заметно ниже.
Дополнительным эффектом от кумулятива оказалось повышение качества сборки и тестирования. За счет многократных установок полного релиза своевременно выявлялись дефекты сборки и ошибки развертывания. Тестирование в полных релизных конфигурациях позволило дополнительно выявлять дефекты взаимовлияния объектов, которые не проявлялись при инкрементальных установках. Это определенно был успех, особенно на фоне нашего вклада в релиз на уровне 57%.
Итоги и выводы
Менее чем за год нам удалось:





