Installera Plesk på CentOS 7
Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser
Buildbot är en öppen källkod, Python-baserat, kontinuerligt integrationsverktyg för att automatisera mjukvarubyggande, testning och distribution. Buildbot består av en eller flera Buildbot-master och ett antal arbetare. Buildbot master eller Buildmaster har central kontroll över systemet. Det är ansvarigt för att hantera byggmiljön, arbetarna och fattar alla beslut om att skicka jobb till arbetare. Buildmaster upptäcker ändringar i kodförrådet och skickar kommandon eller jobb till arbetarna för att utföra dem. Arbetare utför jobben och returnerar resultatet till Buildmaster. Buildmaster meddelar sedan utvecklarna genom flera kanaler som stöds. I den här handledningen kommer vi att installera Buildbot master och worker på CentOS 7. Vi kommer också att konfigurera autentisering och Nginx som en säker omvänd proxy.
För den här handledningen kommer vi att använda 192.168.1.1
som den offentliga IP-adressen och ci.example.com
som domännamnet pekade mot Vultr-instansen. Se till att ersätta alla förekomster av exemplets domännamn och IP-adress med den faktiska.
Uppdatera ditt bassystem med hjälp av guiden Hur man uppdaterar CentOS 7 . När ditt system har uppdaterats, fortsätt att installera PostgreSQL.
Installera Pip, som är en pakethanterare för Python.
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
Buildbot stöder flera typer av databasservrar som MySQL, PostgreSQL och SQLite. I den här handledningen kommer vi att använda PostgreSQL för att vara värd för Buildbot-databasservern.
PostgreSQL är ett objektrelationellt databassystem, känt för sin stabilitet och hastighet. Standardförvaret yum
innehåller en gammal version av PostgreSQL, så lägg till PostgreSQL-förvaret.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Installera PostgreSQL-databasservern.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Initiera databasen.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Starta PostgreSQL-servern och låt den starta automatiskt vid uppstart.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Ä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 Buildbot.
createuser bb_user
Du kan använda vilket användarnamn som helst istället för bb_user
, om du föredrar det. PostgreSQL tillhandahåller psql
skalet för att köra frågor på databasen. Byt till PostgreSQL-skalet.
psql
Ange ett lösenord för den nyskapade användaren.
ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';
Ersätt DBPassword
med ett säkert lösenord.
Skapa en ny databas för Buildbot-installationen.
CREATE DATABASE buildbot OWNER bb_user;
Gå ut ur psql
skalet.
\q
Växla till sudo
användaren.
exit
Redigera pg_hba.conf
filen för att aktivera MD5-baserad autentisering.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Hitta följande rader och ändra värden peer
och ident
i METHOD
kolumnen till trust
och md5
, respektive.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
När den har uppdaterats kommer konfigurationen att se ut som följande text.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Spara filen och avsluta redigeraren. Installera PostgreSQL-databasadaptern för Python.
sudo pip install psycopg2
Starta om PostgreSQL så att ändringarna kan träda i kraft.
sudo systemctl restart postgresql-10
Installera Buildbot med Pip.
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
Ovanstående kommando kommer att installera Buildbot tillsammans med buildbot-www
, buildbot-worker
och flera webbinsticksprogram, såsom buildbot-waterfall-view
.
För att säkerställa att Buildbot har installerats framgångsrikt kan du verifiera genom att kontrollera versionen av Buildbot.
buildbot --version
Utdata ska likna följande text.
[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0
Ändra dina brandväggsregler för att tillåta port 8010
. Buildbot använder denna port för att lyssna på webbförfrågningar.
sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload
Skapa en ny oprivilegierad användare för att köra Buildbot huvud- och arbetsprocesser. Det rekommenderas inte att köra Buildbot mastertjänster som root
användare.
sudo adduser buildbot
sudo passwd buildbot
Logga in som nyskapad buildbot
användare.
sudo su - buildbot
Ställ in Buildbot-mastern i /home/buildbot/master
katalogen. Den här katalogen kommer att innehålla konfiguration, status och loggfiler för varje build.
buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
Se till att ersätta databasanvändarens referenser i kommandot ovan.
Obs: Om du vill använda SQLite-databas istället för PostgreSQL, helt enkelt utelämna --db 'postgresql://bb_user:DBpassword@localhost/buildbot'
alternativet. SQLite-databasen kommer att skapas i samma katalog.
Kommandot ovan skapar ~/master
katalogen för att lagra Buildmaster-filerna. Det kommer också att skriva in data i PostgreSQL-databasen. Du kommer att få följande utdata.
[buildbot@vultr ~]$ buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
mkdir /home/buildbot/master
creating /home/buildbot/master/master.cfg.sample
creating database (postgresql://bb_user:DBPassword@localhost/buildbot)
buildmaster configured in /home/buildbot/master
Kopiera exempel på konfigurationsfilen till en live konfigurationsfil.
cp ~/master/master.cfg.sample ~/master/master.cfg
Redigera konfigurationsfilen.
nano ~/master/master.cfg
Hitta följande rader.
c['workers'] = [worker.Worker("example-worker", "pass")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["example-worker"],
factory=factory))
...
c['title'] = "Hello World CI"
c['titleURL'] = "https://buildbot.github.io/hello-world/"
...
c['buildbotURL'] = "http://localhost:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
Ovanstående konfiguration har en post för en exempelarbetare. Vi kommer att ändra exempelposten för arbetaren vi kommer att köra på localhost
. Ändra example-worker
till ett lämpligt namn för localhost
arbetaren och ändra pass
till något annat lösenord. Anteckna arbetarens namn och lösenord eftersom vi kommer att kräva det senare i handledningen. Ändra namnet på arbetaren i listan över byggare. Ändra namnet på ansökan och projekt-URL enligt dina behov.
Ändra Buildbot URL från localhost
till ditt faktiska domännamn eller offentliga IP-adress. Kontrollera också att databasinformationen i konfigurationsfilen stämmer överens med dina faktiska databasuppgifter.
Lägg till i slutet av filen c['buildbotNetUsageData'] = None
. Denna parameter kommer att inaktivera sändning av information om programversionen och information om plugin-användning till utvecklarna. För att möjliggöra sändning av användningsinformation ändrar du dock alternativet till Full
.
Konfigurationen ska se ut som följande text.
c['workers'] = [worker.Worker("localhost-worker", "Password123")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["localhost-worker"],
factory=factory))
...
c['title'] = "My Application CI"
c['titleURL'] = "https://example.com/my-app"
...
c['buildbotURL'] = "http://192.168.1.1:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
...
c['buildbotNetUsageData'] = None
Spara filen och avsluta redigeraren. Kontrollera konfigurationsfilen för fel.
buildbot checkconfig ~/master
Om konfigurationsfilen inte har några fel kommer du att se följande utdata.
[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!
Nu när allt är korrekt konfigurerat kan du starta Buildbot-mastern.
buildbot start ~/master
Du kommer att se följande utdata.
[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.
Now that the Buildbot master has started correctly, the web user interface is accessible at http://192.168.1.1:8010
. You should see the following Buildbot interface.
Since we have already modified the worker configuration in ~/master/master.cfg
, we can proceed to create a new worker.
buildbot-worker create-worker ~/worker localhost localhost-worker Password123
Make sure that you use the exact same worker name and password as mentioned in ~/master/master.cfg
file. If there's a mismatch in worker name or password, the worker will not be able to connect to the Buildbot master. You will see the following output upon successful execution.
[buildbot@vultr ~]$ buildbot-worker create-worker ~/worker localhost example-worker pass
mkdir /home/buildbot/worker
mkdir /home/buildbot/worker/info
Creating info/admin, you need to edit it appropriately.
Creating info/host, you need to edit it appropriately.
Not creating info/access_uri - add it if you wish
Please edit the files in /home/buildbot/worker/info appropriately.
worker configured in /home/buildbot/worker
Information about the worker is stored in the /info
directory. Edit the administrative information about the developer.
nano ~/worker/info/admin
Replace the example name with your actual name and email.
Your Name <[email protected]>
Now, open the file containing information about the host.
nano ~/worker/info/host
Replace the example instruction with the actual information about the host system.
Localhost, CentOS 7
The worker admin and host information is only used to tell the users about the system. You can also add additional information about the system such as Buildbot version and Twisted version.
Start the worker.
buildbot-worker start ~/worker
The output will look like the following text.
[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.
To check if the worker is registered, head to the web interface of Buildbot and navigate to Builds >> Workers
from the left navigation. You should see that the worker is up and ready to build.
To run a sample build, to check if the Buildbot worker is running successfully, navigate to Builds >> Builders
. Click on the runtests
builder name to open the builder interface and click on the Force
button to force a build. Provide your name and click on the Start Build
button to start the build. Since it is a sample build test to check the Buildbot environment, it will finish in a couple of seconds. You will get a success message and the build result.
Although the Buildbot master and worker can be easily started using the commands above, it is recommended to use Systemd units to run and manage the Buildbot services. This will ensure that they are automatically started on system restart and failures.
Note: Switch to the sudo
user again by running either exit
or su <username>
. From now on all the commands need to be executed by the sudo
user.
Stop the running Buildbot worker and master service.
sudo su buildbot -c "buildbot stop /home/buildbot/master"
sudo su buildbot -c "buildbot-worker stop ~/worker"
Create a new Systemd unit file for the Buildbot master.
sudo nano /etc/systemd/system/buildbot.service
Populate the file.
[Unit]
Description=BuildBot master service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/master
ExecStart=/usr/bin/buildbot start
ExecStop=/usr/bin/buildbot stop
ExecReload=/usr/bin/buildbot restart
[Install]
WantedBy=multi-user.target
Start the Buildbot master and enable it to automatically start at boot time.
sudo systemctl start buildbot
sudo systemctl enable buildbot
Create a new Systemd unit file for the Buildbot worker.
sudo nano /etc/systemd/system/buildbot-worker.service
Populate the file.
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/worker
ExecStart=/usr/bin/buildbot-worker start
ExecStop=/usr/bin/buildbot-worker stop
ExecReload=/usr/bin/buildbot-worker restart
[Install]
WantedBy=multi-user.target
Start the Buildbot worker and enable it to automatically start at boot time.
sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker
You can check the status of the services.
sudo systemctl status buildbot buildbot-worker
If the services are running smoothly, you will see that in the output.
[user@vultr ~]$ sudo systemctl status buildbot buildbot-worker
● buildbot.service - BuildBot master service
...
Active: active (running) since Fri 2018-01-12 16:00:59 UTC; 1min 25s ago
...
Jan 12 16:00:59 vultr.guest systemd[1]: Started BuildBot master service.
● buildbot-worker.service - BuildBot worker service
...
Active: active (running) since Fri 2018-01-12 16:02:00 UTC; 24s ago
...
Jan 12 16:02:00 vultr.guest systemd[1]: Started BuildBot worker service.
Som standard är autentisering inte aktiverad i Buildbots webbgränssnitt. För webbplatser som vänder sig till internet, rekommenderas det starkt att ställa in autentisering så att endast auktoriserade användare kan ha möjlighet att utföra administrativa uppgifter. För att ställa in autentisering öppnar du Buildbots huvudkonfigurationsfil igen.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Lägg till följande rader i slutet av filen.
c['www']['authz'] = util.Authz(
allowRules = [
util.AnyEndpointMatcher(role="admins")
],
roleMatchers = [
util.RolesFromUsername(roles=['admins'], usernames=['admin_user'])
]
)
c['www']['auth'] = util.UserPasswordAuth({'admin_user': 'AdminPassword'})
Ersätt båda förekomsterna av admin_user
med det faktiska användarnamnet du vill använda och AdminPassword
med ett starkt lösenord.
Kontrollera om det finns fel i konfigurationsfilen.
sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"
Starta om Buildbot-mastertjänsten så att ändringarna kan träda i kraft.
sudo systemctl restart buildbot
Bläddra i webbgränssnittet igen för att se att de anonyma användarna bara kan se de grundläggande detaljerna om byggservern. Logga nu in med de inloggningsuppgifter som anges i master.cfg
filen och du kommer att se att alla andra administrativa funktioner endast är tillgängliga för den inloggade admin-användaren.
Som standard lyssnar Buildbot på porten 8010
på osäkra anslutningar. Att säkra webbgränssnittet med HTTPS
rekommenderas för att säkerställa att data är säker under transport från webbläsaren till servern. I det här avsnittet av handledningen kommer vi att installera och säkra Nginx med Let's Encrypt gratis SSL-certifikat. Nginx-webbservern kommer att fungera som en omvänd proxy för att vidarebefordra inkommande förfrågningar till Buildbots HTTP-slutpunkt.
Installera Nginx.
sudo yum -y install nginx
Starta Nginx och låt den starta automatiskt vid uppstart.
sudo systemctl start nginx
sudo systemctl enable nginx
Installera Certbot, som är klientapplikationen för Let's Encrypt CA.
sudo yum -y install certbot
Innan du kan begära certifikaten måste du tillåta portar 80
och/ 443
eller standard HTTP
och HTTPS
tjänster genom brandväggen. Ta också bort port 8010
, som lyssnar på de osäkrade anslutningarna.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8010/tcp --permanent
sudo firewall-cmd --reload
Obs: För att få certifikat från Let's Encrypt CA måste domänen för vilken certifikaten ska genereras 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 /usr/share/nginx/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 certifikaten går ut om 90 dagar, därför rekommenderas det att ställa in automatisk förnyelse av certifikaten med Cron-jobb.
Öppna cron-jobbfilen för root
användaren.
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 förnyas det automatiskt.
Ändra nu Nginx standardkonfigurationsfil för att ta bort default_server
linjen.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Skapa en ny konfigurationsfil för Buildbot webbgränssnitt.
sudo nano /etc/nginx/conf.d/buildbot.conf
Fyll i filen.
upstream buildbot {
server 127.0.0.1:8010;
}
server {
listen 80 default_server;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name ci.example.com;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
access_log /var/log/nginx/buildbot.access.log;
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_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host;
location / {
proxy_pass http://buildbot;
}
location /sse/ {
proxy_buffering off;
proxy_pass http://buildbot/sse/;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://buildbot/ws;
proxy_read_timeout 6000s;
}
}
Kontrollera om det finns fel i den nya konfigurationsfilen.
sudo nginx -t
Om du ser följande utdata är konfigurationen felfri.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Om du har fått något slags fel, se till att dubbelkolla sökvägen till SSL-certifikaten. Starta om Nginx-webbservern för att implementera ändringen i konfigurationen.
sudo systemctl restart nginx
Öppna Buildmaster-konfigurationsfilen.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Leta reda på följande rad.
c['buildbotURL'] = "http://192.168.1.1:8010/"
Ändra webbadressen enligt det domännamn du använder.
c['buildbotURL'] = "https://ci.example.com/"
Starta om Buildbot-mastertjänsten.
sudo systemctl restart buildbot
Nu kan du komma åt Buildbot-instrumentpanelen på https://ci.example.com
. Du kommer att se att anslutningarna till Buildbot nu är säkrade med SSL.
Logga in med administratörsuppgifterna och lägg till din första pipeline för att börja bygga din applikation.
Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser
Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig
Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera
VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera
Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten
Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög
Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig
Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa
Använder du ett annat system? Mattermost är ett alternativ med öppen källkod, självvärd till meddelandetjänsten Slack SAAS. Med andra ord, med Mattermost, du ca
Vad du behöver En Vultr VPS med minst 1 GB RAM. SSH-åtkomst (med root-/administrativa privilegier). Steg 1: Installera BungeeCord Först till kvarn
Plesks kontrollpanel har en mycket trevlig integration för Lets Encrypt. Lets Encrypt är en av de enda SSL-leverantörerna som ger ut certifikat fullständigt
Lets Encrypt är en certifikatmyndighet dedikerad till att tillhandahålla SSL-certifikat gratis. cPanel har byggt en snygg integration så att du och din klient
Använder du ett annat system? Concrete5 är ett CMS med öppen källkod som erbjuder många distinkta och användbara funktioner för att hjälpa redaktörer att producera innehåll enkelt och
Använder du ett annat system? Review Board är ett gratis och öppen källkodsverktyg för att granska källkod, dokumentation, bilder och många fler. Det är webbaserad mjukvara
I den här guiden lär du dig hur du ställer in HTTP-autentisering för en Nginx-webbserver som körs på CentOS 7. Krav För att komma igång behöver du
YOURLS (Your Own URL Shortener) är ett webbadressförkortnings- och dataanalysprogram med öppen källkod. I den här artikeln kommer vi att täcka installationsprocessen
Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är
Inledning Katalogen /etc/ spelar en avgörande roll för hur ett Linux-system fungerar. Anledningen till detta är att nästan varje systemkonfiguration
Många systemadministratörer hanterar stora mängder servrar. När filer behöver nås över olika servrar, logga in på var och en individuellt ca
Denna handledning kommer att täcka processen att installera en Half Life 2-spelserver på CentOS 6 System. Steg 1: Installera förutsättningarna För att ställa in ou
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.
Ä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.
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.
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.
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...
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.
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.
Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.
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.
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