MediaBox.lv = WordPress + CodeIgniter + Elasticsearch + Neo4j + CDN

Web izstrāde: WordPress, Neo4j, CodeIgniter, Elasticsearch

Jau ļoti sen vēlējos šo mājas lapu pārveidot pilnībā un sākt no 0. Domāju, ka lielākajai daļai izstrādātāju ir bijusi šāda doma. Tomēr pieredze rādīja, ka nav jāizgudro jaunas lietas tikai tādēļ, ka to var, labāk ir apvienot katra risinājuma labākās daļas, radot ko jaunu. Tā notika arī ar MediaBox.lv mājas lapu.

Šajā rakstā par to, kā mediabox.lv izmanto jaunās iespējas, ko piedāvā “parastais” WordPress apvienojumā ar “nopietnākiem” PHP mājas lapu izstrādes risinājumiem. Raksts tiem, kuri domā, ka WordPress der tikai blogam un nopietni risinājumi ir pašu veidoti. Parādīšu kā var apvienot abus.

WordPress

Lielākā daļa no satura joprojām ir WordPress pārziņā. Un tas ir dēļ tā pārvaldīšanas un izveidošanas ērtuma. Piemēram, lapas, pakalpojumi un blogs ir pilnībā veidots, izmantojot WordPress.

WordPress ir lielisks satura veidošanas un uzturēšanas rīks. Satura veidošanas redaktors (tagad jau Gutenberg) ir viegli paplašināms un intuitīvs. Pateicoties priekšskatīšanas (preview) iespējai, nav papildus jāveido šī funkcija. Tāpat satura labošanu var ierobežot ar lietotāju tiesībām.

WP REST API

Pateicoties WordPress REST API tālāk saturu var nodot citām lapām vai aplikācijām, piemēram, mobilajiem telefoniem vai datora programmām. Pateicoties API funkcionalitātei, nav arī īpaši jāsatraucas netīšam nopublicētu saturu, jo to var papildus kontrolēt nākamajā posmā, ja nepieciešams.

REST API arī nozīmē, ka pats WordPress var atrasties jebkur internetā un nepieciešama tikai adrese, lai pieslēgtos. Kopš pirmā raksta par 2019. gada plāniem, tas tika arī izdarīts – ja agrāk tas atradās tepat uz mediabox.lv, tad tagad jau dzīvo savu dzīvi pavisam un jauna domēna. Pat ja gadās kļūme un netīšām ir atklāta adrese, to mar nomainīt ļoti ātri, nezaudējot saturu. Manā gadījumā 1 rindiņa CodeIgniter (vai servera) kodā.

Es uz WordPress daļu skatos kā uz lietotāju saskarsni, kur mārketinga, pārdošanas vai sabiedrisko attiecību nodaļas var veidot saturu un uzreiz apskatīties kā tas izskatīsies, piepalīdzot dizainerim.

CodeIgniter daļa vairāk ir “programmētājiem” (un IT), kurš pilda tīri tehnisku uzdevumu – parādīt to, ko drīkst.

CodeIgniter

Jaunā mediabox.lv lapa ir veidota, izmantojot Codeigniter un composer. Patiesībā CodeIgniter ir tikai “čaula”, kas satur kopā composer kodu, nodrošinot keša un drošības funkcijas. Visu pārējo nodrošina trešās puses atvērtais kods.

CodeIgniter pilda arī tādu kā filtra funkciju, lai parādītu tikai to, kas nepieciešams, neatklājot nevajadzīgās detaļas, kuras nāk līdzi WP REST API. Piemēram, pirms veidoju pakalpojumu sadaļu, varēju vispirms visu pārbaudīt WordPress lapā, pirms šādu iespēju pieslēdzu te.

CodeIgniter vietā varēju lietot arī Symfony (ar kuru strādāju ikdienā), bet … pierasts ir pie CodeIgniter un tā salīdzinoši vieglās uzstādīšanas. Nav izslēgts, ka nākotnē tieši šī daļa varētu mainīties.

Bez tam, jau bija iestrādnes veidojot Elasticsearch meklētāju ar CodeIgniter un nevēlējot pārtaisīt un pārkonfigurēt kodu.

Elasticsearch

Viens no lielākajiem mīnusiem WordPress ir meklētājs. Tagad jaunajās mājas lapās šo funkciju aizvieto Elasticsearch. Ņemot vērā, ka Elasticsearch dažviet pat aizvieto datubāzi vai paplašina esošos ierakstus (piem., N-grams izmantošana), viss Elasticsearch tīkls atrodas Docker konteinerī, ko varēs viegli un automātiski paplašināt, kad tā diena pienāks.

Elasticsearch ļaus arī apkopot saturu no vairākām vietnēm un katrai piedāvāt paplašinātās iespējas. Tās gan pagaidām nav ieviestas te, bet drīzumā tās būs redzamas information.lv vai citā lapā, kur no vairākiem blogiem un mājas lapām tiks attainota paplašinātā informācija.

Saistītos datus glabāju grafa datubāzē – Neo4j un vēl eksperimentēju ar dažām citām. Par to vairāk varēs uzzināt graph.lv (vai graph.report).

Neo4j un grafu datubāzes

Grafu datubāzes palīdz atrast dažreiz neredzamas saistības, piemēram., krāpšanās gadījumi internetā, nepatieso ziņu izplatības saistību vai kādas ierīces komplektāciju interneta veikalā.

Bet vislabāk to var redzēt, kad runa ir par algoritmiem facebook.com, google.com, instagram.com, youtube.com un citos sociālajos tīklos un platformās, kur var ātri atrast kurš ar kuru “draudzējas” vai kurš saturs ir nozīmīgāks (meklētājos).

Diemžēl, pagaidām grafu datu bāzes uzturēšanas izmaksas ir pārāk dārgas (virs 250 EUR/mēnesī, neskaitot darbu) un pagaidām mediabox.lv tās īsti nav noderīgas. Toties tās noteikti tiks izmantotas jau pavisam drīz, kad lapa būs atjaunota pilnībā.

Lieki piebilst, ka arī Neo4j atrodas “mākonī”, lai nodrošinātu iespēju to ātri atjaunot un paplašināt, ja tas nepieciešams.

CDN un “mākoņi”

Ņemot vērā jaunās lapas plānus, šobrīd gandrīz viss saturs jau atrodas un darbojas no mākoņa – sākot no bildēm un beidzot ar datu bāzēm. Šāds risinājums pārejas periodā ir glābis nevienu reizi vien.

Ņemot vērā, ka vecais saturs mājas lapai nav tik būtisks, tad atļāvos to pilnībā dzēst (pasliktinot savu SEO) un visas jaunās bildes glabāt Google serveros. Līdz ar to, pat ja pārstās darboties šī lapa, bildes un saturs būs pieejami nepārtraukti.

No vienas puses nevienu nesatrauktu, ja pazustu mediabox.lv bildes uz dažām minūtēm vai stundām, toties, ja runa ir par team.house, tad tur glabājas arī rēķini, kurus klientiem var vajadzēt jebkurā diennakts laikā (jo tādi ir gan no ASV gan Austrālijas) un tad jau lietas ir nopietnākas.

WordPress + CDN. Visvairāk CDN iespējas tiek izmantotas tieši WordPress lapā, kura darbina šo blogu.

Attēlu glabāšana CDN nodrošina to, ka nav nepieciešams izmantot tradicionālo “wp-content/uploads” struktūru un ļauj “noslēpt” paša WordPress atrašanās vietu.

Un pat ja atklātos WordPress vietne, var palasīt augstāk cik viegli to būs pārlikt citur.

Noslēgumam

Ar visu šo es vēlējos parādīt kā var izmantot WordPress arī citādāk, ne tik ierastā veidā. Pēc līdzīgas metodes jau tiek veidotas jaunās lapas arī klientiem, kuri to vēlas, un pēdējā gada laikā šādai pieejai redzu vairāk plusus nekā mīnusus.

Autors: Rolands (MediaBox.lv)

WordPress PHP izstrādātājs. Programmēju interneta mājas lapas.

1 komentārs

Rakstiet savu komentāru

Šajā vietnē surogātpasta samazināšanai tiek izmantots Akismet. Uzziniet, kā tiek apstrādāti jūsu komentāru dati.