Ningependa kushiriki baadhi ya maoni kuhusu umuhimu au vinginevyo wa jopo dhibiti la mradi wa kibiashara wa seva moja na msimamizi wa muda mfupi sana. Hadithi ilianza miaka michache iliyopita, wakati baadhi ya marafiki wa marafiki waliniuliza nisimamie ununuzi wa biashara—tovuti ya habari—kwa mtazamo wa kiufundi. Nilihitaji kupata uelewa wa kimsingi wa kile kilichokuwa kikiendelea juu ya nini, kuhakikisha maelezo yote muhimu yalihamishwa katika umbizo na upeo ufaao, na kutathmini kimkakati kile ambacho kinaweza kuboreshwa.
Mpango huo ulifanyika, mpiga fidla haikuhitajika tena. Mwisho. Si kweli.
Tovuti ilikuwa ikifanya kazi kwenye VM yenye viini viwili ya 4GB kwenye Linode, kwenye moss fulani Debian5 yenye muda wa kufanya kazi wa siku 400 na orodha kubwa ya vifurushi ambavyo havijasasishwa. Sehemu ya wavuti iko kwenye CMS maalum, nginx, PHP 5.3 FPM, na Percona MySQL iliyorekebishwa. Kimsingi ilifanya kazi.
Wakati anazungumza nami, mmiliki mpya alikuwa akitafuta programu ili kuleta mradi kufikia matarajio. Alipata moja. Mtayarishaji programu alitathmini trafiki na kiasi na akaamua kuwa na ujuzi wa uboreshaji na usimamizi wa gharama. Alihamisha tovuti nzima hadi kwa huduma ya mwenyeji wa pamoja ya ruble 700 inayosimamiwa na IS****er yake ya kawaida. Siku chache baadaye, mmiliki aliita tena: "Kila kitu ni polepole na inaonekana tumevunjwa." Nilijaribu kurekebisha hali hiyo kupitia jopo la kudhibiti, lakini baada ya majaribio yasiyo na matunda ya kubadilisha toleo la PHP au kidhibiti kutoka fcgi hadi fpm, nilikata tamaa na kuingia kwenye ganda. Huko, nilipata utatuzi umewezeshwa, ambao ulifunua nenosiri la mtandao mzima, 777 kwa folda zingine, ambazo kwa wakati huo zilikuwa zikicheza na programu hasidi, na upuuzi sawa. Mmiliki alitambua na kuamua kuwa kuruka juu ya upangishaji, mtayarishaji programu, na msimamizi ambaye angefuatilia kwa karibu jinsi mambo yalikuwa yakienda sivyo.
Tunahamia RuVDS. Iko karibu kidogo kuliko Linode ya Uingereza, na ikiwa ghafla tunataka kuhifadhi data ya kibinafsi na yote hayo, hatutahitaji kuhamia popote pengine. Kwa kuwa mradi ulipangwa kwa upanuzi, tulipata VM "kwa ukuaji": cores 4, 8 GB ya kumbukumbu, 80 GB ya nafasi ya disk. Sio kwamba sijui jinsi ya kurekebisha usanidi wa nginx kwa mkono, sikuwa na shauku ya kufanya kazi kwenye mradi huu kwa karibu sana (tazama hapo juu kuhusu muda wa muda). Kwa hiyo, niliweka Plesk (Nitaruka maelezo ya usakinishaji hapa, kwani hakuna kweli yoyote: endesha kisakinishi, weka nenosiri kwa msimamizi, ingiza ufunguo, na ndivyo hivyo). Wakati huo, ilikuwa 17.0. Mipangilio ya msingi hufanya kazi vizuri nje ya boksi; ina fail2ban na matoleo ya hivi punde ya PHP na nginx.
Labda nisitishe na kueleza kwa nini. Kwa kuwa mimi mara chache hufanya kazi ya aina hii na sina zana maalum au seti za mapema kwa kila hali, ilikuwa wazi kuwa otomatiki fulani ya msingi ilihitajika, kwanza, kuifanya iwe haraka, pili, salama, na tatu, ili kuhakikisha kuwa mazoea yote bora tayari yametekelezwa.
Kwa hiyo, niliiweka. Nilihifadhi muda wa kutosha, na tovuti ilianza tena kwenye seva mpya karibu mara moja. Kilichosalia ni kurekebisha usanidi wa misuli, kutenga nusu ya kumbukumbu na kuongeza idadi ya mabwawa ya bafa, na kuweka nusu ya cores kwa nginx (Splash haigusi usanidi wa kimataifa), na kisha ingia kwenye ganda kwa siku kadhaa ili kutazama takwimu za mysqltuner. Lo, na nilinunua ImunifyAV inayolipishwa kutoka kwa katalogi ya kiendelezi ili kuondoa programu hasidi ambayo ilikuwa imedungwa. Walipata faili zipatazo 11000 zilizoambukizwa. Jambo baya ni kwamba vipande vya msimbo vilivyofichwa vilikuwa vikidungwa kwenye faili tuli, na kuzisafisha kwa mikono kungekuwa chungu sana. Nilijaribu ClamAV kwanza, lakini ilibainika kuwa haikuweza kushughulikia vitu kama hivyo, wakati ImunifyAV ilifanya. Aidha, faili zilizosafishwa zinabaki kazi; sehemu iliyoathiriwa na programu hasidi inafutwa tu.
Hesabu ni rahisi: $50 kwa mwezi kwa VMware, $10 kwa Plesk (kwa kweli kidogo, kwa sababu tulinunua mwaka mzima na punguzo la miezi miwili), na $3 kwa antivirus. Au pesa nyingi kwa wakati ambao ningetumia kwenye seva hapo awali, kusafisha mwenyewe machafuko haya. Mmiliki alifurahiya sana mpango huu.

Wakati huo huo, tulipata programu mpya. Tulikubaliana juu ya mgawanyo wa majukumu, tukaunda kikoa kidogo cha toleo la majaribio, na tukafanya kazi. Alikuwa akiunda toleo jipya la tovuti huko Laravel, na nilikuwa nikifuatilia kushindwa2ban.

Inafurahisha, mkondo wa watu wanaotamani hauachi kamwe, na orodha iliyopigwa marufuku daima ina anwani mia moja. Athari ni ya kufurahisha: haswa, ninapoingia kwenye ganda, skrini ya kukaribisha kawaida inaonyesha takriban majaribio 20000-30000 ya kuingia kwa SSH ambayo hayakufanikiwa. Fail2ban ikiwa imewashwa, ni takriban 70. Juhudi iliyowekezwa: 0. Kwa bahati mbaya, kulikuwa na samaki kidogo. Kwa chaguo-msingi, WAF (modsecurity) ilikuwa "imewezeshwa nusu": katika hali ya ugunduzi. Hiyo ni, ilirekodi shughuli ya kutiliwa shaka kwenye logi lakini haikuchukua hatua halisi. Na fail2ban ilisoma kwa uangalifu kumbukumbu zote, kulingana na jela zilizowezeshwa, na kufuta kila kitu kilichosonga. Kwa hivyo, tulipiga marufuku nusu ya wafanyikazi wa wahariri :D. Ilitubidi kuzima jela hii na kuorodhesha anwani za IP zinazohitajika ili kutegemewa. Juhudi iliyowekezwa ilikuwa mibofyo michache ya kipanya na kuwafunza wahariri kutoa anwani zao za IP.

Kile ambacho mtayarishaji programu alipenda mara moja ni uwezo wa kupakia hifadhidata moja kwa moja kwenye paneli na ufikiaji wa haraka wa phpMyAdmin.

Nilichopenda ni kumbukumbu na chelezo. Kumbukumbu zimeandikwa na kuzungushwa kiotomatiki nje ya kisanduku; chelezo ni rahisi sana kusanidi. Wakati wa polepole zaidi, chelezo kamili ya takriban GB 10 huundwa, na kisha chelezo ya nyongeza ya MB 200 huundwa kila siku kwa wiki. Urejeshaji ni punjepunje, chini ya faili maalum au hifadhidata. Iwapo unahitaji kurejesha kutoka kwa hifadhi rudufu ya nyongeza, huna haja ya kujisumbua na chelezo kamili na kisha kurejesha msururu mzima—Plesk hufanya yote kiotomatiki. Unaweza kupakia nakala rudufu popote: kwa FTP, Dropbox, S3 Bucket, Hifadhi ya Google, na kadhalika.

Siku G: Mtayarishaji programu hatimaye alimaliza injini mpya, tukaipakia kwenye uzalishaji, tukaagiza data ya zamani, na tukaketi ili kuchagua rangi ya Maseratis yetu ya baadaye. Bado tunachagua.
Matatizo ya kwanza yalianza. Tovuti mpya ilitabiriwa kuwa nzito kuliko ile ya zamani, lakini shida halisi ilikuwa kwamba walikuwa wakitumia Yandex.Zen, kati ya mambo mengine, kuendesha trafiki, ambayo ilikuwa ikiwaendesha wageni kwa wingi. Tovuti ilianguka chini ya miunganisho 150 ya wakati mmoja (Sizungumzii RPS, kwa sababu hatukuipima). Walianza kuchokoza vifungo na visu kwenye eneo la mipangilio ya php_fpm:

Lo, tayari ina miunganisho 500. Nilipotumia kadi yangu ya mkopo kwenye zana za matangazo, wimbi la trafiki liliongezeka. Hatua iliyofuata ilikuwa miunganisho 1000 ya wakati mmoja. Hapa, ilinibidi kurekebisha msimbo na kuchunguza misuli. Splash haikusaidia, lakini hiyo haikuwa kile nilichokuwa nikitarajia. Niliwasha logi ya hoja polepole, nikaongeza faharasa kwenye hifadhidata, nikaondoa maswali yasiyo ya lazima kutoka kwa msimbo, na kurekebisha usanidi wa MySQL tena kufuatia ushauri wa mysqltuner.
Changamoto mpya - miunganisho 2000. Plesk 17.8 ilikuwa imetolewa tu, ambayo, kati ya mambo mengine, iliongeza caching ya nginx. Tumesasisha (inashangaza rahisi). Tulijaribu. Inafanya kazi! Na kisha tunapiga snag: malisho ya Yandex.Zen iliacha kufanya kazi. Tovuti inafanya kazi, lakini mipasho haifanyi kazi. Mipasho haifanyi kazi, hakuna trafiki. Anga inapokanzwa. Chini ya shinikizo kutoka kwa hali na ukosefu wa mawazo, mara moja nilijaribu kufuata nginx na nikapata kile nilichokuwa nikitafuta. Ilibainika kuwa wakati fulani, nginx ya kijinga ilihifadhi hitilafu iliyopotea ya 500 kama jibu la kupata feed.xml ya Yandex. Tulirekebisha kwa kuongeza tofauti kwa mipangilio ya kache:

Ni wazi kuwa mmiliki anahitaji ZAIDI, na mawimbi yanaongezeka polepole. Tunasimamia kwa sasa, lakini tulianza kufanya majaribio ya memcached mapema, kwa kuwa Laravel inaitumia karibu nje ya boksi. Hatukutaka kabisa kusakinisha memcached mwenyewe ili kucheza tu, kwa hivyo tulisakinisha picha ya Docker. Moja kwa moja kutoka kwenye dashibodi.

Sawa, ninadanganya, ilibidi niingie kwenye ganda na kusakinisha moduli kupitia pecl. Haki juu Bado hakuna kitu cha kuripoti juu ya faida za matokeo; kumekuwa na spikes yoyote muhimu. Injini ya tovuti imeunganishwa kwa localhost:11211, takwimu zinaonyesha, lakini kumbukumbu inatumika. Ikiwa tunaipenda, tutaona cha kufanya baadaye. Tutaweza kuiacha kama ilivyo, au kusakinisha "halisi" moja kwa moja kwenye OS. Au tutajaribu Redis kwa njia hiyo hiyo.
Kisha nilihitaji kusanidi jarida la barua pepe. Hakuna relays, tu SMTP uthibitishaji. Niliunda barua pepe, na tulitumia maelezo yake kutuma jarida kupitia PHP.

Plesk Obsidian (18.0) ilitolewa hivi karibuni, na tulisasisha bila hofu, kulingana na uzoefu wa zamani. Kila kitu kilikwenda vizuri sana, hakuna cha kuripoti. Kwa upande mzuri, kiolesura kimeboreshwa kwa kiasi kikubwa, kisasa, na sasa kinafaa zaidi kwa watumiaji katika baadhi ya maeneo. Ufuatiliaji wa Kina kwenye Grafana ni kipengele kizuri.

Bado sijaichunguza kwa undani, lakini unaweza, kwa mfano, kuweka arifa za barua pepe kwa parameta yoyote. Kwa mmiliki, lol.
Akizungumzia kiolesura, ni msikivu na hufanya kazi vizuri kwenye simu. Katika hatua za mwanzo, tulipokuwa tukijaribu kupata mipangilio bora ya PHP na vitu vingine, hii ilikuwa msaada mkubwa. Hasa wakati mpangaji programu, akiwa na shauku ya kufanya kazi, anafanya kazi saa 23 jioni, na niko katika shauku ya kufanya kazi, ninakunywa vodka kwenye sauna, na ninahitaji kubadili HARAKA.

Oh, kwa njia. Unaweza kuona kutoka kwa picha ambayo Mtunzi wa PHP ameonekana. Bado hatujacheza nayo, lakini kwa mfano, kwa Laravel, inaweza kuhifadhi kumbukumbu kadhaa za ganda na kusakinisha vitegemezi kwa muda. Mfumo kama huo upo kwa Node.JS na Ruby.
SSL ni rahisi. Ikiwa kikoa kitatatuliwa kama inavyotarajiwa, Let's Encrypt ni kusakinishwa kwa mbofyo mmoja na kusasishwa kiotomatiki kwa kikoa chenyewe, vikoa vidogo na hata huduma za barua pepe.

Plesk yenyewe kwa sasa ni rahisi kutumia na ni thabiti. Inasasisha yenyewe na OS kimya, hutumia rasilimali kidogo, na huendesha vizuri. Sikumbuki hata masuala yoyote ambayo yanaweza kuchukuliwa kuwa kasoro wazi katika bidhaa. Kulikuwa na shida kadhaa, kwa kweli, lakini zilitokana na usanidi usio kamili au maswala mahali pengine njiani, kwa hivyo hakuna kitu cha kupata kosa. Kwa ujumla, uzoefu wangu na Plesk umekuwa wa kupendeza. Kile ambacho hakina, na ni muhimu kuelewa, ni aina yoyote ya nguzo. Hakuna LB, hakuna HA. Unaweza kujaribu, lakini jitihada zinazohusika zitakuwa kubwa sana kwamba ni bora kufanya kitu tofauti na mwanzo.
Nadhani tunaweza kufupisha. Kwa hali ambapo hakuna msimamizi, au wachache tu, wakati gharama ya kupangisha na tovuti zinazoendeshwa kwayo inapozidi, tuseme, $100, wakati hatuzungumzii seva kubwa iliyoshirikiwa na tovuti 1500, wakati mtoa maamuzi anakabiliwa na chaguo la kuajiri msimamizi wa muda, kununua programu na kuajiri msimamizi wa "nusu ya wakati" au sio maana kabisa. Kutoka kwa mtazamo wa msimamizi wa mbali, ni sawa. $10 kwa mwezi huokoa muda na huongeza kubadilika kufanya kazi kwa kiwango kikubwa sana.оKiasi kikubwa zaidi. Ikiwa, kwa mfano, ninaombwa sana kuchukua mradi kama huo chini ya mrengo wangu, nitasisitiza kuhamia Plesk.
Chanzo: mapenzi.com
