Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Integrasi Berterusan adalah praktik pembangunan perisian DevOps yang membolehkan para pemaju sering menggabungkan kod yang diubahsuai ke repositori bersama berkali-kali setiap hari. Selepas setiap gabungan, terbina dan ujian automatik dilakukan untuk mengesan masalah dalam kod. Ia membolehkan pemaju untuk mencari dan menyelesaikan kesilapan dengan cepat untuk meningkatkan kualiti perisian dan menyediakan penghantaran berterusan perisian. Beralih ke dan dari Concourse sangat mudah kerana ia menyimpan semua konfigurasi dalam fail deklaratif yang boleh diperiksa ke dalam kawalan versi. Ia juga menyediakan antara muka pengguna web yang memaparkan maklumat bina secara interaktif.
Pastikan anda menggantikan semua kejadian 192.0.2.1
dan ci.example.com
dengan alamat IP awam Vultr sebenar anda dan nama domain sebenar anda.
Kemas kini sistem asas anda menggunakan panduan Cara Kemaskini Ubuntu 16.04 . Setelah sistem anda dikemas kini, terus pasang PostgreSQL.
PostgreSQL adalah sistem pangkalan data hubungan objek. Concourse menyimpan data saluran paipnya ke dalam pangkalan data PostgreSQL. Tambahkan repositori PostgreSQL.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
Pasang pelayan pangkalan data PostgreSQL.
sudo apt -y install postgresql
Mulakan pelayan PostgreSQL dan dayakannya secara automatik pada masa boot.
sudo systemctl start postgresql
sudo systemctl enable postgresql
Tukar kata laluan untuk pengguna PostgreSQL lalai.
sudo passwd postgres
Log masuk sebagai pengguna PostgreSQL:
sudo su - postgres
Buat pengguna PostgreSQL baru untuk Concourse CI.
createuser concourse
Catatan : Pengguna PostgreSQL lalai dapat digunakan untuk pengesahan pangkalan data, tetapi disarankan untuk menggunakan pengguna khusus untuk pengesahan pangkalan data Concourse dalam persediaan produksi.
PostgreSQL menyediakan shell untuk menjalankan pertanyaan pada pangkalan data. Beralih ke shell PostgreSQL.
psql
Tetapkan kata laluan untuk pengguna pangkalan data Concourse yang baru dibuat.
ALTER USER concourse WITH ENCRYPTED password 'DBPassword';
Penting : Gantikan DBPassword
dengan kata laluan yang kuat. Buat nota kata laluan kerana ia akan diperlukan kemudian dalam tutorial.
Buat pangkalan data baru untuk Concourse.
CREATE DATABASE concourse OWNER concourse;
Keluar dari psql
cangkerang.
\q
Beralih kepada pengguna sudo dari postgres
pengguna semasa .
exit
Muat turun versi terkini Concourse yang dapat dieksekusi dan simpannya /usr/bin
supaya dapat dilaksanakan secara langsung. Versi terkini Concourse and Fly binaries boleh didapati di halaman muat turun Concourse . Keluaran baru sangat kerap. Gantikan pautan di bawah dengan pautan baru untuk versi terkini.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse
Begitu juga, muat turun versi terbaru lalat yang boleh dieksekusi dan simpan di dalamnya /usr/bin
.
sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly
Fly adalah antara muka baris perintah yang digunakan untuk menyambung ke API ATC Concourse CI. Fly tersedia untuk pelbagai platform seperti Linux, Windows dan MacOS.
Tentukan kebenaran pelaksanaan untuk dimuat turun concourse
dan fly
binari.
sudo chmod +x /usr/bin/concourse /usr/bin/fly
Semak sama ada Concourse and Fly berfungsi dengan betul dengan menyemak versi mereka.
concourse -version
fly -version
Pasangan utama RSA menyediakan cara untuk menyulitkan komunikasi antara komponen Concourse.
Untuk Concourse untuk bekerja, sekurang-kurangnya tiga pasang kunci mesti dihasilkan. Untuk menyulitkan data sesi, menjana a session_signing_key
. Kunci ini juga akan digunakan oleh TSA untuk menandatangani permintaan yang dibuat kepada ATC. Untuk melindungi pelayan TSA SSH, buat a tsa_host_key
. Akhir sekali, worker_key
buat setiap pekerja.
Buat direktori baru untuk menyimpan kunci dan konfigurasi yang berkaitan dengan Concourse CI.
sudo mkdir /opt/concourse
Hasilkan kunci yang diperlukan.
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/session_signing_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/tsa_host_key
sudo ssh-keygen -t rsa -q -N '' -f /opt/concourse/worker_key
Memberi kebenaran kepada kunci awam pekerja dengan menyalin kandungannya ke authorized_worker_keys
fail.
sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys
Concourse menyediakan dua komponen berasingan yang perlu dimulakan: web dan pekerja. Mulakan laman web Concourse.
sudo concourse web \
--basic-auth-username admin \
--basic-auth-password StrongPass \
--session-signing-key /opt/concourse/session_signing_key \
--tsa-host-key /opt/concourse/tsa_host_key \
--tsa-authorized-keys /opt/concourse/authorized_worker_keys \
--postgres-user=concourse \
--postgres-password=DBPassword \
--postgres-database=concourse \
--external-url http://192.0.2.1:8080
Tukar nama pengguna dan kata laluan basic-auth
jika dikehendaki. Pastikan laluan ke fail utama adalah betul dan pastikan nilai yang betul untuk nama pengguna dan kata laluan dalam konfigurasi pangkalan data PostgreSQL disediakan.
Nota : ATC akan mendengar port lalai 8080
dan TSA akan mendengar port 2222
. Sekiranya pengesahan tidak diingini, lulus --no-really-i-dont-want-any-auth
pilihan setelah membuang pilihan autentikasi asas.
Setelah pelayan web dimulakan, output berikut akan dipaparkan.
{"timestamp":"1503657859.661247969","source":"tsa","message":"tsa.listening","log_level":1,"data":{}}
{"timestamp":"1503657859.666907549","source":"atc","message":"atc.listening","log_level":1,"data":{"debug":"127.0.0.1:8079","http":"0.0.0.0:8080"}}
Hentikan pelayan buat masa sekarang, kerana beberapa perkara lagi mesti ditetapkan.
Mulakan Concourse CI Worker.
sudo concourse worker \
--work-dir /opt/concourse/worker \
--tsa-host 127.0.0.1 \
--tsa-public-key /opt/concourse/tsa_host_key.pub \
--tsa-worker-private-key /opt/concourse/worker_key
Perintah di atas akan menganggap bahawa TSA berjalan di localhost dan mendengar port lalai 2222
.
Walaupun web dan pekerja Concourse boleh dimulakan dengan mudah menggunakan arahan di atas, disyorkan untuk menggunakan Systemd untuk menguruskan pelayan.
Menggunakan perkhidmatan Systemd untuk mengurus aplikasi memastikan bahawa aplikasi secara automatik dimulakan pada kegagalan dan pada waktu boot. Server Concourse tidak mengambil data dari sebarang fail konfigurasi, tetapi ia boleh mengakses data dari pembolehubah persekitaran. Daripada menetapkan pembolehubah persekitaran global, buat fail baru untuk menyimpan pembolehubah persekitaran dan kemudian lulus pembolehubah ke Concourse CI menggunakan perkhidmatan Systemd.
Buat fail persekitaran baru untuk web Concourse.
sudo nano /opt/concourse/web.env
Isi fail.
CONCOURSE_SESSION_SIGNING_KEY=/opt/concourse/session_signing_key
CONCOURSE_TSA_HOST_KEY=/opt/concourse/tsa_host_key
CONCOURSE_TSA_AUTHORIZED_KEYS=/opt/concourse/authorized_worker_keys
CONCOURSE_POSTGRES_USER=concourse
CONCOURSE_POSTGRES_PASSWORD=DBPassword
CONCOURSE_POSTGRES_DATABASE=concourse
CONCOURSE_BASIC_AUTH_USERNAME=admin
CONCOURSE_BASIC_AUTH_PASSWORD=StrongPass
CONCOURSE_EXTERNAL_URL=http://192.0.2.1:8080
Tukar nama pengguna dan kata laluan BASIC_AUTH
jika dikehendaki. Pastikan laluan ke fail utama adalah betul dan pastikan nilai yang betul untuk nama pengguna dan kata laluan dalam konfigurasi pangkalan data PostgreSQL disediakan.
Begitu juga, buat file persekitaran untuk pekerja.
sudo nano /opt/concourse/worker.env
Isi fail.
CONCOURSE_WORK_DIR=/opt/concourse/worker
CONCOURSE_TSA_WORKER_PRIVATE_KEY=/opt/concourse/worker_key
CONCOURSE_TSA_PUBLIC_KEY=/opt/concourse/tsa_host_key.pub
CONCOURSE_TSA_HOST=127.0.0.1
Oleh kerana fail persekitaran mengandungi nama pengguna dan kata laluan, ubah keizinannya supaya ia tidak boleh diakses oleh pengguna lain.
sudo chmod 600 /opt/concourse/*.env
Sekarang buat pengguna baru untuk Concourse untuk menjalankan persekitaran web. Ini akan memastikan pelayan web berjalan di persekitaran terpencil.
sudo useradd concourse
Berikan hak milik pengguna concourse atas direktori fail Concourse CI.
sudo chown -R concourse:concourse /opt/concourse
Buat fail perkhidmatan systemd baru untuk perkhidmatan web Concourse.
sudo nano /etc/systemd/system/concourse-web.service
Isi fail.
[Unit]
Description=Concourse CI web server
[Service]
Type=simple
User=concourse
Group=concourse
Restart=on-failure
EnvironmentFile=/opt/concourse/web.env
ExecStart=/usr/bin/concourse web
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_web
[Install]
WantedBy=multi-user.target
Simpan dan tutup fail. Buat fail perkhidmatan baru untuk perkhidmatan pekerja Concourse.
sudo nano /etc/systemd/system/concourse-worker.service
Isi fail.
[Unit]
Description=Concourse CI worker process
[Service]
Type=simple
Restart=on-failure
EnvironmentFile=/opt/concourse/worker.env
ExecStart=/usr/bin/concourse worker
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=concourse_worker
[Install]
WantedBy=multi-user.target
Perkhidmatan web dan pekerja kini boleh dimulakan secara langsung.
sudo systemctl start concourse-web concourse-worker
Untuk membolehkan pekerja dan proses web dimulakan secara automatik pada masa boot, jalankan yang berikut.
sudo systemctl enable concourse-worker concourse-web
Untuk menyemak status perkhidmatan, jalankan yang berikut.
sudo systemctl status concourse-worker concourse-web
Jika perkhidmatan tidak dimulakan, atau dalam FAILED
keadaan, alih keluar cache dari /tmp
direktori.
sudo rm -rf /tmp/*
Mulakan semula perkhidmatan.
sudo systemctl restart concourse-worker concourse-web
Perhatikan bahawa kali ini perkhidmatan telah bermula dengan betul. Keluaran setelah mengesahkan status perkhidmatan akan sama dengan yang berikut.
[user@vultr ~]$ sudo systemctl status concourse-worker concourse-web
● concourse-worker.service - Concourse CI worker process
Loaded: loaded (/etc/systemd/system/concourse-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3037 (concourse)
CGroup: /system.slice/concourse-worker.service
└─3037 /usr/bin/concourse worker
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.934722900","source":"tsa","message":"t...""}}
Aug 26 07:27:42 vultr.guest concourse_worker[3037]: {"timestamp":"1503732462.941227913","source":"guardian","messag...0"}}
...
● concourse-web.service - Concourse CI web server
Loaded: loaded (/etc/systemd/system/concourse-web.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2017-08-26 07:27:37 UTC; 55s ago
Main PID: 3036 (concourse)
CGroup: /system.slice/concourse-web.service
└─3036 /usr/bin/concourse web
Aug 26 07:27:57 vultr.guest concourse_web[3036]: {"timestamp":"1503732477.925554752","source":"tsa","message":"tsa...ve"}}
Aug 26 07:28:02 vultr.guest concourse_web[3036]: {"timestamp":"1503732482.925430775","source":"tsa","message":"tsa...ve"}}
...
Hint: Some lines were ellipsized, use -l to show in full.
Apabila pelayan dimulakan, antara muka web Concourse CI boleh diakses dengan pergi ke http://192.0.2.1:8080
mana-mana penyemak imbas. Log masuk menggunakan nama pengguna dan kata laluan yang disediakan dalam fail persekitaran.
Untuk menyambung ke pelayan menggunakan Fly, jalankan yang berikut.
fly -t my-ci login -c http://192.0.2.1:8080
Perintah di atas digunakan untuk log masuk awal ke pelayan. -t
digunakan untuk memberikan nama sasaran. ganti my-ci
dengan nama sasaran yang dikehendaki. Perintah di atas akan log masuk ke pasukan lalai main
. Ia akan meminta nama pengguna dan kata laluan yang disediakan dalam fail persekitaran.
Keluarannya akan seperti berikut.
[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'
username: admin
password:
target saved
Log masuk sasaran akan disimpan selama sehari. Selepas itu, ia akan tamat tempoh.
Untuk log keluar segera.
fly -t my-ci logout
Fly dapat digunakan untuk masuk ke pelayan di luar rangkaian, tetapi hanya jika pelayan mempunyai alamat IP umum dan dapat diakses dari luar rangkaian. Binari Windows atau MacOS boleh dimuat turun dari tapak muat turun atau dari UI web pelayan.
Log masuk, dan maklumat lain yang dihantar melalui UI web ke pelayan Concourse tidak selamat. Sambungan tidak disulitkan. Proksi terbalik Nginx boleh disediakan dengan SSL Let's Encrypt percuma.
Pasang Nginx.
sudo apt -y install nginx
Mula Nginx dan aktifkannya secara automatik pada masa boot.
sudo systemctl start nginx
sudo systemctl enable nginx
Tambah repositori Certbot.
sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update
Pasang Certbot, iaitu aplikasi klien untuk Let's Encrypt CA.
sudo apt -y install certbot
Catatan : Untuk mendapatkan sijil dari Let's Encrypt CA, domain yang akan dibuat sijil mesti diarahkan ke pelayan. Sekiranya tidak, buat perubahan yang diperlukan pada rekod DNS domain dan tunggu DNS disebarkan sebelum membuat permintaan sijil lagi. Certbot memeriksa pihak berkuasa domain sebelum menyediakan sijil.
Menjana sijil SSL.
sudo certbot certonly --webroot -w /var/www/html -d ci.example.com
Sijil yang dihasilkan kemungkinan akan disimpan dalam /etc/letsencrypt/live/ci.example.com/
direktori. Sijil SSL akan disimpan sebagai fullchain.pem
dan kunci persendirian akan disimpan sebagai privkey.pem
.
Let's Encrypt certificates expire in 90 days, jadi ia disyorkan pembaharuan auto untuk sijil ditetapkan menggunakan cronjobs. Cron adalah perkhidmatan sistem yang digunakan untuk menjalankan tugas berkala.
Buka fail kerja cron.
sudo crontab -e
Tambahkan garisan berikut pada akhir fail.
30 5 * * * /usr/bin/certbot renew --quiet
Pekerjaan cron di atas akan dijalankan setiap hari pada jam 5:30 pagi. Sekiranya sijil perlu tamat tempoh, ia akan diperbaharui secara automatik.
Buat tuan rumah maya yang baru.
sudo nano /etc/nginx/sites-available/concourse
Isi fail.
server {
listen 80;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name ci.example.com;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/concourse.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8080;
proxy_read_timeout 90;
proxy_redirect http://localhost:8080 https://ci.example.com;
}
}
Nota : Gantikan ci.example.com
dengan domain sebenar.
Aktifkan fail konfigurasi.
sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse
Edit fail Persekitaran yang dibuat untuk Web konsert.
sudo nano /opt/concourse/web.env
Tukar nilai CONCOURSE_EXTERNAL_URL
dan tambahkan dua baris lagi di hujung fail.
CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080
Simpan fail dan mulakan semula Concourse Web, Worker dan Nginx.
sudo systemctl restart concourse-worker concourse-web nginx
Semua data yang dihantar ke dan dari penyemak imbas kini diamankan dengan penyulitan SSL.
Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1
Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.
Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.
Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.
Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.
CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?
Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.
Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!
Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.
Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut