Սկսելու համար
Ներածություն
Ինչ է Maran-ը, որ երեք գործընթացն է աշխատում սերվերի վրա և ինչ root դեմոնը չի անի՝ ներառյալ ինչու այն shell-հրամաններ չի ընդունում։
Maran-ը վեբ-հոսթինգի կառավարման վահանակ է Linux սերվերների համար։ Տեղադրեք այն սերվերի վրա և կառավարեք կայքերը, PHP-ի տարբերակները, SSL վկայագրերը, տվյալների բազաները, ֆայլերը, պահուստային պատճեններն ու firewall-ը բրաուզերից՝ առանձին կաբինետով յուրաքանչյուր հոսթինգի հաճախորդի համար և API-ով, որով բիլինգի համակարգն ինքն է ստեղծում հաշիվները։
Երեք գործընթաց, և root-ը միայն մեկի մոտ
Maran-ով սերվերի վրա աշխատում է ուղիղ երեք գործընթաց, և նրանց միջև բաժանումը արտադրանքի գլխավոր որոշումն է․
maran-api— ինքը վահանակը։ Ամբողջ բիզնես-տրամաբանությունն այստեղ է, և միայն այն է դիմում տվյալների բազային։ Աշխատում է ոչ արտոնյալ համակարգային օգտվողի անունից։maran-agent— միակ գործընթացը root-ով։ Այն վիճակ չի պահում, չունի բազա և սեփական կարգավորման ֆայլեր, և միայն այն է դիպչում վեբ-սերվերին, php-fpm-ին, բազաների սերվերին, SSH-ին և ֆայլերի փոխանցմանը, ժամանակացույցին, firewall-ին և վկայագրերին։- PostgreSQL — հասանելի է միայն
maran-api-ից, unix-սոկետով, առանց TCP պորտի ընդհանրապես։
Վահանակը գործակալից խնդրում է անվանված գործողություններ unix-սոկետով՝ տիպավորված և ստուգված արգումենտներով։ Չկա գործողություն, որը գործարկում է կանչողի փոխանցած ծրագիրը, և նրանց միջև ոչ մի տեղ shell-տող չկա․ այն, ինչ կարելի է ստիպել անել root գործընթացին, վերջավոր է, գրված և ստուգելի։
Ինչ է հոսթինգի հաշիվը
Իրական Linux օգտվող՝ իր տնային պանակով և ֆայլային համակարգի իրավունքներով։ Նրա PHP-ն աշխատում է սեփական լողավազանում սեփական uid-ի տակ, և ֆայլային գործողությունները գնում են նույն uid-ից, երբեք ոչ root-ից։ Վարձակալին պատկանող յուրաքանչյուր աղյուսակ սահմանափակված է հաշվով հենց բազայի մակարդակում, և ուրիշի ռեսուրսի հարցումը պատասխանում է 404, ոչ թե 403 — սխալը երբեք չի հաստատում, որ տողը գոյություն ունի։
Ոչ բրոքերներ, ոչ sidecar-ներ
Ֆոնային աշխատանքը գնում է PostgreSQL-ում պահվող հուսալի հերթերով։ Maran-ի տեղադրումը սերվերին չի ավելացնում ո՛չ հաղորդագրությունների բրոքեր, ո՛չ sidecar, ո՛չ երկրորդ դեմոն։