Archivi categoria: apache

Web Server: prosegue la scalata di NGINX

Facebooktwittergoogle_plusredditlinkedin

nginx

Netcraft ha aggiornato al mese di Luglio 2017 i dati del report che analizza la diffusione e popolarità dei web server. Ed ancora una volta è Nginx ad attirare l’attenzione degli analisti: con una sostenuta e costante crescita che dura ormai da mesi, si appresta probabilmente a superare Microsoft IIS entro la fine dell’anno – per quanto riguarda il numero di computer visibili online (web facing computer).

In generale, afferma il rapporto, sono stati rilevati 1,767,964,429 siti e 6,593,508 web facing computer. Rispetto ad Agosto 2016 si registra rispettivamente un aumento di +614,305,016 siti e +612,884 web facing computer.

Nginx ha guadagnato in 30 giorni 52,000 computer (+3,84%) e si posiziona ora al terzo posto della classifica generale. Microsoft è a portata di mano, osservano gli analisti, ed in base alle previsioni il sorpasso avverrà entro la fine del 2017.

Web server, Nginx in ascesa

Apache è in calo ma mantiene saldamente il primato. Nginx è destinato a superare Micorosft entro la fine dell’anno. Fonte: Netcraft

Da un punto di vista prettamente numerico, Apache ha gudagnato 7,500 computer ma ha visto in ogni caso calare le proprie quote di mercato – con il 42.78% resta comunque in vetta alla classifica. Microsoft ha ceduto invece 6,400 computer nell’ultimo mese.

Web server, Nginx in ascesa

Sono solo 122,000 i computer che separano Nginx da Microsoft. Fonte: Netcraft

Il crescente successo di Nginx è meglio osservabile analizzando il seguente grafico:

Web server, Nginx in ascesa

Dal 2008 in poi Nginx non ha avuto segni di cedimento. Fonte: Netcraft

Hostname: ruoli invertiti per Microsoft ed Apache

Se Nginx guadagna terreno nella conta dei web facing computer, passando agli hostname (tutti i siti rilevati) è Microsoft ad ottenere il risultato più importante. I 70 milioni di hostname guadagnati nell’ultimo mese e gli oltre 50 milioni persi da Apache consegnano infatti a Redmond (per la prima volta) la quota di maggioranza del mercato:

Web server, Microsoft guida la classifica per hostname

4 anni fa Apache era al 52% mentre Microsoft al 19%. I ruoli si sono invertiti. Fonte: Netcraft.

Considerando invece i siti classificati da Netcraft come “attivi”, le percentuali tornano nettamente a favore di Apache:

Web server, classifica per siti attivi

Fonte: Netcraft

Fonte: 1

 

 

Apache, php e MySQL su Windows Subsystem for Linux: è possibile?

Facebooktwittergoogle_plusredditlinkedin

Tra le domande più frequenti di chi scopre la possibilità di utilizzare un intero sottosistema linux su una macchina Windows c’è di certo la seguente:

“Si, carino, ma cosa ci faccio?”

Negli articoli precedenti abbiamo visto come è possibile utilizzare alcuni tool di cui un amministratore di sistema abituato a lavorare con linux non riuscirebbe a fare a meno, e fino ad ora era costretto ad installare emulatori o software di terze parti per poter sopperire alla mancanza della sua command line preferita. Oggi vediamo come Windows Subsystem for Linux non è solo editing di testo, e scopriamo come poter installare uno dei webserver più utilizzati al mondo. In particolare installeremo un webserver Apache con supporto php e MariaDB (il nuovo MySql), una soluzione completa per trasformare la nostra macchina in un webserver che non ha nulla da invidiare a quelli noleggiati in giro per il web.

L’installazione richiede un minimo di conoscenza dei servizi di cui stiamo parlando ma è tecnicamente molto semplice; per prima cosa è necessario aver installato Windows 10 Bash. Se la vostra macchina non soddisfa questo requisito potete correre ai ripari seguendo la guida riportata in questo articolo (https://www.ictpower.it/guide/installazione-di-windows-10-subsystem-for-linux-windows-10-bash.htm).

Il tool che ci viene incontro in questo caso è apt-get, il tool predefinito di Ubuntu per la gestione dei pacchetti di installazione, che permette di installare i servizi occupandosi per noi di scaricare e configurare ogni eventuale prerequisito.

La sintassi per installare un pacchetto è molto semplice:

apt-get install nomepacchetto

Per installare più pacchetti è sufficiente indicare i pacchetti separandoli con uno spazio

apt-get install nomepacchetto1 nomepacchetto2 nomepacchetto3

Iniziaremo proprio con guadagnare i privilegi di root (amministratori del sistema linux, con la possibilità di installare pacchetti), e procederemo all’installazione del db

sudo bash

Questo comando esegue una bash lanciandola con privilegi amministrativi (sudo = super user do). Verrà richiesto di immettere la password scelta in fase di installazione della bash. Riconosceremo di essere root perché il prompt terminerà con il carattere #, diversamente dal prompt utente che termina con il $.

Per esserne certi possiamo eseguire il comando whoami (chi sono io) per chiedere al sistema con che utente siamo loggati.

Per installare MariaDB utilizzeremo quindi

apt-get install mariadb-server mariadb-client

Il wizard chiederà di assegnare una password ed inizierà ad installare tutti i requisiti necessari.

Successivamente installerà ed avvierà il servizio MariaDB. Non preoccupatevi di eventuali errori che vedrete scorrere sullo schermo durante l’installazione, il servizio verrà installato correttamente.

Proviamo ad accedere al motore database con il comando

mysql –p

utilizzando la password fornita durante il wizard, e proviamo a creare un database di nome test.

Ora è il momento di installare il webserver Apache2; nulla di più semplice eseguendo il comando:

apt-get -y install apache2

Anche qui ignoriamo qualche messaggio di errore ed attendiamo meno di un minuto per l’installazione. Al termine possiamo aprire un browser e provare a navigare sull’indirizzo 127.0.0.1 o localhost. Quello che vedremo ci sorprenderà, ma in effetti abbiamo un vero e proprio webserver Ubuntu funzionante!

Anche navigando da LAN sull’indirizzo IP della macchina vedremo comparire la pagina del webserver, ed ovviamente configurando il nostro router saremo in grado di pubblicare questo webserver su internet. L’operazione è sconsigliata poiché essendo una versione beta potremmo rilevare dei problemi relativi alla sicurezza, ma è assolutamente possibile.

Non ci rimane ora che installare il supporto php, anche qui una sola riga di comando:

apt-get -y install php5 libapache2-mod-php5

Apache verrà automaticamente riavviato con il supporto php attivo. Facciamo subito una prova per assicurarcene. Creiamo un file php per eseguire la funziona phpinfo, che ci restituirà dettagli sulla versione di php in uso.

nano /var/www/html/ictpower.php

inseriamo queste righe di codice php e salviamo con CTRL+x, confermando con y

<?php
phpinfo();
?>

Navighiamo sulla pagina http://127.0.0.1/ictpower.php ed avremo la conferma che il nostro Apache ha pieno supporto a php:

Ora il nostro webserver è pronto, ma se vogliamo utilizzarlo per qualche sviluppo di test abbiamo la necessità di aggiungere qualche libreria di supporto al php, compresi i connettori al database MariaDB che abbiamo installato in precedenza. Niente paura, apt-get farà tutto il lavoro per noi. Aggiungiamo un –y al comando per dare conferma automatica all’installazione di tutti i pacchetti

apt-get -y install php5-mysqlnd php5-gd php5-xmlrpc php5-intl php-pear php5-imagick php5-curl php5-mcrypt php5-ming php5-snmp php5-sqlite php5-imap php5-tidy php5-xsl php5-ps php5-pspell php5-recode php5-memcache

Dopo l’installazione è necessario riavviare apache con il comando

service apache2 restart

Possiamo quindi verificare sulla pagina phpinfo l’aggiunta di tutti i supporti:

A questo punto possiamo preparare il nostro sito web, e dire a tutti che questo gira su un webserver apache Linux su Windows 10. Magari non vi crederanno, ma sarà solo questione di tempo. J

Apache Hadoop: BIG DATA a portata di Framework

Facebooktwittergoogle_plusredditlinkedin

Hadoop è un framework Open Source di Apache, concepito per offrire supporto ad applicazioni distribuite che elaborano grandi quantità di dati (Big Data) in parallelo, su cluster di grandi dimensioni (costituiti da migliaia di nodi), e semplificare le operazioni di storage e gestione di dataset assicurando un’elevata affidabilità e disponibilità.

Questo articolo è stato scritto da Vito Lucatorto, Team Leader nel progetto Microsoft Student Partner MSP

Vito Lucatorto ha conseguito la laurea in Informatica e Comunicazione digitale nel 2016, proveniente da un Liceo Classico. Nel corso della sua formazione universitaria ha approfondito in maniera parallela il mondo dello scripting, ethical hacking, servers virtualization, networking e framework per Big Data.

A Luglio 2015 diventa Team Leader per Microsoft nel progetto MSP.

Nel tempo libero si diverte a creare Web Application in PHP, Modernizr, Bootstrap applicate ad Microsoft Azure.

A breve inizierà a frequentare la Laurea Specialistica a Roma presso Università “La Sapienza” nel Centro di Ricerca di Cyber Intelligence and Information Security.

Introduzione

Con la rapida diffusione dei Social Media, IoT (Internet of Things), tecnologie mobile e elettronica di consumo, il mercato IT e i colossi del ventunesimo secolo si sono adattati a gestire quantità di dati sempre superiori. Con i loro imponenti datacenter, si sono preoccupati di immagazzinare una grossa mole di dati per poi poterli analizzare e sfruttare a loro vantaggio. Con l’ausilio dei Big Data, che raccoglie dati di ogni tipo, è possibile studiare abitudini umane, creare reti sociali intelligenti, applicare concetti di business intelligence e tanto altro ancora.

“Big data is high-volume, high-velocity and/or high-variety information assets that demand cost-effective, innovative forms of information processing that enable enhanced insight, decision making, and process automation.” Definizione Gartnet

In uno studio Oracle del 2012, è stata fatta una previsione su come i dati mondiali immagazzinati aumenteranno; entro il 2020, infatti, dovranno essere gestiti circa 45 Zettabytes di dati.

Nel mondo dell’IT, i più grandi vendor si sono preoccupati di fornire una risposta a questa futura esigenza, fornendo servizi applicativi o infrastrutturali: Apache Hadoop, framework scritto in Java, nasce come progetto Open Source con l’obiettivo di distribuire grandi quantità di dati tramite Cluster di Server.

Apache Hadoop: How it’s work

Il framework è composto da tre moduli principali:

2. Hadoop Distributed File System (HDFS), file system distribuito dove vengono salvati i dati;

3. Hadoop YARN, Un framework per la pianificazione del lavoro e la gestione delle risorse del cluster;

4. Hadoop MapReduce, un modulo brevettato e introdotto da Google per supportare la computazione distribuita su grandi quantità di dati in cluster di computer.

MapReduce risulta essere il modulo alla base del successo di Apache Hadoop in quanto permette di distribuire grandi quantità di dati tra più nodi. Hadoop nella sua possibile configurazione NoSQL, tratta i dati adoperando la metodologia Key – Value, dove ogni dato viene associato in maniera univoca una chiave che sarà fondamentale per avviare il processo di MapReducing.

Nell’immagine è possibile notare il ciclo di vita di questo algoritmo, semplificato:

  1. Splitting, corrisponde ai vari dati che vengono separati tra vari nodi;
  2. Mapping, ad ogni dato viene associata una chiave univoca che lo indentifica;
  3. Shuffling, permette di associare e ordinare dati con chiave-valore identici;
  4. Reducing, si preoccupa di sommare i valori uguali;
  5. Result stampa l’output in un file system.

In figura si può notare una configurazione che distribuisce dati in input tra 3 nodi, applica il processo di Map e il conseguente JOB Reduce. Il Result viene immagazzinato in un file system che verrà distribuito.

Apache Hadoop, essendo un framework in grado di distribuire dati ridondandoli tra loro esistono 3 configurazioni diverse per gestire BIG DATA:

  1. Single Node;
  2. Pseudo-Distributed;
  3. Fully- Distributed.

Apache Hadoop è configurato inizialmente con i settaggi “Single Node”, dove per nodo singolo si intende un unico processo JAVA eseguito sulla macchina locale. Non sono eseguiti emulatori o processi e tutto viene eseguito tramite un’unica istanza JVM (Java virtual Machine). L’HDFS non viene adoperato ed è utilissimo solo in fase di debugging. Non è consigliato adoperare questa tipologia di configurazione per ambienti di produzione ma solo in fase di debugging.

In questo caso, nel cluster Hadoop è presente un processo Java di MapReduce per trattare i dati del Client ed HDFS Node che risulta essere non Distribuito ma locale.

Il NameNode è il fulcro di un file system HDFS. Mantiene la struttura di directory di tutti i file nel file system, e traccia dove i dati vengono mantenuti nel cluster.

Nel caso di una configurazione “Pseudo- Distributed”, i processi vengono eseguiti sul server locale che simula un cluster di piccole dimensioni. Più processi Hadoop vengono eseguiti con più istanze JVM, ma sempre su un unico server. HDFS viene adoperato e sostituito al normale File System del server locale. Apache Hadoop nell’istanziare più processi Java permettono di emulare un nodo Master e nodi Slave.

In questa configurazione, vengono istanziati più processi che simulano più server su un unico cluster collegati tra loro tramite rete virtuale. Il nodo Master tramite il processo YARN si preoccupa di allocare risorse e gestirle.

Nell’ultima tipologia di configurazione, devono essere creati N nodi collegati tra loro. È necessario configurare i nodi in rete tra loro e un Master che si occupa di gestire ed amministrare tutti i processi in corso sui di essi. Questa tipologia di configurazione permette di adottare misure base inerenti la Business continuity e Disaster Recovery in quanto uno o più nodi possono essere predisposti per effettuare la georeplica. È una configurazione ideale per ambienti di produzione medio-grandi con la possibilità di agire su tutti i nodi in qualunque momento.

Osservando la figura è opportuno evidenziare come l’architettura in questo caso sia ben più complessa in quanto devono essere configurati N nodi Slave in rete, un nodo Master in grado di gestire gli SLAVE e i client con i loro applicativi in modo da poter interrogare e scrivere sui File System.

Nel prossimo approfondimento vedremo come configurare il framework per Big Data in una architettura Cloud Based su Microsoft Azure, in modo da poter testare la potenza di questo progetto Open Source usato dalle più grandi aziende del mondo.