Umieszczanie aplikacji na zewnętrznym serwerze

Pasek boczny 2.5

procent przetłumaczone

W tym rozdziale dowiesz się:

  • Jak umieścić aplikację na Meteor.com.
  • Jak umieścić aplikację na Modulus.
  • Jak umieścić aplikację na własnym serwerze.
  • Część osób lubi pracować nad projektem, aż do momentu gdy doprowadzą go do perfekcji, natomiast reszta nie może doczekać się opublikowania go i pokazania wszystkim tak szybko, jak to tylko możliwe.

    Jeżeli zaliczasz się do pierwszego grona i chciałbyś na razie rozwijać aplikację lokalnie, możesz przeskoczyć ten rozdział i przejść do następnego. Z drugiej strony, jeżeli wolisz poznać sposób, w jaki można opublikować aplikację online, zapraszamy do przeczytania tego rozdziału.

    Nauczymy się jak opublikować aplikację Meteora na kilka różnych sposobów. Możesz wybrać dowolne rozwiązanie w jakimkolwiek stopniu zaawansowania projektu się znajdujesz, czy pracujesz nad Microscope czy nad inną aplikacją Meteora. Pora zacząć!

    Wprowadzenie do Sidebars

    Jest to rozdział poświęcony Sidebars. Bardziej szczegółowo jest opisany w dalszej części książki.

    Jeżeli wolisz kontynuwać pracę nad Microscope, możesz przeskoczyć ten rozdział i wrócić do niego w dowolnym momencie.

    Publikacja aplikacji na serwerach Meteora

    Publikacja aplikacji w domenie Meteora (np. http://myapp.meteor.com) jest najłatwiejszym rozwiązaniem i będzie pierwszym, które wypróbujemy. Może być to użyteczne do pokazania aplikacji w fazie rozwoju, lub szybkiego ustawienia serwera pre-produkcyjnego.

    Publikacja na serwerach Meteora jest całkiem prosta. Otwórz terminal, przejdź do folderu aplikacji Meteora i wpisz:

    $ meteor deploy myapp.meteor.com
    

    Oczywiście musisz się zatroszczyć o zmianę “myapp” dowolnie wybraną nazwą aplikacji, która nie jest jeszcze zajęta. Jeżeli pierwszy raz publikujesz aplikację, zostaniesz poproszony o dodanie konta Meteora. Jeżeli wszystko zostanie wykonane poprawnie, po kilku sekundach będziesz miał dostęp do swojej aplikacji na http://myapp.meteor.com.

    Możesz skorzystać z oficjalnej dokumentacji, aby uzyskać więcej informacji na tematy takie jak bezpośredni dostęp do bazy danych opublikowanej aplikacji czy konfiguracja innej domeny dla twojej aplikacji.

    Deploying On Modulus

    Modulus jest świetnym wyborem, jeżeli chodzi o hosting aplikacji NodeJS. Jest to jeden z niewielu firm PaaS (platform-as-a-service), która wspiera oficjalnie Meteora i jest już całkiem pokaźna liczna osób posiadająch produkcyjne aplikacje na ich serwerach.

    Demeteorizer

    Narzędzie open source Modulusa demeteorizer konwertuje aplikację Meteora w standardową aplikację NodeJS.

    Zacznij od utworzenia konta. Aby opublikować aplikację na serwerach Modulusa, musisz zainstalować konsolowe narzędzie ‘modulus’:

    $ npm install -g modulus
    

    A następnie zalogować się za pomocą:

    $ modulus login
    

    Utworzymy teraz projekt Modulusa (uwaga: można to także wykonać na ich stronie www przez przeglądarkę):

    $ modulus project create
    

    Następnym krokiem jest utworzenie bazy danych MongoDB dla aplikacji. Możemy ją utworzyć także w Modulus, MongoHQ lub jakimkolwiek innym hostingu MongoDB.

    Po utworzeniu bazy danych MongoDB, możemy otrzymać adres MONGO_URL bazy z webowego interfejsu Modulusa (Dashboard > Databases > Select your database > Administration) i następnie użyć go do konfiguracji aplikacji jak poniżej:

    $ modulus env set MONGO_URL "mongodb://<user>:<pass>@mongo.onmodulus.net:27017/<database_name>"
    

    Jesteśmy gotowi opublikować aplikację. Jest bardzo proste:

    $ modulus deploy
    

    Właśnie opublikowaliśmy aplikację na serwerach Modulusa. Aby uzyskać więcej informacji o dostępie do logów, ustawieniu dowolnej domeny czy SSL, przejdź do dokumentacji Modulusa.

    Meteor Up

    Mimo tego, że nowe firmy hostingowe pojawiają się jak grzyby po deszczu, często napotkasz problemy związane z konkretnym hostingiem i jego ograniczeniami. Na dzień dzisiejszy publikacja aplikacji na własnym serwerze jest najlepszym sposobem na umieszczenie aplikacji Meteora w internecie. Jedyną przeszkodą może być to, że publikacja na własnym serwerze nie jest prosta, szczególnie gdy szukasz środowiska produkcyjnego o wysokiej jakości.

    Meteor Up (lub w skrócie mup) jest kolejną próbą poradzenia sobie z tym problemem. Jest to narzędzie konsolowe, które zajmuje się ustawieniem i publikacją aplikacji za ciebie. Zobaczmy zatem jak apublikować Microscope używając Meteor Up.

    Zanim będziemy mogli kontynuować, potrzebujemy serwer na który możemy opublikować aplikację. Polecamy Digital Ocean, gdzie hosting zaczyna się od 5$ miesięcznie lub AWS, który ma darmowe instancje Micro (szybko napotkasz problemy związane ze skalowaniem aplikacji, ale jeżeli chcesz się pobawić, na początek powinno wystarczyć).

    Niezależenie, który serwis wybierzesz, powinieneś skończyć mając dostępne trzy rzeczy: adres IP twojego serwera, nazwę użytkownika umożliwiającego zalogowanie (zwykle root lub ubuntu) i hasło. Trzymaj je w bezpiecznym miejscu, wkrótce będziesz go potrzebował!

    Inicjalizacja Meteor Up

    Aby rozpocząć zainstalujemy Meteor Up za pomocą npm:

    $ npm install -g mup
    

    Następnie utworzymy specjalny folder w którym będą przechowywane ustawienia Meteor Up dla danego serwera. Użyjemy oddzielnego folderu z dwóch powodów: po pierwsze najlepiej unikać wstawiania prywatnych danych w repozytorium Git, szczególnie gdy pracujesz nad kodem dostępnym publicznie.

    Po drugie, używając osobnych folderów, możesz równocześnie zarządzać kilkoma konfiguracjami Meteor Up. Staje się to na przykład przydatne przy publikacji na serwerze produkcyjnym i pre-produkcyjnym (ang. staging).

    Utwórzmy zatem ten nowy folder i zainicjalizujmy w nim nowy projekt Meteor Up:

    $ mkdir ~/microscope-deploy
    $ cd ~/microscope-deploy
    $ mup init
    

    Wspóldzielenie ustawień za pomocą Dropbox

    Świetnym sposobem na współdzielenie ustawień przez Ciebie i cały Twój zespół jest stworzenie folderu z konfiguracjami w twoim DropBoxie lub podobnym serwisie.

    Konfiguracja Meteor Up

    Podczas inicjalizacji nowego projektu Meteor Up stworzy dwa nowe pliki: mup.json oraz settings.json.

    W mup.json znajdziesz wszystkie ustawienia dotyczące publikacji aplikacji, a w settings.json, wszystkie ustawienia związane z aplikacją (tokeny OAuth, Google Analytics itp.).

    Następnym krokiem jest konfiguracja pliku mup.json. Poniżej znajdziesz domyślny plik mup.json wygenerowany przez mup init i wszystko co należy zrobić, to uzupełnić w nim puste pola:

    {
      //informacje logowania na serwer
      "servers": [{
        "host": "hostname",
        "username": "root",
        "password": "password"
        //or pem file (ssh based authentication)
        //"pem": "~/.ssh/id_rsa"
      }],
    
      //instaluj MongoDB na serwerze
      "setupMongo": true,
    
      //ścieżka do aplikacji (lokalny folder)
      "app": "/path/to/the/app",
    
      //konfiguracja zmiennych środowiskowych
      "env": {
        "ROOT_URL": "http://supersite.com"
      }
    }
    
    mup.json

    Zapoznajmu się po kolei z każdym z ustawień.

    Server Authentication

    Zauważysz, że Meteor Up wspiera logowanie za pomocą haseł i prywatnych kluczy (PEM), zatem może być używany z większością firm hostingowych w chmurze.

    Ważna uwaga: jeżeli zdecydujesz się na użycie logowania za pomocą hasła, zainstaluj najpierw pakiet sshpass (zgodnie z tym tutorialem).

    Konfiguracja MongoDB

    Kolejnym krokiem jest konfiguracja bazy danych MongoDB dla Twojej aplikacji. Polecamy MongoHQ lub jakąkolwiek inną firmę hostingową dla MongoDB, ponieważ oferują profesjonalne wsparcie i lepsze narzędzia do zarządzania bazą.

    Jeżeli zdecydowałeś się użyć MongoHQ, ustaw pole setupMongo na false i dodaj zmienną środowiskową MONGO_URL w bloku env w pliku mup.json. Jeżeli zdecydowałeś się na hosting Meteor Up, ustaw pole setupMongo na true, a Meteor Up zatroszczy się o resztę.

    Ścieżka Aplikacji Meteora

    Ponieważ nasza konfiguracja Meteor Up jest umieszczona w innym folerze, musimy wskazać Meteorowi z powrotem na naszą aplikację używając pola app. Wpisz lokalną ścieżkę, którą możesz otrzymać po wpisaniu pwd w konsoli w głównym folderze danej aplikacji.

    Zmienne Środowiskowe

    Możesz określić wszystkie zmienne środowiskowe aplikacji (takie jak ROOT_URL, MAIL_URL, MONGO_URL, itd.) w środku bloku env.

    Ustawienia i publikacja aplikacji

    Zanim będziemy mogli opublikować aplikację, musimy przygotować serwer, aby był gotowy na hosting aplikacji Meteora. Na szczęście ten skomplikowany proces został uproszczony do zawołania pojedyńczej komendy!

    $ mup setup
    

    W zależności od szybkości serwa i łącza może to zająć do kilku minut. Jeżeli wszystko zostało ustawione prawidłowo, możemy opublikować aplikację za pomocą:

    $ mup deploy
    

    To polecenie przygotuje i opublikuje aplikację Meteora na serwer, który właśnie przygotowaliśmy.

    Wyświetlanie logów.

    Logi są bardzo istotne i Meteor Up umożliwia łatwy dostęp do nich przez emulację polecenia tail -f. Wpisz:

    $ mup logs -f
    

    To podsumowuje nasz przegląd możliwości Meteor Up. Aby uzyskać więcej informacji sugerujemy zaznajomienie się z repozytorium Meteor Up na GitHub.

    Powyższe trzy sposoby publikacji aplikacji powinny wystarczyć w większości przypadków. Wiemy, że wielu czytelników wolałoby mieć pełną kontrolę i ustawić serwer Meteora od podstaw. Jest to jednak temat, który może być poruszony innym razem…lub w innej książce!