Передача исходного кода и порядок работ
До подписания договора заказчик корпоративной системы получает информацию о том, где хранится исходный код, какие компоненты размещаются на его сервере, у кого есть права доступа и как передаются материалы и доступы после завершения сотрудничества.
Основные тезисы: шесть пунктов
- Сервер, домены и данные находятся под вашим контролем. Портал, база данных и файлы размещаются на вашем сервере. Доступ нашей команды предоставляется на время работ; вы можете отозвать его в любой момент.
- На вашем сервере размещается готовая к работе система. Подготовка файлов для её запуска выполняется на нашей стороне.
- Исходный код хранится в отдельном закрытом репозитории GitHub для вашей организации. Репозиторий — хранилище кода и истории его изменений. Его можно перенести на российскую платформу или ваш сервер.
- Каждая правка получает номер версии и описание в журнале изменений. Журнал доступен непосредственно в портале.
- Установка обновления занимает одну-две минуты. Обновляются файлы программы, а внесённые вами данные сохраняются без изменений.
- По вашему письменному запросу мы обязуемся передать исходный код в виде архива, по акту приёма-передачи, вместе с документацией.
Правила одинаковы для корпоративного портала и CRM: оба решения построены на одной системе, адаптированной под разные задачи.
Кому принадлежит программа, которую написали для вас — статья в блоге о требованиях законодательства, различиях между правами на программу и передачей исходного кода, а также вопросах, которые следует уточнить у подрядчика до подписания договора.
Что физически лежит на вашем сервере
Все компоненты системы размещаются на одном вашем сервере: интерфейс, ядро, база данных и файлы. Работа портала не зависит от нашей инфраструктуры и не требует обращения к внешним сервисам для выполнения основных функций.
-
Интерфейс портала
В каталоге сайта размещаются файлы интерфейса, подготовленные для работы в браузере. Исходный код интерфейса и карты соответствия между исходным кодом и готовыми файлами на сервере не размещаются: для работы портала они не требуются.
-
Ядро и серверная логика
На сервере находятся ядро системы, файлы серверной логики и описание структуры базы данных. Файлы логики и структуры базы доступны в текстовом виде, поэтому вы можете самостоятельно ознакомиться с их содержимым.
-
Ваши данные
База данных и все загруженные файлы хранятся на вашем сервере. Полную копию можно выгрузить через административную панель в любой момент без нашего участия.
-
Чего на сервере нет
Инструменты подготовки приложения к запуску, пакетный менеджер и служебные зависимости для разработки, история изменений, тесты и исходный код интерфейса хранятся отдельно от рабочей системы.
Почему сборка идёт не на вашем сервере
Подготовка файлов интерфейса к запуску — сборка — выполняется отдельно от сервера, на котором работает портал. Это позволяет сократить расходы, ограничить нагрузку на рабочую систему и упростить обслуживание.
Экономия ресурсов. Сборка требует нескольких гигабайт оперативной памяти и значительных ресурсов процессора примерно на две минуты раз в неделю. Отдельная подготовка обновлений позволяет не оплачивать дополнительную мощность рабочего сервера, которая большую часть времени не используется.
Стабильность работы. Сборка не конкурирует с порталом за ресурсы сервера, поэтому её выполнение не создаёт дополнительной нагрузки во время работы сотрудников.
Воспроизводимость результата. Мы используем зафиксированные версии программных компонентов, необходимых для сборки. Это позволяет повторно подготовить ту же версию интерфейса в одинаковых условиях, а возможные проблемы проверить отдельно от работающего портала.
Безопасность. На рабочем сервере отсутствует пакетный менеджер — инструмент загрузки и установки программных компонентов из интернета. Сокращение числа инструментов разработки уменьшает возможности для несанкционированного вмешательства.
Быстрое восстановление. Готовые версии сохраняются целиком. Вернуть предыдущую версию можно примерно за минуту, без повторной подготовки файлов.
Как ведётся разработка
Для всех наших систем действует единый порядок разработки. Он позволяет установить, какая версия работает на вашем сервере, когда внесены изменения и на каком основании они выполнены.
-
Исходный код и история изменений — в закрытом репозитории
Для вашей организации создаётся отдельное хранилище исходного кода и истории изменений — репозиторий. Доступ предоставляется по ключам, публичный доступ закрыт. По умолчанию используется GitHub. При необходимости хранения кода в России репозиторий переносится на выбранную платформу или ваш сервер с сохранением порядка работы.
-
Отдельная ветка для действующей версии
Ветка репозитория, предназначенная для действующей версии, содержит код, соответствующий работающему порталу. Незавершённые изменения хранятся отдельно, поэтому можно точно определить состав установленной системы.
-
Номер версии и журнал изменений
Каждое изменение получает номер версии, например 1.26.71, и строку в журнале. Журнал доступен в портале: в нём указано, что изменилось и как это влияет на работу системы.
-
Документация обновляется вместе с кодом
В ходе разработки ведутся технический журнал, описание правил бизнес-процессов и требований к интерфейсу. Документация актуализируется по мере внесения изменений и передаётся вместе с исходным кодом.
-
Изменения структуры базы данных
Структура базы данных изменяется с помощью миграций — файлов с последовательностью изменений, применяемых при обновлении. Это обеспечивает соответствие базы данных её описанию в коде и сохраняет возможность возврата к предыдущей версии.
-
Проверка до и после обновления
Перед установкой обновления подготавливаем файлы приложения и проверяем отображение интерфейса на компьютере, планшете и телефоне. После установки проверяем работу обновлённой системы непосредственно на вашем портале.
Как изменение попадает на ваш портал
-
01
Внесение изменений
Фиксируем изменение в репозитории, присваиваем номер версии и добавляем описание в журнал изменений.
-
02
Подготовка обновления
Автоматизированный процесс подготавливает файлы интерфейса с использованием зафиксированных версий программных компонентов. Работа выполняется отдельно от вашего сервера и не расходует его ресурсы.
-
03
Установка на сервер
Готовые файлы интерфейса и обновления серверной логики передаются на ваш сервер. Перезапуск занимает несколько секунд. Каталог с вашими данными при установке не затрагивается.
-
04
Проверка результата
Проверяем номер установленной версии и работу вашего портала. Срочные исправления проходят те же этапы подготовки, установки и проверки.
Для установки обновлений на каждый сервер используется отдельный ключ доступа. Он действует только на этом сервере и отличается от личного ключа разработчика. Его можно отозвать без остановки портала.
Обсудить проект →Где что хранится и у кого доступ
Работающая система и данные находятся на вашем сервере. Рабочую копию исходного кода мы храним у себя в течение периода, когда отвечаем за разработку и сопровождение системы.
-
Под вашим контролем
Сервер, данные, файлы и учётная запись администратора портала. Полную копию базы данных можно выгрузить в любой момент без нашего участия. Домены и записи DNS доступны в личном кабинете вашего регистратора. Журнал изменений показывает, какие работы выполнены и когда.
-
На нашей стороне в период сопровождения
Закрытый репозиторий с исходным кодом и историей изменений. Отдельный ключ для установки обновлений только на ваш сервер, который можно отозвать. Служебная учётная запись в портале для обработки обращений.
-
Проверка и отзыв доступа
На сервере доступен список разрешённых ключей: по нему можно проверить, кому предоставлен доступ. Вы можете удалить наш ключ самостоятельно. Портал продолжит работать, но установка обновлений с использованием этого ключа станет недоступна.
Почему на время гарантии репозиторий ведём мы
В течение гарантийного срока изменения в рабочую версию исходного кода вносит наша команда. Это позволяет контролировать состав версии, выявлять причины ошибок и исправлять их за свой счёт в рамках гарантии. Если код параллельно изменяют несколько независимых команд, перед исправлением приходится устанавливать, какие изменения вызвали проблему и кто за них отвечает.
Ваши возможности и наши обязательства:
- Данные доступны вам постоянно. Полную копию можно выгрузить в любой момент без нашего участия.
- Журнал изменений доступен для просмотра: в нём указано, что выполнено и когда.
- Документация ведётся и обновляется в ходе работы.
- По письменному запросу мы обязуемся передать вам исходный код.
- Если мы прекращаем поддержку, исходный код передаётся без дополнительных условий и оплаты. Портал продолжает работать.
Передача исходного кода: как выглядит процедура
Исходный код передаётся по письменному запросу в свободной форме. Обосновывать запрос не требуется.
С момента подписания акта приёма-передачи гарантия прекращается: после передачи мы не можем подтвердить, что установленная у вас версия соответствует версии, которую сопровождает наша команда.
Перед последующими исправлениями и доработками проводится обязательный аудит исходного кода. Он оплачивается отдельно и включает сравнение работающей системы с переданной версией. По результатам аудита определяются объём, сроки и стоимость дальнейших работ.
-
01Письменный запрос
Вы направляете запрос в свободной форме, обоснование не требуется.
-
02Подготовка архива
Формируем архив исходного кода зафиксированной версии. В акте указываем номер версии и идентификатор соответствующего состояния кода в репозитории.
-
03Передача по акту
Передаём архив по акту приёма-передачи в срок, установленный договором.
-
04Демонстрация установки
По вашему запросу проводим встречу и в вашем присутствии устанавливаем копию системы на сервер, где она ранее не была установлена.
Гарантия, поддержка и завершение сотрудничества
В течение гарантийного срока, пока сопровождение исходного кода выполняет наша команда, мы исправляем ошибки, из-за которых система работает не в соответствии с документацией и согласованными правилами бизнес-процессов. Исправления выполняются за наш счёт в сроки, установленные договором, и проходят стандартные этапы подготовки, установки и проверки.
Разработка новых функций, изменения по вашей инициативе и работы с вашей инфраструктурой согласуются и оплачиваются отдельно. Сообщить о проблеме можно через портал или по электронной почте info@businessaxis.ru. Обращение регистрируется в очереди, его статус доступен для отслеживания.
После завершения сотрудничества портал продолжает работать. Срок использования не ограничен, а система не обращается к нашим серверам для проверки права использования. Её архитектура не предусматривает возможности отключения с нашей стороны.
Мы передаём исходный код и документацию, удаляем свои ключи доступа с вашего сервера и служебные учётные записи. Вы также можете самостоятельно отозвать наш доступ. Дальнейшее сопровождение системы начнёт выполнять ваша команда.
Частые вопросы
-
01
Кому принадлежат права на программу и исходный код?
Права на систему, разработанную под ваши задачи, передаются вам на условиях договора. Хранение рабочей копии исходного кода и внесение изменений — отдельный вопрос. В течение гарантийного срока рабочую версию сопровождает наша команда: это позволяет контролировать изменения и выполнять обязательства по исправлению ошибок.
-
02
Передаёте ли вы исходный код заказчику?
Да. По письменному запросу мы обязуемся передать исходный код в виде архива, по акту приёма-передачи, вместе с документацией и инструкцией по установке системы. Обосновывать запрос не требуется. Архив содержит исходный код интерфейса, серверную логику, файлы изменений структуры базы данных, сценарии установки и настройки. Также указываются номер версии и идентификатор соответствующего состояния кода в репозитории.
-
03
Даёте ли вы доступ к репозиторию на время гарантии?
Нет. В течение гарантийного срока изменения в рабочую версию исходного кода вносит наша команда. Это позволяет выявлять причины ошибок и исправлять их за свой счёт в установленные сроки. При параллельном внесении изменений независимыми командами требуется дополнительное сравнение версий и установление причин проблемы, что затрудняет соблюдение сроков исправления.
-
04
Что происходит с гарантией после передачи исходного кода?
Гарантия прекращается с момента подписания акта приёма-передачи исходного кода, независимо от того, вносились ли в него изменения. После передачи мы не можем подтвердить, что работающая у вас система соответствует версии, которую разработала и сопровождала наша команда.
-
05
Что такое обязательный аудит кода и зачем он нужен?
Аудит кода — это сравнение работающей у вас системы с переданной версией. Мы проверяем изменения файлов, выполненные обновления структуры базы данных и её соответствие описанию в коде. После передачи исходного кода аудит обязателен перед исправлениями и новыми доработками и оплачивается отдельно. По его результатам определяются объём, сроки и стоимость дальнейших работ.
-
06
Где хранится исходный код и можно ли держать его в России?
По умолчанию исходный код хранится в отдельном закрытом репозитории GitHub для вашей организации. Доступ предоставляется по ключам. Если требуется хранение кода в России, репозиторий переносится на выбранную вами российскую платформу или ваш сервер. Порядок разработки, проверки и установки обновлений сохраняется.
-
07
Можно ли установить корпоративный портал или CRM на свой сервер?
Да. Система устанавливается на ваш сервер, где также хранятся база данных и файлы. Основные функции работают независимо от внешних сервисов. Портал не требует подтверждения права использования со стороны нашей инфраструктуры и продолжает работать при её недоступности.
-
08
Почему сборка идёт не на нашем сервере?
Подготовка файлов приложения к запуску требует нескольких гигабайт оперативной памяти и значительных ресурсов процессора примерно на две минуты раз в неделю. Выполнение этой работы отдельно позволяет не увеличивать мощность вашего сервера и не создавать дополнительную нагрузку на портал. Зафиксированные версии программных компонентов обеспечивают воспроизводимость результата. На рабочем сервере при этом отсутствует инструмент загрузки и установки компонентов из интернета — пакетный менеджер.
-
09
Кто отвечает за резервное копирование?
При запуске мы согласуем, кто выполняет резервное копирование: наша команда или ваша служба. База данных ядра хранится в одном файле. Резервные копии создаются по расписанию, а их пригодность обязательно проверяется восстановлением данных.
Нужна система, которая останется вашей вместе с кодом и данными?