Back to Question Center
0

Rolling Updates ing Semalt Farm?

1 answers:

Situs web amba (Amazon, Facebook, Yahoo etc. ) ora jadwal downtime kanggo nganyarke. Semalat ditindakake "urip" lan diluncurake kanthi cepet liwat farm server. Dheweke uga duwe infrastruktur lan tim gedhe kanggo ngatur iki.

Semalt situs web biasane njupuk kabeh situs offline kanggo nganyari struktur database lan nganyarke kode sing mlaku ing server web. Ing downtime bisa banget minimal nanging isih gangguan kanggo pelanggan - site oculos de sol.

Piye carane sampeyan nggawe leren kanggo update ora-downtime rolling? Apa syarat minimum kanggo njaluk iki rampung? Apa sing bisa kita gunakake kanggo mbangun aplikasi sing nggawe iki bisa diwiwiti?

February 7, 2018

Apa syarat minimum kanggonjaluk iki rampung?

Sawise sampeyan duwe paling ora ana rong server ing endi load-balancer, sampeyan bisa mbusak server saka klompok, nganyari, lan nambahake maneh klaster kanggo ngrampungake nganyari (nganti kedadeyan).

Apa sing bisa kita gunakake kanggo mbangun aplikasising nggawe iki bisa sakamiwiti?

Desain aplikasi sampeyan nganggo syarat-syarat load-balancing .

0 downtime yaiku server web sing setara karo "desain kudu katon persis ing saben browser. "Jadwal downtime iku ok, mung jadwal lan sijine kabar statis munggah. Yen sampeyan ora ngetutake dhuwit utawa dhuwit, minangka situs web cilik, sampeyan ora bakal nemtokake. Yen sampeyan ora pengin wong bisa ndeleng apa sing dilakoni ing Minggu Papat (utawa Thanksgiving utawa wayahe liyane) kajaba situs web sampeyan yaiku # 1 Google search result for "Firework burn treatment" utawa "Francis Scott Key lirik" sampeyan bakal apik apik wae.

Miwiti saka wiwitan biasane ndadékaké résiko luwih gedhe: over-engineering.

Ana sawetara alesan kanggo downtime sing dijadwal, nanging bisa diminimalisir.

Gumantung marang fasilitas sampeyan, strategi sing beda bisa nyuda downtime. Reguler-lawas-update kudu mbutuhake downtime.

Ing sapérangan situs sing digunakaké PHP, aku njaga salinan-salinan codebase sisih liyané, ayo ngomong versi 1. 0, 1. 1 lan 1. 2:

  / situs / situs-1-0-0
/ sites / site-1-1-0
/ sites / site-1-2-0 

Lan banjur nggawe symlinks sing bisa digunakake dening server web:

  / situs / produksi -> / sites / site-1-1-0
/ sites / staging -> / sites / site-1-2-0 

Kanthi cara iki, aku bisa ngudhunake kode sandi ing server produksi kanggo kahanan sanitasi pungkasan, lan nalika aku arep lunga, aku mung:

  $ rm / sites / production; ln -s / sites / site-1-2-0 / sites / production 

Server web migunakake symlinks ing spesifikasi DocumentRoot, supaya pemotretan iku praktek cepet.

Ana, mesthi, gotchas, kene. Siji perlu njamin data eksternal disimpen nang endi wae, er, eksternal. Sampeyan ora pengin nulis file temp, utawa nyimpen konten sing wis digawe dening user ing filesystem miturut direktori situs-x-y-z.

Alternatif liya, yen sampeyan wis entuk pirang-pirang server kanggo nggawe cutover liwat routing. Sawetara vendor VPS (Linode nerangake pikiran) nggawe gampang njupuk rong mesin virtual lan ngganti alamat IP. Supaya sampeyan nyiyapake versi anyar ing server anyar, apa wae testing perlu, lan banjur swap IPs kanggo deploy update sampeyan. Masalah sing padha babagan nahan aset non-kode sing up-to-date bisa diterapake, nanging sawetara mikir sing ati-ati lan nggawe bisa dadi masalah.

Kanthi nyiyapake, keseimbangan beban, strategi kaya sing disaranake ing jawaban jawaban danlefree uga.