• Где лучше всего искать со-основателя из области IT для моего стартапа?

    AlexDmn
    @AlexDmn Автор вопроса
    Founder
    Что мы имеем в сухом остатке после стольких ответов и переписки в комментариях?

    1. Сюда не заходят люди такого уровня, которого я ищу. Если и заходят, то редко или не обратили на мой вопрос внимания / неинтересно.
    2. В целом из 17 пользователей в этом топике, только 3-ое вели конструктивный диалог, но, к сожалению, без ответа на вопрос. Ближе всех к конкретным рекомендациям был sim3x за что ему отдельное спасибо.
    3. Основная масса комментаторов вместо ответа на вопрос (помощи) сразу начинала с неконструктивной, ни к чему не ведущей критики или еще хуже, с глобальных, очень конкретных, но ошибочных выводов, на основе обрывков информации и «тараканов у себя в голове».
    4. Этот ответ пишу для людей, которые также захотят попробовать задать подобный вопрос здесь.

    На этом все.
    Ответ написан
  • С чего начинается CI?

    akubintsev
    @akubintsev
    Опытный backend разработчик
    CI - это автоматизированная сборка проекта на основе версионного контроля и прогон тестов.

    Собственно, начинать надо с задачи реализации деплоя.
    Деплой сделать - задача нетривиальная. Есть для этого разные инструменты и универсального решения нет. Отладить процедуру деплоя нужно для сборок в CI и для продакшена/стейджа.
    Лично я для своего последнего маленького проекта для выкладки в продакшн выбрал deploybot.com - в принципе всё, что нужно есть, в том числе и хорошая интеграция с DigitalOcean.

    Что касается инструмента для CI, то из бесплатных обычно пользуются Jenkins. Я пробовал в последнем проекте PHP CI - тоже годно, но не настолько гибкий инструмент.

    Выкладку на продакшн/стейдж можно настроить по-разному. Например по коммиту в специальную ветку, по ключевым словам в коммите или вообще вручную. На прод однозначно стоит делать выкладку вручную.

    А, еще один немаловажный момент. Для успешного функционирования этого всего дела нужно внедрить версионирование схемы БД и фикстуры (для CI).

    Жизненный цикл у нас был такой. Тимлид определяет некий не большой, но и не очень маленький набор фич, которые должны попасть в новую версию приложения. Все тикеты связаны с версиями. И поэтому может случится так, что даже готовую фичу он определит в другую версию продукта.
    Каждая готовящаяся к релизу версия получает свою ветку в git и там делается мердж нужных коммитов с фичами. Каждый коммит автоматически тестируется в CI.
    Когда все фичи сделаны и коммиты слиты, то можно залить на стейдж сервер и погонять вживую версию в условиях близких к боевым. И наконец, если всё хорошо, то делается деплой на продакшн.
    Ответ написан
    Комментировать
  • С чего начинается CI?

    comm1x
    @comm1x
    Web-developer
    Для внедрения CI последовательность достаточно проста:
    1. VCS. Для начала внедрите git, не обязательно сложности с gitlab. Для 3 человек хватит и приватного репозитория на bitbucket.
    2. Приемочные тесты. Берем фреймворк для тестирования (я люблю Codeception, но их много и других), и напишите пару приемочных тестов на критические части (оплата, регистрация напр.).
    3. Юнит-тесты. Покройте юнит-тестами основные части проекта (для первой итерации хватит и 5-10% покрытия кода).
    4. Автоматизируем. Определяемся с CI, настраиваем ее, настраиваем хуки репозитория и уведомления о success/fail-билдах по почтам разработчиков.

    Коротко можно описать так: должен быть гит, и должны быть тесты.
    Теперь до непрерывного деплоя рукой подать. Скорее всего, когда вы до этого дойдете, вы уже будете примерно представлять как лучше организовать этот процесс, потому что здесь вариантов великое множество. Начиная от самописных деплой-скриптов и готовых deploy software типа Capistrano, заканчивая разверткой и подменой бэкендов и сменой docker-контейнеров.
    Ответ написан
    Комментировать