Skocz do zawartości
Kender

[Zlecenie] Administracja serwerem WWW Node.js/MongoDB

Polecane posty

Szukam osoby/firmy, która podjęłaby się instalacji oraz administracji poniższym systemem:

  • serwer WWW (Node.js)
  • serwer bazy danych (MongoDB)
  • repozytorium kodu (SVN)

Dodatkowe informacje:

Przewidywana liczba wyświetleń: 5M miesięcznie

Rozmiar bazy danych MongoDB: do 100GB (100M dokumentów), głównie odczyt


System musi być łatwo skalowalny oraz zapewniać ciągłość działania przy aktualizacji kodu (hot code swapping). Ze względu na specyfikę witryny (dużo stron o niezmiennej treści) potrzebny będzie również wydajny cache.


Potrzebna będzie także pomoc w zakresie wyboru optymalnego hostingu.


Proszę o podanie ceny netto za instalację i administrację (backupy, patche, pomoc w razie awarii, zabezpieczenie serwera).


Proszę o oferty z całej Polski, jednak preferowane będą oferty z Warszawy lub okolic.


Kryterium wyboru oferty to cena, doświadczenie w realizacji podobnych projektów, możliwość długoterminowej współpracy oraz możliwie krótki czas realizacji instalacji systemu.



Edytowano przez Kender (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może się nie znam aż tak, ale node.js nie umożliwia "hot code swapping". Konieczny jest restart aplikacji. Fakt trwa to krótko, ale zawsze jest ten downtime.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Może się nie znam aż tak, ale node.js nie umożliwia "hot code swapping". Konieczny jest restart aplikacji. Fakt trwa to krótko, ale zawsze jest ten downtime.

 

Krótki downtime nie jest problemem. To, czego potrzebuję, to taka konfiguracja, która:

  • po zmianie kodu w repozytorium wykryje ten fakt i tak szybko, jak się da zaktualizuje go w Node.js
  • nie zerwie realizowanych właśnie zapytań do serwera
  • (nice to have) "przechwyci" zapytania, które przyszły w trakcie restartu procesu Node.js i przekaże je do realizacji po zakończeniu restartu
  • w razie jakichkolwiek problemów (na przykład crash bazy danych), "wstanie" automatycznie tak szybko, jak to możliwe

Faktycznie, technicznie rzecz biorąc nie jest to "hot code swapping", ale potrzebuję systemu, który będzie działał ;-) a nie takiego, którym trzeba będzie ręcznie zarządzać.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość patrys

Tu do administracji dochodzą zabiegi stricte programistyczne, a to warto to rozgraniczyć.

Potrzebujecie aplikacji śledzącej zmiany w repozytoriach i po ich wykryciu wykonującej deploy kodu ?

Nie wiem jaka jest specyfika projektu, ale to dość niebezpieczne ;)

 

Watchdog jak najbardziej, ale co ma zrobić gdy serwer będzie łapał jakiegoś "segfaulta" ?

Potrzebny jest do tego środowiska dobry monitoring wraz z dobrym SLA.

 

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Tu do administracji dochodzą zabiegi stricte programistyczne, a to warto to rozgraniczyć.

Potrzebujecie aplikacji śledzącej zmiany w repozytoriach i po ich wykryciu wykonującej deploy kodu ?

Nie wiem jaka jest specyfika projektu, ale to dość niebezpieczne ;)

 

Wbrew pozorom, jest to dość często stosowane rozwiązanie. Robisz commit z developerskiego repo do produkcyjnego po testach i system robi deploy bezpośrednio z produkcyjnego (gdzie i tak masz tylko sprawdzony kod - w przeciwnym wypadku system robiłby aktualizacje zawsze, nawet przy niesprawdzonych zmianach).

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Aplikacja śledząca zmiany w repo i je wprowadzająca to kilkanaście do kilkudziesięciu dobrych bashowych linijek, do napisania w godzinę. Można dodać parsowanie logów via inotifywait/inotifywatch i wszystko shandlować.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
Gość

To już lepiej podpiąć coś z continuous integration, co by w razie faila nie wysypał serwera.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wbrew pozorom, jest to dość często stosowane rozwiązanie. Robisz commit z developerskiego repo do produkcyjnego po testach i system robi deploy bezpośrednio z produkcyjnego (gdzie i tak masz tylko sprawdzony kod - w przeciwnym wypadku system robiłby aktualizacje zawsze, nawet przy niesprawdzonych zmianach).

 

Dokładnie coś takiego miałem na myśli - trzy branche repozytorium (dev, staging i production) i jakiś skrypt sprawdzający, czy coś się zmieniło w production (nawet w postaci "svn up | wc -l"), jeśli tak - robi "bezpieczny restart" systemu.

 

To oczywiście bardzo uproszczony schemat, bo trzeba wziąć pod uwagę obsługę błędów, ale właśnie dlatego jest to ogłoszenie.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To, że autodeploy określonej gałęzi ("produkcyjnej") repozytorium się stosuje to fakt.

Ale robienie tego przez polling repozytorium kontroli wersji w poszukiwaniu zmian? Bezsens.

Cały nowoczesny cywilizowany świat ustawia na serwerze zarządzającym repozytoriami (serwerze SVN, hubie GIT) hooki wykonywane w momencie aktualizacji zdalnego repozytorium (czy to commit dla svn, czy to push dla git) które to wyzwalają aktualizację, a nie odpytuje cronem co minutę zdalne repozytorium czy przypadkiem się ono nie zmieniło ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

To, że autodeploy określonej gałęzi ("produkcyjnej") repozytorium się stosuje to fakt.

Ale robienie tego przez polling repozytorium kontroli wersji w poszukiwaniu zmian? Bezsens.

Cały nowoczesny cywilizowany świat ustawia na serwerze zarządzającym repozytoriami (serwerze SVN, hubie GIT) hooki wykonywane w momencie aktualizacji zdalnego repozytorium (czy to commit dla svn, czy to push dla git) które to wyzwalają aktualizację, a nie odpytuje cronem co minutę zdalne repozytorium czy przypadkiem się ono nie zmieniło ;)

 

Nawet nie wiedziałem, że istnieje coś takiego jak hooki. I właśnie dlatego szukam kogoś do konfiguracji i administracji serwera. Mój zakres wiedzy kończy się na commit ;) .Ewentualnie jestem w stanie postawić lokalne środowisko developerskie, ale potrzebny mi ktoś, kto zapewni, że środowisko produkcyjne będzie stabilne, bezpieczne i wydajne.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×