Kako instalirati i konfigurirati Concourse CI na Ubuntu 16.04

Uvod

Kontinuirana integracija je praksa razvoja softvera DevOps koja programerima omogućuje često spajanje modificiranog koda u zajedničko spremište mnogo puta dnevno. Nakon svakog spajanja izvode se automatske izrade i testovi kako bi se otkrili problemi u kodu. Omogućuje programerima da brzo pronađu i riješe pogreške kako bi poboljšali kvalitetu softvera i osigurali kontinuiranu isporuku softvera. Prebacivanje s Concoursea i tamo vrlo je jednostavno jer svu svoju konfiguraciju čuva u deklarativnim datotekama koje se mogu provjeriti u kontroli verzija. Također pruža web korisničko sučelje koje interaktivno prikazuje informacije o izgradnji.

Komponente skupa.
  • ATC je glavna komponenta Concoursa. Odgovoran je za pokretanje web korisničkog sučelja i API-ja. Također se brine o cjelokupnom rasporedu cjevovoda.
  • TSA je prilagođeni SSH poslužitelj. Odgovoran je za sigurnu registraciju radnika u ATC-u.
  • Workers nadalje vodi dvije različite usluge:
    1. Garden je vrijeme izvođenja kontejnera i sučelje za daljinsko orkestriranje kontejnera na radniku.
    2. Baggageclaim je poslužitelj za upravljanje predmemorijem i artefaktima.
  • Fly je sučelje naredbenog retka koje se koristi za interakciju s ATC-om za konfiguriranje Concourse Pipelinea.

Preduvjeti

  • Instanca poslužitelja Vultr Ubuntu 16.04.
  • Korisnik sudoa .

Svakako zamijenite sva pojavljivanja 192.0.2.1 i ci.example.com sa svojom stvarnom javnom IP adresom Vultr i stvarnim imenom domene.

Ažurirajte svoj osnovni sustav pomoću vodiča Kako ažurirati Ubuntu 16.04 . Nakon što je vaš sustav ažuriran, nastavite s instalacijom PostgreSQL-a.

Instalirajte i konfigurirajte PostgreSQL bazu podataka

PostgreSQL je objektni relacijski sustav baze podataka. Concourse pohranjuje svoje podatke cjevovoda u PostgreSQL bazu podataka. Dodajte PostgreSQL spremište.

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

Instalirajte PostgreSQL poslužitelj baze podataka.

sudo apt -y install postgresql

Pokrenite PostgreSQL poslužitelj i omogućite mu automatsko pokretanje prilikom pokretanja.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Promijenite lozinku za zadanog korisnika PostgreSQL.

sudo passwd postgres

Prijavite se kao korisnik PostgreSQL:

sudo su - postgres

Stvorite novog PostgreSQL korisnika za Concourse CI.

createuser concourse

Napomena : Zadani korisnik PostgreSQL može se koristiti za provjeru autentičnosti baze podataka, ali se preporučuje korištenje namjenskog korisnika za provjeru autentičnosti Concourse baze podataka u proizvodnim postavkama.

PostgreSQL pruža ljusku za pokretanje upita u bazi podataka. Prijeđite na ljusku PostgreSQL.

psql

Postavite lozinku za novostvorenog korisnika baze podataka Concourse.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

Važno : Zamijenite DBPassword jakom lozinkom. Zabilježite lozinku jer će biti potrebna kasnije u vodiču.

Napravite novu bazu podataka za Concourse.

CREATE DATABASE concourse OWNER concourse;

Izađite iz psql ljuske.

\q

Prijeđite na sudo korisnika s trenutnog postgreskorisnika.

exit

Preuzmite i instalirajte Concourse CI

Preuzmite najnoviju verziju izvršne datoteke Concourse i pohranite je /usr/bin tako da se može izravno izvršiti. Najnovija verzija binarnih datoteka Concourse i Fly može se pronaći na stranici za preuzimanje Concourse . Nova izdanja su vrlo česta. Zamijenite vezu u nastavku novom vezom za najnoviju verziju.

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

Slično, preuzmite najnoviju verziju izvršne datoteke fly i pohranite je u /usr/bin.

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

Fly je sučelje naredbenog retka koje se koristi za povezivanje s ATC API-jem Concourse CI. Fly je dostupan za više platformi kao što su Linux, Windows i MacOS.

Dodijelite dopuštenje za izvršavanje preuzetim concourse i fly binarnim datotekama.

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

Provjerite rade li Concourse i Fly ispravno tako da provjerite njihovu verziju.

concourse -version
fly -version

Generirajte i postavite RSA ključeve

RSA parovi ključeva pružaju način za šifriranje komunikacije između komponenti Concoursea.

Da bi Concourse radio, moraju se generirati najmanje tri para ključeva. Za šifriranje podataka sesije generirajte session_signing_key. Ovaj ključ će također koristiti TSA za potpisivanje zahtjeva koje upućuje ATC-u. Da biste osigurali TSA SSH poslužitelj, generirajte tsa_host_key. Konačno, generirajte worker_key za svakog radnika.

Izradite novi direktorij za pohranu ključeva i konfiguracije povezanih s Concourse CI.

sudo mkdir /opt/concourse

Generirajte potrebne ključeve.

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

Autorizirajte javni ključ radnika kopiranjem njegovog sadržaja u authorized_worker_keys datoteku.

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

Početni skup

Concourse pruža dvije odvojene komponente koje je potrebno pokrenuti: web i worker. Pokrenite 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

Promijenite korisničko ime i lozinku basic-auth ako želite. Provjerite je li put do datoteka s ključevima ispravan i osigurajte ispravnu vrijednost za korisničko ime i lozinku u konfiguraciji baze podataka PostgreSQL.

Napomena : ATC će slušati zadani port, 8080 a TSA će slušati port 2222. Ako autentifikacija nije poželjna, proslijedite --no-really-i-dont-want-any-authopciju nakon uklanjanja osnovnih opcija autentifikacije.

Nakon što se web poslužitelj pokrene, prikazat će se sljedeći izlaz.

{"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"}}

Zaustavite poslužitelj za sada jer se još nekoliko stvari mora postaviti.

Pokrenite 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

Gornja naredba pretpostavlja da TSA radi na lokalnom hostu i sluša zadani port 2222.

Iako se web Concourse i worker mogu lako pokrenuti pomoću gornjih naredbi, preporučuje se korištenje Systemd-a za upravljanje poslužiteljem.

Konfigurirajte okruženje i Systemd uslugu

Korištenje usluge Systemd za upravljanje aplikacijom osigurava da se aplikacija automatski pokreće u slučaju kvarova i prilikom pokretanja. Concourse poslužitelj ne uzima podatke iz bilo koje konfiguracijske datoteke, ali može pristupiti podacima iz varijabli okruženja. Umjesto postavljanja globalnih varijabli okruženja, stvorite novu datoteku za pohranu varijabli okruženja, a zatim proslijedite varijable Concourse CI-u pomoću usluge Systemd.

Izradite novu datoteku okruženja za Concourse web.

sudo nano /opt/concourse/web.env

Popunite datoteku.

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

Change the username and password of the BASIC_AUTH if desired. Make sure that the path to the key files are correct and make sure that the correct value for username and password in the PostgreSQL database configuration is provided.

Similarly, create an environment file for the worker.

sudo nano /opt/concourse/worker.env

Populate the 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

As the environment files contain usernames and passwords, change its permissions so that it cannot be accessed by other users.

sudo chmod 600 /opt/concourse/*.env

Now create a new user for Concourse to run the web environment. This will ensure that the web server is running in an isolated environment.

sudo useradd concourse

Give the concourse user ownership over Concourse CI file's directory.

sudo chown -R concourse:concourse /opt/concourse

Create a new systemd service file for the Concourse web service.

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

Populate the 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

Save and close the file. Create a new service file for the Concourse worker service.

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

Populate the 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

The web and worker service can now be started directly.

sudo systemctl start concourse-web concourse-worker

To enable the worker and web process to automatically start at boot time, run the following.

sudo systemctl enable concourse-worker concourse-web

To check the status of services, run the following.

sudo systemctl status concourse-worker concourse-web

If the service is not started, or in the FAILED state, remove the cache from the /tmp directory.

sudo rm -rf /tmp/*

Restart the services.

sudo systemctl restart concourse-worker concourse-web

Notice that this time the services have started correctly. The output upon verifying the status of the services will be similar to the following.

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

Connecting to the Server

Once the server is started, the web interface of the Concourse CI can be accessed by going to http://192.0.2.1:8080 in any browser. Log in using the username and password provided in the environment file.

To connect to the server using Fly, run the following.

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

Gornja naredba se koristi za početnu prijavu na poslužitelj. -t koristi se za davanje ciljanog naziva. zamijenite my-ci bilo kojim željenim nazivom cilja. Gornja naredba će se prijaviti u zadani tim main. Tražit će korisničko ime i lozinku navedene u datoteci okruženja.

Izlaz će izgledati ovako.

[user@vultr ~]$ fly -t my-ci login -c http://192.0.2.1:8080
logging in to team 'main'

username: admin
password:

target saved

Ciljna prijava bit će spremljena na jedan dan. Nakon toga će isteći.

Da se odmah odjavim.

fly -t my-ci logout

Fly se može koristiti za prijavu na poslužitelj izvan mreže, ali samo ako poslužitelj ima javnu IP adresu i dostupan joj je izvan mreže. Windows ili MacOS binarni program može se preuzeti sa stranice za preuzimanje ili s web korisničkog sučelja poslužitelja.

Postavljanje Nginx obrnutog proxyja

Prijave i druge informacije poslane putem web korisničkog sučelja na Concourse poslužitelj nisu zaštićene. Veza nije šifrirana. Nginx reverse proxy može se postaviti s besplatnim SSL-om Let's Encrypt.

Instalirajte Nginx.

sudo apt -y install nginx

Pokrenite Nginx i omogućite mu automatsko pokretanje prilikom pokretanja.

sudo systemctl start nginx
sudo systemctl enable nginx

Dodajte Certbot repozitorij.

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

Instalirajte Certbot, klijentsku aplikaciju za Let's Encrypt CA.

sudo apt -y install certbot

Napomena : Za dobivanje certifikata od Let's Encrypt CA, domena za koju se certifikati trebaju generirati mora biti usmjerena prema poslužitelju. Ako nije, izvršite potrebne promjene u DNS zapisima domene i pričekajte da se DNS širi prije nego što ponovno uputite zahtjev za certifikatom. Certbot provjerava autoritet domene prije pružanja certifikata.

Generirajte SSL certifikate.

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

Generirani certifikati će vjerojatno biti pohranjeni u /etc/letsencrypt/live/ci.example.com/ imeniku. SSL certifikat će biti pohranjen kao, fullchain.pem a privatni ključ će biti pohranjen kao privkey.pem.

Let's Encrypt certifikati istječu za 90 dana, stoga se preporučuje automatska obnova za certifikate postavljena pomoću cronjobsa. Cron je sistemska usluga koja se koristi za izvršavanje periodičnih zadataka.

Otvorite cron datoteku posla.

sudo crontab -e

Dodajte sljedeći redak na kraj datoteke.

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

Gornji cron posao će se izvoditi svaki dan u 5:30 ujutro. Ako potvrda istekne, automatski će se obnoviti.

Napravite novi virtualni host.

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

Popunite datoteku.

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

Napomena : Zamijenite ci.example.com stvarnom domenom.

Aktivirajte konfiguracijsku datoteku.

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

Uredite datoteku okruženja stvorenu za web concourse.

sudo nano /opt/concourse/web.env

Promijenite vrijednost CONCOURSE_EXTERNAL_URL i također dodajte još dva retka na kraju datoteke.

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

Spremite datoteku i ponovno pokrenite Concourse Web, Worker i Nginx.

sudo systemctl restart concourse-worker concourse-web nginx

Svi podaci koji se šalju u i iz preglednika sada su zaštićeni SSL enkripcijom.


Kako instalirati Jenkins na CentOS 7

Kako instalirati Jenkins na CentOS 7

Jenkins je popularan open source CI (Continuous Integration) alat koji se naširoko koristi za razvoj projekata, implementaciju i automatizaciju. Ovaj članak će

Kako instalirati i konfigurirati Concourse CI na Ubuntu 16.04

Kako instalirati i konfigurirati Concourse CI na Ubuntu 16.04

Korištenje drugog sustava? Uvod Kontinuirana integracija je praksa razvoja softvera DevOps koja omogućuje programerima da često spajaju

Kako instalirati i konfigurirati Ansible na Debian 9 za korištenje sa Windows Serverom

Kako instalirati i konfigurirati Ansible na Debian 9 za korištenje sa Windows Serverom

Korištenje drugog sustava? Ansible je alat otvorenog koda za automatizaciju zadataka. Upravlja konfiguracijom vaših Linux i Windows poslužitelja. Radi

Kako instalirati i konfigurirati GoCD na CentOS 7

Kako instalirati i konfigurirati GoCD na CentOS 7

Korištenje drugog sustava? GoCD je open source sustav kontinuirane isporuke i automatizacije. Omogućuje vam modeliranje složenih tijekova rada koristeći svoj paralelni an

Korištenje SaltStacka sa stupovima na Ubuntu 17.04

Korištenje SaltStacka sa stupovima na Ubuntu 17.04

Iako je SaltStack izvrstan alat za istovremeno izvođenje operacija na mnogim poslužiteljima, on također podržava unaprijed definirane konfiguracijske postavke po hostu pohranjene u

Kako instalirati i konfigurirati Ansible na CentOS 7 za korištenje sa Windows Serverom

Kako instalirati i konfigurirati Ansible na CentOS 7 za korištenje sa Windows Serverom

Korištenje drugog sustava? Ansible je alat otvorenog koda za automatizaciju zadataka. Upravlja konfiguracijom vaših Linux i Windows poslužitelja. Radi

Kako instalirati Drone CI na Ubuntu 18.04

Kako instalirati Drone CI na Ubuntu 18.04

Uvod Drone je automatizirana, kontinuirana platforma za testiranje i isporuku koja radi na vašoj vlastitoj infrastrukturi. Drone podržava bilo koji jezik, uslugu o

Vultr balanseri opterećenja

Vultr balanseri opterećenja

Što je Load Balancer Balanseri opterećenja sjede ispred vaše aplikacije i distribuiraju dolazni promet na više instanci vaše aplikacije. Fo

Kako instalirati Foremana na CentOS 7

Kako instalirati Foremana na CentOS 7

Korištenje drugog sustava? Foreman je besplatni alat otvorenog koda koji vam pomaže u konfiguraciji i upravljanju fizičkim i virtualnim poslužiteljima. Forema

Kako instalirati SaltStack na CentOS 7

Kako instalirati SaltStack na CentOS 7

SaltStack ili Salt je popularno rješenje za upravljanje konfiguracijom otvorenog koda koje se može koristiti za implementaciju daljinskog izvršavanja, upravljanja konfiguracijom, cod

Kako instalirati Strider CD na Ubuntu 18.04

Kako instalirati Strider CD na Ubuntu 18.04

Uvod Strider CD je platforma za kontinuiranu implementaciju otvorenog koda. Aplikacija je napisana u Node.js i koristi MongoDB kao pozadinu za pohranu. Korak

Korištenje Chocolatey Package Managera u sustavu Windows

Korištenje Chocolatey Package Managera u sustavu Windows

Uvod Chocolatey u Windows donosi upravljanje paketima koje olakšava administraciju softvera i ovisnosti na Linuxu. Možete brzo i jednostavno

Izrada snimaka pomoću Packera

Izrada snimaka pomoću Packera

Što je Packer? Packer je alat za obradu slika poslužitelja koji je razvio HashiCorp. Slika poslužitelja; ili alternativno, nepromjenjiva infrastruktura; je popularna alternativa

Kako instalirati i konfigurirati Concourse CI na CentOS 7

Kako instalirati i konfigurirati Concourse CI na CentOS 7

Korištenje drugog sustava? Uvod Kontinuirana integracija je praksa razvoja softvera DevOps koja omogućuje programerima da često spajaju

Korištenje Chef-solo za konfiguriranje Django aplikacije na Ubuntu

Korištenje Chef-solo za konfiguriranje Django aplikacije na Ubuntu

Postoji mnogo načina za automatizaciju procesa postavljanja i konfiguriranja kutije. Iz bilo kojeg razloga, ako se cijeli naš sustav u ovom trenutku sastoji od pravednih

Kako instalirati Foremana na Ubuntu 16.04 LTS

Kako instalirati Foremana na Ubuntu 16.04 LTS

Korištenje drugog sustava? Foreman je besplatni alat otvorenog koda koji vam pomaže u konfiguraciji i upravljanju fizičkim i virtualnim poslužiteljima. Forema

Početak rada sa SaltStackom na Ubuntu 17.04

Početak rada sa SaltStackom na Ubuntu 17.04

SaltStack je program za upravljanje konfiguracijom temeljen na pythonu koji je optimiziran za automatizaciju konfiguracijskih datoteka, implementacije i svega ostalog

Uspon strojeva: primjene AI u stvarnom svijetu

Uspon strojeva: primjene AI u stvarnom svijetu

Umjetna inteligencija nije u budućnosti, ovdje je upravo u sadašnjosti. U ovom blogu Pročitajte kako su aplikacije umjetne inteligencije utjecale na različite sektore.

DDOS napadi: kratak pregled

DDOS napadi: kratak pregled

Jeste li i vi žrtva DDOS napada i zbunjeni ste metodama prevencije? Pročitajte ovaj članak kako biste riješili svoje upite.

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Jeste li se ikada zapitali kako hakeri zarađuju novac?

Možda ste čuli da hakeri zarađuju mnogo novca, ali jeste li se ikada zapitali kako zarađuju toliki novac? raspravimo.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Revolucionarni Googleovi izumi koji će vam olakšati život.

Želite li vidjeti revolucionarne izume Googlea i kako su ti izumi promijenili život svakog čovjeka danas? Zatim čitajte na blogu kako biste vidjeli Googleove izume.

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Friday Essential: Što se dogodilo s automobilima s umjetnom inteligencijom?

Koncept samovozećih automobila koji će krenuti na ceste uz pomoć umjetne inteligencije san je koji već neko vrijeme imamo. No, unatoč nekoliko obećanja, nigdje ih nema. Pročitajte ovaj blog kako biste saznali više…

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Tehnološka singularnost: daleka budućnost ljudske civilizacije?

Kako se znanost razvija velikom brzinom, preuzimajući mnoge naše napore, raste i rizik da se podvrgnemo neobjašnjivoj Singularnosti. Pročitajte što bi za nas mogla značiti singularnost.

Evolucija pohrane podataka – Infografika

Evolucija pohrane podataka – Infografika

Metode pohrane podataka su se razvijale možda od rođenja podataka. Ovaj blog pokriva evoluciju pohrane podataka na temelju infografike.

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Funkcionalnosti slojeva referentne arhitekture velikih podataka

Pročitajte blog kako biste na najjednostavniji način upoznali različite slojeve u arhitekturi velikih podataka i njihove funkcionalnosti.

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

6 nevjerojatnih prednosti posjedovanja pametnih kućnih uređaja u našim životima

U ovom digitalnom svijetu, pametni kućni uređaji postali su ključni dio života. Evo nekoliko nevjerojatnih prednosti pametnih kućnih uređaja o tome kako naš život čine vrijednim življenja i jednostavnijim.

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Ažuriranje dodataka macOS Catalina 10.15.4 uzrokuje više problema nego što ih rješava

Nedavno je Apple izdao macOS Catalina 10.15.4 dodatak ažuriranju kako bi riješio probleme, ali čini se da ažuriranje uzrokuje više problema koji dovode do zalijevanja mac strojeva. Pročitajte ovaj članak da biste saznali više