Оптимізація CI/CD
Огляд проекту
Технологічний стек:
Frontend: React
Backend: Nest.js
База даних: MongoDB (з підтримкою репліка-сету)
Використання Nx Monorepo для управління кількома фронтенд та бекенд проектами, включаючи 3 фронтенд сервіси та 1 бекенд API сервіс.
Середовище розгортання:
Redis та MongoDB розгорнуті на власних серверах, без використання хмарних сервісів.
MongoDB має бути налаштована з репліка-сетом для забезпечення коректної обробки транзакцій.
Резюме вимог
Оптимізація пайплайну та розгортання:
Налаштувати автоматизований тестовий пайплайн за допомогою GitHub Actions.
Обробляти лише побудову та розгортання змінених проектів, уникаючи зайвих інсталяцій залежностей та повторного створення образів.
Оптимізувати процес побудови Docker, використовуючи кешування та інкрементальні збірки для зменшення використання сховища та часу побудови.
Управління Docker образами та контейнерами:
Використовувати docker-compose файли для розгортання сервісів.
Розгортати лише змінені сервіси, а не весь стек, забезпечуючи найкоротший час розгортання та найменше споживання ресурсів.
Переінсталювати залежності лише при їх зміні, уникаючи повторної інсталяції при кожному розгортанні.
Вимоги до бази даних:
Розгорнути MongoDB з репліка-сетами для забезпечення високої доступності та підтримки транзакцій.
Розгорнути Redis для забезпечення конфіденційності даних та підтримки базових потреб кешування.
Оптимізація ресурсів та сховища:
Автоматично очищувати старі Docker образи та контейнери для зменшення використання сховища.
Покращити ефективність розгортання за допомогою GitHub Actions та інших інструментів автоматизації.
Цілі
Досягти інкрементальних збірок та розгортань, забезпечуючи найшвидший час розгортання та найменше споживання ресурсів.
Дата поставки: 1 день, максимум 2 дні.
Огляд проекту
Технологічний стек:
Frontend: React
Backend: Nest.js
База даних: PostgreSQL (замість MongoDB)
Використання Nx Monorepo для управління кількома фронтенд та бекенд проектами, включаючи 3 фронтенд сервіси та 1 бекенд API сервіс.
Оточення розгортання:
Redis та PostgreSQL розгорнуті на власних серверах, без використання хмарних сервісів.
PostgreSQL має бути налаштована для високої доступності та підтримки транзакцій.
Резюме вимог
Оптимізація пайплайну та розгортання:
Налаштувати автоматизований тестовий пайплайн за допомогою GitHub Actions.
Будувати та розгортати лише ті проекти, які змінилися, уникаючи зайвих встановлень залежностей та повторного створення образів.
Оптимізувати процес побудови Docker, використовуючи кешування та інкрементальні збірки для зменшення використання сховища та часу побудови.
Управління Docker образами та контейнерами:
Використовувати файли docker-compose для розгортання сервісів.
Тільки повторно розгортати ті сервіси, що змінилися, а не всю стеку, забезпечуючи найкоротший час розгортання та мінімальне споживання ресурсів.
Перевстановлювати залежності лише при їх зміні, уникаючи перевстановлення при кожному розгортанні.
Вимоги до бази даних:
Міграція з MongoDB на PostgreSQL, забезпечуючи високу доступність та підтримку транзакцій.
Розгорнути Redis для забезпечення конфіденційності даних та підтримки базових потреб кешування.
Оптимізація ресурсів та сховища:
Автоматично очищати старі Docker образи та контейнери для зменшення використання сховища.
Покращити ефективність розгортання за допомогою GitHub Actions та інших автоматизаційних інструментів.
Цілі:
Досягти інкрементальних збірок та розгортань, забезпечуючи найшвидший час розгортання та мінімальне споживання ресурсів.
Дата доставки: 2 дні, максимум 3 дні.
Project Overview
Technology Stack:
Frontend: React
Backend: Nest.js
Database: PostgreSQL (instead of MongoDB)
Using Nx Monorepo to manage multiple frontend and backend projects, including 3 frontend services and 1 backend API service.
Deployment Environment:
Redis and PostgreSQL are deployed on own servers, not using cloud services.
PostgreSQL must be configured for high availability and support for transactions.
Requirements Summary
Pipeline and Deployment Optimization:
Set up an automated testing pipeline using GitHub Actions.
Only build and deploy the projects that have changed, avoiding redundant dependency installations and image rebuilds.
Optimize Docker build process, using caching and incremental builds to reduce storage usage and build time.
Docker Image and Container Management:
Use docker-compose files to deploy services.
Only redeploy the services that have changed, not the entire stack, ensuring the shortest deployment time and lowest resource consumption.
Reinstall dependencies only when they change, avoiding reinstalling on every deployment.
Database Requirements:
Migrate from MongoDB to PostgreSQL, ensuring high availability and supporting transactions.
Deploy Redis to ensure data privacy and support basic caching needs.
Resource and Storage Optimization:
Automatically clean up old Docker images and containers to reduce storage usage.
Improve deployment efficiency using GitHub Actions and other automation tools.
Goals:
Achieve incremental builds and deployments, ensuring the fastest deployment time and the lowest resource consumption.
Delivery date: 2 day, maximum 3 days.
Результати роботи
Відгук замовника про співпрацю з Revaz G.
Оптимізація CI/CDЗавдання було виконано дуже добре. Хоча були деякі комунікаційні бар'єри, розробник був дуже терплячим.
Я настійно рекомендую співпрацю і сподіваюся знову попрацювати разом у майбутньому.
-
Переможець5 днів8860 UAHПереможець5 днів8860 UAH
Привіт Jiangzhe,
Я ретельно ознайомився з вашими детальними вимогами щодо оптимізації CI/CD-процесу для вашого монорепозиторію Nx та міграції бази даних. У вас чітке бачення ефективного та сучасного процесу розгортання.
Щоб забезпечити високоякісний і надійний результат, найкраще підходити до цього як до двох окремих, важливих проектів:
Оптимізація CI/CD-процесу
Міграція бази даних (MongoDB до PostgreSQL)
…
Завершення обох цих завдань, особливо складної міграції бази даних, у професійному стандарті протягом 2-3 днів є нереальним.
Тому я пропоную спочатку зосередитися на досягненні вашої основної мети — оптимізації CI/CD. У мене є великий досвід роботи з GitHub Actions і Docker у середовищах Nx.
Мій план щодо оптимізації CI/CD полягає в тому, щоб:
Впровадити
nx affected команд у вашому робочому процесі GitHub Actions для тестування та збірки лише тих додатків, які фактично змінилися.
Оптимізувати ваші Dockerfile для використання багатоступеневих збірок і кешування шарів, що значно зменшить час збірки та розмір образів.
Удосконалити вашу
docker-compose налаштування для повторного розгортання лише змінених сервісів.
Додати автоматизований крок очищення для видалення старих Docker-образів і контейнерів, що зекономить місце для зберігання.
Після успішної оптимізації вашого процесу розгортання я з радістю надам окрему, детальну пропозицію щодо міграції бази даних.
Оцінка (тільки для оптимізації CI/CD):
Термін: 5 днів
Ціна: 750 доларів США
Цей поетапний підхід гарантує швидке та відчутне покращення вашого життєвого циклу розробки. Я впевнений, що можу створити ефективний pipeline, який ви шукаєте.
-
2 дні13 291 UAH
1874 81 0 2 дні13 291 UAHЯ маю досвід і можу реалізувати оптимізацію розгортання.
Актуальні фриланс-проєкти в категорії Javascript та Typescript
Розробка повного стеку — Панель управління Amazon PPC (Етап 1)Потрібен full-stack розробник з досвідом роботи з Amazon API для реалізації Stage 1 внутрішнього PPC-дашборда. Проект реальний, дані живі, все готово до старту. Прототип фронтенда (5 сторінок, React + TypeScript): ЩО ВЖЕ ГОТОВО — Фронтенд-прототип на React 18 + TypeScript +… Javascript та Typescript, Веб-програмування ∙ 13 годин 31 хвилина тому ∙ 18 ставок |
Розробка сайту-конструктора фотокниг і фоторамокМета проекту Необхідно розробити сучасний веб-сайт для замовлення фотокниг, фоторамок та іншої персоналізованої фотопродукції. Головне завдання проекту — надати клієнту можливість самостійно створити готовий макет виробу без участі дизайнера безпосередньо на сайті.Основний… Javascript та Typescript, Веб-програмування ∙ 2 дні 5 годин тому ∙ 90 ставок |
Повноцінна розробкаNeed a full-stack developer who is free for work and not looking to get rich immediately from this project. This is my test site: readyhome.ge the prototype of which I want to create (not referring to design). In the footer, there is Russian language, fill out the questionnaire… Javascript та Typescript, Веб-програмування ∙ 2 дні 18 годин тому ∙ 79 ставок |
Команда для самописного маркетплейса ритуальних послуг.Шукаємо команду для запуску та розвитку самописного національного маркетплейсу ритуальних послуг. Одразу: не шукаємо одиночок, джунів і “збирачів сайтів”. Потрібна сильна продуктова команда рівня middle+/senior з реальними кейсами маркетплейсів/складних SaaS. Прошу не… Javascript та Typescript, Веб-програмування ∙ 3 дні тому ∙ 25 ставок |
Доопрацювання існуючого проекту Next.js/Supabase: оффери, CRM, аналітика, AI-чатЄ діючий проект WatchGenius — платформа аналітики люксових годинників з каталогом моделей, ціновою аналітикою, зовнішніми офферами, формами заявок та AI-чатом. Проект вже частково розроблений. Потрібен не сайт з нуля, а досвідчений full-stack розробник, який зможе розібратися в… Javascript та Typescript, Веб-програмування ∙ 5 днів 1 година тому ∙ 55 ставок |