Необходима консультация по архитектуре системы, подробное объяснение как это всё реализовать. Ваши предложения и идеи. Обосновать выбор технологий.
Опишу сейчас вкратце проект, подробности потом.
Есть приложение на Symfony. Необходимо разработать приложение-агент, которое будет установлено на сервере клиента и будет взаимодействовать с главным приложением. Весь функционал агента уже реализован и работает с сервера, но нужно чтобы часть функционала работала с агента. Поэтому есть смысл сделать агента тоже на Symfony. Это будет подобное приложение, только усечённое. Однако, приложение Symfony тяжело развёртывать и сложно скрыть исходный код.
Требования к агенту:
- OS Linux
- Простая процедура развёртывания на сервере клиента одной командой
- Клиент не должен видеть исходный код приложения
- Общение с сервером через VPN
- Синхронизация БД сущностей с сервера
- Передача собранных показаний и статистики на сервер
- Обновление агента
Основные вопросы на которые надо ответить:
- Как сделать скрытие исхо...
Видеть полную информацию и оставлять заявки могут только авторизованные пользователи.
Заказчик ищет консультацию по архитектуре системы для разработки приложения-агента, которое будет установлено на сервере клиента и взаимодействовать с основным приложением на Symfony. Агент должен иметь простую процедуру развертывания, скрывать исходный код, работать на Linux, обеспечивать безопасное общение через VPN, синхронизировать базу данных с сервером и передавать данные. Основные вопросы касаются методов скрытия кода, упрощения развертывания, обновления агента, определения адресов серверов и организации безопасной связи.
Для реализации этого задания могут потребоваться следующие навыки:
1. Опыт разработки на Symfony и понимание его архитектуры.
2. Знание технологий контейнеризации (например, Docker) для упрощения развертывания.
3. Умение работать с системами контроля версий и CI/CD для автоматизации обновлений.
4. Знание методов шифрования и защиты исходного кода.
5. Опыт работы с VPN и сетевыми протоколами для обеспечения безопасности связи.
6. Знания в области баз данных и синхронизации данных.
7. Опыт проектирования архитектуры программного обеспечения и системной интеграции.
По задаче могу разобрать архитектуру агента: развёртывание на Linux одной командой, связь с главным Symfony-приложением через VPN, синхронизацию сущностей, передачу статистики и схему обновлений. Ключевой момент: Symfony как агент плохо скрывается и тяжело обновляется, поэтому стоит сравнить вариант с урезанным Symfony в Docker и вариант с отдельным бинарным сервисом плюс API. По итогу могу дать схему компонентов, протокол обмена, модель безопасности и порядок деплоя. Для точной консультации нужен стек текущего сервера: БД, очередь, способ авторизации и что именно агент должен выполнять локально.
Вопросы элементарные слишком для того, кто написал приложение на симфони работающее.
Как скрыть исходный код? Скомпилировать в бинарник. Насколько это эффективно можно узнать на ближайшем торрент трекере.
Как сделать простое развёртывание? Никак. Любая "простота" здесь имеет ряд ограничений.
С консультацией не помогу, но если надо помочь с реализацией каких-то конкретных моментов или приложения в целом - пиши, сделаю.
Как сделать скрытие исходного кода приложения Symfony? Никак.
Как сделать простое развёртвание приложения? Никак.
Каким образом агент будет обновляться? Либо по крону у клиента, либо вручную, по требованию клиента.
Как сервер и агент будут узнавать адреса друг друга? Прописывать в конфиге клиента адрес сервера, а сервер при первом обращении клиента регистрирует у себя адрес клиента.
Каким образом будет происходить общение агента и сервера (синхронизация и т.д.). Это как вы сами сделаете. Как правило - это REST (либо RPC). Если у вас "суперсекретная система работы через мегазащищенные банковские трансферы" - тогда SOAP, там больше безопасности, хотя, при кривых руках можно и в SOAP дырок наделать.
Вообще, идея выполнять бизнес логику на клиенте - заведомо плохая. Вся бизнес логика должна выполняться на сервере. Клиент должен только "показать картинку". Например, клиент спрашивает у сервера "дай таблицу моих платежей", сервер у себя выполняет некие функции и возвращает обратно готовый список платежей клиента. И все! Не клиент делает типа SELECT * FROM payments_table WHERE client_id = 10. Это плохо и безобразно! Потому, что любопытный и любознательный клиент может переписать в вашем коде строки так SELECT * FROM payments_table. И это заставляет вас выдумывать схемы "скрытия кода". Которые не нужны в принципе, если клиент - просто показывает то, что ему дал сервер.
Вот вы писали "но нужно чтобы часть функционала работала с агента". Какая именно часть? Может вы мне скажете? Мне можно, я хороший, я умею хранить секреты и супер-главные-секреты! Тогда я смогу вам сказать вам как сделать так, чтобы это все работало на сервере. А клиент просто "смотрел картинку". А так, вообще, если хочется, поищите чтиво про "клиент-сервер". Там заумными словами иногда, но, конечно, основная мысль - сервер "знает" как это работает и выполняет код, клиент посылает запросы серверу и получает результат в виде таблиц, списков, текста, информации.
Наши сильные стороны:
? +5 лет оказываем услуги по разработке, поддержке проектов
??? +20 штатных специалистов
? Проекты с нуля и на поддержку
? Договор с организацией, как максимальная прозрачность и гарантия
Здравствуйте. Для вашей задачи я бы не открывал доступ с центрального сервера внутрь инфраструктуры клиента. Безопаснее сделать агент, который устанавливается на сервер клиента и сам ходит на центральный Symfony API по HTTPS.
Я подготовил схему: агент авторизуется по токену, забирает задания, выполняет локальный функционал и отправляет статусы/логи обратно. Такой подход проще для клиентов: не нужно пробрасывать порты, можно работать за NAT/firewall, а вся активность логируется в центральной системе.
Добрый день. Есть практический опыт в проектировании и развитии backend-систем, интеграционных контуров и серверной инфраструктуры. По вашему описанию задача решается, но я бы не рекомендовал разворачивать полноценный Symfony-стек на стороне клиента, если цель — упростить деплой, снизить требования и скрыть исходники.
Рациональнее рассмотреть агент как отдельный сервис с минимальным runtime: например, Go или Rust для бинарной поставки, либо PHP в упакованном виде через контейнер/PHAR, если критично сохранить стек. На консультации можем разобрать архитектурные варианты, схему обновлений, регистрацию агента, защищённый обмен с сервером, стратегию синхронизации данных и модель безопасности.
Со своей стороны могу предложить не абстрактную консультацию, а структурированное решение: варианты архитектуры с плюсами и минусами, рекомендации по стеку, схему деплоя одной командой, механизм auto-update, а также карту рисков по безопасности и сопровождению.
Ставка указана из расчёта 3000 руб./час.
00:56 28.05.26
Уточните, пожалуйста: 1) допускаете ли вы отдельный агент не на Symfony, если это даст простой деплой и лучшую защиту кода; 2) нужен ли offline-режим при недоступности центрального сервера; 3) какие объёмы синхронизации и частота обмена данными ожидаются; 4) допустим ли Docker на стороне клиента или нужна установка без контейнеров; 5) есть ли требования по аудиту безопасности и журналированию действий агента?
Основная специализация: Веб-разработка и Продуктовый дизайн
Здравствуйте Егор Иванов! Буду рад сотрудничеству с вами.
Успешный опыт разработки веб-приложений и SEO-оптимизации.
Стоимость и срок указан предварительно, точно после ознакомления с админкой и шаблонами веб-сайта.
Консультация по архитектуре системы
Реклама
Консультация по архитектуре системы
Необходима консультация по архитектуре системы, подробное объяснение как это всё реализовать. Ваши предложения и идеи. Обосновать выбор технологий.
Опишу сейчас вкратце проект, подробности потом.
Есть приложение на Symfony. Необходимо разработать приложение-агент, которое будет установлено на сервере клиента и будет взаимодействовать с главным приложением. Весь функционал агента уже реализован и работает с сервера, но нужно чтобы часть функционала работала с агента. Поэтому есть смысл сделать агента тоже на Symfony. Это будет подобное приложение, только усечённое. Однако, приложение Symfony тяжело развёртывать и сложно скрыть исходный код.
Требования к агенту:
- OS Linux
- Простая процедура развёртывания на сервере клиента одной командой
- Клиент не должен видеть исходный код приложения
- Общение с сервером через VPN
- Синхронизация БД сущностей с сервера
- Передача собранных показаний и статистики на сервер
- Обновление агента
Основные вопросы на которые надо ответить:
- Как сделать скрытие исхо...