Cara Memasang dan Mengkonfigurasi Concourse CI di Ubuntu 16.04

pengantar

Continuous Integration adalah praktik pengembangan perangkat lunak DevOps yang memungkinkan pengembang untuk sering menggabungkan kode yang diubah ke dalam repositori bersama beberapa kali sehari. Setelah setiap penggabungan, build otomatis dan pengujian dilakukan untuk mendeteksi masalah dalam kode. Ini memungkinkan pengembang untuk menemukan dan menyelesaikan kesalahan dengan cepat untuk meningkatkan kualitas perangkat lunak dan menyediakan pengiriman perangkat lunak secara terus menerus. Beralih ke sana kemari dari Concourse sangat mudah karena menyimpan semua konfigurasinya dalam file deklaratif yang dapat diperiksa ke dalam kontrol versi. Ini juga menyediakan antarmuka pengguna web yang menampilkan informasi bangunan secara interaktif.

Komponen Concourse.
  • ATC adalah komponen utama dari Concourse. Ini bertanggung jawab untuk menjalankan Web UI dan API. Ini juga menangani semua penjadwalan pipa.
  • TSA adalah server SSH yang dibuat khusus. Ini bertanggung jawab untuk mendaftarkan seorang pekerja dengan aman ke ATC.
  • Pekerja selanjutnya menjalankan dua layanan yang berbeda:
    1. Taman adalah runtime wadah dan antarmuka untuk mengatur wadah dari jarak jauh pada pekerja.
    2. Baggageclaim adalah server manajemen cache dan artefak.
  • Fly adalah antarmuka baris perintah yang digunakan untuk berinteraksi dengan ATC untuk mengkonfigurasi Pipa Concourse.

Prasyarat

Pastikan untuk mengganti semua kemunculan 192.0.2.1 dan ci.example.com dengan alamat IP publik Vultr Anda yang sebenarnya dan nama domain yang sebenarnya.

Perbarui sistem basis Anda menggunakan panduan Cara Memperbarui Ubuntu 16.04 . Setelah sistem Anda diperbarui, lanjutkan untuk menginstal PostgreSQL.

Instal dan Konfigurasi Basis Data PostgreSQL

PostgreSQL adalah sistem database relasional objek. Concourse menyimpan data salurannya ke dalam database 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

Instal server database PostgreSQL.

sudo apt -y install postgresql

Mulai server PostgreSQL dan aktifkan untuk memulai secara otomatis saat boot.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Ubah kata sandi untuk pengguna PostgreSQL default.

sudo passwd postgres

Masuk sebagai pengguna PostgreSQL:

sudo su - postgres

Buat pengguna PostgreSQL baru untuk Concourse CI.

createuser concourse

Catatan : Pengguna PostgreSQL default dapat digunakan untuk otentikasi database, tetapi disarankan untuk menggunakan pengguna khusus untuk otentikasi database Concourse dalam pengaturan produksi.

PostgreSQL menyediakan shell untuk menjalankan query pada database. Beralih ke shell PostgreSQL.

psql

Tetapkan kata sandi untuk pengguna basis data Concourse yang baru dibuat.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

Penting : Ganti DBPassword dengan kata sandi yang kuat. Catat kata sandi karena akan diperlukan nanti dalam tutorial.

Buat database baru untuk Concourse.

CREATE DATABASE concourse OWNER concourse;

Keluar dari psql shell.

\q

Beralih ke pengguna sudo dari postgrespengguna saat ini .

exit

Unduh dan Instal Concourse CI

Unduh versi terbaru dari Concourse yang dapat dieksekusi dan simpan di dalamnya /usr/bin sehingga dapat dieksekusi langsung. Versi terbaru dari binari Concourse dan Fly dapat ditemukan di halaman unduhan Concourse . Rilis baru sangat sering. Ganti tautan di bawah ini dengan tautan baru untuk versi terbaru.

sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/concourse_linux_amd64 -O /usr/bin/concourse

Demikian pula, unduh versi terbaru dari fly executable dan simpan di /usr/bin.

sudo wget https://github.com/concourse/concourse/releases/download/v3.10.0/fly_linux_amd64 -O /usr/bin/fly

Fly adalah antarmuka baris perintah yang digunakan untuk terhubung ke ATC API of Concourse CI. Fly tersedia untuk berbagai platform seperti Linux, Windows dan MacOS.

Tetapkan izin eksekusi untuk binari yang diunduh concourse dan fly.

sudo chmod +x /usr/bin/concourse /usr/bin/fly

Periksa apakah Concourse dan Fly bekerja dengan benar dengan memeriksa versinya.

concourse -version
fly -version

Hasilkan dan Atur Kunci RSA

Pasangan kunci RSA menyediakan cara untuk mengenkripsi komunikasi antara komponen Concourse.

Agar Concourse berfungsi, setidaknya tiga pasang kunci harus dibuat. Untuk mengenkripsi data sesi, buat a session_signing_key. Kunci ini juga akan digunakan oleh TSA untuk menandatangani permintaan yang dibuatnya kepada ATC. Untuk mengamankan server TSA SSH, buat a tsa_host_key. Akhirnya, hasilkan worker_key untuk setiap pekerja.

Buat direktori baru untuk menyimpan kunci dan konfigurasi yang terkait dengan Concourse CI.

sudo mkdir /opt/concourse

Buat 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

Otorisasi kunci publik pekerja dengan menyalin kontennya ke authorized_worker_keys file.

sudo cp /opt/concourse/worker_key.pub /opt/concourse/authorized_worker_keys

Memulai Concourse

Concourse menyediakan dua komponen terpisah yang perlu dimulai: web dan pekerja. Mulai 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

Ubah nama pengguna dan kata sandi basic-auth jika diinginkan. Pastikan path ke file kunci sudah benar dan pastikan bahwa nilai yang benar untuk nama pengguna dan kata sandi dalam konfigurasi database PostgreSQL disediakan.

Catatan : ATC akan mendengarkan port default 8080 dan TSA akan mendengarkan port 2222. Jika otentikasi tidak diinginkan, berikan --no-really-i-dont-want-any-authopsi setelah menghapus opsi auth dasar.

Setelah server web dimulai, output berikut akan ditampilkan.

{"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 server untuk saat ini, karena beberapa hal lagi masih harus diatur.

Mulai Pekerja Concourse CI.

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 mengasumsikan bahwa TSA berjalan di localhost dan mendengarkan port default 2222.

Meskipun web Concourse dan pekerja dapat dimulai dengan mudah menggunakan perintah di atas, disarankan untuk menggunakan Systemd untuk mengelola server.

Konfigurasikan Lingkungan dan Layanan Systemd

Menggunakan layanan Systemd untuk mengelola aplikasi memastikan bahwa aplikasi secara otomatis dimulai pada kegagalan dan saat boot. Server Concourse tidak mengambil data dari file konfigurasi apa pun, tetapi dapat mengakses data dari variabel lingkungan. Alih-alih mengatur variabel lingkungan global, buat file baru untuk menyimpan variabel lingkungan dan kemudian meneruskan variabel ke Concourse CI menggunakan layanan Systemd.

Buat file lingkungan baru untuk web Concourse.

sudo nano /opt/concourse/web.env

Mengisi file.

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

Ubah nama pengguna dan kata sandi BASIC_AUTH jika diinginkan. Pastikan path ke file kunci sudah benar dan pastikan bahwa nilai yang benar untuk nama pengguna dan kata sandi dalam konfigurasi database PostgreSQL disediakan.

Demikian pula, buat file lingkungan untuk pekerja.

sudo nano /opt/concourse/worker.env

Mengisi file.

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

Karena file lingkungan berisi nama pengguna dan kata sandi, ubah izinnya sehingga tidak dapat diakses oleh pengguna lain.

sudo chmod 600 /opt/concourse/*.env

Sekarang buat pengguna baru untuk Concourse untuk menjalankan lingkungan web. Ini akan memastikan bahwa server web berjalan di lingkungan yang terisolasi.

sudo useradd concourse

Berikan kepemilikan pengguna concourse atas direktori file Concourse CI.

sudo chown -R concourse:concourse /opt/concourse

Buat file layanan systemd baru untuk layanan web Concourse.

sudo nano /etc/systemd/system/concourse-web.service

Mengisi file.

[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 file. Buat file layanan baru untuk layanan pekerja Concourse.

sudo nano /etc/systemd/system/concourse-worker.service

Mengisi file.

[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

Layanan web dan pekerja sekarang dapat dimulai secara langsung.

sudo systemctl start concourse-web concourse-worker

Untuk mengaktifkan proses pekerja dan web untuk mulai secara otomatis saat boot, jalankan yang berikut ini.

sudo systemctl enable concourse-worker concourse-web

Untuk memeriksa status layanan, jalankan yang berikut ini.

sudo systemctl status concourse-worker concourse-web

Jika layanan belum dimulai, atau dalam FAILED kondisi, hapus cache dari /tmp direktori.

sudo rm -rf /tmp/*

Mulai ulang layanan.

sudo systemctl restart concourse-worker concourse-web

Perhatikan bahwa saat ini layanan sudah mulai dengan benar. Output setelah memverifikasi status layanan akan serupa dengan yang berikut ini.

[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.

Menghubungkan ke Server

Setelah server dimulai, antarmuka web Concourse CI dapat diakses dengan masuk ke http://192.0.2.1:8080 browser apa pun. Masuk menggunakan nama pengguna dan kata sandi yang disediakan dalam file lingkungan.

Untuk terhubung ke server menggunakan Fly, jalankan yang berikut ini.

fly -t my-ci login -c http://192.0.2.1:8080

Perintah di atas digunakan untuk login awal ke server. -t digunakan untuk memberikan nama target. ganti my-ci dengan nama target yang diinginkan. Perintah di atas akan masuk ke tim default main. Ia akan menanyakan nama pengguna dan kata sandi yang disediakan dalam file lingkungan.

Outputnya akan terlihat 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

Login target akan disimpan selama sehari. Setelah itu, akan kedaluwarsa.

Untuk segera keluar.

fly -t my-ci logout

Fly dapat digunakan untuk masuk ke server di luar jaringan, tetapi hanya jika server memiliki alamat IP publik dan dapat diakses dari luar jaringan. Biner Windows atau MacOS dapat diunduh dari situs unduhan atau dari UI web server.

Menyiapkan Nginx Reverse Proxy

Info masuk, dan informasi lain yang dikirim melalui web UI ke server Concourse tidak diamankan. Koneksi tidak terenkripsi. Proxy reverse Nginx dapat diatur dengan Let's Encrypt SSL gratis.

Instal Nginx.

sudo apt -y install nginx

Mulai Nginx dan aktifkan untuk mulai secara otomatis saat boot.

sudo systemctl start nginx
sudo systemctl enable nginx

Tambahkan repositori Certbot.

sudo add-apt-repository --yes ppa:certbot/certbot
sudo apt-get update

Instal Certbot, yang merupakan aplikasi klien untuk Let's Encrypt CA.

sudo apt -y install certbot

Catatan : Untuk mendapatkan sertifikat dari Let's Encrypt CA, domain tempat sertifikat akan dibuat harus diarahkan ke server. Jika tidak, buat perubahan yang diperlukan pada catatan DNS domain dan tunggu hingga DNS menyebar sebelum membuat permintaan sertifikat lagi. Certbot memeriksa otoritas domain sebelum memberikan sertifikat.

Buat sertifikat SSL.

sudo certbot certonly --webroot -w /var/www/html -d ci.example.com

Sertifikat yang dihasilkan cenderung disimpan di /etc/letsencrypt/live/ci.example.com/ direktori. Sertifikat SSL akan disimpan sebagai fullchain.pem dan kunci pribadi akan disimpan sebagai privkey.pem.

Mari Enkripsi sertifikat kedaluwarsa dalam 90 hari, jadi disarankan pembaruan otomatis karena sertifikat disiapkan menggunakan cronjobs. Cron adalah layanan sistem yang digunakan untuk menjalankan tugas-tugas berkala.

Buka file tugas cron.

sudo crontab -e

Tambahkan baris berikut di akhir file.

30 5 * * * /usr/bin/certbot renew --quiet

Pekerjaan cron di atas akan berjalan setiap hari pada pukul 5:30 pagi. Jika sertifikat akan kedaluwarsa, maka secara otomatis akan diperpanjang.

Buat host virtual baru.

sudo nano /etc/nginx/sites-available/concourse

Mengisi file.

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;
    }
  }

Catatan : Ganti ci.example.com dengan domain yang sebenarnya.

Aktifkan file konfigurasi.

sudo ln -s /etc/nginx/sites-available/concourse /etc/nginx/sites-enabled/concourse

Edit file Lingkungan yang dibuat untuk Web concourse.

sudo nano /opt/concourse/web.env

Ubah nilai CONCOURSE_EXTERNAL_URL dan juga tambahkan dua baris lagi di akhir file.

CONCOURSE_EXTERNAL_URL=https://ci.example.com
CONCOURSE_BIND_IP=127.0.0.1
CONCOURSE_BIND_PORT=8080

Simpan file dan mulai ulang Web Concourse, Pekerja dan Nginx.

sudo systemctl restart concourse-worker concourse-web nginx

Semua data yang dikirim ke dan dari browser sekarang diamankan dengan enkripsi SSL.



Leave a Comment

Memulai Dengan SaltStack di Ubuntu 17.04

Memulai Dengan SaltStack di Ubuntu 17.04

SaltStack adalah program manajemen konfigurasi berbasis python yang dioptimalkan untuk otomatisasi file konfigurasi, penyebaran, dan hal lain yang perlu

Cara Memasang Jenkins di CentOS 7

Cara Memasang Jenkins di CentOS 7

Jenkins adalah alat open source CI (Continuous Integration) yang populer yang banyak digunakan untuk pengembangan, penyebaran, dan otomatisasi proyek. Artikel ini wil

Cara Memasang Drone CI di Ubuntu 18.04

Cara Memasang Drone CI di Ubuntu 18.04

Pendahuluan Drone adalah platform pengujian dan pengiriman otomatis dan berkesinambungan yang berjalan pada infrastruktur Anda sendiri. Drone mendukung bahasa apa pun, layanan o

Menggunakan Chef-solo untuk Mengkonfigurasi Aplikasi Django di Ubuntu

Menggunakan Chef-solo untuk Mengkonfigurasi Aplikasi Django di Ubuntu

Ada banyak cara untuk mengotomatiskan proses pengaturan dan konfigurasi kotak. Untuk alasan apa pun, jika seluruh sistem kami pada saat ini terdiri dari adil

Vultr Load Balancers

Vultr Load Balancers

Apa itu Load Balancer Load Balancers duduk di depan aplikasi Anda dan mendistribusikan lalu lintas masuk di beberapa instance aplikasi Anda. Fo

Menggunakan SaltStack With Pillars di Ubuntu 17.04

Menggunakan SaltStack With Pillars di Ubuntu 17.04

Sementara SaltStack adalah alat yang hebat untuk menjalankan operasi pada banyak server secara bersamaan, SaltStack juga mendukung pengaturan konfigurasi yang ditentukan per-host yang disimpan dalam

Cara Memasang SaltStack di CentOS 7

Cara Memasang SaltStack di CentOS 7

SaltStack, atau Salt, adalah solusi manajemen konfigurasi open source yang populer yang dapat digunakan untuk mengimplementasikan eksekusi jarak jauh, manajemen konfigurasi, cod

Cara Menginstal dan Mengkonfigurasi Anonim pada CentOS 7 untuk Digunakan Dengan Windows Server

Cara Menginstal dan Mengkonfigurasi Anonim pada CentOS 7 untuk Digunakan Dengan Windows Server

Menggunakan Sistem yang Berbeda? Ansible adalah alat sumber terbuka untuk mengotomatisasi tugas. Ia mengelola konfigurasi server Linux dan Windows Anda. Ini bekerja

Cara Memasang dan Mengkonfigurasi Concourse CI di CentOS 7

Cara Memasang dan Mengkonfigurasi Concourse CI di CentOS 7

Menggunakan Sistem yang Berbeda? Pengantar Continuous Integration adalah praktik pengembangan perangkat lunak DevOps yang memungkinkan pengembang untuk sering menggabungkannya

Cara Memasang CD Strider di Ubuntu 18.04

Cara Memasang CD Strider di Ubuntu 18.04

Pendahuluan Strider CD adalah platform penyebaran berkelanjutan sumber terbuka. Aplikasi ini ditulis dalam Node.js dan menggunakan MongoDB sebagai cadangan penyimpanan. Melangkah

Cara Menginstal dan Mengkonfigurasi Anonim pada Debian 9 untuk Digunakan Dengan Windows Server

Cara Menginstal dan Mengkonfigurasi Anonim pada Debian 9 untuk Digunakan Dengan Windows Server

Menggunakan Sistem yang Berbeda? Ansible adalah alat sumber terbuka untuk mengotomatisasi tugas. Ia mengelola konfigurasi server Linux dan Windows Anda. Ini bekerja

Membuat Snapshots Dengan Packer

Membuat Snapshots Dengan Packer

Apa itu Packer? Packer adalah alat pencitraan server yang dikembangkan oleh HashiCorp. Pencitraan server; atau sebagai alternatif, infrastruktur yang tidak dapat diubah; adalah alternatif populer

Cara Memasang dan Mengkonfigurasi GoCD pada CentOS 7

Cara Memasang dan Mengkonfigurasi GoCD pada CentOS 7

Menggunakan Sistem yang Berbeda? GoCD adalah sistem pengantaran dan otomatisasi sumber terbuka yang berkelanjutan. Ini memungkinkan Anda untuk memodelkan alur kerja yang kompleks menggunakan paralelnya

Menggunakan Manajer Paket Chocolatey di Windows

Menggunakan Manajer Paket Chocolatey di Windows

Pendahuluan Chocolatey membawa manajemen paket yang memudahkan administrasi perangkat lunak dan dependensi di Linux, ke Windows. Anda dapat dengan cepat dan mudah

Cara Memasang Foreman di CentOS 7

Cara Memasang Foreman di CentOS 7

Menggunakan Sistem yang Berbeda? Foreman adalah alat sumber terbuka dan gratis yang membantu Anda dengan konfigurasi dan pengelolaan server fisik dan virtual. Forema

Cara Memasang Foreman di Ubuntu 16.04 LTS

Cara Memasang Foreman di Ubuntu 16.04 LTS

Menggunakan Sistem yang Berbeda? Foreman adalah alat sumber terbuka dan gratis yang membantu Anda dengan konfigurasi dan pengelolaan server fisik dan virtual. Forema

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut