Funkcjonalności warstw architektury referencyjnej Big Data
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Ruby on Rails to popularna platforma internetowa dla Ruby, która została opracowana w celu zwiększenia wydajności programisty. Jednak uzyskanie różnych klejnotów i zależności do współpracy może czasem być trudne. Ten przewodnik pomoże ci skonfigurować w pełni gotowe do produkcji środowisko Rails, w tym często używane klejnoty i zależności.
Uwaga : Zdecydowanie zaleca się, aby nie instalować żadnej z tych usług jako root, ponieważ możesz narazić się na atak. Konfigurowanie użytkownika deploy
lub app
jest powszechną konwencją:
sudo adduser deploy
sudo adduser deploy sudo
su deploy
Upewnij się, że korzystasz z wszystkich najnowszych pakietów na maszynie Wirtualnej Ubuntu:
sudo apt-get update && sudo apt-get upgrade -y
Aby móc skompilować Ruby przy użyciu rbenv i innych klejnotów, należy zainstalować różne pakiety. W zależności od wersji Ruby, której będziesz potrzebować, niektóre pakiety mogą nie być potrzebne.
sudo apt-get install -y curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev
sudo apt-get install -y libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev
sudo apt-get install -y python-software-properties libffi-dev
sudo apt-get install -y build-essential openssl libreadline6 libreadline6-dev libreadline-dev
sudo apt-get install -y automake libtool bison pkg-config bison autoconf libc6-dev ncurses-dev
sudo apt-get install -y libapr1-dev libaprutil1-dev libx11-dev libffi-dev tcl-dev tk-dev
Są one niezbędne do skompilowania kilku klejnotów, takich jak Passenger:
sudo apt-get install -y zlib1g zlib1g-dev libssl-dev libyaml-dev libcurl4-openssl-dev libruby
Społeczność Ruby używa Git jako wybranego SCM; ale można również zainstalować dodatkowe, takie jak Mercurial lub Subversion:
sudo apt-get install -y git git-core
sudo apt-get install -y libmysqld-dev mysql-client libmysqlclient-dev
Wymagane dla kilku popularnych klejnotów, które potrzebują natywnych bibliotek XML:
sudo apt-get install -y libxml2-dev libxslt-dev
Dodaj oficjalne repozytoria z Node z najnowszą wersją, ponieważ domyślne repozytoria Ubuntu mają tendencję do pozostawania w tyle za kilkoma głównymi wersjami:
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
Pakiety te nie są wymagane do uruchomienia systemu, ale warto je mieć, jeśli chcesz użyć niektórych klejnotów.
Te biblioteki nie są konieczne i można je pominąć, chyba że planujesz używać klejnotów do manipulacji obrazem; takich jak Rmagick:
sudo apt-get install -y imagemagick libmagickwand-dev libvips-dev
Zainstaluj sterowniki dla SQLite lub PostgreSQL, jeśli chcesz połączyć się z innymi bazami danych lub wolisz prostą, lokalną bazę danych:
sudo apt-get install -y libsqlite3-dev sqlite3 libpq-dev postgresql postgresql-contrib
Narzędzia, które zwykle nie są wstępnie instalowane w nowej instalacji Ubuntu. Zainstaluj dowolny edytor tekstu:
sudo apt-get install -y iotop htop nano vim
MariaDB to potężny relacyjny serwer SQL, który jest w pełni kompatybilny z MySQL. Najłatwiejszym sposobem zainstalowania najnowszej wersji MariaDB jest użycie oficjalnych repozytoriów:
sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386] http://ftp.utexas.edu/mariadb/repo/10.2/ubuntu zesty main'
sudo apt update
sudo apt install -y mariadb-server
Postępuj zgodnie z instrukcjami i ustaw hasło roota. Następnie sprawdź, czy możesz uzyskać dostęp do nowej instalacji:
mysql -V
Wyświetli wiersz podobny do tego:
mysql Ver 15.1 Distrib 10.2.8-MariaDB, for debian-linux-gnu (x86_64) using readline 5
Zaloguj się do powłoki MySQL:
mysql -h localhost -u root -p
Uwaga : użyj, \q
aby wyjść.
Zainstaluj Rbenv za pomocą git. Jest to najprostsza metoda instalacji i umożliwia późniejsze łatwe aktualizacje. Zainstaluj również ruby-build
, jest odpowiedzialny za kompilowanie różnych wersji Ruby:
cd
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
Uwaga : Kiedy musisz zaktualizować po prostu cd ~/.rbenv
i git pull
.
Udostępnij Rbenv i Ruby-build w powłoce. Aby upewnić się, że linie eksportowe uzyskać wstawiony na początku tego .bashrc
pliku, co jest ważne dla nieinterakcyjnych poleceń bash, wykonaj następujące linie:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.temp_bashrc
echo 'eval "$(rbenv init -)"' >> ~/.temp_bashrc
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.temp_bashrc
cat ~/.temp_bashrc ~/.bashrc > ~/.combined_bashrc && mv ~/.combined_bashrc ~/.bashrc && rm ~/.temp_bashrc
exec $SHELL
Sprawdź, czy Rbenv i Ruby-build są zainstalowane i są dostępne w powłoce:
rbenv install --list
Jeśli rbenv
nie zostanie rozpoznany, wyloguj się i zaloguj ponownie do powłoki.
Utwórz ~/.bash_profile
plik i wskaż ~/.bashrc
plik źródłowy . Jeśli musisz uruchomić jakieś nieinteraktywne polecenia powłoki z aplikacji Rails, takie jak konfiguracja zadań crona przez whenever
klejnot, użyje tej samej wersji Ruby co twoja powłoka interaktywna. Pomoże to zapobiec dziwnym błędom. Dodaj ten wiersz do ~/.bash_profile
pliku:
if [ -f $HOME/.bashrc ]; then
source $HOME/.bashrc
fi
Zainstaluj Ruby 2.4.1:
rbenv install 2.4.1
Uwaga : Ten proces może potrwać 5-15 minut w zależności od zasobów na maszynie wirtualnej i nie ma paska postępu.
Udostępnij Rbenv wszędzie.
rbenv global 2.4.1
Dodaj klucz PGP i obsługę HTTPS dla apt:
sudo apt-get install -y dirmngr gnupg
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
sudo apt-get install -y apt-transport-https ca-certificates
Dodaj repozytorium pasażerów:
sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger zesty main > /etc/apt/sources.list.d/passenger.list'
sudo apt-get update
Zainstaluj moduły Passenger + Nginx:
sudo apt-get install -y nginx
sudo apt-get install -y libnginx-mod-http-passenger
Odwiedź instancję Vultr, używając jej nazwy domeny lub adresu IP, aby przetestować je w tym momencie. Jeśli działają, twoja strona pokaże domyślną stronę powitalną Nginx.
Zainstaluj Bundlera i Railsy:
gem install bundler rails --no-ri --no-rdoc
Konwencja Ubuntu / Debian polega na skonfigurowaniu aplikacji /var/www
. Domyślnie jest zapisywalny tylko przez root. Aby instalacja działała, przekaż własność użytkownikowi sudo deploy
:
sudo chown deploy:deploy /var/www -R
Wygeneruj aplikację railsową w /var/www/
. Jeśli masz już aplikację, którą chcesz wdrożyć, git clone
uruchom ją tutaj, a następnie uruchom bundle
:
cd /var/www
rails new example --database=mysql
Przygotuj Nginx.
sudo nano /etc/nginx/nginx.conf
Zmień użytkownika na deploy
.
user deploy;
W http
sekcji konfiguracji powinien znajdować się wiersz, który mówi Nginx, aby ładował moduły, w tym pasażera. Jeśli go brakuje, możesz dodać go zaraz po Virtual Host Configs
tytule, ale wcześniej sites-enabled
.
include /etc/nginx/conf.d/*.conf;
Edytuj / utwórz passenger.conf
plik.
sudo nano /etc/nginx/conf.d/mod-http-passenger.conf
Powiedz Pasażerowi, aby użył naszej konfiguracji Rbenv. Może zawierać wiersz wskazujący na wersję Ruby dołączoną do Passenger, wystarczy ją usunąć lub skomentować.
passenger_ruby /home/deploy/.rbenv/shims/ruby;
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
Skonfiguruj wirtualny host, aby wskazywał aplikację /var/www/example/
.
sudo nano /etc/nginx/sites-enabled/example.conf
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example/public;
passenger_enabled on;
# When you are ready to switch to production mode - change this to `production`
passenger_app_env development; # <-- !important
}
Uruchom ponownie Nginx.
sudo service nginx restart
W tym momencie Twoja aplikacja jest gotowa do użycia w trybie programowania. Aby przejść do trybu produkcyjnego, musisz wrócić do konfiguracji Nginx i zmienić rails_env
ustawienie na production
.
Przed przełączyć do trybu produkcji, nadal trzeba będzie skonfigurować swoją bazę produkcyjną example_production
, database.yml
i tajny klucz. Sprawdź narzędzie takie jak Capistrano lub Mina, aby przyspieszyć proces wdrażania aplikacji. Dobrą praktyką jest używanie zmiennych ENV z klejnotem podobnym do dotenv
i nie przesyłaj haseł, tajnych kluczy itp . Do repozytorium git.
Istnieje wiele usług oferujących certyfikaty SSL dla Twojej domeny, wiele z nich jest płatnych, a kilka jest bezpłatnych. Skonfiguruj SSL bez względu na to, z jakiej usługi korzystasz. Let's Encrypt jest bardzo łatwy i darmowy w użyciu. Let's Encrypt to organizacja non-profit wspierana przez wielu technologicznych gigantów.
Uruchom następujące polecenia i postępuj zgodnie z instrukcjami.
sudo apt-get update
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
sudo certbot --nginx
sudo certbot renew --dry-run
Jeśli teraz przejdziesz do instancji Vultr HTTPS
, zobaczysz bezpieczną stronę internetową.
Nowo wydany certyfikat wygaśnie i będzie musiał być okresowo odnawiany. Najłatwiej to zrobić, ustawiając zadanie crona.
sudo crontab -e
30 2 * * 1 /usr/bin/certbot renew
Jako ostatni, ale opcjonalny krok, uruchom ponownie maszynę wirtualną i upewnij się, że wszystkie usługi uruchomią się ponownie zgodnie z oczekiwaniami.
Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.
Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.
13 komercyjnych narzędzi do ekstrakcji danych z Big Data
Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+
Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.
Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…
Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą
Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.
Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.
Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.