Com instal·lar i configurar Concourse CI a Ubuntu 16.04

Introducció

La integració contínua és una pràctica de desenvolupament de programari DevOps que permet als desenvolupadors combinar amb freqüència el codi modificat al repositori compartit moltes vegades al dia. Després de cada fusió, es realitzen compilacions i proves automàtiques per detectar problemes al codi. Permet als desenvolupadors trobar i resoldre els errors ràpidament per millorar la qualitat del programari i oferir-lo de manera continuada. Canviar d'anada i tornada des de Concourse és molt fàcil, ja que conserva tota la seva configuració en fitxers declaratius que es poden comprovar al control de versions. També proporciona una interfície d'usuari web que mostra la informació de compilació de manera interactiva.

Components del congrés.
  • L'ATC és el component principal del Concours. És responsable d'executar la interfície d'usuari web i l'API. També s'encarrega de tota la programació del gasoducte.
  • TSA és un servidor SSH personalitzat. És responsable de registrar de manera segura un treballador a l'ATC.
  • Els treballadors també ofereixen dos serveis diferents:
    1. Garden és un temps d'execució de contenidors i una interfície per orquestrar contenidors de forma remota en un treballador.
    2. Baggageclaim és un servidor de gestió de memòria cau i d'artefactes.
  • Fly és una interfície de línia d'ordres que s'utilitza per interactuar amb l'ATC per configurar Concourse Pipelines.

Requisits previs

Assegureu-vos de substituir totes les ocurrències de 192.0.2.1 i ci.example.com amb la vostra adreça IP pública de Vultr real i el nom de domini real.

Actualitzeu el vostre sistema base mitjançant la guia Com actualitzar Ubuntu 16.04 . Un cop actualitzat el vostre sistema, procediu a instal·lar PostgreSQL.

Instal·leu i configureu la base de dades PostgreSQL

PostgreSQL és un sistema de bases de dades relacionals d'objectes. Concourse emmagatzema les seves dades de pipeline en una base de dades PostgreSQL. Afegiu el 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·leu el servidor de bases de dades PostgreSQL.

sudo apt -y install postgresql

Inicieu el servidor PostgreSQL i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.

sudo systemctl start postgresql
sudo systemctl enable postgresql

Canvieu la contrasenya de l'usuari PostgreSQL predeterminat.

sudo passwd postgres

Inicieu sessió com a usuari de PostgreSQL:

sudo su - postgres

Creeu un nou usuari de PostgreSQL per a Concourse CI.

createuser concourse

Nota : l' usuari PostgreSQL predeterminat es pot utilitzar per a l'autenticació de la base de dades, però es recomana utilitzar un usuari dedicat per a l'autenticació de la base de dades Concourse en una configuració de producció.

PostgreSQL proporciona un shell per executar consultes a la base de dades. Canvia a l'intèrpret d'ordres PostgreSQL.

psql

Establiu una contrasenya per a l'usuari de la base de dades Concourse que acaba de crear.

ALTER USER concourse WITH ENCRYPTED password 'DBPassword';

Important : substituïu-la DBPassword per una contrasenya segura. Anoteu la contrasenya, ja que serà necessària més endavant al tutorial.

Creeu una nova base de dades per a Concourse.

CREATE DATABASE concourse OWNER concourse;

Surt de la psql closca.

\q

Canvia a l'usuari sudo des de l' postgresusuari actual .

exit

Baixeu i instal·leu Concourse CI

Baixeu la darrera versió de l'executable Concourse i emmagatzemeu-la /usr/bin perquè es pugui executar directament. La darrera versió dels binaris Concourse i Fly es pot trobar a la pàgina de descàrrega de Concourse . Els nous llançaments són molt freqüents. Substituïu l'enllaç següent pel nou enllaç per a la versió més recent.

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

De la mateixa manera, descarregueu l'última versió de l'executable fly i deseu-lo a /usr/bin.

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

Fly és la interfície de línia d'ordres que s'utilitza per connectar-se a l'API ATC de Concourse CI. Fly està disponible per a diverses plataformes com Linux, Windows i MacOS.

Assigneu permís d'execució als fitxers binaris concourse i descarregats fly.

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

Comproveu si Concourse i Fly funcionen correctament comprovant la seva versió.

concourse -version
fly -version

Generar i configurar claus RSA

Els parells de claus RSA proporcionen una manera de xifrar la comunicació entre els components del Concourse.

Perquè Concourse funcioni, s'han de generar almenys tres parells de claus. Per xifrar les dades de la sessió, genereu un fitxer session_signing_key. Aquesta clau també la farà servir la TSA per signar les sol·licituds que faci a l'ATC. Per protegir el servidor TSA SSH, genereu un fitxer tsa_host_key. Finalment, genereu un worker_key per a cada treballador.

Creeu un directori nou per emmagatzemar les claus i la configuració relacionades amb Concourse CI.

sudo mkdir /opt/concourse

Genereu les claus requerides.

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

Autoritzar la clau pública dels treballadors copiant-ne el contingut al authorized_worker_keys fitxer.

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

Començament del Concurs

Concourse ofereix dos components separats que s'han d'iniciar: el web i el treballador. Inicieu la web del Concours.

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

Canvieu el nom d'usuari i la contrasenya basic-auth si ho desitja. Assegureu-vos que el camí als fitxers de claus sigui correcte i que es proporcioni el valor correcte per al nom d'usuari i la contrasenya a la configuració de la base de dades PostgreSQL.

Nota : L' ATC escoltarà el port predeterminat 8080 i la TSA escoltarà el port 2222. Si no es desitja l'autenticació, passeu l' --no-really-i-dont-want-any-authopció després d'eliminar les opcions d'autenticació bàsiques.

Un cop iniciat el servidor web, es mostrarà la següent sortida.

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

Atureu el servidor de moment, ja que encara s'han de configurar algunes coses més.

Inicieu el 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

L'ordre anterior suposarà que el TSA s'està executant a localhost i escoltant el port predeterminat 2222.

Tot i que el web i el treballador de Concourse es poden iniciar fàcilment mitjançant les ordres anteriors, es recomana utilitzar Systemd per gestionar el servidor.

Configura l'entorn i el servei Systemd

L'ús del servei Systemd per gestionar l'aplicació garanteix que l'aplicació s'iniciï automàticament en cas de fallades i en el moment de l'arrencada. El servidor Concourse no pren dades de cap fitxer de configuració, però pot accedir a les dades des de variables d'entorn. En lloc d'establir variables d'entorn globals, creeu un fitxer nou per emmagatzemar les variables d'entorn i, a continuació, passeu les variables al Concourse CI mitjançant el servei Systemd.

Creeu un fitxer d'entorn nou per a Concourse web.

sudo nano /opt/concourse/web.env

Omple el fitxer.

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

L'ordre anterior s'utilitza per a la sessió inicial al servidor. -t s'utilitza per proporcionar un nom de destinació. substituïu my-ci - lo amb qualsevol nom de destinació desitjat. L'ordre anterior iniciarà sessió a l'equip predeterminat main. Li demanarà el nom d'usuari i la contrasenya proporcionats al fitxer d'entorn.

La sortida es veurà com la següent.

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

username: admin
password:

target saved

L'inici de sessió objectiu es desarà durant un dia. Després d'això, caducarà.

Per tancar sessió immediatament.

fly -t my-ci logout

Fly es pot utilitzar per iniciar sessió al servidor fora de la xarxa, però només si el servidor té una adreça IP pública i s'hi pot accedir des de fora de la xarxa. El binari de Windows o MacOS es pot descarregar des del lloc de descàrrega o des de la interfície d'usuari web del servidor.

Configuració del servidor intermediari invers Nginx

Els inicis de sessió i altra informació enviada a través de la interfície d'usuari web al servidor de Concourse no estan assegurades. La connexió no està xifrada. Es pot configurar un servidor intermediari invers Nginx amb un SSL gratuït de Let's Encrypt.

Instal·leu Nginx.

sudo apt -y install nginx

Inicieu Nginx i activeu-lo perquè s'iniciï automàticament en el moment de l'arrencada.

sudo systemctl start nginx
sudo systemctl enable nginx

Afegiu el repositori Certbot.

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

Instal·leu Certbot, que és l'aplicació client de Let's Encrypt CA.

sudo apt -y install certbot

Nota : per obtenir certificats de Let's Encrypt CA, el domini per al qual s'han de generar els certificats s'ha d'apuntar cap al servidor. Si no, feu els canvis necessaris als registres DNS del domini i espereu que el DNS es propagui abans de tornar a fer la sol·licitud de certificat. Certbot verifica l'autoritat del domini abans de proporcionar els certificats.

Generar els certificats SSL.

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

És probable que els certificats generats s'emmagatzemin al /etc/letsencrypt/live/ci.example.com/ directori. El certificat SSL s'emmagatzemarà com a fullchain.pem i la clau privada com a privkey.pem.

Els certificats de Let's Encrypt caduquen en 90 dies, per la qual cosa es recomana que la renovació automàtica dels certificats estigui configurada mitjançant cronjobs. Cron és un servei del sistema que s'utilitza per executar tasques periòdiques.

Obriu el fitxer de treball cron.

sudo crontab -e

Afegiu la línia següent al final del fitxer.

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

El treball cron anterior s'executarà cada dia a les 5:30 del matí. Si el certificat ha de caducar, es renovarà automàticament.

Creeu un nou host virtual.

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

Omple el fitxer.

server {
    listen 80;
    server_name ci.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name ci.example.com;

    ssl_certificate           /etc/letsencrypt/live/ci.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/ci.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /var/log/nginx/concourse.access.log;

    location / {

      proxy_set_header        Host $host;
      proxy_set_header        X-Real-IP $remote_addr;
      proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header        X-Forwarded-Proto $scheme;
      proxy_pass          http://localhost:8080;
      proxy_read_timeout  90;

      proxy_redirect      http://localhost:8080 https://ci.example.com;
    }
  }

Nota : substituïu ci.example.com -lo pel domini real.

Activeu el fitxer de configuració.

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

Editeu el fitxer Environment creat per a concourse Web.

sudo nano /opt/concourse/web.env

Canvieu el valor de CONCOURSE_EXTERNAL_URL i afegiu també dues línies més al final del fitxer.

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

Deseu el fitxer i reinicieu Concourse Web, Worker i Nginx.

sudo systemctl restart concourse-worker concourse-web nginx

Totes les dades enviades cap i des del navegador ara estan protegides amb xifratge SSL.


Com instal·lar Jenkins a CentOS 7

Com instal·lar Jenkins a CentOS 7

Jenkins és una popular eina de codi obert CI (integració contínua) que s'utilitza àmpliament per al desenvolupament, desplegament i automatització de projectes. Aquest article es vol

Com instal·lar i configurar Concourse CI a Ubuntu 16.04

Com instal·lar i configurar Concourse CI a Ubuntu 16.04

Utilitzeu un sistema diferent? Introducció La integració contínua és una pràctica de desenvolupament de programari DevOps que permet als desenvolupadors combinar sovint

Com instal·lar i configurar Ansible a Debian 9 per utilitzar-lo amb Windows Server

Com instal·lar i configurar Ansible a Debian 9 per utilitzar-lo amb Windows Server

Utilitzeu un sistema diferent? Ansible és una eina de codi obert per automatitzar tasques. Gestiona la configuració dels teus servidors Linux i Windows. Funciona

Com instal·lar i configurar GoCD a CentOS 7

Com instal·lar i configurar GoCD a CentOS 7

Utilitzeu un sistema diferent? GoCD és un sistema d'automatització i lliurament continu de codi obert. Us permet modelar fluxos de treball complexos mitjançant el seu paral·lel an

Ús de SaltStack amb pilars a Ubuntu 17.04

Ús de SaltStack amb pilars a Ubuntu 17.04

Tot i que SaltStack és una gran eina per executar operacions en molts servidors simultàniament, també admet configuracions predeterminades definides per host emmagatzemades en un

Com instal·lar i configurar Ansible a CentOS 7 per utilitzar-lo amb Windows Server

Com instal·lar i configurar Ansible a CentOS 7 per utilitzar-lo amb Windows Server

Utilitzeu un sistema diferent? Ansible és una eina de codi obert per automatitzar tasques. Gestiona la configuració dels teus servidors Linux i Windows. Funciona

Com instal·lar Drone CI a Ubuntu 18.04

Com instal·lar Drone CI a Ubuntu 18.04

Introducció Drone és una plataforma de proves i lliurament automatitzada i contínua que funciona amb la vostra pròpia infraestructura. Drone admet qualsevol idioma, servei o

Equilibradors de càrrega Vultr

Equilibradors de càrrega Vultr

Què és un equilibrador de càrrega Els equilibradors de càrrega s'asseuen davant de la vostra aplicació i distribueixen el trànsit entrant en diverses instàncies de la vostra aplicació. Fo

Com instal·lar Foreman a CentOS 7

Com instal·lar Foreman a CentOS 7

Utilitzeu un sistema diferent? Foreman és una eina gratuïta i de codi obert que us ajuda a configurar i gestionar servidors físics i virtuals. Forema

Com instal·lar SaltStack a CentOS 7

Com instal·lar SaltStack a CentOS 7

SaltStack, o Salt, és una solució de gestió de configuració de codi obert popular que es pot utilitzar per implementar execució remota, gestió de configuració, bacallà

Com instal·lar Strider CD a Ubuntu 18.04

Com instal·lar Strider CD a Ubuntu 18.04

Introducció Strider CD és una plataforma de desplegament continu de codi obert. L'aplicació està escrita en Node.js i utilitza MongoDB com a backend d'emmagatzematge. Passada

Ús de Chocolatey Package Manager a Windows

Ús de Chocolatey Package Manager a Windows

Introducció Chocolatey aporta la gestió de paquets que facilita l'administració de programari i dependències a Linux a Windows. Pots ràpid i fàcil

Creació dinstantànies amb Packer

Creació dinstantànies amb Packer

Què és Packer? Packer és una eina d'imatges de servidor desenvolupada per HashiCorp. Imatge del servidor; o alternativament, infraestructura immutable; és una alternativa popular

Com instal·lar i configurar Concourse CI a CentOS 7

Com instal·lar i configurar Concourse CI a CentOS 7

Utilitzeu un sistema diferent? Introducció La integració contínua és una pràctica de desenvolupament de programari DevOps que permet als desenvolupadors combinar sovint

Ús de Chef-solo per configurar una aplicació Django a Ubuntu

Ús de Chef-solo per configurar una aplicació Django a Ubuntu

Hi ha moltes maneres d'automatitzar el procés de configuració i configuració d'una caixa. Per qualsevol motiu, si tot el nostre sistema en aquest moment consta de just

Com instal·lar Foreman a Ubuntu 16.04 LTS

Com instal·lar Foreman a Ubuntu 16.04 LTS

Utilitzeu un sistema diferent? Foreman és una eina gratuïta i de codi obert que us ajuda a configurar i gestionar servidors físics i virtuals. Forema

Com començar amb SaltStack a Ubuntu 17.04

Com començar amb SaltStack a Ubuntu 17.04

SaltStack és un programa de gestió de configuració basat en Python que està optimitzat per a l'automatització de fitxers de configuració, desplegaments i qualsevol altra cosa.

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

La Intel·ligència Artificial no està en el futur, és aquí mateix en el present. En aquest bloc Llegiu com les aplicacions d'Intel·ligència Artificial han afectat diversos sectors.

Atacs DDOS: una breu visió general

Atacs DDOS: una breu visió general

També ets víctima d'atacs DDOS i estàs confós sobre els mètodes de prevenció? Llegiu aquest article per resoldre les vostres consultes.

Us heu preguntat mai com guanyen diners els pirates informàtics?

Us heu preguntat mai com guanyen diners els pirates informàtics?

Potser haureu sentit que els pirates informàtics guanyen molts diners, però us heu preguntat mai com guanyen aquest tipus de diners? anem a discutir.

Invents revolucionaris de Google que us facilitaran la vida.

Invents revolucionaris de Google que us facilitaran la vida.

Vols veure els invents revolucionaris de Google i com aquests invents van canviar la vida de tots els éssers humans actuals? A continuació, llegiu al bloc per veure els invents de Google.

Divendres essencial: què va passar amb els cotxes impulsats per IA?

Divendres essencial: què va passar amb els cotxes impulsats per IA?

El concepte de cotxes autònoms per sortir a les carreteres amb l'ajuda de la intel·ligència artificial és un somni que tenim des de fa temps. Però malgrat les diverses promeses, no es veuen enlloc. Llegeix aquest blog per saber-ne més...

Singularitat tecnològica: un futur llunyà de la civilització humana?

Singularitat tecnològica: un futur llunyà de la civilització humana?

A mesura que la ciència evoluciona a un ritme ràpid, fent-se càrrec de molts dels nostres esforços, també augmenten els riscos de sotmetre'ns a una singularitat inexplicable. Llegeix, què pot significar per a nosaltres la singularitat.

Evolució de lemmagatzematge de dades – Infografia

Evolució de lemmagatzematge de dades – Infografia

Els mètodes d'emmagatzematge de les dades que han anat evolucionant poden ser des del naixement de les dades. Aquest bloc tracta l'evolució de l'emmagatzematge de dades a partir d'una infografia.

Funcionalitats de les capes darquitectura de referència de Big Data

Funcionalitats de les capes darquitectura de referència de Big Data

Llegeix el blog per conèixer de la manera més senzilla les diferents capes de l'Arquitectura Big Data i les seves funcionalitats.

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

6 avantatges sorprenents de tenir dispositius domèstics intel·ligents a les nostres vides

En aquest món digital, els dispositius domèstics intel·ligents s'han convertit en una part crucial de les vides. A continuació, es mostren alguns avantatges sorprenents dels dispositius domèstics intel·ligents sobre com fan que la nostra vida valgui la pena i sigui més senzilla.

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Lactualització del suplement de macOS Catalina 10.15.4 està causant més problemes que no pas solucions

Recentment, Apple va llançar macOS Catalina 10.15.4, una actualització de suplements per solucionar problemes, però sembla que l'actualització està causant més problemes que provoquen el bloqueig de les màquines Mac. Llegiu aquest article per obtenir més informació