2016-04-04 10 views
13

Zastanawiam się, czy możliwe jest wdrożenie wordpressa jako serii funkcji lambda na bramie interfejsu AWS API. Wszelkie wskazówki dotyczące wykonalności/gotcha byłyby bardzo mile widziane!Wdrażanie wordpress jako funkcje lambda AWS?

Dzięki z góry,

PKK

+0

Duh! Dziękuję Mark B. – PKK

+1

Czy nie ma teraz interfejsu API NodeJS dla WP? A usługi RDBS w tandemie? Z pewnością można to zrobić, ale jest to ogromny wysiłek. – ilrein

+2

@PKK Jednym ze sposobów, w jaki można to zrobić, jest użycie 'API WordPress XML-RPC' Istnieje ładny pakiet węzłów, którego można użyć [scottgonzalez/node-wordpress] (https://github.com/scottgonzalez/node-wordpress) Przykład : 'var wordpress = require (" wordpress "); var client = wordpress.createClient ({ adres URL: "my-site.com", nazwa użytkownika: "admin", hasło: "secret" }); Klient .getPosts (funkcja (błąd, posty) { response.setHeader ("Content-Type", "text/json"); response.setHeader (odpowiedź "Access-Control-Allow-Origin", "*"); . koniec (posts.length); }); ' – eMM

Odpowiedz

4

Będziesz miał wiele rzeczy do rozważenia z uporem, a nawet wcześniej, Lambda nie obsługuje PHP. Prawdopodobnie będę patrzył na funkcje Microsoft Azure zamiast tego, które obsługują PHP i mają trwałe pamięci.

Podczas gdy inne języki (takie jak Go, Rust, Swift itp.) Mogą być "zawijane", aby względnie łatwo działały w AWS Lambda, kompilując kierowanie PHP na tę samą platformę i działając jest nieco inna (i na pewno bardziej żmudna). Pomyśl o różnych modułach PHP, których potrzebujesz na początek. Co więcej, nie mogę sobie wyobrazić, że wydajność będzie tak dobra, jak coś w rodzaju binarnego Go.

Jeśli możesz zrobić coś sprytnego ze strukturą Phalcon i wymyślić prosty proces budowania i wdrażania, a następnie maayyyybee.

Mimo to prawdopodobnie trzeba by naprawdę zmienić coś takiego jak WordPress, który nie był do tego przystosowany. Wciąż używa całkiem starych konwencji ze względu na wiek projektu i chociaż jest to dobre i dobre dla twojego typowego serwera PHP, jest to inna gra w piłkę w sensie tej "przenośnej" instalacji PHP.

Należy pamiętać, że sesje w PHP również są potrzebne, więc będziesz musiał przenieść je gdzie indziej z powodu braku wytrwałości w AWS Lambda. Prawdopodobnie możesz znaleźć wtyczkę do WordPressa, która współpracuje z Redis? Muszę sobie wyobrazić, że coś takiego zostało już zbudowane ... Ale będzie wiele komplikacji.

Poważnie rozważam używanie funkcji Azure na początku LUB za pomocą Dockera i rezygnację z modelu cenowego oferowanego przez funkcje chmurowe. Nadal możesz znaleźć całkiem tanie i skalowalne hostowanie.

Co wcześniej zrobiłem, użyłem AWS ECS (Docker) z EFS (przechowywanie sieciowe) dla trwałości i RDS dla bazy danych. Chociaż nie ma tego samego modelu cenowego co Lambda, nadal jest opłacalny. Możesz skonfigurować usługę ECS, aby automatycznie skalować w górę iw dół. W ten sposób pracujesz na minimalnym poziomie, aż potrzebujesz więcej.

Napisałem głębszy artykuł na ten temat tutaj: https://serifandsemaphore.io/how-to-host-wordpress-like-a-boss-b5993fcfbd8e#.n6fbnf8ii ... ale jest to po prostu pomysł uruchomienia WordPressa w Dockerze i używania EFS do odciążenia trwałych problemów z pamięcią masową. Jeśli chcesz, możesz zamienić wiele elementów układanki. Użyj bazy danych hostowanej w innej usłudze Docker lub Compose lub gdziekolwiek indziej. Ta część nie musi być na przykład RDS. Nawet twoje przechowywanie może być obsługiwane w inny sposób, chociaż EFS działało całkiem nieźle! Jedyną ważną rzeczą, na którą warto zwrócić uwagę na EFS, jest szybkość zapisu. Większość witryn WordPress jest jednak ciężkich. Twój przebieg będzie różny w zależności od Twoich potrzeb.

+3

Szczerze mówiąc, twoim największym kosztem z WordPressem będzie prawdopodobnie twoja baza danych, której nie rozwiązujesz w AWS Lambda. – Tom