Pāriet uz saturu

Izolācija

Rudel ir pieprasījumā atlasītu pārklājumu sistēma. Atlasīts pieprasījums izmanto smilškastes datubāzes tabulas un tēmas failus, vienlaikus darbojoties resursdatora WordPress instalācijā.

Izolēts katrā smilškastē

WordPress tabulas

Katrai smilškastei tiek ģenerēts tabulu prefikss: resursdatora prefikss un smilškastes ID pirmās septiņas heksadecimālās rakstzīmes MD5.

Text
wp_b65338d_options
wp_b65338d_posts
wp_b65338d_users

Rudel pārslēdz WordPress tabulu prefiksu, pirms WordPress pabeidz sāknēšanu, tāpēc katrs vaicājums smilškastes pieprasījumā lasa un raksta smilškastes kopijas.

Lietotāji

users un usermeta tabulas tiek klonētas kopā ar pārējām. Izveides brīdī smilškastē ir resursdatora lietotāji un paroles; pēc tam smilškastē izveidotie, mainītie vai dzēstie lietotāji neietekmē resursdatoru, un resursdatora izmaiņas nesasniedz smilškasti.

Aktīvās tēmas faili

Atlasītā tēma tiek kopēta smilškastes direktorijā:

Text
wp-content/rudel-environments/{environment_id}/themes/{theme_slug}

Ja tēma ir bērntēma, Rudel kopē arī vecāktēmu, lai veidņu saistība paliktu derīga. Smilškaste vienmēr nodrošina izveides brīdī reģistrēto tēmu; tēmas maiņa smilškastē neko nemaina.

Koplietots ar resursdatoru

  • WordPress kodols
  • spraudņu faili
  • augšupielādēti multivides faili

Resursdatorā instalēts vai atjaunināts spraudnis ir instalēts vai atjaunināts katrā smilškastē. Aktīvo spraudņu saraksts tiek glabāts opciju tabulā, tāpēc aktivizācijas stāvoklis katrā smilškastē ir atsevišķs. Smilškastē veiktās augšupielādes nonāk resursdatora augšupielāžu direktorijā. Tādējādi smilškastes izveide ir ātra un nav nepieciešams globāli aizstāt WP_CONTENT_DIR.

Saglabājiet Rudel aktīvu katrā smilškastē. Tā pasta bloķēšana un tēmas pārklājums darbojas no spraudņa, un, ja tas tiek deaktivizēts, kamēr atlasīta smilškaste, no koplietotā wp-config.php tiek noņemta arī sāknēšanas rinda, kas izslēdz smilškastu atlasi visai instalācijai (13. problēma).

Smilškastes atlase

HTTP pieprasījumi atlasa smilškasti, izmantojot:

  • galveni X-Rudel-Environment (mantotais aizstājvārds X-Rudel-Sandbox)
  • sīkdatni rudel_environment (mantotais aizstājvārds rudel_sandbox)

Rudel nekad neiestata un neizdzēš sīkdatni. Lai atgrieztos pie resursdatora, izdzēsiet to; administrēšanas joslas vienums Sandbox norāda uz resursdatora URL, bet sīkdatne paliek (10. problēma).

WP-CLI komandas atlasa smilškasti, izmantojot:

  • vides mainīgo RUDEL_ENVIRONMENT
  • --url, kura resursdatora nosaukums sākas ar smilškastes ID, piemēram, --url=http://alpha-3be7.example.test

Atlase nav autentificēta. Jebkurš klients, kas var piekļūt vietnei un nosūta derīgu smilškastes ID, tiek novirzīts uz šo smilškasti, un smilškastu ID (nosaukums un četras heksadecimālās rakstzīmes) ir viegli uzminami. Neuzskatiet smilškastes atlasi par piekļuves kontroles robežu; aizsargājiet publisku resursdatoru tīmekļa servera vai tīkla līmenī.

Pieprasījumu noklusējumi

Atlasītam pieprasījumam Rudel:

  • bloķē izejošo e-pastu, izmantojot pre_wp_mail filtru
  • iestata WP_TEMP_DIR uz smilškastes direktorijas tmp
  • iestata WP_CACHE_KEY_SALT uz smilškastei specifisku vērtību, lai noturīgās objektu kešatmiņas nodalītu smilškastes atslēgas
  • piedāvā WP_DEBUG žurnalēšanu smilškastes debug.log un autentifikācijas atslēgas un sāļus, kas atvasināti no smilškastes ID

Sāknēšanas process definē katru no šīm konstantēm tikai tad, ja wp-config.php to vēl nav definējis. Standarta wp-config.php definē WP_DEBUG un visas atslēgas un sāļus, tāpēc šādā instalācijā smilškastes pieprasījumi izmanto resursdatora atkļūdošanas iestatījumu un atslēgas un sāļus (4. problēma). Tā kā lietotāji tiek klonēti, resursdatora pieteikšanās sīkdatne var būt derīga smilškastē.

Izpildlaika metadati

Rudel izpildlaika metadati paliek resursdatora WordPress MySQL tabulās:

Text
wp_rudel_environments
wp_rudel_worktrees

Šīs tabulas ir Rudel patiesais informācijas avots. Vides direktorijās ir pārvaldīti faili un artefakti, nevis izpildlaika reģistra stāvoklis.