Hur man installerar och konfigurerar Concourse CI på Ubuntu 16.04

Introduktion

Continuous Integration är en DevOps mjukvaruutvecklingspraxis som gör det möjligt för utvecklarna att ofta slå samman den modifierade koden till det delade arkivet många gånger om dagen. Efter varje sammanslagning utförs automatiska builds och tester för att upptäcka problem i koden. Det gör det möjligt för utvecklarna att hitta och lösa felen snabbt för att förbättra mjukvarans kvalitet och ge kontinuerlig leverans av programvaran. Att byta fram och tillbaka från Concourse är mycket enkelt eftersom det behåller all sin konfiguration i deklarativa filer som kan kontrolleras i versionskontroll. Det tillhandahåller också ett webbanvändargränssnitt som visar bygginformationen interaktivt.

Concourse komponenter.
  • ATC är huvudkomponenten i Concourse. Den ansvarar för att köra webbgränssnittet och API:et. Den tar också hand om all pipeline-schemaläggning.
  • TSA är en specialbyggd SSH-server. Det är ansvarigt för att säkert registrera en arbetare hos ATC.
  • Arbetare driver dessutom två olika tjänster:
    1. Garden är en containerkörning och ett gränssnitt för fjärrstyrning av containrar på en arbetare.
    2. Baggageclaim är en server för cache- och artefakthantering.
  • Fly är ett kommandoradsgränssnitt som används för att interagera med ATC för att konfigurera Concourse Pipelines.

Förutsättningar

Se till att ersätta alla förekomster av 192.0.2.1 och ci.example.com med din faktiska Vultr offentliga IP-adress och faktiska domännamn.

Uppdatera ditt bassystem med hjälp av guiden Hur man uppdaterar Ubuntu 16.04 . När ditt system har uppdaterats, fortsätt att installera PostgreSQL.

Installera och konfigurera PostgreSQL-databas

PostgreSQL är ett relationsdatabassystem för objekt. Concourse lagrar sina pipelinedata i en PostgreSQL-databas. Lägg till PostgreSQL-förvaret.

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

Installera PostgreSQL-databasservern.

sudo apt -y install postgresql

Starta PostgreSQL-servern och låt den starta automatiskt vid uppstart.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Ändra lösenordet för standardpostgreSQL-användaren.

sudo passwd postgres

Logga in som PostgreSQL-användare:

sudo su - postgres

Skapa en ny PostgreSQL-användare för Concourse CI.

createuser concourse

Obs : StandardpostgreSQL-användaren kan användas för autentisering av databasen, men det rekommenderas att använda en dedikerad användare för autentisering av Concourse-databasen i en produktionsuppsättning.

PostgreSQL tillhandahåller ett skal för att köra frågor på databasen. Byt till PostgreSQL-skalet.

psql

Ställ in ett lösenord för den nyskapade Concourse-databasanvändaren.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

Viktigt : Ersätt DBPassword med ett starkt lösenord. Anteckna lösenordet eftersom det kommer att krävas senare i handledningen.

Skapa en ny databas för Concourse.

CREATE DATABASE concourse OWNER concourse;

Gå ur psql skalet.

\q

Växla till sudo-användaren från nuvarande postgresanvändare.

exit

Ladda ner och installera Concourse CI

Ladda ner den senaste versionen av Concourse körbara och lagra den /usr/bin så att den kan köras direkt. Den senaste versionen av Concourse- och Fly-binärerna finns på Concourse-nedladdningssidan . Nya släpp är mycket frekventa. Ersätt länken nedan med den nya länken för den senaste versionen.

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

På samma sätt laddar du ner den senaste versionen av den körbara flygfilen och lagrar den i /usr/bin.

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

Fly är kommandoradsgränssnittet som används för att ansluta till ATC API för Concourse CI. Fly är tillgängligt för flera plattformar som Linux, Windows och MacOS.

Tilldela exekveringsbehörighet till de nedladdade concourse och fly binära filerna.

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

Kontrollera om Concourse och Fly fungerar korrekt genom att kontrollera deras version.

concourse -version
fly -version

Generera och konfigurera RSA-nycklar

RSA-nyckelpar ger ett sätt att kryptera kommunikationen mellan komponenterna i Concourse.

För att Concourse ska fungera måste minst tre par nycklar genereras. För att kryptera sessionsdata, generera en session_signing_key. Denna nyckel kommer också att användas av TSA för att signera de förfrågningar den gör till ATC. För att säkra TSA SSH-servern, generera en tsa_host_key. Till sist, generera en worker_key för varje arbetare.

Skapa en ny katalog för att lagra nycklar och konfiguration relaterade till Concourse CI.

sudo mkdir /opt/concourse

Skapa de nödvändiga nycklarna.

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

Auktorisera arbetarnas publika nyckel genom att kopiera dess innehåll till authorized_worker_keys filen.

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

Startar Concours

Concourse tillhandahåller två separata komponenter som måste startas: webben och arbetaren. Starta Concourse-webben.

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

Ändra användarnamn och lösenord för den basic-auth om så önskas. Se till att sökvägen till nyckelfilerna är korrekt och se till att rätt värde för användarnamn och lösenord i PostgreSQL-databaskonfigurationen tillhandahålls.

Obs : ATC lyssnar på standardporten 8080 och TSA lyssnar på porten 2222. Om autentisering inte önskas, skicka --no-really-i-dont-want-any-authalternativet efter att du har tagit bort de grundläggande autentiseringsalternativen.

När webbservern har startat kommer följande utdata att visas.

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

Stoppa servern för nu, eftersom några fler saker fortfarande måste ställas in.

Starta 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

Ovanstående kommando förutsätter att TSA körs på localhost och lyssnar på standardporten 2222.

Även om Concourse webb och worker enkelt kan startas med kommandona ovan, rekommenderas det att använda Systemd för att hantera servern.

Konfigurera miljö och systemtjänst

Att använda Systemd-tjänsten för att hantera programmet säkerställer att programmet startas automatiskt vid fel och vid uppstart. Concourse-servern tar inte data från någon konfigurationsfil, men den kan komma åt data från miljövariabler. Istället för att ställa in globala miljövariabler, skapa en ny fil för att lagra miljövariablerna och skicka sedan variablerna till Concourse CI med hjälp av Systemd-tjänsten.

Skapa en ny miljöfil för Concourse web.

sudo nano /opt/concourse/web.env

Fyll i filen.

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

Ändra användarnamn och lösenord för den BASIC_AUTH om så önskas. Se till att sökvägen till nyckelfilerna är korrekt och se till att rätt värde för användarnamn och lösenord i PostgreSQL-databaskonfigurationen tillhandahålls.

Skapa på samma sätt en miljöfil för arbetaren.

sudo nano /opt/concourse/worker.env

Fyll i filen.

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

Eftersom miljöfilerna innehåller användarnamn och lösenord, ändra dess behörigheter så att de inte kan nås av andra användare.

sudo chmod 600 /opt/concourse/*.env

Skapa nu en ny användare för Concourse för att köra webbmiljön. Detta kommer att säkerställa att webbservern körs i en isolerad miljö.

sudo useradd concourse

Ge Concourse-användaren äganderätt över Concourse CI-filens katalog.

sudo chown -R concourse:concourse /opt/concourse

Skapa en ny systemd servicefil för Concourse webbtjänst.

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

Fyll i filen.

[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

Spara och stäng filen. Skapa en ny tjänstefil för Concourse worker-tjänsten.

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

Fyll i filen.

[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

Webb- och arbetartjänsten kan nu startas direkt.

sudo systemctl start concourse-web concourse-worker

Kör följande för att aktivera arbets- och webbprocessen att starta automatiskt vid uppstart.

sudo systemctl enable concourse-worker concourse-web

För att kontrollera status för tjänster, kör följande.

sudo systemctl status concourse-worker concourse-web

Om tjänsten inte startas, eller i FAILED tillståndet, ta bort cachen från /tmp katalogen.

sudo rm -rf /tmp/*

Starta om tjänsterna.

sudo systemctl restart concourse-worker concourse-web

Observera att den här gången har tjänsterna startat korrekt. Resultatet vid verifiering av tjänsternas status kommer att likna följande.

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

Ansluter till servern

När servern väl har startat kan webbgränssnittet för Concourse CI nås genom att gå till http://192.0.2.1:8080 i vilken webbläsare som helst. Logga in med det användarnamn och lösenord som finns i miljöfilen.

För att ansluta till servern med Fly, kör följande.

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

Kommandot ovan används för den första inloggningen till servern. -t används för att ange ett målnamn. ersätt my-ci med valfritt målnamn. Ovanstående kommando kommer att logga in på standardteamet main. Det kommer att fråga efter användarnamnet och lösenordet som finns i miljöfilen.

Utgången kommer att se ut som följande.

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

username: admin
password:

target saved

Målinloggningen sparas i en dag. Efter det kommer den att löpa ut.

Att logga ut omedelbart.

fly -t my-ci logout

Fly kan användas för att logga in på servern utanför nätverket, men bara om servern har en offentlig IP-adress och den är åtkomlig utanför nätverket. Windows- eller MacOS-binären kan laddas ner från nedladdningssidan eller från serverns webbgränssnitt.

Konfigurera Nginx Reverse Proxy

Inloggningar och annan information som skickas via webbgränssnittet till Concourse-servern är inte säkrad. Anslutningen är inte krypterad. En Nginx omvänd proxy kan ställas in med en Let's Encrypt gratis SSL.

Installera Nginx.

sudo apt -y install nginx

Starta Nginx och låt den starta automatiskt vid uppstart.

sudo systemctl start nginx
sudo systemctl enable nginx

Lägg till Certbot-förvaret.

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

Installera Certbot, som är klientapplikationen för Let's Encrypt CA.

sudo apt -y install certbot

Obs : För att erhålla certifikat från Let's Encrypt CA måste domänen som certifikaten ska genereras för peka mot servern. Om inte, gör de nödvändiga ändringarna i domänens DNS-poster och vänta tills DNS:n sprider sig innan du gör certifikatbegäran igen. Certbot kontrollerar domänmyndigheten innan certifikaten tillhandahålls.

Generera SSL-certifikaten.

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

De genererade certifikaten kommer sannolikt att lagras i /etc/letsencrypt/live/ci.example.com/ katalogen. SSL-certifikatet kommer att lagras som fullchain.pem och den privata nyckeln kommer att lagras som privkey.pem.

Låt oss kryptera certifikat går ut om 90 dagar, så det rekommenderas att automatisk förnyelse för certifikaten ställs in med cronjobs. Cron är en systemtjänst som används för att köra periodiska uppgifter.

Öppna cron-jobbfilen.

sudo crontab -e

Lägg till följande rad i slutet av filen.

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

Ovanstående cron-jobb kommer att köras varje dag klockan 5:30. Om certifikatet löper ut kommer det automatiskt att förnyas.

Skapa en ny virtuell värd.

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

Fyll i filen.

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

Obs : Ersätt ci.example.com med den faktiska domänen.

Aktivera konfigurationsfilen.

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

Redigera miljöfilen som skapats för concourse Web.

sudo nano /opt/concourse/web.env

Ändra värdet på CONCOURSE_EXTERNAL_URL och lägg till ytterligare två rader i slutet av filen.

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

Spara filen och starta om Concourse Web, Worker och Nginx.

sudo systemctl restart concourse-worker concourse-web nginx

All data som skickas till och från webbläsaren är nu säkrad med SSL-krypteringar.


Hur man installerar Jenkins på CentOS 7

Hur man installerar Jenkins på CentOS 7

Jenkins är ett populärt CI-verktyg (Continuous Integration) med öppen källkod som används i stor utsträckning för projektutveckling, implementering och automatisering. Denna artikel vill

Hur man installerar och konfigurerar Concourse CI på Ubuntu 16.04

Hur man installerar och konfigurerar Concourse CI på Ubuntu 16.04

Använder du ett annat system? Introduktion Continuous Integration är en DevOps mjukvaruutvecklingspraxis som gör det möjligt för utvecklarna att ofta slå samman

Hur man installerar och konfigurerar Ansible på Debian 9 för användning med Windows Server

Hur man installerar och konfigurerar Ansible på Debian 9 för användning med Windows Server

Använder du ett annat system? Ansible är ett verktyg med öppen källkod för att automatisera uppgifter. Den hanterar konfigurationen av dina Linux- och Windows-servrar. Det Fungerar

Hur man installerar och konfigurerar GoCD på CentOS 7

Hur man installerar och konfigurerar GoCD på CentOS 7

Använder du ett annat system? GoCD är ett system för kontinuerlig leverans och automatisering med öppen källkod. Den låter dig modellera komplexa arbetsflöden med hjälp av dess parallella an

Använda SaltStack med pelare på Ubuntu 17.04

Använda SaltStack med pelare på Ubuntu 17.04

Även om SaltStack är ett utmärkt verktyg för att köra operationer på många servrar samtidigt, stöder det också per-värddefinierade konfigurationsförinställningar lagrade i en

Hur man installerar och konfigurerar Ansible på CentOS 7 för användning med Windows Server

Hur man installerar och konfigurerar Ansible på CentOS 7 för användning med Windows Server

Använder du ett annat system? Ansible är ett verktyg med öppen källkod för att automatisera uppgifter. Den hanterar konfigurationen av dina Linux- och Windows-servrar. Det Fungerar

Hur man installerar Drone CI på Ubuntu 18.04

Hur man installerar Drone CI på Ubuntu 18.04

Inledning Drone är en automatiserad, kontinuerlig test- och leveransplattform som körs på din egen infrastruktur. Drönare stöder alla språk, tjänster o

Vultr Load Balancers

Vultr Load Balancers

Vad är en lastbalanserare Load Balancers sitter framför din applikation och distribuerar inkommande trafik över flera instanser av din applikation. Fo

Hur man installerar Foreman på CentOS 7

Hur man installerar Foreman på CentOS 7

Använder du ett annat system? Foreman är ett gratis och öppen källkodsverktyg som hjälper dig med konfiguration och hantering av fysiska och virtuella servrar. Forema

Hur man installerar SaltStack på CentOS 7

Hur man installerar SaltStack på CentOS 7

SaltStack, eller Salt, är en populär lösning för konfigurationshantering med öppen källkod som kan användas för att implementera fjärrexekvering, konfigurationshantering, torsk

Hur man installerar Strider CD på Ubuntu 18.04

Hur man installerar Strider CD på Ubuntu 18.04

Inledning Strider CD är en plattform för kontinuerlig distribution med öppen källkod. Applikationen är skriven i Node.js och använder MongoDB som lagringsbackend. Kliva

Använda Chocolatey Package Manager på Windows

Använda Chocolatey Package Manager på Windows

Inledning Chocolatey tar med pakethantering som gör det enkelt att administrera programvara och beroenden på Linux, till Windows. Du kan snabbt och enkelt

Skapa ögonblicksbilder med Packer

Skapa ögonblicksbilder med Packer

Vad är Packer? Packer är ett serverbildverktyg utvecklat av HashiCorp. Serveravbildning; eller alternativt oföränderlig infrastruktur; är ett populärt alternativ

Hur man installerar och konfigurerar Concourse CI på CentOS 7

Hur man installerar och konfigurerar Concourse CI på CentOS 7

Använder du ett annat system? Introduktion Continuous Integration är en DevOps mjukvaruutvecklingspraxis som gör det möjligt för utvecklarna att ofta slå samman

Använder Chef-solo för att konfigurera en Django-app på Ubuntu

Använder Chef-solo för att konfigurera en Django-app på Ubuntu

Det finns många sätt att automatisera processen för att ställa in och konfigurera en box. Av någon anledning, om hela vårt system vid denna tidpunkt består av bara

Hur man installerar Foreman på Ubuntu 16.04 LTS

Hur man installerar Foreman på Ubuntu 16.04 LTS

Använder du ett annat system? Foreman är ett gratis och öppen källkodsverktyg som hjälper dig med konfiguration och hantering av fysiska och virtuella servrar. Forema

Komma igång med SaltStack på Ubuntu 17.04

Komma igång med SaltStack på Ubuntu 17.04

SaltStack är ett pythonbaserat konfigurationshanteringsprogram som är optimerat för automatisering av konfigurationsfiler, distributioner och allt annat

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer