ABONAMENTE VIDEO TESTE REDACȚIA
RO
EN
×
▼ LISTĂ EDIȚII ▼
Numărul 50
Abonament PDF

Azure CDN – Prezentare de ansamblu

Radu Vunvulea
Solution Architect
@iQuest
PROGRAMARE

Articolul prezintă Azure CDN din trei puncte de vedere:

Scopul principal al articolului este să evidențieze ce se poate şi ce nu se poate face cu Azure CDN.

Azure CDN - Funcţionalitate şi feature-uri disponibile

Dorim să prezentăm funcţionalitatea şi feature-urile disponibile în momentul de faţă (Q3, 2016) în Azure CDN.  Pe pagina web Azure, veţi găsi multe informaţii utile şi sunt sigur că deja aţi consultat-o.
Comparativ cu ultimii ani, Microsoft face acum un mare pas, semnând contracte cu Akamai şi Verizon (furnizori majori de servicii CDN).

Aceasta a fost o alegere foarte bună, deoarece e nevoie de mulţi bani şi de mult efort pentru a-ţi dezvolta propriul CDN. Sunt anumite lucruri pe care nu e nevoie să le dezvolţi sau să le creezi de unul singur dacă nu ai nevoie de feature-uri customizate. 
Nu aveţi nevoie de un contract cu fiecare furnizor. Aveţi nevoie doar de un abonament Azure (Azure Subscription), fără a fi nevoie de un contract sau de o factură de la Akamai sau Verizon.

În general, feature-urile CDN oferite de aceştia sunt similare. Există mici excepţii, cares-ar putea să (nu) aibă impact asupra afacerii dumneavoastră.  Pe baza listei de feature-uri disponibile, putem spune că Akamai este varianta basic, în timp ce Verizon are nişte trăsături adiţionale. Ambele oferă funcţionalitatea de bază cerută de CDN.

Elementele Verizon care sunt disponibile doar pe Azure CDN sunt:   

  1. Rapoarte privitoare la lungimea de bandă, statusul Cache, erorile de cod HTTP ş.a.m.d. .
  2. Acces restricţionat la conţinut, în funcţie de ţară/zonă. Verizon vă permite să specificaţi o listă de ţări (DE, UK) sau zone (EU, AP - Asia/Pacific) care (nu) pot accesa conţinutul. Filtrarea se face pe baza IP-ului de client şi se stabileşte per director. E bine de reţinut că această regulă se aplică recursiv la nivel de folder, că nu există suport pentru wildcards şi că poţi specifica o regulă per folder (care poate conţine ţări sau zone multiple). Deoarece regula este recursivă, dacă definiţi o regulă de nivel inferior -doar regula de pe sub-folder se va aplica - un simplu motor de reguli.
  3. Puteţi pre-încărca conţinut în cache. În mod normal, conţinutul este încărcat în cache, doar când acesta este solicitat prima oară. Azure CDN de la Verizon ne permite să specificăm conţinutul pe care vrem să îl pre-încărcăm. Nu uitaţi că trebuie să specificaţi exact fişierul pe care doriţi să îl pre-încărcaţi şi că puteţi pre-încărca maxim 10 fişiere pe minut (per profil).  Există suport pentru expresiile regulare, dar fiecare rezultat trebuie să fie o cale relativă la un fişier.

În continuare, vom prezenta feature-urile pe care Azure CDN de la Akamai şi Azure CDN de la Verizon le au în comun:

  1. Suport HTTP
  2. Protecţie DDOS
  3. Dual Stack suport (IPv4 şi IPv6)
  4. Query String Cache - Se referă la modul în care conţinutul este disponibil în memoria cache, când calea este o interogare şi nu este statică. Există trei opţiuni disponibile care ne permit să folosim memoria cache pentru fiecare interogare unică, să ignorăm şirul de interogări şi să nu punem în cache URL-urile care conţin şiruri de interogări. Ultima opţiune este extrem de utilă.
  5. Fast purge - Ne permite să curăţăm cache-ul, chiar dacă TTL-ul (Time To Live) conţinutului nu a expirat. Curăţarea se poate realiza de pe Azure Portal, PowerShell sau prin REST API.
  6. REST API pentru configuraţia CDN (precum şi pentru toate celelalte Servicii Azure)
  7. Suport pentru nume customizat de domeniu
  8. Folosirea memoriei cache pentru conținutul din Azure Storage. Accesul la Azure Storage se face folosind REST API. Astfel putem pune în cache blob-uri (cache blobs) și chiar tabele Azure (AzureTables) atâta timp cât ştim că este vorba de un conţinut static.

Azure CDN de la Verizon este disponibil în două versiuni, Standard şi Premium. Bineînţeles, exceptând preţul, există feature-uri disponibile doar pentru versiunea Premium, precum:

  1. Status CDN în timp real - Este util dacă aveţi nevoie de date în timp real care au legătură cu lungimea de bandă, număr de conexiuni, coduri de eroare şi status cache. E bine ca această informaţie să fie disponibilă pentru CDN, dar, în mod normal, ne putem desfăşura activitatea fără această informaţie.
  2. Rapoarte Avansate - Acestea sunt rapoarte detaliate, de natură geografică, legate de trafic şi de numărul de vizualizări unice, pe zi, pe oră, pe fişier, pe tip de fişier, pe director ş.a.m.d.
  3. Comportament customizabil HTTP bazat pe regulile dumneavoastră.

După cum se observă, sunt multe feature-uri disponibile pentru Azure CDN. Pentru situaţii obişnuite, puteţi folosi produsul fără probleme.

Azure CDN - Feature-uri absente

Vom analiza funcţionalităţile sau feature-urile pe care nu le avem în Azure CDN, deşi, de multe ori, presupunem că acestea sunt disponibile.

Suport SAS pentru stocarea de blob-uri

Funcţionalitatea considerată disponibilă n Azure CDN este Shared Access Signature pentru Blob Storage. Shared Access Signature (SAS) este unul dintre cele mai des utilizate și dintre cele mai puternice feature-uri pentru Blob Storage. În cadrul Azure CDN avem posibilitatea de a pune în cache un blob utilizând URL-ul complet, incluzând URL-ul.
Datorită acestui fapt, oamenii au impresia că Azure CDN ţine cont de validitatea SAS și, odată ce SAS expiră, cache-ul va fi invalidat.
De fapt, în momentul actual Azure CDN tratează URL-ul unui Blob Azure care are SAS ca pe oricare alt URL. Dacă conţinutul poate fi accesat, acesta va copia payload-ul și îl va replica pe CDN. Conţinutul va fi îndepărtat din nodurile CDN doar când valoarea TTL din CDN, care nu are legătură cu SAS, expiră.

HTTPS pentru domenii customizate DNS

Chiar dacă Azure CDN oferă suport pentru DNS customizat, precum și penru HTTPS, nu înseamnă că puteţi utiliza HTTPS folosind numele dumneavoastră de domeniu. Poate părea bizar faptul că două trăsături sunt suportate, însă nu este suportată combinaţia dintre cele două.
Astfel, dacă aveţi nevoie de HTTPS, trebuie să folosiţi Azure CDN DNS. Acest feature este extrem de votat și dorit pentru CDN, pe Azure Voice, de aceea, va avea suport în curând.

Certificate de tip client HTTPS

Când utilizaţi Azure CDN, trebuie să vă amintiţi că, deși se oferă suport pentru HTTPS, în acest moment, suportul lipsește pentru certificatele de tip client. Puteţi utiliza doar certifcate SSL furnizate de CDN.
Din acest motiv, nu avem suport pentru certificatele de tip client pe domenii DNS customizate pentru Azure CDN, dar lucrurile se vor îmbunătăţi în curând.

HTTP/2

Noul protocol de Internet - dacă îl putem numi așa - nu are încă suport. în general, acest lucru nu este o piedică, cu excepţia situaţiei în care aveţi o aplicaţie web complexă și doriţi să diminuați numărul interogărilor făcute de browser-ul client. În aceste situaţii, utilizarea Azure CDN s-ar putea să nu fie foarte simplă, dar există soluţii temporare la acestea.

Fallback la URI customizat

Unii furnizori CDN ne dau posibilitatea să specificăm un URI care se poate folosi pe post de fallback când conţinutul nu este găsit în locul originar. Acest lucru este util când lucraţi cu o aplicaţie în care disponibilitatea de timp este critică și trebuie să furnizaţi o locaţie validă pentru tot conţinutul.
Evident, cu puţină imaginaţie, puteţi rezolva această problemă destul de ușor. Dacă poziţionaţi Azure Traffic între Azure CDN și conţinutul dumneavoastră, veţi putea specifica o listă de URI-uri, de rezervă.

Logurile de acces ale CDN conţin date brute

Multe persoane solicită acces la datele brute ale log-urilor, similar lui Azure Storage. Acesta ar putea fi un feature util, dar am câteva îngrijorări.

Principalul scop CDN este să realizeze un cache și să servească conţinutul deseori solicitat dintr-o locaţie cât se poate de apropiată de client. Se folosește în cazurile în care RPS (requests per second/interogăripe secundă) este ridicat. Generarea unui fișier cu date brute ar putea să fie scump și s-ar putea ca rezultatul să fie niște log-uri care sunt mari. Procesarea acestor fișiere s-ar putea să fie scumpă.

Este important să ne amintim că unele dintre aceste feature-uri sunt deja planificate de echipa Azure, iar, în viitorul apropiat, s-ar putea să le găsim în Azure CDN. De asemenea, nu uitaţi că o soluţie la cheie (out-of-the-box) este greu de găsit, deși este posibilă cu puţină imaginaţie.

Azure CDN - Soluţii care suplinesc feature-urile absente

Vom analiza feature-urile Azure CDN care lipsesc în acest moment. Le-am discutat în ultima postare, iar aici le vom explica.

Suport SAS pentru stocarea blob-urilor

Dacă aveţi nevoie de un sistem CDN care oferă suport pentru SAS, pe lângă Azure Store, trebuie să daţi dovadă de inventivitate. Cea mai simplă soluţie este replicarea conţinutului în conturi Azure Storage multiple (Azure Storage Accounts) sau în același cont Storage (Storage Account) (dacă problema ţine de viteza de descărcare/download) și să creaţi un web endpoint (ce poate fi găzduit de un web app) care va furniza locaţiile de unde conţinutul poate fi descărcat.
Acest web endpoint poate avea un mecanism Round Robin pentru a deservi diverse locaţii.

Utilizând această abordare, veţi avea nevoie și de un mecanism care replică conţinutul în locaţii multiple. AzCopy s-ar putea să fie o soluţie la cheie (out-of-the-box).

HTTPS pentru domenii customizate

Azure CDN și Azure Storage utilizează același sistem de stocare. În acest moment, nu avem suport pentru HTTPS și pentru domenii customizate DNS (Custom DNS Domains). În acest caz, dacă realmente aveţi nevoie de HTTPS, singura soluţie este ca deservirea conţinutului să fie făcută de pe Azure Web App. Nu avem multe opţiuni momentan.

Certificate de client HTTPS

Scenariul este similar cu cel anterior. Nu avem multe opţiuni. Cel mai bine este să folosiţi o Azure Web App și să deserviţi conţinutul binary de acolo.

HTTP/2

Nici o soluție, la fel ca și la Azure Web App.

Fallback la URI customizat

Pentru aceste situaţii, avem o soluţie simplă. Putem aplica abordare prezentată în exemplul SAS Suport. Trebuie să avem aplicaţii web Azure multiple (Azure Web Apps) care pot deservi locaţia conţinutului și care pot adăuga Azure Traffic Manager în faţa lor.

Log-urile de acces ale CDN conţin date brute

Dacă aveţi nevoie de aceste log-uri, trebuie să folosiţi Azure Blob Storage. Ar trebui să folosiţi abordarea de mai sus şi să activaţi log-urile pentru fiecare cont de stocare Azure (Azure Storage Account).

După cum putem vedea, există multe feature-uri disponibile în Azure CDN. Evident, nu vom putea găsi o soluţie perfecă care să ne asigure toate lucrurile de care avem nevoie. Acest lucru e valabil şi pentru Azure CDN. Trebuie, însă, să reţinem că o bună parte din feature-urile care lipsesc deocamdată au statusul In Progress pe portalul de feedback al Azure. Acest lucru presupune că vom avea suport şi pentru acestea.

LANSAREA NUMĂRULUI 79, CLUJ

Prezentări articole și
Panel: Smart Technology

Luni, 21 Ianuarie, ora 18:00
clădirea Casino, Parcul Mare

Înregistrează-te

Facebook Meetup

Sponsori

  • ntt data
  • 3PillarGlobal
  • Betfair
  • Telenav
  • Accenture
  • Siemens
  • Bosch
  • FlowTraders
  • MHP
  • BCR
  • Itiviti
  • Connatix
  • UIPatj
  • MicroFocus
  • Colors in projects