Możliwość zastosowania platformy Docker
W tej chwili mam kilka serwerów, na których system operacyjny i oprogramowanie działają wyłącznie na komputerze. Główne komponenty to nginx, php-fpm, ffmpeg i kilka innych narzędzi do kodowania wideo. Co godzinę serwer przechwytuje zadania konwersji wideo za pośrednictwem crona, wykonuje je i umieszcza gotowe wideo w tym folderze. Następnie Nginx przesyła strumieniowo te filmy.
Problem polega na tym, że jestem bardzo zmęczony synchronizowaniem plików konfiguracyjnych, aktualizowaniem oprogramowania, niszczeniem oprogramowania, które zostało skompilowane ze źródła itp.
Myślę więc, że przede wszystkim muszę podzielić pliki wideo i całe oprogramowanie, które mam. Pliki wideo będą nadal przechowywane na samym serwerze. Mógłbym użyć OpenVZ jako kontenera oprogramowania. Więc jeśli muszę zaktualizować swoje oprogramowanie, po prostu aktualizuję mój szablon OpenVZ i kopiuję ten vzctl zniszcz + vzctl create image na każdy serwer. Ale nie widzę żadnego dobrego sposobu na zamontowanie katalogu z plikami wideo do kontenera OpenVZ. Rozrzedzam NFS, iSCSI jest zły w moim przypadku, ponieważ muszą być lepsze sposoby.
Dlatego pomyślałem, że Docker to dobre rozwiązanie. O ile wiem, pozwala na podłączenie do niego zasobów zewnętrznych za pomocą tylko wywołania CLI. Po prostu tworzę kontener docker z narzędziami wideo nginx + fpm +, rozpowszechniam go na moich serwerach i dołączam lokalną pamięć masową do plików.
Napisz swoją opinię. Czy to dobry sposób korzystania z platformy Docker, czy też moje rozwiązanie jest inne?
Nie znaleziono powiązanych wyników
Zaproszony:
Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się
2 odpowiedzi
Anonimowy użytkownik
Potwierdzenie od:
Najpierw spróbuję myśleć o obrazach i kontenerach Dockera jako o większej liczbie aplikacji niż maszynach wirtualnych. Oddzielnie zarządzaj infrastrukturą hosta z poziomu kontenerów Docker. Może być idealny do uruchamiania Puppet lub Chef na hostach w celu zarządzania kontenerami i zależnościami Dockera. Gdy już wejdziesz do w pełni kontenerowego świata, możesz naprawdę uprościć swoje hosty, uruchamiając platformę taką jak CoreOS. Ale prawdopodobnie nie zacząłbym od CoreOS, jeśli dopiero zaczynasz od Dockera.
Oddziel swoje aplikacje i pliki wideo (o których już wspomniałeś). Twórz kontenery tylko do danych, które przechowują pliki wideo na hostach. Lubię używać
Obraz platformy Docker do tego. Uruchom obraz z woluminem, który można zapisać:
Wygląda na to, że będziesz mieć teraz co najmniej jeszcze jeden obraz dla kontenera nginx, PHP-FPM i ffmpeg. Chociaż najprawdopodobniej spróbuję rozdzielić te komponenty na osobne obrazy. Możesz mieć kontener PHP-FPM, który uruchamia twój kod i zapewnia port lub gniazdo dla nginx do użycia do odwrotnego proxy. Ten pojemnik również będzie używał
zainstaluj trwałe
teczka.
Następnie możesz mieć obraz nginx, który korzysta z łączy Docker DNS w celu uzyskania dostępu do PHP-FPM:
W konfiguracji nginx możesz bezpośrednio określić nazwę DNS
aby rozpoznać adres IP kontenera aplikacji.
Następnym dodatkiem do tego jest wykrywanie usług. Możesz zastąpić obraz nginx urządzeniem takim jak
https://github.com/jwilder/nginx-proxy
https://github.com/jwilder/nginx-proxy
aby automatycznie dodawać i usuwać kontenery aplikacji w miarę ich pojawiania się i wychodzenia.
Gdy zaczniesz zagłębiać się w świat Dockera z wieloma hostami, narzędzia i koncepcje, takie jak katalogi usług (
https://github.com/progrium/docker-consul
https://github.com/progrium/docker-consul), ambasadorzy (
https://github.com/progrium/ambassadord
https://github.com/progrium/ambassadord), dynamiczna rejestracja usługi w katalogach (
https://github.com/progrium/registrator
https://github.com/progrium/registrator) i równoważenie obciążenia (
https://github.com/hashicorp/consul-haproxy
https://github.com/hashicorp/consul-haproxy) będzie bardziej interesująca.
Odpowiadając na pytanie, myślę, że masz ważne przypadki użycia Dockera. Ale nie sądzę, aby mieszanie OpenVZ i Dockera było naprawdę dobrym pomysłem. Prawdopodobnie chcesz jednego lub drugiego.
Anonimowy użytkownik
Potwierdzenie od:
Za pomocą tych narzędzi można tworzyć szablony konfiguracji, które można następnie zastosować na wielu serwerach.
Zasadniczo po utworzeniu systemu konfiguracji w systemie zarządzania konfiguracją uruchamiasz jedną komendę na wszystkich serwerach, która następnie stosuje konfigurację.