TSM - Sitecore: un studiu de caz

Andrei Avram - Developer @ Endava


Începi să construiești o aplicație web. Cum ar trebui să procedezi? Este un Content Management System (CMS) necesar? Merită să avem aşa ceva? S-a publicat multă informaţie contradictorie sau inconsecventă pe acest subiect, iar, la drept vorbind, nu avem un răspuns definitiv la aceste întrebări. Există argumente foarte pertinente de ambele părți - atât în favoarea, cât și împotriva adoptării unui astfel de sistem.

Acest articol nu încearcă să epuizeze problematica, aşa cum nu încearcă nici să dea răspunsuri finale. E mai degrabă o descriere succintă a unei variante fezabile la pletora de soluţii existente.

A utiliza CMS sau a nu utiliza CMS ? Aceasta este întrebarea...

În zilele noastre, totul pare să se învârtă în jurul dezvoltării rapide şi a timpilor mici până la producţie. Un Content Management System vine cu promisiuni foarte tentante în această direcție.

În primul rând, preia responsabilitatea taskurilor plictisitoare şi repetitive de management al datelor (operaţii CRUD), permiţându-ne să ne axăm pe aspectele unice şi inovatoare ale aplicației noastre. Cele mai populare CMS-uri respectă această promisiune, ceea ce le face un punct de pornire viabil pentru orice fel de aplicaţie. Aplicaţiile se livrează repede, managementul datelor este bine gestionat (versionarea conţinutului, workflow-uri de publicare, etc.), iar abonaţii pot ei înşişi să menţină site-ul web actualizat.

În al doilea rând, oferă susținere pentru una din cele mai importante componente ale unei aplicaţii moderne web - securitatea și managementul accesului. Înainte de a trata subiectul în detaliu, e necesară o remarcă: adoptarea unui CMS creează o relație de depedență între acesta și aplicația noastră web. Problemele CMS-ului devin problemele noastre, vulnerabilităţile CMS-ului devin ale noastre. Cu toate acestea, problematica securității software e foarte complexă si adesea neplăcut de dificilă. În general, securitatea nu ar trebui abordată în "sistem DIY" decât dacă personale ştiu foarte bine ce fac. E mai bine să lăsăm lucrul acesta în seama oamenilor care au mai mult timp şi mai multe resurse pentru a face acest lucru, în loc să rezolvăm lucrurile în stil MacGyver.

În ultimul rând, cele mai populare CMS-uri expun seturi importante de funcţionalitate out of the box. Dacă aplicaţia are nevoie de workflow-uri întortocheate pentru publicarea conținutului, API-uri de căutare, versionare de conţinut, etc. există o şansă destul de mare ca CMS-ul ales să ofere deja suport pentru aceste lucruri. Este totuşi imposibil ca nevoile tuturor să fie acoperite de un astfel de sistem. Pentru a rezolva această problemă, platformele solide de content management expun servicii, permițând astfel adăugarea de pluginuri la funcţionalitatea deja existentă. După cum am menţionat anterior, nu există un răspuns definitiv la această întrebare. Dacă singurul lucru necesar este lansarea rapidă a unui MVP, nu aveţi mult conţinut de livrat şi nu intenţionaţi să actualizaţi conţinutul în mod regulat, atunci poate un CMS nu este soluţia pentru voi; o aplicație web statică e suficientă. Pentru orice alt scenariu mai complex, va fi nevoie, fără doar și poate, să vă asiguraţi aplicaţia pentru viitor, iar un CMS este un foarte bun loc de plecare.

Sitecore

Iată o soluţie pentru construirea aplicaţiilor robuste de nivel enterprise. Sitecore este în esență o soluţie CMS construită pentru administrarea conţinutului global şi în mai multe versiuni de limbă, fiind însă suficient de flexibil pentru a fi adaptat cerinţelor în continuă schimbare ale mediului enterprise. Valoarea acestui produs este recunoscută și prin poziționarea sa în zona de leader a cadranului magic Gartner pe 2016 în materie de Web Content Management, având cel mai mare scor la capacitatea de execuţie. Este un fapt cunoscut că Gartner nu susţine niciun furnizor, produs sau serviciu incluse în acest studiu şi publică rezultatele doar pe baza cercetărilor anterioare (cercetarea şi metodologia de ierarhizare sunt toate descrise în articolul publicat). Prin urmare, Sitecore se poziţionează excelent ca una dintre cele mai bune soluţii de management de conţinut actuale. Raportul Gartner nu trebuie luat drept broșură de recomandări, ci mai degrabă ca oferind o perspecitvă globală asupra universului CMS enterprise. Acest lucru este important deoarece nu veţi alege doar o platformă de management de conţinut, ci un partener pentru viitor. Vă datoraţi vouă şi clienţilor voştri să planificaţi atent şi să luaţi decizii bune încă de la început.

Sursa: Gartner (Septembrie 2016)

Arhitectură prietenoasă

Orice funcţionalitate poate fi extinsă, exclusă sau rescrisă. Cele mai multe aspecte ale sistemului sunt create ca o serie de procesoare legate într-un pipeline. Mai simplu spus, acest lucru presupune o structurare a CMS- ului ca o serie de paşi secvenţiali: outputul unui pas devine input pentru următorul. Acest pipeline poate fi modificat în orice mod - în primul rând premițând adăugarea unor pași custom în orice loc sau prin executarea de cod custom ca răspuns la un anumit eveniment.

Din perspectiva arhitecturii software, Sitecore este în esență o aplicaţie web .NET peste care se va adăuga codul custom. Oferă un API exhaustiv care permite codului aplicației să interacţioneze cu fiecare aspect al sistemului de management al conținutui. De exemplu, CMS-ul este puternic integrat cu Apache Lucene (pentru scenarii mai complexe Apache Solr poate fi utilizat) oferindu-i aplicației acces la o soluţie robustă de căutare şi indexare a conţinutului.

Extensibilitate şi comunitate

După cum am menţionat, Sitecore este construit în jurul unei arhitecturi foarte deschise şi prietenoase pentru programator. Principala consecință a aceastei abordări este sistemul de plugin devenit unul din principalele moduri de extindere a funcționalităților out of the box. Conținutul şi codul custom pot fi uşor "împachetate" într-un plugin, permițând astfel replicarea muncii de dezvoltare extrem de ușor pe un număr oricât de mare de instanțe.

Ușurința acestui model de dezvoltare a pluginurilor a dus la închegarea unei excelente comunităţi tehnice. Pluginurile produse în această comunitate extind funcţionalitatea Sitecore existentă şi adaugă feature-uri utile ce pot fi ușor instalate și folosite într-o varietate de aplicații. Un astfel de exemplu este pachetul Sitecore Powershell Extensions care face să pară manipularea activităţilor obositoare de conţinut floare la ureche.

Multisite şi Multilanguage

Majoritatea clienților de tip enteprise au în administrare mai multe site-uri, iar a crea conținut de la zero pentru fiecare dintre acestea înseamnă pierdere de timp și resurse. Sitecore poate fi utilizat drept un CMS centralizat care permite distribuirea conţinutului pe mai multe site-uri. Pentru a face posibilă livrarea conținutului mai multor aplicații web, Sitecore va trebui (în cele mai multe cazuri) publicat într-un mediu distribuit. Din fericire, "scalabilitatea" este considerată un element de primă clasă în universul Sitecore, fapt ce face să fie extrem de uşoară adăugarea de noduri atât pentru managementul conținutului cât și pentru livrarea acestuia.

Mai mult, Sitecore vine cu suport out of the box pentru site-uri web în mai multe limbi adăugând şi workflow-uri de traducere. Un lucru interesant de menţionat este că în procesul de traducere se poate folosi un serviciu de traducere automată, ceea ce face conţinutul să fie gata pentru clienţi în timp cât mai scurt.

Marketing şi Analytics

Extinzând componenta de management de conţinut, Sitecore oferă, de asemenea, o suită de tooluri orientate spre marketing în mediul digital. În primul rând, vizitatorii nu sunt tratați în mod egal - există posibilitatea de a optimiza conţinutul pentru a utilizatorului o experienţă personalizată în funcţie de o multitudine de factori (aceşti indicatori sunt construiţi dinamic în funcţie de preferinţele utilizatorilor, interacţiunea lor cu aplicația, locul lor, tipul preferat de conţinut şi nu numai). Cu alte cuvinte, utilizatorii vor vedea conţinutul care este cel mai relevant pentru ei, şi nu doar informaţie generală, ne-personalizată. Acest aspect este important în primul rând pentru că publicul ţintă nu este omogen şi static. Sistemul trebuie să se poată adapta şi creşte în același ritm cu businessul, păstrând totul nou şi relevant.

Procesul de optimizare a experienţei este extins cu suport pentru testare de tip A/B şi multivariate. Acest lucru permite testarea diferitor combinații de conținut pentru a decide care sunt cele mai eficiente în atingerea scopului aplicației. Sitecore va calcula în timp ce aceste teste sunt active rata lor de eficiență, oferind o perspectivă largă și suficient de bine informată asupra problemei în cauză.

Concluzie

Sitecore nu este o soluţie perfectă, aşa cum nu este nici răspunsul ultim la întrebarea noastră. Cu toate acestea, multitudinea de lucruri făcute "așa cum trebuie" i-au câștigat reputația de CMS preferat al multor companii globale.

Merită încercat! S-ar putea să fie un foarte bun punct de pornire în următorul proiect.