การเปิดตัวแบบทีละขั้นสำหรับ WordPress Plugin & Theme Developers: หลีกเลี่ยง “Clusterbug Release”
เผยแพร่แล้ว: 2020-12-23คุณจำครั้งสุดท้ายที่คุณเปิดตัวปลั๊กอินหรือธีม WordPress เวอร์ชันใหม่เพื่อค้นหาอย่างรวดเร็วว่าคุณได้เพิ่มจุดบกพร่องหลักใหม่ที่เล็ดลอดผ่านรอยแตกของลำดับการทดสอบของคุณโดยไม่ได้ตั้งใจหรือไม่?
Yoast SEO 3.0 ทำลายเว็บไซต์จำนวนมากในปี 2015 Elementor 3.0 ทำเช่นเดียวกันในปีนี้ และนี่เป็นเพียงสองตัวอย่างจากหัวหน้าบริษัทที่ยอดเยี่ยมในพื้นที่ของเราที่มีพนักงานมากกว่า 100 คนและเจ้าหน้าที่ QA ที่ทุ่มเท (และไม่ มันไม่เกี่ยวข้องกับเวอร์ชัน 3.0 แต่อาจเป็นสัญญาณที่จะข้ามเวอร์ชันนั้นในซอฟต์แวร์ของคุณ )).
ไม่ว่าคุณจะเป็นนักเขียนโค้ดที่เรียนรู้ด้วยตนเองหรือวิศวกรซอฟต์แวร์ นักพัฒนาอินดี้ หรือเป็นส่วนหนึ่งของร้านปลั๊กอิน/ธีมขนาดใหญ่ เราทุกคนล้วนต้องรับมือกับจุดบกพร่อง เป็นส่วนสำคัญของการพัฒนาซอฟต์แวร์อย่างหลีกเลี่ยงไม่ได้
ไม่ว่าคุณจะใส่ CI/CD/การทดสอบอัตโนมัติแบบใดก็ตาม คุณจะไม่สามารถทดสอบได้ทั้งหมด จำนวนการกำหนดค่าเซิร์ฟเวอร์ (PHP, MySql, แคช, เว็บเซิร์ฟเวอร์), เวอร์ชัน WP, การผสมผสานของปลั๊กอินและธีม... ไม่มีที่สิ้นสุด
และมันขัดกับสัญชาตญาณ ยิ่งผลิตภัณฑ์ของคุณได้รับความนิยมและมีเสถียรภาพมากขึ้นเท่าใด โอกาสที่การเปิดตัว "Clusterbug" ที่น่าสะพรึงกลัวก็จะยิ่งสูงขึ้น ซึ่งจะทำให้การสนับสนุนของคุณหมดไป อาจส่งผลกระทบอย่างมีนัยสำคัญต่อความไว้วางใจและความภักดีของลูกค้า และอาจเป็นอันตรายต่อชื่อเสียงของแบรนด์โดยรวม
แม้ว่าคุณจะไม่สามารถหลีกเลี่ยงจุดบกพร่องได้ แต่คุณก็สามารถและควรลดความเสี่ยงได้มากที่สุด
หากคุณมีสมาร์ทโฟน คุณอาจสังเกตเห็นว่าเพื่อนของคุณบางคนได้รับการอัปเดต Android/iOS เป็นเวลาหลายวัน หลายสัปดาห์ หรือหลายเดือนก่อนที่จะได้รับ นั่นไม่ใช่เรื่องบังเอิญ และไม่ ไม่ใช่เรื่องส่วนตัวสำหรับคุณ เป็นกระบวนการปรับใช้แบบก้าวหน้าโดยตั้งใจที่เรียกว่า Staged Rollouts ซึ่งช่วยให้บริษัทต่างๆ เช่น Apple จัดส่งการอัปเดตซอฟต์แวร์ที่สำคัญไปยังอุปกรณ์กว่าพันล้านเครื่อง
ใช่พันล้าน!
คุณสามารถเข้าใจถึงจำนวนความรับผิดชอบที่ Apple จะต้องรับผิดชอบหากพวกเขาต้องอัปเดตสดไปยังอุปกรณ์พกพา 1.5 พันล้านเครื่องพร้อมกันหรือไม่ ฉันไม่สามารถ ฉันพนันได้เลยว่าไม่มีผู้ชายที่มีสติตกลงที่จะแบกรับความรับผิดชอบดังกล่าว
กลไกการเปิดตัวแบบทีละขั้นทำงานอย่างไร คุณจะนำไปปฏิบัติได้อย่างไร? และ WordPress.org รออะไรอยู่? นี่คือหัวข้อที่ฉันจะกล่าวถึงด้านล่าง
การเปิดตัวแบบทีละขั้นสำหรับปลั๊กอินและธีมของ WordPress คืออะไร
การเปิดตัวแบบทีละขั้นทำให้คุณสามารถระบุจำนวน (หรือเปอร์เซ็นต์) ของเว็บไซต์ที่คุณต้องการเปิดตัวเวอร์ชันใหม่ กลไกการเปิดตัวแบบทีละขั้นทำให้คุณสามารถเริ่มรอบการเผยแพร่โดยมีการเปิดรับที่จำกัด จากนั้นจึงเพิ่มทีละขั้นในขณะที่คุณติดตามการสนับสนุนและข้อเสนอแนะ ซึ่งจะสร้างความมั่นใจในการเปิดตัวของคุณให้กับคุณและผู้ใช้ของคุณ
ประโยชน์ของการเปิดตัวแบบทีละขั้นคืออะไร
แทนที่จะเสี่ยงกับฐานการติดตั้งทั้งหมดของคุณด้วยการปล่อยจุดบกพร่องที่อาจเกิดขึ้น ความขัดแย้งกับปลั๊กอิน/ธีมของบุคคลที่สาม หรือแม้แต่ปัญหา UI/UX คุณสามารถเผยแพร่เวอร์ชันต่างๆ ไปเรื่อย ๆ เพื่อลดจำนวนผู้คนและเว็บไซต์ที่จะเผชิญกับปัญหาที่ไม่คาดคิด เมื่อคุณแก้ไขปัญหาและจุดบกพร่องทั้งหมดที่ค้นพบระหว่างกระบวนการเปิดตัวแล้ว ผู้ใช้ส่วนใหญ่ของคุณก็จะพบกับเวอร์ชันที่ "สมบูรณ์" และเสถียรกว่ามาก
เราใช้การอัปเดตแบบต่อเนื่องเพื่อให้มั่นใจในคุณภาพของการเปิดตัวใหม่ของเรา หากมีปัญหากับรุ่นใหม่ เราสามารถระบุได้อย่างรวดเร็ว และมีเพียงผู้ใช้บางส่วนเท่านั้นที่จะได้รับผลกระทบ
John Turner ผู้ก่อตั้ง SeedProd
การใช้ Staged Rollouts เป็นแนวทางปฏิบัติที่ดีที่สุดสำหรับการเผยแพร่ซอฟต์แวร์อย่างมีความรับผิดชอบ ซึ่งเป็นกระบวนการที่หลายบริษัท (โดยไม่คำนึงถึงขนาด) นอกกรอบ WP ปฏิบัติตาม
มีโอกาสใหญ่สำหรับชุมชน WordPress ที่จะใช้ประโยชน์จาก Staged Rollouts ซึ่งฉันจะพูดถึงในอีกสักครู่
โปรแกรมเบต้าคล้ายกับการเปิดตัวแบบทีละขั้นหรือไม่
การตั้งค่าโปรแกรมเบต้าสำหรับผลิตภัณฑ์ WordPress ของคุณเป็นจุดเริ่มต้นที่ดี แต่ก็ยังห่างไกลจากประสิทธิภาพเท่ากับการเปิดตัวแบบทีละขั้น และมีจุดประสงค์และไดนามิกที่แตกต่างกันโดยพื้นฐาน
เว้นแต่ว่าปลั๊กอินหรือธีมของคุณเป็นที่นิยมอย่างมากและมีชุมชนขนาดใหญ่ การรับสมัครกลุ่มเบต้าที่มีสถิติเพียงพอนั้นค่อนข้างท้าทาย เนื่องจากมีผู้ใช้เพียงส่วนน้อยเท่านั้นที่จะสนใจเข้าร่วม แม้ว่าคุณจะเป็นเลิศในการสรรหากลุ่มผู้ทดสอบเบต้าที่เหมาะสม คุณต้องพึ่งพาความพร้อมใช้งานและความปรารถนาดีของพวกเขาในการทดสอบผลิตภัณฑ์ จากนั้นหวังว่าพวกเขาจะพยายามเป็นพิเศษในการรายงานปัญหาที่พบ
คุณคิดว่าจะมีกี่คนที่เห็นกระบวนการทั้งหมดนี้? ไม่มาก.
การทดสอบเบต้าเป็นกระบวนการก่อนการผลิตซึ่งความพยายามในการสนับสนุนของคุณได้รับการควบคุมอย่างเต็มที่ และผู้ทดสอบคาดว่าจะมีปัญหากับรุ่นเบต้า ดังนั้น ความคาดหวังของผู้ทดสอบเกี่ยวกับคุณภาพไม่ได้แสดงถึงความรู้สึกทั่วไปของฐานผู้ใช้ของคุณ
นอกจากนี้ โปรแกรมเบต้าที่รับผิดชอบจะเตือนผู้ทดสอบเพื่อหลีกเลี่ยงการใช้เวอร์ชันเบต้าในสภาพแวดล้อมที่ใช้งานจริง ดังนั้นการทดสอบเบต้าจึงไม่ได้จำลองเว็บไซต์ที่ใช้งานจริงจริง
วิธีจัดการการเปิดตัวแบบทีละขั้นสำหรับปลั๊กอินหรือธีม WordPress ของคุณ
จากการวิจัยของฉันเกี่ยวกับ Staged Rollouts ฉันมีโอกาสได้พบกับ Amir Helzer ทางอิเล็กทรอนิกส์และเรียนรู้จากประสบการณ์กว่า 2 ปีของพวกเขาในการใช้ Staged Rollouts กับ WPML และ Toolset ปลั๊กอินที่ทำงานบนเว็บไซต์ WordPress มากกว่า 1,000,000 แห่ง
นี่คือสิ่งที่ Amir แชร์เกี่ยวกับการนำ Staged Rollouts ไปใช้:
เมื่อเว็บไซต์ติดตั้งปลั๊กอินใดๆ ของเรา เราจะสุ่มตัวเลขระหว่าง 1 ถึง 100 และจัดเก็บไว้ในฐานข้อมูลของเว็บไซต์เพื่อให้จำ วิธีนี้จะแบ่งเว็บไซต์ออกเป็น 100 ถังขยะแบบสุ่ม
เมื่อการเปิดตัวพร้อมที่จะเผยแพร่ จะสามารถใช้ได้กับถังขยะที่เลือกเพียงรายการเดียวเท่านั้น ทุกวันเราเพิ่มการเปิดเผยของเว็บไซต์เพิ่มเติม 5% ในถังขยะที่กำหนด และแก้ไขและแก้ไขปัญหาที่กำลังจะเกิดขึ้น
เพื่อกระจายสภาพแวดล้อมโดยใช้เวอร์ชันที่อัปเดตและหลีกเลี่ยงการมี "เหยื่อ" รุ่นแรก ๆ ซ้ำ ๆ Amir ยืนยันว่าการเปิดตัวใหม่ทุกครั้งไปที่ถังขยะของผู้ใช้ที่แตกต่างกันก่อน
แนวทางนี้ยังหมายความว่ารอบการเผยแพร่โดยเฉลี่ยจะใช้เวลาประมาณหนึ่งเดือนสำหรับผู้ใช้ทุกคน
ต้องใช้เวลาจนกว่าผู้คนจะเห็นการเปิดตัวใหม่ใน WP Admin และอัปเดตเวอร์ชันของพวกเขา และแม้หลังจากดำเนินการแล้ว อาจต้องใช้เวลาหลายวันกว่าพวกเขาจะพบปัญหา
ด้วยขนาดผู้ชมของเรา การเปิดตัวทุกครั้งมีปัญหาบางอย่างอย่างหลีกเลี่ยงไม่ได้ เป้าหมายหลักของเราคือเพื่อให้แน่ใจว่าเราหลีกเลี่ยงการแนะนำปัญหาใหม่ และหากเป็นเช่นนั้น เราก็มีกระบวนการที่เชื่อถือได้ในการแก้ปัญหา
วงจรการวางจำหน่ายนั้นยาวนานจริงๆ แต่ถึงแม้ในสถานการณ์กรณีเลวร้ายที่สุด มีข้อบกพร่องบางอย่างที่เราพลาดในการทดสอบไป ผู้ใช้ของเรา 95% ไม่ได้รับรู้ถึงละครทั้งหมดด้วยซ้ำ เนื่องจากพวกเขาไม่ได้เปิดเผยต่อการเปิดตัว จนกว่าจะมีเสถียรภาพ
Amir ยังเน้นย้ำถึงความสำคัญของการซิงค์กับทั้งทีมก่อนเผยแพร่ โดยเฉพาะอย่างยิ่งการสนับสนุนลูกค้าและการพัฒนา ด้วยวิธีนี้ สมาชิกในทีมสามารถให้ความสำคัญเป็นพิเศษกับตั๋วที่ถูกทริกเกอร์เนื่องจากปัญหาที่เกี่ยวข้องกับการเปิดตัวอย่างต่อเนื่อง โดยมีเป้าหมายในการตรวจสอบ ยืนยัน และแก้ไขปัญหาที่ถูกต้องและเผยแพร่แพตช์โดยเร็วที่สุด
เรามีระดับการสนับสนุนสามระดับในทีมของเรา ระดับที่ 1 จะตรวจสอบปัญหา ตรวจสอบว่าจริง ๆ แล้วเป็นปัญหาที่เกี่ยวข้องกับการเปิดตัวปลั๊กอินโดยทำซ้ำ เมื่อเคสดูเกี่ยวข้องกับรีลีสใหม่ มันจะไปที่ระดับ 2 ซึ่งจะดีบักปัญหาเพื่อตรวจสอบว่าเกี่ยวข้องกับรีลีสจริง ๆ และค้นหาส่วนที่เกี่ยวข้องในโค้ดที่ทำให้เกิดปัญหา หากได้รับการตรวจสอบแล้ว นักพัฒนาที่รับผิดชอบโค้ดนั้นจะได้รับแจ้งทันทีเพื่อจัดลำดับความสำคัญของการแก้ไข
OnTheGoSystems เป็นบริษัทขนาดใหญ่ที่มีพนักงานเกือบ 100 คน ดังนั้นจึงสมเหตุสมผลที่พวกเขาทำให้กระบวนการเปิดตัวแบบทีละขั้นสมบูรณ์แบบ แต่ถึงแม้ในฐานะนักพัฒนาผลิตภัณฑ์รายเดียวที่มีระดับการสนับสนุนระดับเดียว (คุณและตัวคุณเอง) ข้อมูลเชิงลึกของ Amir สามารถสอนเราได้ว่าการจัดสรรทรัพยากรเฉพาะสำหรับการเผยแพร่เป็นสิ่งสำคัญ แนวปฏิบัติที่ดีในการจัดลำดับความสำคัญของตั๋วสนับสนุนที่ "มีกลิ่น" ที่เกี่ยวข้องกับการเปิดตัวใหม่ของคุณและลดความเสี่ยงจากปัญหาใหม่ให้มากที่สุด
เหตุใดจึงมี (เกือบ) ไม่มีปลั๊กอินหรือธีมที่รองรับการเปิดตัวแบบทีละขั้น
ในการเตรียมตัวสำหรับการเขียนบทความนี้ ฉันพยายามขอให้ชุมชนเห็นว่าใครกำลังใช้การเปิดตัวแบบทีละขั้นเพื่อรับคำติชมเกี่ยวกับประสบการณ์ของพวกเขา สิ่งที่พวกเขาเรียนรู้ ฯลฯ
ไม่น่าแปลกใจเลยที่ฉันพบว่ามีบริษัท WordPress เพียงสองแห่งในเครือข่ายของฉันที่ตั้งค่าการเปิดตัวแบบทีละขั้นซึ่งเป็นส่วนหนึ่งของวงจรการเปิดตัว ผู้พัฒนาหลายคนไม่รู้ด้วยซ้ำว่าแนวคิดนี้เป็นอย่างไร และคนอื่นๆ ก็ไม่ได้ใช้มันเพราะว่าโซลูชันการแจกจ่ายของพวกเขาไม่รองรับ (หรือพวกเขาอาจคิดที่จะพัฒนาและไม่มีเวลา)
นักพัฒนาปลั๊กอินและธีมส่วนใหญ่ที่ไม่ได้ขายผ่าน Freemius จะขายจากเว็บไซต์ของพวกเขาผ่าน EDD หรือ WooCommerce ซึ่งทั้งคู่ไม่รองรับ Staged Rollouts ผู้ที่ขายผ่านตลาดกลางเช่น CodeCanyon และ ThemeForest ยังไม่มีโซลูชันที่พร้อมใช้งานทันที และส่วนใหญ่มักจะไม่มี
แม้แต่นักพัฒนาที่ตระหนักถึงแนวคิดนี้ก็ไม่มีทางเลือกอื่นนอกจากต้องพัฒนากลไกของตนเองเพื่อรองรับการเปิดตัวแบบทีละขั้น การพัฒนาโครงสร้างพื้นฐานนี้โดยปกติเป็นเรื่องยากมากที่จะจัดลำดับความสำคัญภายในบริษัทผลิตภัณฑ์
สมัครสมาชิกและรับสำเนาของเราฟรี
หนังสือธุรกิจปลั๊กอิน WordPress
วิธีสร้างธุรกิจปลั๊กอิน WordPress ที่เจริญรุ่งเรืองในระบบเศรษฐกิจการสมัครสมาชิก
แบ่งปันกับเพื่อน
ป้อนที่อยู่อีเมลของเพื่อนของคุณ เราจะส่งอีเมลให้เฉพาะหนังสือเล่มนี้ เพื่อเป็นเกียรติแก่หน่วยลาดตระเวน
ขอบคุณสำหรับการแชร์
ยอดเยี่ยม - เพิ่งส่งสำเนา 'The WordPress Plugin Business Book' ไปที่ . ต้องการช่วยให้เรากระจายข่าวมากยิ่งขึ้นหรือไม่? ไปต่อ แบ่งปันหนังสือกับเพื่อนและเพื่อนร่วมงานของคุณ
ขอบคุณสำหรับการสมัคร!
- เราเพิ่งส่งสำเนา 'The WordPress Plugin Business Book' ของคุณไปที่ .
อีกครั้งมีการพิมพ์ผิดในอีเมลของคุณ? คลิกที่นี่เพื่อแก้ไขที่อยู่อีเมลและส่งอีกครั้ง
การเปิดตัวแบบทีละขั้นทำให้คุณได้เปรียบในเชิงพาณิชย์อย่างไร
เนื่องจากแทบจะไม่มีใครใช้ประโยชน์จาก Staged Rollouts ในขณะนี้ หากคุณเริ่มใช้ Staged Rollouts และทำการตลาดบนเว็บไซต์ของคุณอย่างเหมาะสม เพื่อให้ผู้เยี่ยมชมทราบว่าคุณมีรอบการเผยแพร่อย่างมีความรับผิดชอบ จะทำให้คุณได้เปรียบในการแข่งขันและเพิ่มความไว้วางใจในผลิตภัณฑ์ของคุณ /ยี่ห้อ!
หากคุณวิเคราะห์ตลาดจากมุมมองของนักพัฒนา คุณจะสังเกตเห็นว่านักพัฒนาซอฟต์แวร์จำนวนมากติดตามคู่แข่งอย่างใกล้ชิด และมักจะกำหนดราคาให้อยู่ในช่วงราคาของตลาดในแนวดิ่ง ซึ่งนำไปสู่ผลิตภัณฑ์ WordPress ที่แข่งขันกันซึ่งนำเสนอคุณสมบัติที่คล้ายคลึงกันในช่วงราคาเดียวกัน
จากมุมมองของผู้ซื้อ นั่นหมายความว่าบ่อยครั้งที่ผลิตภัณฑ์ที่จะซื้อเนื่องจากมีคุณสมบัติและราคาที่เทียบเคียงกันได้ แต่เมื่อคุณประเมินปลั๊กอินหลายตัวที่มีราคาเท่ากัน และให้หรือรับ มีคุณสมบัติเหมือนกัน คุณจะไม่อยากลองใช้ผลิตภัณฑ์ที่นำเสนอ Staged Rollouts บ้างหรือเพราะรู้ว่ารุ่นที่ใช้งานจริงควรมีเสถียรภาพมากกว่าคู่แข่ง
การเปิดตัวแบบทีละขั้นช่วยเพิ่มความมั่นใจในผลิตภัณฑ์และธุรกิจของคุณ เป็นข้อได้เปรียบที่คุณสามารถใช้ประโยชน์ได้ก่อนที่ Staged Rollouts จะกลายเป็นแนวทางปฏิบัติมาตรฐาน (ซึ่งฉันหวังว่าพวกเขาจะทำได้จริงๆ)
Freemius รองรับการเปิดตัวแบบทีละขั้นสำหรับปลั๊กอินและธีมที่ต้องชำระเงิน
เรารู้สึกตื่นเต้นที่จะเป็นผู้บุกเบิก Staged Rollouts ในปลั๊กอิน WordPress ระดับพรีเมียมและระบบนิเวศของธีม พันธมิตรการขายของเราสามารถเผยแพร่การอัปเดตได้อย่างปลอดภัย มั่นใจ และเชื่อถือได้ โดยไม่มีการย้อนกลับไปยังผู้ใช้หรือทรัพยากรการสนับสนุน/การพัฒนา
เราทราบดีว่าการเปิดตัวครั้งสำคัญที่ท้าทายและน่าวิตกเพียงใด โดยเฉพาะอย่างยิ่งเนื่องจากมีความเสี่ยงที่อาจส่งผลเสียต่อแบรนด์ของคุณหลังจากการเปิดตัว “Clusterbug” อยู่เสมอ
ด้วยการเปิดตัวแบบทีละขั้น จึงมีเครือข่ายความปลอดภัยสำหรับความยั่งยืนและความสามารถในการปกป้องแบรนด์ของพันธมิตรของเรา และบรรเทาความเครียดที่ไม่จำเป็นที่เกี่ยวข้องกับการเผยแพร่สู่ฐานผู้ใช้ขนาดใหญ่
การดำเนินการนี้จะเป็นประโยชน์ต่อลูกค้าของพันธมิตรของเรา เมื่อผู้ใช้ซื้อผลิตภัณฑ์ที่ขายผ่าน Freemius พวกเขาสามารถมั่นใจได้ว่าพวกเขากำลังเลือกใช้โซลูชันที่ขับเคลื่อนโดย Staged Rollouts และพวกเขาสามารถคาดหวังรุ่นที่มีความเสถียรมากขึ้นจากปลั๊กอินและธีมระดับพรีเมียมที่ใช้กลไกนี้
หากคุณกำลังขายกับ Freemius ต่อไปนี้คือวิธีใช้กลไกการเปิดตัวแบบทีละขั้นอย่างเหมาะสม
Freemius ดำเนินการเปิดตัวแบบทีละขั้นอย่างไร
ทุกเว็บไซต์ที่เปิดใช้งานใบอนุญาตเพื่อปลดล็อกปลั๊กอินหรือธีมระดับพรีเมียมจะได้รับบันทึกในฐานข้อมูลของเรา สิ่งแรกที่เราทำคือการแนะนำคุณสมบัติ last_served_update_version
ใหม่ เพื่อจัดเก็บเวอร์ชันผลิตภัณฑ์ล่าสุดที่เผยแพร่บนเว็บไซต์
จากนั้น เราปรับปรุงตารางที่รับผิดชอบในการจัดเก็บข้อมูลการเปิดตัวด้วยคุณสมบัติใหม่สองประการ: limit
, uniques
กัน
เมื่อนักพัฒนาตั้งค่าสถานะเวอร์ชันที่เผยแพร่ พวกเขาจะได้รับพร้อมท์ด้วยกล่องโต้ตอบต่อไปนี้ ซึ่งช่วยให้พวกเขาสามารถตั้งค่าเปอร์เซ็นต์ (หรือจำนวน) ของเว็บไซต์ที่มีใบอนุญาตที่ใช้งานอยู่ซึ่งพวกเขาต้องการเปิดตัวเวอร์ชันที่ต้องชำระเงินไปที่:
หากกำหนดการเปิดตัวแบบจำกัด ระบบจะนับจำนวนเว็บไซต์ที่ใช้งานทั้งหมดที่มีใบอนุญาตที่ใช้งานอยู่ จากนั้นตั้งค่าคุณสมบัติการ limit
ใหม่ของรุ่นตามลำดับ
สุดท้าย เราได้อัปเดตจุดปลาย API ที่เว็บไซต์เรียกเพื่อตรวจสอบว่ามีรุ่นใหม่หรือไม่ และแนะนำตรรกะต่อไปนี้ (ในโค้ดหลอก):
latest_version = load latest version of product X If (website is on latest_version) return “no new version” If (last_served_update_version of website same as latest_version) return “no new version” If (latest_version is limited) If (latest_version is limited AND uniques >= limit) return “no new version” previous_version = load the previous version of product X If (previous_version is limited too AND uniques <= previous_version.uniques) If (website not using previous_version AND last_served_update_version different from previous_version) return “no new version” else If (random({true, false}) ) return “no new version” Set last_served_update_version of website to latest_version Increment uniques by 1 return latest_version
อัลกอริทึมนี้ช่วยให้แน่ใจว่า:
- การเปิดรับการเผยแพร่จะถูกจำกัดตามเปอร์เซ็นต์ที่กำหนดของการเปิดตัว
- หากเวอร์ชันก่อนหน้ายังคงอยู่ในขั้น กล่าวคือ ไม่เคยเปิดเผยต่อฐานการติดตั้งทั้งหมด เว็บไซต์ที่ได้รับเวอร์ชันที่จัดฉากก่อนหน้านี้จะเปิดเผยเวอร์ชันแบบทีละขั้นล่าสุดก่อน
ไม่เหมือนกับสถาปัตยกรรม Staged Rollouts ของ WPML ที่รับรองว่าแต่ละรุ่นจะไปยังชุดย่อยที่แตกต่างกันของฐานการติดตั้งโดยใช้ถังแบบลอจิคัล การใช้งานของเราอาศัยการสุ่ม ดังนั้น เว็บไซต์อาจได้รับการเผยแพร่ขั้นต้นสองครั้งในสองรอบการเผยแพร่ติดต่อกัน อย่างไรก็ตาม ประโยชน์ของแนวทางนี้คือ เราสามารถจัดส่ง Staged Rollouts ให้กับลูกค้าของพันธมิตรทั้งหมดของเราโดยไม่ต้องพุชการอัปเดต SDK ซึ่งอาจใช้เวลาหลายเดือนหรือหลายปีในการเผยแพร่ให้กับลูกค้าทั้งหมด
เหตุใดการเปิดตัวแบบทีละขั้นจึงจำเป็นสำหรับอนาคตของ WordPress
เมื่อฉันถาม Amir ว่าอะไรเป็นตัวกระตุ้นให้พวกเขาพัฒนา Staged Rollouts สำหรับรอบการเผยแพร่ WPML นี่คือสิ่งที่เขาบอกฉัน:
3 ปีที่แล้ว ที่ WordCamp Europe ฉันใช้เวลาพูดคุยกับลูกค้า WPML เพื่อรวบรวมคำติชมทุกประเภทเกี่ยวกับประสบการณ์โดยรวมของพวกเขา ความผิดหวังอันดับ 1 ที่ฉันพบคือลูกค้าของเรากลัวที่จะอัปเดตปลั๊กอิน เนื่องจากอาจทำให้ไซต์ของพวกเขาเสียหายโดยไม่คาดคิด
อาเมียร์ เฮลเซอร์,
ผู้ก่อตั้ง OnTheGoSystems (WPML, ชุดเครื่องมือ)
ฉันเกี่ยวข้องกับสิ่งนั้นอย่างแน่นอน
นโยบายภายในของเราที่ Freemius เมื่อพูดถึงการอัปเดตปลั๊กอินและธีมคือ... อย่าเลย! โดยมีข้อยกเว้นสองประการ: หากมีปัญหาด้านความปลอดภัยที่ทราบหรือมีคุณลักษณะที่มีอยู่ในเวอร์ชันใหม่กว่าที่เราต้องการสำหรับไซต์ของเรา
นโยบายการอัปเดตของเรา "เขียนด้วยเลือด" หลังจากเกิดเหตุการณ์การอัปเดตที่ผิดพลาดหลายครั้ง และทำให้ปวดหัวและเสียเวลาโดยไม่คาดคิด ซึ่งขัดจังหวะการทำงานและไทม์ไลน์ของเรา และใช่ เราสามารถหลีกเลี่ยงความเครียดบางอย่างด้วยสภาพแวดล้อมการแสดงละครได้ แต่สิ่งนี้จะไม่ช่วยเราประหยัดเวลาและความยุ่งยากหากเรายังต้องการติดตามการอัปเดตเป็นการผลิต
WordPress มีการพัฒนาไปเล็กน้อยตั้งแต่นั้นมา และตอนนี้เรามีการปิดใช้งานอัตโนมัติเมื่อปลั๊กอินล้มเหลว อย่างไรก็ตาม สิ่งนั้นใช้ไม่ได้กับธีมและการปิดใช้งานปลั๊กอินที่มีความสำคัญต่อภารกิจสำหรับเว็บไซต์ของเรายังคงเป็นปัญหาใหญ่
สิ่งสำคัญที่สุดคือหากฉันในฐานะนักพัฒนาปลั๊กอินและซีอีโอของบริษัทที่ช่วยนักพัฒนาปลั๊กอินและธีมหลายพันรายให้เติบโตธุรกิจของพวกเขา ฉันกังวลเกี่ยวกับการทำลายไซต์ของเราทุกครั้งที่เราอัปเดตปลั๊กอินหรือธีมบนไซต์ของเรา นั่นย่อมหมายความว่าอย่างแน่นอน ผู้ใช้ส่วนใหญ่ไม่มั่นใจในการอัปเดตซอฟต์แวร์ในพื้นที่ของเรา
การขาดการเปิดตัวแบบทีละขั้นทำให้เราและระบบนิเวศ WP ทั้งหมดกลับมา และช่วยให้โซลูชันการแข่งขันที่ใช้ SaaS มีความได้เปรียบอย่างมาก ผู้ใช้ WiX และ Shopify ไม่จำเป็นต้องคิดถึงการอัปเดตเลย! การอัปเดตจะเกิดขึ้นในเบื้องหลัง และซอฟต์แวร์อัปเดตอยู่เสมอ ความปลอดภัยและคุณลักษณะที่ชาญฉลาด
การขาดการเปิดตัวแบบทีละขั้นช่วยยึดระบบนิเวศ WP ทั้งหมดกลับคืนมา และช่วยให้โซลูชันที่ใช้ SaaS ได้เปรียบอย่างมาก ผู้ใช้ WiX และ Shopify ไม่จำเป็นต้องคิดถึงการอัปเดตซอฟต์แวร์ – จะเกิดขึ้นในเบื้องหลังเท่านั้นTweet
หากคุณดู State of the Word เมื่อสัปดาห์ที่แล้ว Matt Mullenweg ผู้ร่วมก่อตั้ง WordPress จะเห็นถึงความสำคัญของซอฟต์แวร์ที่อัปเดตอย่างชัดเจน นี่คือวิสัยทัศน์ของ Matt สำหรับการอัปเดต WP:
… ให้คุณเลือกรับการอัปเดตอัตโนมัติสำหรับ Core นี่เป็นก้าวแรกสู่เป้าหมายของเรา โดยให้ WordPress ของคุณรักษาตัวเองโดยพื้นฐานแล้ว เมื่อคุณสามารถตั้งค่าและลืมมันได้ และมันจะได้รับการอัปเดตอัตโนมัติในเบื้องหลังและปลั๊กอิน ธีม และแกนหลักทั้งหมดของคุณ ทวีต
วิธีเดียวที่ฉันสามารถจินตนาการได้ว่า WordPress กลายเป็น "ชุดและลืม" คือถ้าการอัปเดตซอฟต์แวร์สามารถเชื่อถือได้และเชื่อถือได้มากขึ้น และสามารถเกิดขึ้นได้เฉพาะกับ Staged Rollouts เท่านั้น
WordPress.org: นี่คือวิธีที่คุณสามารถแนะนำ Staged Rollouts สำหรับ Plugin and Theme Repository
เช่นเดียวกับการใช้งานของเรา จำเป็นต้องเพิ่มตัวเลือกเมตาใหม่สองตัวเลือกในทุกปลั๊กอินและการเปิดตัวธีมในฐานข้อมูล WordPress.org: limit
และ uniques
การแก้ไขตัวเลือก meta limit
สามารถเปิดเผยในมุมมองขั้นสูงสำหรับเจ้าของที่บันทึกไว้ (และอาจสำหรับผู้คอมมิตอื่น ๆ ):
นักพัฒนาซอฟต์แวร์จะมีวิธีการควบคุมการเปิดเผยของทุกรุ่น ตลอดจนความสามารถในการกำหนดขีดจำกัดสำหรับรุ่นถัดไป
เนื่องจาก WordPress.org ไม่ได้จัดเก็บข้อมูลที่มีโครงสร้างสำหรับทุกเว็บไซต์ที่ได้รับการอัปเดตจาก WordPress.org แทนที่จะจัดเก็บข้อมูลเวอร์ชันล่าสุดที่เว็บไซต์ "เห็น" ในฐานข้อมูล WordPress.org จึงสามารถมอบหมายการจัดเก็บข้อมูลไปยังเว็บไซต์ได้ . ซึ่งหมายความว่า 'update_plugins'
ชั่วคราวและข้อมูลที่ส่งไปยัง WordPress.org API เมื่อตรวจสอบการอัปเดตจะต้องได้รับการเสริมด้วย last_served_update_version
สุดท้าย WordPress.org อัปเดตตำแหน่งข้อมูล API สามารถเสริมด้วยตรรกะเดียวกับที่เราใช้สำหรับการติดตั้ง Freemius Staged Rollouts แทนที่จะอาศัย last_served_update_version
จากฐานข้อมูล wp.org กลไกจะขึ้นอยู่กับค่าที่ส่งจากเว็บไซต์ตามคอร์
ง่าย ๆ สบาย ๆ ไม่?
มาดึงความมั่นใจของผู้ใช้กลับคืนมาเพื่อกดปุ่มอัปเดต
เราทุกคนต้องการเห็น WordPress ประสบความสำเร็จและเติบโตอย่างยิ่งใหญ่และดีขึ้นอย่างต่อเนื่อง!
ด้วยทรัพยากรจำนวนมากที่เข้าสู่ Gutenberg เป็นที่ชัดเจนว่าผู้นำของ WordPress ยอมรับว่าเราต้องทำให้แพลตฟอร์มสามารถเข้าถึงได้มากขึ้นสำหรับ Joe ที่ไม่ใช้เทคโนโลยีโดยเฉลี่ย ประเด็นก็คือ ตราบใดที่การอัปเดตซอฟต์แวร์ไม่สามารถเชื่อถือได้ แม้แต่ Gutenberg และเครื่องมือสร้างเพจที่น่าทึ่งทั้งหมดที่เรามี บุคคลที่ไม่มีเทคโนโลยีก็จะหนีไปที่ Wix ในการอัปเดตครั้งแรกที่มีปัญหา และผมไม่สามารถตำหนิได้ พวกเขา.
ฉันกำลังโทรหาผู้ก่อตั้ง EDD, Pippin Williamson, WooCommerce CEO, Paul Maiorana และทีม WordPress.org: เรามีโอกาสที่จะทำให้ปลั๊กอินและระบบนิเวศของธีมมีเสถียรภาพมากขึ้นสำหรับชุมชน WordPress ที่ยิ่งใหญ่กว่า ให้ผู้ใช้รักษาซอฟต์แวร์ของตนให้ปลอดภัยและเป็นปัจจุบันโดยไม่ต้องกลัวและหงุดหงิดน้อยลง แม้ว่าจะดูไม่มีความสำคัญสูงในระยะสั้น แต่ฉันแน่ใจว่าเราทุกคนจะได้รับประโยชน์จากสิ่งนี้ในระยะยาว