Windows Server 2012 a aplikacje w php + mariadb

Witam, mam dostęp za darmo do mocnego serwera z Windows Server 2012, zastanawiam się czy mogę na tym hostować aplikacje w php na zasadzie, że serwerem byłby IIS php byłoby w FastCGI a baza jako MariaDB? Jak to najlepiej zrobić? A może użyć hyper-v?

 

Jestem kompletnie zielony w temacie Windows Server ale w pracy muszę go w miarę ogarniać chociaż podstawy więc potrzebne mi takie środowisko testowe, a że używam główne LAMP i LEMP to stąd te pytanie :wink:

 

Jak to zaplanować z sensem?

Witaj

Zacząłbym od tego https://technet.microsoft.com/pl-pl/library/hh994592.aspx.

Co do użycia Hyper-V, to o ile nie musisz izolować środowisk i nie masz jakiś bardzo specyficznych wymagań to nie ma co się bawić. No chyba, że chcesz na jednej wirtualce postawić os wraz z iis + php a na drugim os + baza danych.

 

Tu się nie zgodzę - mając licencję na Windows 2012 aż grzech nie postawić tych maszyn w Hyper-V - łatwość przenoszenia, skalowania, backupu i przyznawania zasobów…

Zależy jaki to windows, czy standard czy data center.

Przenośność, może i łatwiejsza, ale jednak tracisz część mocy procesora na hypervisor.

Backup? Prosty, vss przyjacielem.

Slalowanie? Tu bym polemizował. Przy klastrze, można by się bawić, tworzyć farmę IIS. Na jednym serwerze, jedna wirtualka to tak średnio. Wg mnie zabawa i miejsc problemu więcej niż przy fizycznym serwerze.

Nie rozumiem - co ma tutaj do rzeczy czy to Standard, czy Data Center? Co do narzutu hypervizora (szczególnie bez GUI) - jest on prawie pomijalny przy dzisiejszych wydajnościach procesorów.  Backup - co innego backup oparty o system a co innego o snapshoty/wirtualne maszyny. W krytycznej sytuacji taki serwer można “odpalić” tymczasowo nawet na laptopie, czy przekowertować do VMWare i podobnego. Z mojego doświadczenia więcej zysku z posiadania takiego środowiska.

Róznice std i dc, licencjonowanie windows 2012 jako vm.

Pomijając fakt, że kolega napisał że jest zielony, to namawianie Go na core, to już harcore. Fakt, że nie jest to kung fu, ale dla kogoś, kto nie ma styczności i znajomości środowiska, będzie sporym wyzwaniem.

Co do backupu, to mylisz pojęcia.  Snapshot to nie backup sensu stricte. To tylko “punkt w historii działania serwera”. Nie można tego traktować jako kopię zapasową, bo w przypadku padu serwera, cięzko odzyskać działające środowisko (dane owszem).

Przenoszenie pomiędzy hyper-v i vmware, w 99% działa, aczkolwiek prawo Murphiego działa i ma się dobrze, a gryzące się integration services jednak jest problemem.

Inny przykład, pada serwer, masz kopię pliku vhd/vhdx. Musisz gdzieś to przenieść, nie masz serwera. 

 

Mało tego, w własnego doświadczenia, nie polecam w środowiskach produkcyjnych, korzystania ze snapshotów z prostej przyczyny. Kazdy snapshot, to zapis stanu pamięci + kolejny dysk differential dla każdego dysku twardego dla danej maszyny wirtualnej. Nie każdy wie, ale dyski diff, obniżają wydajność systemu dyskowego maszyny wirtualnej w postępie 10% na każdy diff/snapshot, przez co środowiska korzystające sporo z dysku, dostają niezły hamulec. Oczywiście w środowisku autora może to nie być aż takim problemem.

Narzut hypervisora nie jest duży, ale żeby mieć maszynę wirtualną (opieram się tu na hyper-v z którym mam do czynienia codziennie), wydajnościowo zbliżoną do fizycznego serwera, należy wybrać tyle procków ile ma sama fizyczna maszyna core (a tu już sam hypervisor przełącza os i maszynkę losowo) oraz przypisać 100% rezerwacji mocy procesora/procesorów dla maszyny, a i to nie da pełnej wydajności. Fakt, ze vm daje spore możliwości przenoszenia i może być wygodna, ale jeśli weźmiemy pod uwagę to co napisałem) oraz fakt, że funkcjonalność serwera ogranicza się tylko do maszyny na iis + php + bazę danych, to zabawa w wirtualizację jest mało sensowna.

Wirtualizacja ma sens, kiedy chcemy wykorzystać w 100% zasoby serwera (ale na pewno to wiesz). Na jedną maszynkę to tak średnio,

 

Oczywiście nie namawiam na porzucenie takowego pomysłu, to jest tylko moja opinia i autor wątku zrobi jak ze chce, ale wg mnie, dodawanie kolejnej warstwy abstrakcji dla zadanego problemu mija się z celem i powoduje komplikację rozwiązania. Ale tu jak w programowaniu, zawsze jest kilka rozwiązań danego problemu :).

 

Update:

Ale tak jeszcze analizując sytuację, to w tym konkretnym przypadku zastosowanie Hyper-V ma trochę sensu, ze względu na małą wiedzę (wiem że głupio to brzmi, mam nadzieję, że autor się nie obrazi ;)) autora, dzięki czemu zawsze będzie mógł wrócić do dziewiczej instalacji, jeśli coś pójdzie nie tak.

Co do licencjonowania - przecież napisał, że “na dostęp do mocnego serwera Windows 2012” - czyli pewnie Standard, więc spokojnie może stawiać dwie dodatkowe instancje wirtualne.

Backup - nie, nie mylę pojęć. Jasne, że backup na poziomie OS/systemu plików itd. jest także przydatny, jednak kopia maszyn wirtualnych jest o tyle przydatna, że z marszu można je gdzieś uruchomić - byle w miarę sprzętowo się to zgadzało co do platformy. To chyba oczywiste, że za maszynę wirtualną nie uważa się tylko konfiguracji, ale także vHDD i powiązane z nimi snapshoty - które przecież służą głównie przy zmianach kluczowych a nie mają być dzienną rutyną. Co do integration services -  przy planowanym przenoszeniu podstawa, aby się pozbyć i część 'best-practices, chociaż aż tak nie wadzi i jest dość proste przy ‘bare-metal restore’, Windows w sumie jest dość elastyczny nawet przy zmianie platformy. 

“Masz plik vhd/vhdx” i nie masz gdzie go uruchomić" - a jak padnie system postawiony bez Hyper-V, to chyba też nie masz gdzie odtworzyć tego środowiska? Szczególnie, jak np. serwer wiekowy/bez gwarancji/specifyczny RAID? Co będzie szybsze - kupić w przysłowiowmym “supermarkecie” komputer i na szybko odpalić Hyper-V, czy brandzlować się ze stawianiem nowego od początku?

Zakładasz, że masz sprzęt zapasowy, tudzież możliwość zakupienia takowego. Ja nie mówię, że wirtualizacja to zło, ale trzeba brać pod uwagę różne aspekty.

Zakładając, że działamy na maszynie wirtualnej i o ile robiony jest backup tej maszyny, bądź też dostęp do dyku/macierzy na której leży vhd, to owszem, możemy przenieść całość nawet na laptopa, ale pozostają tu kwestie licencyjne, bo w2k12 jak wrzucisz na win 7/8,1 z hyper-v to już niestety licencja serwerowa tego nie obejmuje.

Jak dla mnie łatwiej wrzucić kod php + bazę gdzieś na hosting, w przypadku padu serwera (jesli jest kopia), niż bawić się zakup sprzętu, żeby postawić maszynkę.

 

Autor tematu pominął kilka rzeczy, które by też pomogły w udzieleniu pomocy. Jaki dokładnie to serwer, ile ma pamięci, no i last but not least, jaki jest storage i ile pojemności. Może się okazać że na wirtualkę nie będzie miejsca, bo storage to 2x160GB :).

 

Może niech się autor wypowie co zrobił, czy jeszcze jakieś wątpliwości ma, bo możemy sobie tak gdybać i podawać argumenty jeszcze długo, a chodzi o rozwiązanie problemu.

Oj z tym laptopem to był przykład. Czemu licencja serwerowa tego nie obejmuje? czemu nie możesz przenieść tych maszyn w inne środowisko (jeżeli mówimy o W2k2012 Standard i wyżym)? Masz rację, za mało danych i dywagacje… zawsze jeszcze moża trzymać replikę w Azure :wink: