Es vÄlÄtos dalÄ«ties dažos iespaidos par vadÄ«bas paneļa nepiecieÅ”amÄ«bu komerciÄlam viena servera tÄ«mekļa projektam ar ļoti nepilna laika administratoru. StÄsts sÄkÄs pirms pÄris gadiem, kad daži draugu draugi lÅ«dza mani pÄrraudzÄ«t uzÅÄmuma ā ziÅu vietnes ā iegÄdi no tehniskÄ viedokļa. Man bija jÄiegÅ«st pamatzinÄÅ”anas par to, kas darbojas uz kura, jÄnodroÅ”ina, lai visa nepiecieÅ”amÄ informÄcija tiktu nodota pareizÄ formÄtÄ un apjomÄ, un stratÄÄ£iski jÄizvÄrtÄ, ko varÄtu uzlabot.
DarÄ«jums bija noslÄgts, vijolnieks vairs nebija vajadzÄ«gs. Beigas. Ne gluži.
Vietne darbojÄs uz divkodolu 4 GB virtuÄlÄs maŔīnas Linode platformÄ, kaut kÄdas novecojuÅ”as Debian 5 operÄtÄjsistÄmas ar aptuveni 400 dienu darbÄ«bas laiku un milzÄ«gu novecojuÅ”u pakotÅu sarakstu. TÄ«mekļa daļa darbojÄs ar pielÄgotu satura pÄrvaldÄ«bas sistÄmu (CMS), nginx, PHP 5.3 FPM un uzlabotu Percona MySQL. PamatÄ viss darbojÄs.
Sarunas laikÄ ar mani jaunais Ä«paÅ”nieks meklÄja programmÄtÄju, lai projektu Ä«stenotu atbilstoÅ”i cerÄ«bÄm. ViÅÅ” tÄdu atrada. ProgrammÄtÄjs novÄrtÄja trafiku un apjomu un nolÄma, ka viÅam piemÄ«t talants optimizÄcijÄ un izmaksu pÄrvaldÄ«bÄ. ViÅÅ” visu vietni migrÄja uz 700 rubļu vÄrtu koplietojamu mitinÄÅ”anas pakalpojumu, ko pÄrvaldÄ«ja viÅa ierastais informÄcijas nesÄjs. PÄc dažÄm dienÄm Ä«paÅ”nieks atkal piezvanÄ«ja: "Viss notiek lÄni, un Ŕķiet, ka esam salauzti." Es mÄÄ£inÄju situÄciju labot, izmantojot vadÄ«bas paneli, bet pÄc vairÄkiem neveiksmÄ«giem mÄÄ£inÄjumiem mainÄ«t PHP versiju vai apstrÄdÄtÄju no fcgi uz fpm, es padevos un iegÄju ÄaulÄ. Tur es atradu iespÄjotu atkļūdoÅ”anu, kas atklÄja paroli visam internetam, 777 dažÄm mapÄm, kuras tajÄ brÄ«dÄ« jau bija pilnas ar ļaunprÄtÄ«gu programmatÅ«ru, un tamlÄ«dzÄ«gas muļķības. ÄŖpaÅ”nieks saprata un nolÄma, ka taupÄ«t uz mitinÄÅ”anu, programmÄtÄju un administratoru, kas rÅ«pÄ«gi sekotu lÄ«dzi, kÄ viss notiek, ir nepareizi.
MÄs pÄrceļamies uz RuVDS. Tas ir nedaudz tuvÄk nekÄ ApvienotÄs Karalistes Linode, un, ja pÄkÅ”Åi vÄlÄsimies glabÄt personas datus un visu pÄrÄjo, mums nebÅ«s jÄpÄrceļas nekur citur. TÄ kÄ projekts bija paredzÄts paplaÅ”inÄÅ”anai, mÄs iegÄdÄjÄmies virtuÄlo maŔīnu "izaugsmei": 4 kodoli, 8 GB atmiÅas, 80 GB diska vietas. Ne jau tÄpÄc, ka es nezinu, kÄ manuÄli pielÄgot nginx konfigurÄcijas, man vienkÄrÅ”i nebija entuziasma tik intensÄ«vi strÄdÄt pie Ŕī projekta (skatÄ«t iepriekÅ” par nepilna laika darbu). TÄtad, es instalÄju Plesk (es Å”eit izlaidīŔu instalÄÅ”anas detaļas, jo tÄdas Ä«sti nav: palaidiet instalÄtÄju, iestatiet administratora paroli, ievadiet atslÄgu, un viss). Toreiz tÄ bija 17.0. Pamata iestatÄ«jumi darbojas diezgan labi uzreiz pÄc instalÄÅ”anas; tam ir fail2ban un jaunÄkÄs pieejamÄs PHP un nginx versijas.
VarbÅ«t man vajadzÄtu apstÄties un paskaidrot, kÄpÄc. TÄ kÄ es reti veicu Å”Äda veida darbu un man nav Ä«paÅ”u rÄ«ku vai iepriekÅ” iestatÄ«tu iestatÄ«jumu katrai situÄcijai, bija skaidrs, ka ir nepiecieÅ”ama zinÄma pamatfunkciju automatizÄcija, pirmkÄrt, lai padarÄ«tu to Ätru, otrkÄrt, lai nodroÅ”inÄtu droŔību un, treÅ”kÄrt, lai nodroÅ”inÄtu, ka visa labÄkÄ prakse jau ir ieviesta.
TÄ nu es to instalÄju. IetaupÄ«ju diezgan daudz laika, un vietne jaunajÄ serverÄ« restartÄjÄs gandrÄ«z acumirklÄ«. Atlika tikai pielÄgot muskuļu konfigurÄciju, pieŔķirot pusi atmiÅas un palielinot buferu kopu skaitu, un pieŔķirot pusi kodolu nginx (Splash nepieskaras globÄlajÄm konfigurÄcijÄm), un pÄc tam uz pÄris dienÄm pieteikties ÄaulÄ, lai apskatÄ«tu mysqltuner statistiku. Ak jÄ, un es nopirku maksas ImunifyAV no paplaÅ”inÄjumu kataloga, lai atbrÄ«votos no ievietotÄs ļaunprogrammatÅ«ras. ViÅi atrada aptuveni 11 000 inficÄtu failu. NepatÄ«kamÄkais ir tas, ka statiskajos failos tika ievietoti apmulsinÄti koda fragmenti, un to manuÄla tÄ«rīŔana bÅ«tu bijusi Ä«sta problÄma. Vispirms izmÄÄ£inÄju ClamAV, bet izrÄdÄ«jÄs, ka tas nevar tikt galÄ ar Å”ÄdÄm lietÄm, kamÄr ImunifyAV to varÄja. TurklÄt iztÄ«rÄ«tie faili paliek funkcionÄli; ar ļaunprogrammatÅ«ru inficÄtais fragments tiek vienkÄrÅ”i izdzÄsts.
MatemÄtika ir vienkÄrÅ”a: 50 ASV dolÄri mÄnesÄ« par VMware, 10 ASV dolÄri par Plesk (patiesÄ«bÄ mazÄk, jo mÄs iegÄdÄjÄmies pilnu gadu ar divu mÄneÅ”u atlaidi) un 3 ASV dolÄri par antivÄ«rusu. Vai arÄ« daudz naudas par laiku, ko sÄkotnÄji bÅ«tu pavadÄ«jis serverÄ«, manuÄli tÄ«rot Å”os nekÄrtÄ«bas. ÄŖpaÅ”nieks bija diezgan apmierinÄts ar Å”o vienoÅ”anos.

TikmÄr mÄs atradÄm jaunu programmÄtÄju. VienojÄmies par atbildÄ«bas sadalÄ«jumu, izveidojÄm apakÅ”domÄnu testa versijai un Ä·ÄrÄmies pie darba. ViÅÅ” veidoja jaunu vietnes versiju Laravel vidÄ, bet es uzraudzÄ«ju fail2ban%).

Interesanti, ka ziÅkÄrÄ«go cilvÄku plÅ«sma nekad nebeidzas, un aizliegto adreÅ”u sarakstÄ vienmÄr ir aptuveni simts adreÅ”u. Efekts ir interesants: jo Ä«paÅ”i, kad es parasti piesakos ÄaulÄ, sveiciena ekrÄnÄ parasti tiek parÄdÄ«ti aptuveni 20 000ā30 000 neveiksmÄ«gu SSH pieteikÅ”anÄs mÄÄ£inÄjumu. Ar iespÄjotu fail2ban to ir aptuveni 70. IeguldÄ«tÄs pÅ«les: 0. DiemžÄl bija neliels ÄÄ·is. PÄc noklusÄjuma WAF (modsecurity) bija "daļÄji iespÄjots": noteikÅ”anas režīmÄ. Tas ir, tas reÄ£istrÄja aizdomÄ«gas aktivitÄtes žurnÄlÄ, bet neveica nekÄdas faktiskas darbÄ«bas. Un fail2ban bez izŔķirÄ«bas nolasÄ«ja visus žurnÄlus atbilstoÅ”i iespÄjotajiem jailiem un izdzÄsa visu, kas pÄrvietojÄs. TÄdÄjÄdi mÄs aizliedzÄm pusi redakcijas personÄla :D. Mums bija jÄatspÄjo Å”is jails un jÄiekļauj baltajÄ sarakstÄ nepiecieÅ”amÄs IP adreses uzticamÄ«bas labad. IeguldÄ«tÄs pÅ«les bija pÄris peles klikŔķi un redaktoru apmÄcÄ«ba sniegt savas IP adreses.

ProgrammÄtÄjam uzreiz patika iespÄja augÅ”upielÄdÄt datubÄzes tieÅ”i panelÄ« un Ätra piekļuve phpMyAdmin.

Man patika žurnÄli un dublÄjumkopijas. ŽurnÄli tiek rakstÄ«ti un mainÄ«ti automÄtiski pÄc noklusÄjuma; dublÄjumkopijas ir ļoti viegli iestatÄ«t. VislÄnÄkajos laikos tiek izveidota pilna aptuveni 10 GB dublÄjumkopija, un pÄc tam katru dienu nedÄļas garumÄ tiek izveidota 200 MB inkrementÄla dublÄjumkopija. AtjaunoÅ”ana ir detalizÄta, lÄ«dz konkrÄtam failam vai datubÄzei. Ja nepiecieÅ”ams atjaunot no inkrementÄlas dublÄjumkopijas, nav jÄuztraucas par pilnu dublÄjumkopiju un pÄc tam jÄatjauno visa Ä·Äde ā Plesk to visu dara automÄtiski. DublÄjumkopijas var augÅ”upielÄdÄt jebkur: FTP, Dropbox, S3 Bucket, Google Drive utt.

G diena: ProgrammÄtÄjs beidzot pabeidza jauno dzinÄju, mÄs to ielÄdÄjÄm ražoÅ”anÄ, importÄjÄm vecos datus un apsÄdÄmies, lai izvÄlÄtos mÅ«su nÄkotnes Maserati krÄsu. MÄs joprojÄm izvÄlamies.
SÄkÄs pirmÄs problÄmas. JaunÄ vietne, kÄ jau paredzams, bija noslogotÄka par veco, taÄu Ä«stÄ problÄma bija tÄ, ka viÅi cita starpÄ izmantoja Yandex.Zen, lai piesaistÄ«tu datplÅ«smu, kas savukÄrt piesaistÄ«ja milzÄ«gus apmeklÄtÄjus. Vietne avarÄja pie mazÄk nekÄ 150 vienlaicÄ«giem savienojumiem (es nerunÄju par RPS, jo mÄs to nemÄrÄ«jÄm). ViÅi sÄka bakstÄ«t pogas un pielÄgot kloķīŔus php_fpm iestatÄ«jumu apgabalÄ:

Ups, tas jau satur 500 savienojumus. Kad es izmantoju savu kredÄ«tkarti reklÄmas rÄ«kiem, datplÅ«smas viļÅi kļuva arvien lielÄki. NÄkamais pagrieziena punkts bija 1000 vienlaicÄ«gi savienojumi. Å eit man bija jÄuzlabo kods un jÄpÄrbauda tÄ jauda. Splash nepalÄ«dzÄja, bet tas nebija tas, ko es gaidÄ«ju. Es iespÄjoju lÄno vaicÄjumu žurnÄlu, pievienoju datubÄzei indeksus, no koda noÅÄmu nevajadzÄ«gos vaicÄjumus un vÄlreiz pielÄgoju MySQL konfigurÄciju, sekojot mysqltuner ieteikumam.
Jauns izaicinÄjums ā 2000 savienojumu. Tikko bija izlaista Plesk 17.8 versija, kas cita starpÄ pievienoja nginx keÅ”atmiÅu. MÄs atjauninÄjÄm (pÄrsteidzoÅ”i viegli). MÄs to izmÄÄ£inÄjÄm. Tas darbojas! Un tad mÄs saskÄrÄmies ar Ä·ibeli: Yandex.Zen plÅ«sma pÄrstÄja darboties. Vietne darbojas, bet plÅ«sma nedarbojas. PlÅ«sma nedarbojas, nav datplÅ«smas. AtmosfÄra kļūst karstÄka. ApstÄkļu spiediena un iztÄles trÅ«kuma dÄļ es nekavÄjoties mÄÄ£inÄju atrast nginx un atradu to, ko meklÄju. IzrÄdÄs, ka kÄdÄ brÄ«dÄ« stulbais nginx keÅ”atmiÅÄ saglabÄja nejauÅ”u 500 kļūdu kÄ atbildi uz Yandex get feed.xml. MÄs to labojÄm, pievienojot izÅÄmumus keÅ”atmiÅas iestatÄ«jumiem:

Ir skaidrs, ka Ä«paÅ”niekam vajag VAIRÄK, un viļÅi lÄnÄm pieaug. PagaidÄm mÄs tiekam galÄ, bet mÄs jau laikus sÄkÄm eksperimentÄt ar memcached, jo Laravel to atbalsta gandrÄ«z uzreiz. MÄs Ä«sti negribÄjÄm instalÄt memcached manuÄli tikai tÄpÄc, lai paspÄlÄtos, tÄpÄc mÄs instalÄjÄm Docker attÄlu. TieÅ”i no informÄcijas paneļa.

Labi, es meloju, man vajadzÄja ieiet korpusÄ un instalÄt moduli, izmantojot pecl. TieÅ”i tÄ. PagaidÄm nav nekÄ, ko ziÅot par caurlaidspÄjas pieaugumu; nav bijuÅ”i bÅ«tiski pieaugumi. Vietnes dzinÄjs ir savienots ar localhost:11211, statistika tiek rÄdÄ«ta, bet atmiÅa tiek patÄrÄta. Ja mums tas patiks, redzÄsim, ko darÄ«t tÄlÄk. Vai nu atstÄsim to tÄdu, kÄds tas ir, vai instalÄsim "Ä«sto" tieÅ”i operÄtÄjsistÄmÄ. Vai arÄ« mÄÄ£inÄsim Redis tÄdÄ paÅ”Ä veidÄ.
Tad man vajadzÄja iestatÄ«t e-pasta biļetenu. NekÄdu releju, tikai SMTP autentifikÄcija. Es izveidoju e-pasta adresi, un mÄs izmantojÄm tÄs datus, lai nosÅ«tÄ«tu biļetenu, izmantojot PHP.

Nesen tika izlaista Plesk Obsidian (18.0), un mÄs to atjauninÄjÄm bez bailÄm, pamatojoties uz iepriekÅ”Äjo pieredzi. Viss noritÄja ļoti gludi, nav nekÄ, par ko ziÅot. PozitÄ«vi ir tas, ka saskarne ir ievÄrojami uzlabota, modernizÄta un tagad dažÄs jomÄs lietotÄjam draudzÄ«gÄka. UzlabotÄ uzraudzÄ«ba Grafana ir lieliska funkcija.

Es to vÄl neesmu detalizÄti izpÄtÄ«jis, bet, piemÄram, var iestatÄ«t e-pasta brÄ«dinÄjumus jebkuram parametram. ÄŖpaÅ”niekam, lol.
RunÄjot par saskarni, tÄ ir atsaucÄ«ga un ļoti labi darbojas tÄlrunÄ«. SÄkumposmÄ, kamÄr mÄs centÄmies atrast optimÄlos PHP iestatÄ«jumus un citas lietas, tas bija milzÄ«gs palÄ«gs. It Ä«paÅ”i, kad programmÄtÄjs, darba entuziasma lÄkmÄ, strÄdÄ pie kaut kÄ pulksten 23:00, bet es esmu darba entuziasma lÄkmÄ, dzeru Å”Åabi pirtÄ«, un man STEIDZAMI kaut kas ir jÄmaina.

Ak, starp citu. AttÄlÄ var redzÄt, ka ir parÄdÄ«jies PHP Composer. MÄs vÄl neesam ar to spÄlÄjuÅ”ies, bet, piemÄram, Laravel gadÄ«jumÄ tas var ietaupÄ«t pÄris Äaulas pieteikÅ”anÄs reižu un nedaudz laika atkarÄ«bu instalÄÅ”anai. LÄ«dzÄ«ga sistÄma pastÄv arÄ« Node.JS un Ruby.
SSL ir vienkÄrÅ”s. Ja domÄns tiek identificÄts, kÄ paredzÄts, Let's Encrypt tiek instalÄts ar vienu klikŔķi un automÄtiski atjauninÄs gan paÅ”am domÄnam, gan apakÅ”domÄniem, gan pat e-pasta pakalpojumiem.

Pats Plesk paÅ”laik ir diezgan lietotÄjam draudzÄ«gs un stabils. Tas klusi atjaunina sevi un operÄtÄjsistÄmu, izmanto maz resursu un darbojas nevainojami. Es pat neatceros nekÄdas problÄmas, ko varÄtu uzskatÄ«t par skaidru produkta defektu. Protams, dažas problÄmas bija, taÄu tÄs bija vai nu nepilnÄ«gas konfigurÄcijas, vai arÄ« raduÅ”Äs kaut kur pa ceļam, tÄpÄc tur Ä«sti nav ko pÄrmest. KopumÄ mana pieredze ar Plesk ir bijusi patÄ«kama. Kas tam nav, un tas ir svarÄ«gi saprast, ir jebkÄda veida klasterizÄcija. Nav LB, nav HA. Var mÄÄ£inÄt, bet ieguldÄ«jums bÅ«s tik liels, ka labÄk jau no paÅ”a sÄkuma darÄ«t kaut ko citu.
Es domÄju, ka mÄs varam rezumÄt. SituÄcijÄ, kad nav administratora vai ir tikai daži, kad mitinÄÅ”anas un tajÄ darbojoÅ”Äs(-o) vietnes(-u) izmaksas pÄrsniedz, teiksim, 100 USD, kad mÄs nerunÄjam par milzÄ«gu koplietojamu serveri ar 1500 vietnÄm, kad lÄmumu pieÅÄmÄjam ir jÄizdara izvÄle starp nepilna laika administratora nolÄ«gÅ”anu, programmatÅ«ras iegÄdi un "pusslodzes" administratora nolÄ«gÅ”anu vai vispÄr nealgoÅ”anu ā tas noteikti ir loÄ£iski. No attÄlinÄta administratora viedokļa tas ir tas pats. 10 USD mÄnesÄ« ietaupa laiku un nodroÅ”ina elastÄ«bu darbam ļoti lielÄ mÄrogÄ.оLielÄka summa. PiemÄram, ja man stingri lÅ«gs uzÅemties lÄ«dzÄ«gu projektu savÄ paspÄrnÄ, es pieprasīŔu tÄ pÄrvietoÅ”anu uz Plesk.
Avots: www.habr.com
