Prowadzę dyskusję z przyjacielem na temat przypadków użycia Dockera . Jeden facet w zespole chce używać Dockera do wszystkiego - jak rodzaj uniwersalnego opakowania procesu unixowego. Drugi uważa, że Docker powinien być używany tylko do aplikacji bezstanowych , takich jak Microservices i aplikacje w stylu AWS Lambda .
Opracowaliśmy dowód koncepcji dla obu. W naszym klastrze dokerów mamy udostępniony dysk, który jest montowany po zamontowaniu hosta Docker, a jeśli baza danych w kontenerze jest montowana, po prostu instaluje wolumin na dysku udostępnionym.
Mój przyjaciel nadal trzyma się swojej pozycji, mimo że pokazano mu przeciwne dowody. (Twierdzi również, że Docker zwiększa niepotrzebne ryzyko, zwiększając złożoność stosu.)
Staram się słuchać i rozumieć jego punkt widzenia, zarówno w akcie empatii, jak i lepszego rozumowania z nim. (Wszyscy dobrze sobie radzimy - więc jest to mieszanka dowcipu i poważnej dyskusji).
Pytanie, które kryje się za pytaniem, brzmi: czy bazy danych są bydłem ? Ten komentarz sugeruje, że dobra strategia automatycznego tworzenia kopii zapasowych i pobierania bazy danych jest nie do odróżnienia od serwera bydła.
Moje pytanie brzmi: z jakich powodów Docker nie powinien być używany do baz danych?
EDYCJA: Ludzie poprosili mnie o wyjaśnienie mojej terminologii. Zakładałem, że aplikacja bazy danych znajduje się w kontenerze, a pamięć jest w woluminie. Miałem na myśli to, że RDBMS znajduje się w kontenerze, a pamięć bazy danych znajduje się w woluminie.
Niektórzy komentatorzy sugerują, że sterowniki woluminu dokującego nie będą działać z danymi zapisanymi w bazie danych. (Lub coś w tym celu). Czy możesz to rozwinąć?