Hvordan installere og konfigurere Concourse CI på Ubuntu 16.04

Introduksjon

Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklerne å flette den modifiserte koden ofte inn i det delte depotet mange ganger om dagen. Etter hver sammenslåing utføres automatiske bygg og tester for å oppdage problemer i koden. Det gjør det mulig for utviklerne å finne og løse feilene raskt for å forbedre programvarekvaliteten og sørge for kontinuerlig levering av programvaren. Det er veldig enkelt å bytte frem og tilbake fra Concourse ettersom den beholder all konfigurasjonen i deklarative filer som kan sjekkes inn i versjonskontroll. Det gir også et nettbrukergrensesnitt som viser byggeinformasjonen interaktivt.

Concourse komponenter.
  • ATC er hovedkomponenten i Concourse. Den er ansvarlig for å kjøre web-UI og API. Den tar seg også av all rørledningsplanlegging.
  • TSA er en spesialbygd SSH-server. Det er ansvarlig for sikker registrering av en arbeider hos ATC.
  • Arbeidere driver videre to forskjellige tjenester:
    1. Garden er en containerruntime og et grensesnitt for å orkestrere containere eksternt på en arbeider.
    2. Baggageclaim er en server for cache- og artefaktadministrasjon.
  • Fly er et kommandolinjegrensesnitt som brukes til å samhandle med ATC for å konfigurere Concourse Pipelines.

Forutsetninger

  • En Vultr Ubuntu 16.04-serverforekomst.
  • En sudo-bruker .

Pass på å erstatte alle forekomster av 192.0.2.1 og ci.example.com med din faktiske Vultr offentlige IP-adresse og faktiske domenenavn.

Oppdater basissystemet ditt ved å bruke veiledningen Hvordan oppdatere Ubuntu 16.04 . Når systemet ditt har blitt oppdatert, fortsett å installere PostgreSQL.

Installer og konfigurer PostgreSQL-databasen

PostgreSQL er et objektrelasjonsdatabasesystem. Concourse lagrer pipeline-dataene sine i en PostgreSQL-database. Legg til PostgreSQL-depotet.

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

Installer PostgreSQL-databaseserveren.

sudo apt -y install postgresql

Start PostgreSQL-serveren og la den starte automatisk ved oppstart.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Endre passordet for standard PostgreSQL-bruker.

sudo passwd postgres

Logg på som PostgreSQL-bruker:

sudo su - postgres

Opprett en ny PostgreSQL-bruker for Concourse CI.

createuser concourse

Merk : Standard PostgreSQL-bruker kan brukes for autentisering av databasen, men det anbefales å bruke en dedikert bruker for autentisering av Concourse-databasen i et produksjonsoppsett.

PostgreSQL gir et skall for å kjøre spørringer på databasen. Bytt til PostgreSQL-skallet.

psql

Angi et passord for den nyopprettede Concourse-databasebrukeren.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

Viktig : Erstatt DBPassword med et sterkt passord. Noter passordet, da det kreves senere i opplæringen.

Opprett en ny database for Concourse.

CREATE DATABASE concourse OWNER concourse;

Gå ut av psql skallet.

\q

Bytt til sudo-brukeren fra gjeldende postgresbruker.

exit

Last ned og installer Concourse CI

Last ned den nyeste versjonen av Concourse kjørbar og lagre den /usr/bin slik at den kan kjøres direkte. Den siste versjonen av Concourse- og Fly-binærfilene finner du på Concourse-nedlastingssiden . Nye utgivelser er svært hyppige. Erstatt lenken nedenfor med den nye lenken for den nyeste versjonen.

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

På samme måte kan du laste ned den nyeste versjonen av fly-kjørbaren og lagre den i /usr/bin.

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

Fly er kommandolinjegrensesnittet som brukes til å koble til ATC API for Concourse CI. Fly er tilgjengelig for flere plattformer som Linux, Windows og MacOS.

Tildel utføringstillatelse til de nedlastede concourse og fly binære filene.

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

Sjekk om Concourse og Fly fungerer som de skal ved å sjekke versjonen deres.

concourse -version
fly -version

Generer og konfigurer RSA-nøkler

RSA-nøkkelpar gir en måte å kryptere kommunikasjonen mellom komponentene i Concourse.

For at Concourse skal fungere, må minst tre par nøkler genereres. For å kryptere øktdataene, generer en session_signing_key. Denne nøkkelen vil også bli brukt av TSA til å signere forespørslene den sender til ATC. For å sikre TSA SSH-serveren, generer en tsa_host_key. Til slutt, generer en worker_key for hver arbeider.

Opprett en ny katalog for å lagre nøklene og konfigurasjonen relatert til Concourse CI.

sudo mkdir /opt/concourse

Generer de nødvendige nøklene.

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

Autoriser arbeidernes offentlige nøkkel ved å kopiere innholdet til authorized_worker_keys filen.

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

Starter Concours

Concourse har to separate komponenter som må startes: nettet og arbeideren. Start Concourse-nettet.

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

Endre brukernavnet og passordet til basic-auth om ønskelig. Sørg for at banen til nøkkelfilene er riktige og sørg for at riktig verdi for brukernavn og passord i PostgreSQL-databasekonfigurasjonen er oppgitt.

Merk : ATC vil lytte til standardporten 8080 og TSA vil lytte til porten 2222. Hvis autentisering ikke er ønsket, passerer du --no-really-i-dont-want-any-authalternativet etter at du har fjernet de grunnleggende autentiseringsalternativene.

Når webserveren er startet, vil følgende utgang vises.

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

Stopp serveren for nå, ettersom noen flere ting fortsatt må konfigureres.

Start 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

Kommandoen ovenfor vil anta at TSA kjører på localhost og lytter til standardporten 2222.

Selv om Concourse web og worker enkelt kan startes ved å bruke kommandoene ovenfor, anbefales det å bruke Systemd for å administrere serveren.

Konfigurer miljø og systemtjeneste

Å bruke Systemd-tjenesten for å administrere applikasjonen sikrer at applikasjonen automatisk startes ved feil og ved oppstart. Concourse-serveren tar ikke data fra noen konfigurasjonsfil, men den kan få tilgang til dataene fra miljøvariabler. I stedet for å angi globale miljøvariabler, oppretter du en ny fil for å lagre miljøvariablene og sender deretter variablene til Concourse CI ved hjelp av Systemd-tjenesten.

Opprett en ny miljøfil for Concourse web.

sudo nano /opt/concourse/web.env

Fyll ut 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

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

The above command is used for the initial login to the server. -t is used to provide a target name. replace my-ci with any desired target name. The above command will log in to the default team main. It will ask for the username and password provided in the environment file.

The output will look like the following.

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

username: admin
password:

target saved

The target login will be saved for a day. After that, it will expire.

To log out immediately.

fly -t my-ci logout

Fly can be used to login to the server outside of the network, but only if the server has a public IP address and it is accessible from outside the network. The Windows or MacOS binary can be downloaded from the download site or from the web UI of the server.

Setting Up Nginx Reverse Proxy

Pålogginger og annen informasjon som sendes via web-UI til Concourse-serveren er ikke sikret. Forbindelsen er ikke kryptert. En Nginx omvendt proxy kan settes opp med en Let's Encrypt gratis SSL.

Installer Nginx.

sudo apt -y install nginx

Start Nginx og la den starte automatisk ved oppstart.

sudo systemctl start nginx
sudo systemctl enable nginx

Legg til Certbot-depotet.

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

Installer Certbot, som er klientapplikasjonen for Let's Encrypt CA.

sudo apt -y install certbot

Merk : For å få sertifikater fra Let's Encrypt CA, må domenet som sertifikatene skal genereres for, peke mot serveren. Hvis ikke, gjør de nødvendige endringene i DNS-postene til domenet og vent til DNS-en forplanter seg før du foretar sertifikatforespørselen igjen. Certbot sjekker domeneautoriteten før sertifikatene leveres.

Generer SSL-sertifikatene.

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

De genererte sertifikatene vil sannsynligvis bli lagret i /etc/letsencrypt/live/ci.example.com/ katalogen. SSL-sertifikatet vil bli lagret som fullchain.pem og den private nøkkelen vil bli lagret som privkey.pem.

La oss kryptere sertifikater utløper om 90 dager, så det anbefales automatisk fornyelse for sertifikatene er satt opp med cronjobs. Cron er en systemtjeneste som brukes til å kjøre periodiske oppgaver.

Åpne cron-jobbfilen.

sudo crontab -e

Legg til følgende linje på slutten av filen.

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

Cron-jobben ovenfor kjøres hver dag klokken 05.30. Hvis sertifikatet skal utløpe, vil det automatisk fornyes.

Opprett en ny virtuell vert.

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

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

Merk : Erstatt ci.example.com med det faktiske domenet.

Aktiver konfigurasjonsfilen.

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

Rediger miljøfilen opprettet for concourse Web.

sudo nano /opt/concourse/web.env

Endre verdien på CONCOURSE_EXTERNAL_URL og legg også til to linjer til på slutten av filen.

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

Lagre filen og start Concourse Web, Worker og Nginx på nytt.

sudo systemctl restart concourse-worker concourse-web nginx

All data som sendes til og fra nettleseren er nå sikret med SSL-krypteringer.


Hvordan installere Jenkins på CentOS 7

Hvordan installere Jenkins på CentOS 7

Jenkins er et populært åpen kildekode CI (Continuous Integration)-verktøy som er mye brukt for prosjektutvikling, distribusjon og automatisering. Denne artikkelen vil

Hvordan installere og konfigurere Concourse CI på Ubuntu 16.04

Hvordan installere og konfigurere Concourse CI på Ubuntu 16.04

Bruker du et annet system? Introduksjon Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklere å ofte slå sammen

Hvordan installere og konfigurere Ansible på Debian 9 for bruk med Windows Server

Hvordan installere og konfigurere Ansible på Debian 9 for bruk med Windows Server

Bruker du et annet system? Ansible er et åpen kildekodeverktøy for automatisering av oppgaver. Den administrerer konfigurasjonen av dine Linux- og Windows-servere. Det fungerer

Hvordan installere og konfigurere GoCD på CentOS 7

Hvordan installere og konfigurere GoCD på CentOS 7

Bruker du et annet system? GoCD er et åpen kildekodesystem for kontinuerlig levering og automatisering. Den lar deg modellere komplekse arbeidsflyter ved å bruke dens parallelle an

Bruke SaltStack med søyler på Ubuntu 17.04

Bruke SaltStack med søyler på Ubuntu 17.04

Mens SaltStack er et flott verktøy for å kjøre operasjoner på mange servere samtidig, støtter det også per-verts definerte konfigurasjonsforhåndsinnstillinger lagret i en

Hvordan installere og konfigurere Ansible på CentOS 7 for bruk med Windows Server

Hvordan installere og konfigurere Ansible på CentOS 7 for bruk med Windows Server

Bruker du et annet system? Ansible er et åpen kildekodeverktøy for automatisering av oppgaver. Den administrerer konfigurasjonen av dine Linux- og Windows-servere. Det fungerer

Hvordan installere Drone CI på Ubuntu 18.04

Hvordan installere Drone CI på Ubuntu 18.04

Introduksjon Drone er en automatisert, kontinuerlig test- og leveringsplattform som kjører på din egen infrastruktur. Drone støtter alle språk, tjenester o

Vultr Load Balancers

Vultr Load Balancers

Hva er en Load Balancer Load Balancers sitter foran applikasjonen din og distribuerer innkommende trafikk over flere forekomster av applikasjonen. Fo

Hvordan installere Foreman på CentOS 7

Hvordan installere Foreman på CentOS 7

Bruker du et annet system? Foreman er et gratis og åpen kildekodeverktøy som hjelper deg med konfigurering og administrasjon av fysiske og virtuelle servere. Forema

Slik installerer du SaltStack på CentOS 7

Slik installerer du SaltStack på CentOS 7

SaltStack, eller Salt, er en populær åpen kildekode-konfigurasjonsadministrasjonsløsning som kan brukes til å implementere ekstern kjøring, konfigurasjonsadministrasjon, cod

Hvordan installere Strider CD på Ubuntu 18.04

Hvordan installere Strider CD på Ubuntu 18.04

Introduksjon Strider CD er en åpen kildekode-plattform for kontinuerlig distribusjon. Applikasjonen er skrevet i Node.js og bruker MongoDB som backend for lagring. Skritt

Bruke Chocolatey Package Manager på Windows

Bruke Chocolatey Package Manager på Windows

Introduksjon Chocolatey bringer pakkeadministrasjon som gjør det enkelt å administrere programvare og avhengigheter på Linux, til Windows. Du kan raskt og enkelt

Lage øyeblikksbilder med Packer

Lage øyeblikksbilder med Packer

Hva er Packer? Packer er et serverbildeverktøy utviklet av HashiCorp. Server bildebehandling; eller alternativt uforanderlig infrastruktur; er et populært alternativ

Hvordan installere og konfigurere Concourse CI på CentOS 7

Hvordan installere og konfigurere Concourse CI på CentOS 7

Bruker du et annet system? Introduksjon Kontinuerlig integrasjon er en DevOps-programvareutviklingspraksis som gjør det mulig for utviklere å ofte slå sammen

Bruke Chef-solo til å konfigurere en Django-app på Ubuntu

Bruke Chef-solo til å konfigurere en Django-app på Ubuntu

Det er mange måter å automatisere prosessen med å sette opp og konfigurere en boks. Uansett grunn, hvis hele systemet vårt på dette tidspunktet består av bare

Hvordan installere Foreman på Ubuntu 16.04 LTS

Hvordan installere Foreman på Ubuntu 16.04 LTS

Bruker du et annet system? Foreman er et gratis og åpen kildekodeverktøy som hjelper deg med konfigurering og administrasjon av fysiske og virtuelle servere. Forema

Komme i gang med SaltStack på Ubuntu 17.04

Komme i gang med SaltStack på Ubuntu 17.04

SaltStack er et python-basert konfigurasjonsadministrasjonsprogram som er optimalisert for automatisering av konfigurasjonsfiler, distribusjoner og alt annet

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer