Optymalizacja CI/CD
Przegląd Projektu
Technologia:
Frontend: React
Backend: Nest.js
Baza danych: MongoDB (z obsługą zestawu replik)
Używanie Nx Monorepo do zarządzania wieloma projektami frontend i backend, w tym 3 usługami frontend i 1 usługą API backend.
Środowisko wdrożeniowe:
Redis i MongoDB są wdrażane na własnych serwerach, nie korzystając z usług chmurowych.
MongoDB musi być skonfigurowane z zestawem replik, aby zapewnić prawidłowe obsługiwanie transakcji.
Podsumowanie wymagań
Optymalizacja pipeline'u i wdrożeń:
Utworzyć zautomatyzowany pipeline testowy za pomocą GitHub Actions.
Wdrażać tylko zmienione projekty, unikając zbędnej instalacji zależności i przebudowy obrazów.
Optymalizować proces budowania Docker, korzystając z cache i przyrostowych buildów, aby zmniejszyć zużycie miejsca i czas budowy.
Zarządzanie obrazami i kontenerami Docker:
Używać plików docker-compose do wdrażania usług.
Wdrażać tylko zmienione usługi, nie cały stack, zapewniając najkrótszy czas wdrożenia i najniższe zużycie zasobów.
Reinstalować zależności tylko wtedy, gdy się zmieniają, unikając reinstalacji przy każdym wdrożeniu.
Wymagania dotyczące bazy danych:
Wdrażać MongoDB z zestawami replik, aby zapewnić wysoką dostępność i obsługę transakcji.
Wdrażać Redis, aby zapewnić prywatność danych i obsługę podstawowego cache.
Optymalizacja zasobów i przechowywania:
Automatycznie usuwać stare obrazy i kontenery Docker, aby zmniejszyć zużycie miejsca.
Poprawić efektywność wdrożeń, korzystając z GitHub Actions i innych narzędzi automatyzacji.
Cele
Osiągnąć inkrementalne buildy i wdrożenia, zapewniając najkrótszy czas wdrożenia i najniższe zużycie zasobów.
Data dostawy: 1 dzień, maksymalnie 2 dni.
Przegląd projektu
Technologia stosowana:
Frontend: React
Backend: Nest.js
Baza danych: PostgreSQL (zamiast MongoDB)
Używanie Nx Monorepo do zarządzania wieloma projektami frontend i backend, w tym 3 usługami frontend i 1 usługą API backend.
Środowisko wdrożeniowe:
Redis i PostgreSQL są wdrożone na własnych serwerach, bez korzystania z usług chmurowych.
PostgreSQL musi być skonfigurowany do wysokiej dostępności i obsługi transakcji.
Podsumowanie wymagań
Optymalizacja pipeline'u i wdrożeń:
Utworzyć zautomatyzowany pipeline testowy za pomocą GitHub Actions.
Budować i wdrażać tylko te projekty, które się zmieniły, unikając zbędnej instalacji zależności i przebudowy obrazów.
Optymalizować proces budowania Docker, korzystając z cache i budowania przyrostowego, aby zmniejszyć zużycie miejsca i czas budowy.
Zarządzanie obrazami i kontenerami Docker:
Używać plików docker-compose do wdrażania usług.
Wdrażać tylko te usługi, które się zmieniły, a nie cały stack, zapewniając najkrótszy czas wdrożenia i najmniejsze zużycie zasobów.
Reinstalować zależności tylko wtedy, gdy się zmienią, unikając reinstalacji przy każdym wdrożeniu.
Wymagania dotyczące bazy danych:
Przeprowadzić migrację z MongoDB do PostgreSQL, zapewniając wysoką dostępność i obsługę transakcji.
Wdrożyć Redis, aby zapewnić prywatność danych i obsługiwać podstawowe potrzeby cache'owania.
Optymalizacja zasobów i przechowywania:
Automatycznie usuwać stare obrazy i kontenery Docker, aby zmniejszyć zużycie miejsca.
Poprawić efektywność wdrożeń, korzystając z GitHub Actions i innych narzędzi automatyzacji.
Cele:
Osiągnąć budowanie i wdrażanie przyrostowe, zapewniając najszybszy czas wdrożenia i najmniejsze zużycie zasobów.
Data dostawy: 2 dni, maksymalnie 3 dni.
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.
Plik z rezultatem
Opinia zleceniodawcy o współpracy z Revaz G.
Optymalizacja CI/CDZadanie zostało wykonane bardzo dobrze. Chociaż wystąpiły pewne bariery komunikacyjne, programista był bardzo cierpliwy.
Gorąco polecam współpracę i mam nadzieję, że znów będziemy mogli razem pracować w przyszłości.
-
Oferta, która wygrała5 dni727 PLNOferta, która wygrała5 dni727 PLN
Witaj Jiangzhe,
Dokładnie przeanalizowałem Twoje szczegółowe wymagania dotyczące optymalizacji pipeline'u CI/CD dla Twojego monorepo Nx oraz migracji bazy danych. Masz jasną wizję wydajnego i nowoczesnego procesu wdrażania.
Aby zapewnić wysoką jakość i niezawodność wyników, najlepiej podejść do tego jako do dwóch oddzielnych, istotnych projektów:
Optymalizacja pipeline'u CI/CD
Migracja bazy danych (MongoDB na PostgreSQL)
…
Ukończenie obu tych zadań, zwłaszcza skomplikowanej migracji bazy danych, w standardzie profesjonalnym w ciągu 2-3 dni nie jest możliwe.
Dlatego proponuję najpierw skupić się na osiągnięciu głównego celu, jakim jest optymalizacja CI/CD. Mam szerokie doświadczenie z GitHub Actions i Dockerem w środowiskach monorepo Nx.
Mój plan na optymalizację CI/CD to:
Implementację
nx affected commands w Twoim workflow GitHub Actions, aby testować i budować tylko te aplikacje, które faktycznie się zmieniły.
Optymalizację Twoich Dockerfile'ów, aby wykorzystać wieloetapowe buildy i cache warstw, co znacznie skróci czas budowania i rozmiar obrazów.
Udoskonalenie konfiguracji
docker-compose, aby umożliwić ponowne wdrożenie tylko zmienionych usług.
Dodanie automatycznego kroku czyszczenia, aby usuwać stare obrazy i kontenery Docker, oszczędzając miejsce na dysku.
Po pomyślnym usprawnieniu Twojego pipeline'u wdrożeniowego, chętnie przedstawię osobną, szczegółową propozycję migracji bazy danych.
Szacunkowy czas (tylko na optymalizację CI/CD):
Harmonogram: 5 dni
Cena: 750 USD
To podejście etapowe zapewnia natychmiastowe, wymierne poprawki w Twoim cyklu rozwoju. Jestem pewien, że mogę zbudować wydajny pipeline, którego szukasz.
-
2 dni1090 PLN
1874 81 0 2 dni1090 PLNMam doświadczenie i potrafię wdrożyć optymalizację wdrożeń.
Aktualne zlecenia dla freelancerów w kategorii Javascript & Typescript
Full-stack rozwój — Amazon PPC Dashboard (Etap 1)Potrzebny programista full-stack z doświadczeniem w pracy z Amazon API do realizacji Etapu 1 wewnętrznego dashboardu PPC. Projekt realny, dane żywe, wszystko gotowe do startu. Prototyp frontendu (5 stron, React + TypeScript): CO JUŻ GOTOWE — Prototyp frontendu na React 18 +… Javascript & Typescript, Programowanie stron internetowych ∙ 8 godzin 46 minut temu ∙ 17 ofert |
Opracowanie strony internetowej do tworzenia fotoksiążek i ram fotowychCel projektuNależy opracować nowoczesną stronę internetową do zamawiania fotoksiążek, ram fotowych i innych spersonalizowanych produktów fotograficznych.Głównym celem projektu jest umożliwienie klientowi samodzielnego stworzenia gotowego projektu produktu bez udziału projektanta… Javascript & Typescript, Programowanie stron internetowych ∙ 2 dni temu ∙ 89 ofert |
Full-stack rozwójPotrzebny jest programista full-stack, który jest dostępny do pracy i nie chce od razu wzbogacić się na tym projekcie. To jest moja strona testowa: readyhome.ge prototyp, który chcę stworzyć (nie mam na myśli designu). W stopce w języku rosyjskim, wypełnij ankietę i przejdź… Javascript & Typescript, Programowanie stron internetowych ∙ 2 dni 13 godzin temu ∙ 79 ofert |
Zespół do samodzielnie stworzonej platformy rynkowej usług pogrzebowych.Poszukujemy zespołu do uruchomienia i rozwoju autorskiej krajowej platformy rynkowej usług pogrzebowych. Od razu: nie szukamy pojedynczych osób, juniorów ani "zbieraczy stron". Potrzebny jest silny zespół produktowy na poziomie middle+/senior z rzeczywistymi przypadkami… Javascript & Typescript, Programowanie stron internetowych ∙ 2 dni 19 godzin temu ∙ 25 ofert |
Dopracowanie istniejącego projektu Next.js/Supabase: oferty, CRM, analityka, czat AIIstnieje działający projekt WatchGenius — platforma analityczna luksusowych zegarków z katalogiem modeli, analizą cen, zewnętrznymi ofertami, formularzami zgłoszeniowymi i czatem AI. Projekt został już częściowo opracowany. Potrzebny jest doświadczony programista full-stack,… Javascript & Typescript, Programowanie stron internetowych ∙ 4 dni 20 godzin temu ∙ 55 ofert |