Teknolojia

ClimWeb inajumuisha zana na utendaji unaolenga kusaidia NMHSs katika shughuli zao za kila siku za usimamizi wa tovuti, katika kutoa taarifa na huduma kwa watumiaji wao.

Sehemu hii inataka kuwasilisha uchaguzi wa teknolojia, mbinu ya maendeleo na kuwasilisha vifurushi vinavyounga mkono utendaji unaopatikana kwenye ClimWeb kwa kiwango cha juu.

ClimWeb iliyotengenezwa ni chanzo huria na inapangishwa kwenye GitHub katika https://github.com/wmo-raf/nmhs-cms

Mfumo wa Msingi wa ClimWeb

Kiolezo cha tovuti kimeundwa juu ya Mfumo huria wa Wagtail Mfumo. Wagtail yenyewe imejengwa juu ya Django , ambayo ni mfumo wa mtandao wa Python wa kiwango cha juu unaohimiza maendeleo ya haraka na muundo safi na wa kisayansi.

Mfumo wa ClimWeb

Yafuatayo yalizingatiwa wakati wa kuchagua Wagtail kama mfumo wa chaguo:

  • **Python kama lugha ya programu **. Kikoa cha hali ya hewa na hali ya hewa kinahitaji mwingiliano mwingi na data ya kisayansi. Python ni mojawapo ya lugha za uandishi ambazo hurahisisha kutengeneza taratibu za kuchezea aina hii ya data. Kuendeleza wavuti kwa kutumia Python kwa hivyo inaruhusu kubadilika kwa kukuza utendakazi wa msingi wa data

  • Rahisi Kutumia: Moja ya vipengele muhimu vya Wagtail ni kiolesura chake angavu, kinachofaa mtumiaji. Hii huwarahisishia wahariri wa maudhui kudhibiti tovuti bila kujifunza ugumu na ufundi wa mfumo msingi.

  • Kubadilika: Wagtail inaweza kunyumbulika linapokuja suala la kuunda na kudhibiti tovuti. Inaruhusu uundaji wa haraka wa tovuti zilizobinafsishwa sana zilizo na mipangilio changamano, maudhui na vipengele, kulingana na kile ambacho wahariri wa maudhui wanahitaji.

  • Upanuzi: Wagtail imeundwa ili kupanuliwa kwa urahisi na aina mbalimbali za programu jalizi, mandhari, vipengele na vipengele vingine. Hii inaruhusu kuongeza vipengele vipya, kubinafsisha mwonekano na mwonekano wa tovuti yao, na kupanua utendaji wa ClimWeb.

  • Usalama: Wagtail imeundwa kwa kuzingatia usalama. Inakuja na vipengele vya usalama vilivyojengewa ndani vya Django kama vile uthibitishaji wa mtumiaji, uthibitishaji wa ingizo, na ulinzi dhidi ya mbinu za kawaida za mashambulizi.

  • Scalability: Kwa kuzingatia Django, Wagtail imeundwa ili iweze kubadilika sana, na kuifanya kuwa chaguo bora kwa tovuti zilizo na idadi kubwa ya maudhui na watumiaji. Inaweza kushughulikia kiasi kikubwa cha data bila matatizo yoyote ya utendakazi, ikiruhusu wasanidi programu kuunda tovuti zinazoweza kukua kadri idadi ya watumiaji inavyoongezeka.

  • Vipengele vya biashara nje ya kisanduku: Wagtail inajumuisha ruhusa za mtumiaji na kikundi, utiririshaji wa maudhui na udhibiti, ripoti, ufuatiliaji wa historia ya uhariri wa maudhui na vipengele vingine ambavyo wasimamizi wa tovuti na timu zinahitaji.

  • Uzoefu wa timu ya uendelezaji: Timu ya sasa ya maendeleo ya NMHSs ClimWeb ina uzoefu mkubwa katika kuendeleza miradi ya Wagtail na Django. Hii inafanya haraka kutekeleza vipengele na utendakazi mpya

Mbinu ya Maendeleo

Tunatumia mbinu ya moduli ya Django/Wagtail ya kutengeneza "programu za Django" ili kutoa seti ya vipengele na utendakazi. Programu ya Django/Wagtail ni kifurushi cha Python ambacho hutoa baadhi ya vipengele. Maombi yanaweza kutumika tena katika miradi mbalimbali.

Programu zinajumuisha baadhi ya mchanganyiko wa miundo ya Django, mionekano, violezo, lebo za violezo, faili tuli, URLS, vifaa vya kati n.k. Hizi huunganishwa kwenye mradi kwa kutumia mipangilio ya INSTALLED_APPS. Utumizi kwa hivyo, katika muktadha huu, ni seti ya msimbo inayoingiliana na sehemu mbalimbali za mfumo.

NMHS ClimWeb kwa hivyo imeundwa kwa seti ya programu za ndani zinazotoa utendakazi kwa kurasa tofauti za tovuti za tovuti inayofanya kazi. Hizi zimepangwa chini ya saraka ya kurasa za msimbo wa chanzo wa ClimWeb. Kila saraka ndogo ya kurasa inalingana na sehemu kwenye tovuti ambayo inaweza kuruhusu kuunda ukurasa mmoja au zaidi zinazohusiana wa sehemu hiyo

Utendaji maalum zaidi hutengenezwa kama programu za nje za Wagtail ambazo zinaweza kuchomekwa kwenye mradi wa msimbo. Hizi basi husakinishwa kama vifurushi vya Python zilizochapishwa kwenye Python Package Index (PyPI) , ambayo ni hazina ya programu ya lugha ya programu ya Python.

Vifurushi vya Utendaji

  • CAP Composer: Common Alerting Protocol (CAP) kutunga na kuchapisha zana ambayo hutoa utendaji wa kuunda na kuchapisha arifa zilizoumbizwa na CAP.

  • Meneja wa Utabiri – Kiolesura cha kudhibiti Utabiri wa Jiji la NMHSs

  • GeoManager - Hutoa kiolesura shirikishi cha kudhibiti na kuchapisha seti za data zinazorejelewa na Geo (GIS)

  • Msimamizi wa Mipaka ya Utawala: Hutoa utendaji wa kupakia, kudhibiti na kuibua mipaka ya nchi.

  • WebStories Editor - Hutoa utendaji wa kuunda na kuchapisha Hadithi za Wavuti za Google

  • Tafiti Muumba - Hutoa utendaji wa kuunda na kuchapisha tafiti moja kwa moja katika ClimWeb, taswira na uchanganuzi wa matokeo kwa kutumia michoro shirikishi

Vifurushi vya ujumuishaji wa zana za wahusika wengine

Uuzaji wa barua pepe

Mikutano ya Mtandaoni

  • Zoom Integration: Unganisha Zoom Usajili wa Matukio (mikutano au wavuti) ili kuunda kurasa zilizoundwa kwa Wagtail

Miundo ya Kiolesura cha Mtumiaji na Maktaba


Kukuza utendakazi mpya

Mbinu ya moduli hutumiwa wakati wa kuunda utendakazi mpya ili kujumuishwa kwenye ClimWeb. Utendaji mpya unapaswa kuendelezwa kwa kutengwa kama kifurushi cha Wagtail Python na kuchapishwa kwenye PyPi kwa usakinishaji kwa kutumia Pip.

Tunafuata hatua zifuatazo kwa ujumla:

  • Chunguza vifurushi vilivyopo katika jumuiya ya Wagtail/Django ambavyo vinatoa utendakazi sawa.

  • Ikiwa kifurushi kilichopo kipo na hakiwezi kuunganishwa moja kwa moja kwenye ClimWeb, tunajaribu kubinafsisha kadiri tuwezavyo juu ya kifurushi hiki, ili kuifanya ishirikiane. Vinginevyo, tunaitumia moja kwa moja

  • Ikiwa hatuwezi kupata vifurushi vilivyopo, basi tunakuza kifurushi kutoka mwanzo. Wazo ni kuzuia uundaji upya wa gurudumu inapowezekana.

Usambazaji wa Uzalishaji

Docker hutumiwa kuweka vipengele tofauti vya ClimWeb.

Vyombo vingine vilivyotumika ni pamoja na

  • PostgreSQL iliyo na kiendelezi cha PostGIS kama hifadhidata

  • Nginx kama seva ya wavuti na proksi ya wavuti

  • Memcached kama mfumo wa kuweka akiba kwa maombi ya wavuti

  • Eclipse Mosquitto kama wakala wa ujumbe wa MQTT. Inatumika sana kwa ujumbe wa arifa za CAP

Hizi huwekwa kwenye faili ya usanidi ya utungaji wa docker, inayotumika kupeleka mradi kwa kutumia Docker Compose.

Hifadhi ya uanzishaji imetolewa ambayo inaleta pamoja vipengele vyote tofauti katika mradi mmoja. Hii inaweza kufikiwa katika https://github.com/wmo-raf/nmhs-cms-init . Mwongozo wa usakinishaji umetolewa katika faili ya README ya hazina.

Kusimamia Sasisho

Matoleo mapya yenye kurekebishwa kwa hitilafu na masasisho ya vipengele huchapishwa mara kwa mara kwenye nmhs-cms matoleo ya hazina.

Wakati kuna toleo jipya, kiolesura cha Msimamizi wa ClimWeb kitaonyesha ujumbe unaoonyesha kuwa kuna toleo jipya. Kisha Msimamizi wa Tovuti anaweza kuchagua kupata toleo jipya, baada ya kupitia madokezo ya toleo ambayo huambatana na kila toleo.

Uboreshaji ni kwa kubofya kitufe, ambacho huanzisha mchakato wa kuunda docker na matoleo mapya. Baada ya toleo jipya kujengwa kwa ufanisi, kontena huwashwa upya na toleo jipya likitekelezwa.

Kitufe cha Usasishaji cha ClimWeb

Katika hali nadra ambapo kichochezi cha uundaji kiotomatiki kinashindwa, wasimamizi wa mfumo wanafunzwa kufanya uboreshaji wao wenyewe

Usalama katika Django/Wagtail

ClimWeb, kwa kutumia Django/Wagtail, nje ya kisanduku ina vipengele vifuatavyo vya usalama vilivyojengwa ndani. Maelezo zaidi kuhusu kila kipengele yanaweza kupatikana katika https://docs.djangoproject.com/en/5.0/topics/security

  • Ulinzi wa uandishi wa tovuti (XSS).

  • Ulinzi wa ombi la kughushi tovuti (CSRF).

  • Ulinzi wa sindano ya SQL

  • Ulinzi wa kubofya

  • Mipangilio ya ulinzi ya SSL\HTTPS

  • Uthibitishaji wa kichwa cha mwenyeji

  • Ulinzi wa Sera ya Mrejeleaji

  • Sera ya kufungua asilia tofauti

  • Usalama wa Kikao

  • Ulinzi wa maudhui yaliyopakiwa na mtumiaji

Vipengele maalum vya usalama vya ClimWeb:

  • Uwezo wa kubadilisha url ya msimamizi mara kwa mara

  • Taratibu za chelezo za kila siku

  • Vizuizi vya kuingia kwa nguvu kwa nguvu

  • 2 Factor Uthibitishaji kwa akaunti ya msimamizi