2010-02-15 8 views

Odpowiedz

2

Podstawową strategią jest utworzenie kompilacji (dobrze, w zasadzie kopia aplikacji internetowych, które można umieścić w Internecie) na lokalnym komputerze, a następnie wdrożyć go na serwer.

2

Uruchomisz go na komputerze lokalnym, a PHPing połączy się z serwerem produkcyjnym i wdroży witrynę. :)

+0

Jak wykonać ostatni krok? Jakie jest odpowiednie zadanie phing? Czy to normalny transfer FTP/SFTP? – user272138

+0

FtpDeployTask i ScpTask myślę. Spróbuję. Dziękuję wszystkim odbierającym. – user272138

2

Phing może być stosowany na wiele sposobów.

Jeśli nie masz wytycznych dotyczących wdrażania, najlepszym sposobem jest zwykle wygenerowanie "testowej wersji" z lokalnej kopii, sprawdzenie, czy działa ona zgodnie z oczekiwaniami, a następnie wygenerowanie wydajnej kompilacji.

W niektórych przypadkach, w których musisz przestrzegać pewnych zasad w swoim środowisku programistycznym, możesz łatwo dostosować Phing, aby sprostać tym wymaganiom.

5

Zazwyczaj będziesz mieć dwa skrypty wdrażania - taki, który uruchamiasz lokalnie, który jest dołączony do serwera zdalnego, a następnie uruchamia skrypt zdalny.

Twój lokalny skrypt może wykonać svn export, rozpakować zawartość i wepchnąć je (scp) na serwer zdalny. Zdalny skrypt wykonałby takie czynności, jak migracja, ponowne uruchamianie usług itp.

0

Możesz to zrobić na dwa sposoby. Możesz uruchomić narzędzie lokalnie, przygotowując się do testowania i po prostu upewnij się, że twój kod jest w dobrym stanie. Automatyzacja serwera (jeśli zdecydujesz się to zrobić) może również uruchamiać testy, generować dokumentację i wdrażać zmiany w testach lub konfiguracjach produkcyjnych.

Robienie tego na miejscu zmniejsza ryzyko, że proces utknie w konfiguracji serwera, podczas gdy CI działa regularnie, aby upewnić się, że nic nie zostało przerwane przez pomyłkę.

1

Opracowałem skrypt wdrażania phing i użyłem go na oba sposoby, które opisałeś. Tak długo, jak biblioteka phing i zależności są instalowane lokalnie lub na zdalnym komputerze, można to zrobić na dwa sposoby, i faktycznie jest to korzyść, aby móc go uruchomić z dowolnego środowiska.

Pozwolę sobie rozwinąć moje doświadczenie, ale należy pamiętać, że każda osoba żyje w mikrokosmosie potrzeb i wymagań własnych projektów/studiów, więc możliwe, że to, co działa dla mnie, może nie działać dla innych ludzi.

Wydaje mi się, że wdrożenie jest zazwyczaj tak ważne dla firmy, że za każdym razem musi się to odbywać w dokładnie taki sam sposób. Kiedy wiele osób wykonuje wdrożenia, łatwo jest rozejść się złym nawykom i procedurom i wtedy mogą się zdarzyć błędy. Zautomatyzowane wdrożenia z phng są przydatne, ponieważ jeśli wszyscy używają tej samej procedury, wtedy istnieje znacznie mniejszy potencjał błędów. Phing ułatwia przestrzeganie ścisłych procedur, ponieważ wszyscy programiści muszą wykonać proste polecenie, takie jak "phing deploy" lub "phing build" lub co ty.

Wracając do pierwotnego pytania, pomocne jest również przestrzeganie tych procedur na lokalnych maszynach programistycznych, a także na testach, testach, serwerach produkcyjnych, ponieważ podobnie jak ludzie, maszyny mogą mieć małe ideowe przekory, które różnią się od maszyny do maszyny.Dzięki phing możesz stworzyć skrypt, który będzie miał takie same wyniki na dowolnych komputerach firmowych (w zależności od siły i intencji twojego kodu, ale phing żyje w formacie, który ułatwia spełnienie tego ideału). Jeśli więc uruchomisz swoją phingową kompilację z twojego pudełka deweloperskiego, to najlepiej działa tak samo, jeśli uruchamiasz ją ze skrzynki testowej lub serwera produkcyjnego. Jeśli możesz uruchomić wdrożenie w taki sam sposób na dowolnej maszynie, możesz mieć pewność, że wszelkie problemy powstałe po wdrożeniu nie wynikają z procedur wdrażania (ponieważ nie będą się różnić od tych, które zostały wdrożone do testowania lub lokalnego systemu dev) .

To naprawdę miło móc wdrożyć mój kod na moim lokalnym komputerze z tą samą procedurą, której używam do wdrożenia jej w produkcji.

Jeśli chodzi o to, co najlepiej zrobić, powiem, dlaczego nie wszystkie powyższe? Jeśli możesz uruchomić go lokalnie, możesz uruchomić go zdalnie. Jeśli procedury wdrażania są silne, wynik będzie taki sam.