
วันนี้ เราประกาศแอปพลิเคชัน HTTP เวอร์ชันเบต้าแบบปิด ซึ่งเป็นวิธีในการทดสอบและใช้งานการเปลี่ยนแปลงได้อย่างปลอดภัยในการรับส่งข้อมูล HTTP ของคุณ แอปพลิเคชัน HTTP นำเสนอการเปลี่ยนแปลงการกำหนดค่าและความสามารถในการควบคุมว่าเมื่อใดจะเปิดใช้งานการเปลี่ยนแปลงนั้นกับการรับส่งข้อมูล HTTP บนเครือข่ายขอบนอกทั่วโลกของ Cloudflare ลูกค้าองค์กรที่กำลังมองหาการควบคุมที่ดีขึ้นควรติดต่อไปที่ผู้จัดการ Customer Success เพื่อรับการเข้าถึง
ปัญหาที่พบในการจัดการการกำหนดค่า
ตั้งแต่ในช่วงแรกของ Cloudflare การจัดการเว็บไซต์และเว็บแอปพลิเคชันทำผ่านสิ่งที่เราเรียกว่า โซน ซึ่งมาจากแนวคิดของ DNS Zone ในขณะที่โมเดลนี้ดูแลลูกค้ามาอย่างดีเป็นเวลาหลายปี แต่ก็สร้างความยากลำบากในการจัดการการกำหนดค่าขอบนอก กล่าวคือ
- ต้องใช้การดำเนินงานด้วยคนของลูกค้าในการติดตั้งสภาพแวดล้อมการเตรียมการ
- ความเสี่ยงที่การกำหนดค่าอาจเบี่ยงเบนระหว่างสภาพแวดล้อมการผลิตและสภาพแวดล้อมการเตรียมการ
ในการพัฒนาซอฟต์แวร์ คุณต้องทำการทดสอบความเปลี่ยนแปลงในสภาพแวดล้อมที่ปลอดภัยเพื่อตรวจสอบก่อนเข้าสู่ขั้นตอนการผลิตหรือส่งผลกระทบในการรับส่งข้อมูลในขณะนี้ ในวงจรการพัฒนาซอฟต์แวร์ทั่วไป หมายความว่าการนำการเปลี่ยนแปลงไปใช้งานในสภาพแวดล้อมการเตรียมการหรือสภาพแวดล้อมก่อนการผลิตสำหรับการทดสอบและการตรวจสอบ วิธีการส่วนใหญ่ที่ลูกค้าทำบน Cloudflare ทุกวันนี้ คือ การใช้สองโซน ที่แสดงโดยชื่อโฮสต์ของโซนนั้น ตัวอย่างเช่น อันแรกคือสภาพแวดล้อมการเตรียมการที่ชื่อว่า staging.example.com และอีกอันคือสภาพแวดล้อมการผลิตที่ชื่อว่า example.com วิธีนี้แก้ปัญหาหลักได้เพราะให้มีการป้องกันการเปลี่ยนแปลง ข้อผิดพลาดในโซนการเตรียมการจะไม่ส่งผลต่อการรับส่งข้อมูลการผลิต
อย่างไรก็ตาม เพื่อการนำไปใช้ในสภาพแวดล้อมการผลิต เมื่อการเปลี่ยนแปลงได้รับการตรวจสอบเรียบร้อยแล้วในสภาพแวดล้อมการเตรียมการ ลูกค้าต้องคัดลอกการเปลี่ยนแปลงนั้นด้วยตนเอง — หรือสร้างระบบอัตโนมัติฝ่านการใช้งาน ผู้ให้บริการ Terraform ของ Cloudflare สำหรับหลายๆ คน นี่ยังรวมถึงขั้นตอน "การร้องขอการเปลี่ยนแปลง" ด้วยตนเองซึ่งมีตั๋วที่บันทึกข้อมูลที่ต้องทำการเปลี่ยนแปลงไว้ หลังจากนั้น อีกคนหนึ่ง (มักจะเป็นคนละคนกัน) ก็จะมาเอาตั๋วและต้องทำการเปลี่ยนแปลงซ้ำเดิมตามคำแนะนำที่ให้ไว้ ขั้นตอนนี้เป็นขั้นตอนที่อาจเกิดข้อผิดพลาดได้ และข้อผิดพลาดในขั้นตอนนี้อาจทำให้ไฟบริการหยุดชะงัก ทั้งนี้ขึ้นอยู่กับการเปลี่ยนแปลงที่เกี่ยวข้อง ยิ่งไปกว่านั้น ความเบี่ยงเบนระหว่างการกำหนดค่าสภาพแวดล้อมการเตรียมการและสภาพแวดล้อมการผลิตอาจสร้างความซับซ้อนมากยิ่งขึ้นได้
เราต้องการให้ความปลอดดภัยและความไว้วางใจแก่ลูกค้าในการจัดการบริการบน Cloudflare เพื่อเป็นการแก้ปัญหาที่กล่าวไปข้างต้น เราจึงประกาศแอปพลิเคชัน HTTP ควบคู่กับกฎการกำหนดเส้นทาง
แอปพลิเคชัน HTTP
แอปพลิเคชัน HTTP เป็นวิธีการในการจัดการกับการกำหนดค่าบริเวณขอบนอกด้วยกรณีการใช้งาน แทนที่จะใช้ชื่อโฮสต์ แอปพลิเคชัน HTTP แต่ละตัวมีวัตถุประสงค์ของตัวเอง ไม่ว่าจะเป็นการจัดการกับการกำหนดค่าเว็บไซต์การตลาดของคุณหรือแอปพลิเคชันภายใน แอปพลิเคชัน HTTP แต่ละตัวประกอบด้วยเวอร์ชันการกำหนดค่าที่แสดงภาพการตั้งค่าสำหรับการจัดการการรับส่งข้อมูล — กฎของเพจ กฎไฟร์วอลล์ การตั้งค่าแคช และอื่นๆ เวอร์ชันการกำหนดค่าแต่ละเวอร์ชันภายในแอปพลิเคชัน HTTP ทำงานอย่างอิสระ แต่เมื่อมีการสร้างเวอร์ชันใหม่ขึ้นมา ก็จะตั้งค่าเริ่มต้นที่เป็นการคัดลอกแบบของเวอร์ชันก่อนหน้ามา
กฎการกำหนดเส้นทาง
แอปพลิเคชัน HTTP แต่ละเวอร์ชันนั้นต่างกับโซน ตรงที่มันทำงานอย่างอิสระจากชื่อโฮสต์ที่เจาะจงใดๆ แล้วในเมื่อเวอร์ชันไม่ได้ผูกติดอยู่กับชื่อโฮสต์อย่างโซน แล้วคุณจะตัดสินใจอย่างไรว่าแอปพลิเคชัน HTTP เวอร์ชันใดจะส่งผลกับการรับส่งข้อมูลที่เฉพาะเจาะจง คำตอบก็คือ กฎการกำหนดเส้นทาง ด้วยการกำหนดเส้นทาง คุณจะสามารถตัดสินใจได้ว่าจะใช้แอปพลิเคชัน HTTP เวอร์ชันใดกับการรับส่งข้อมูลชนิดใด เช่น ชื่อโฮสต์ กฎการกำหนดเส้นทางทำงานโดย Ruleset Engine ของ Cloudflare ซึ่งขึ้นอยู่กับเงื่อนไขการใช้งานของกฎ "ถ้า แล้ว" เพื่อจัดการชื่อโฮสต์ที่ควบคุมในบัญชี Cloudflare ของคุณเข้ากับเวอร์ชันของการกำหนดค่า ตัวอย่างเช่น ถ้าชื่อโฮสต์ของตรงกับ `www.example.com` ดังนั้นให้ใช้เวอร์ชัน 2 ของแอปพลิเคชัน HTTP การตลาด เมื่อมีการใช้กฎนี้บริเวณขอบนอก แทนที่จะใช้การกำหนดค่าโซนปกติ www.example.com ก็จะใช้การกำหนดค่าที่เฉพาะเจาะจงแทนในเวอร์ชัน 2 ของแอปพลิเคชัน HTTP
กฎการกำหนดเส้นทางนั้นรองรับกฎสองชนิด — กฎระยะเตรียมการ และกฎระยะการผลิต ทั้งสองจะใช้รายชื่อโฮสต์ ดังที่กล่าวไป แต่ในการสร้างกฎระยะเตรียมการ เราได้เพิ่มการคัดกรองว่ากฎนี้จะใช้ได้เฉพาะตอนที่การรับส่งข้อมูลถูกส่งไปที่ IP ที่เฉพาะเจาะจงบริเวณขอบนอกของเราเท่านั้น ซึ่งหมายความว่าคุณสามารถทดสอบการเปลี่ยนแปลงได้อย่างปลอดภัยโดยการรับส่งข้อมูลไปที่ www.example.com ที่ IP ของสภาพแวดล้อมการเตรียมการโดยจะไม่ส่งผลกระทบต่อลูกค้า และที่ดียิ่งกว่านั้นก็คือ เมื่อคุณตรวจสอบการเปลี่ยนแปลงด้วยการสร้างกฎการกำหนดเส้นทางของสภาพแวดล้อมการผลิต การกำหนดค่าเดียวกันนั้นจะถูกนำไปใช้กับสภาพแวดล้อมการผลิตของลูกค้าทุกคน
เราพูดมามากแล้ว — มาดูการทำงานจริงเลยดีกว่า!
ใช้แอปพลิเคชัน HTTP เพื่อทดสอบและใช้งานการเปลี่ยนแปลงได้อย่างปลอดภัย
สำหรับคำแนะนำครั้งนี้ ผมจะเล่นเป็นลูกค้าที่ใช้งานอยู่แล้ว ผมมีโซนไว้บริการลูกค้า และผมต้องการเปลี่ยนแปลงอะไรบางอย่าง เพื่อเปลี่ยนกฎให้ผมสามารถย้ายตำแหน่งข้อมูลของผมได้ แต่ผมไม่เก่งเรื่อง regex และถ้าเกิดข้อผิดพลาดอาจทำให้ไซต์ของลูกค้าผมพังหมดก็ได้! แทนที่จะทำการเปลี่ยนแปลงที่โซนโดยตรง เราจะใช้แอปพลเคชัน HTTP และกฎการกำหนดเส้นทางเพื่อสร้าง ทดสอบ และใช้งานการเปลี่ยนแปลง
อันดับแรก ผมเข้าสู่ระบบแดชบอร์ด Cloudflare หลังจากที่เลือกบัญชีของผมแล้ว ผมก็จะเห็นว่ามีแอปพลิเคชัน HTTP อยู่ที่แถบด้านข้าง การเลือกนี้เท่ากับว่าผมกำลังจะสร้างแอปพลิเคชัน HTTP ตัวแรกของผม

เพื่อเป็นการสร้างแอปพลิเคชัน HTTP ตัวแรกของผม ผมต้องตั้งชื่อและเลือกโซนที่มีอยู่ก่อนแล้ว ในที่นี่คือ example.com Cloudflare จะใช้โซนนั้นในการกำหนดค่าเริ่มต้นของแอปพลิเคชัน HTTP เวอร์ชันแรก การคัดลอกการตั้งค่าเดิมมาจากโซนทำให้ผมมีสำเนาให้ทำงานได้อย่างปลอดภัย และผมไม่ต้องสร้างการกำหนดค่าใหม่ด้วยตัวเอง

หลังจากเลือกสร้าง ผมก็มีแอปพลิเคชัน HTTP ตัวแรกของผมแล้ว! ตอนนี้ เวอร์ชันแรกกำลังอยู่ในขั้นตอนการสร้าง ข้างหลังฉากนั้น Cloudflare จะนำการกำหนดค่าที่มีอยู่ของ example.com และคัดลอกมาไว้ที่เวอร์ชัน 1 ของแอปพลิเคชัน HTTP เมื่อคัดลอกสำเร็จ ผมก็สามารถแก้ไขการกำหนดค่าได้เลย

ผมสามารถแก้ไขในเวอร์ชันนี้ได้เหมือนกับที่ผมทำในโซน แต่ก็ยังมีความแตกต่างกันสองประการ ประการแรกคือ การเปลี่ยนแปลงที่ผมทำในตอนนี้จะไม่ส่งผลต่อการรับส่งข้อมูลในขณะนี้ที่ขอบนอกของ Cloudflare เพราะเรายังไม่ได้สร้างกฎการกำหนดเส้นทางเพื่อที่จะส่งการรับส่งข้อมูลไปที่เวอร์ชันการกำหนดค่านี้ ประการที่สอง เราไม่อนุญาตให้ควบคุมสิ่งต่างๆ ที่เกี่ยวข้องกับโซนผ่านการใช้แอปพลิเคชัน HTTP กล่าวคือ บันทึก DNS ใบรับรอง SSL Spectrum หรือ Load Balancing

ในส่วนของกฎด้านล่างภายใต้ กฎการเปลี่ยนแปลงผมได้สร้างกฎใหม่เพื่อเขียนเส้นทางใหม่เพื่อให้ข้อมูลไปยังตำแหน่งที่ถูกต้อง การร้องขอใดๆ ที่ส่งไปที่ example.com/assets/* เราจะเขียนเส้นทางใหม่เพื่อให้ไปที่ example.com/internal/files/assets/*


ณ จุดนี้ ผมได้ทำการเปลี่ยนแปลงแล้ว แต่ตอนนี้ผมต้องการทดสอบการเปลี่ยนแปลง เพื่อทำเช่นนั้น ผมสามารถทิ้งส่วนการแก้ไขเวอร์ชันและไปที่กฎการกำหนดเส้นทางสำหรับแอปพลิเคชัน HTTP ที่นี่ผมสามารถสร้างกฎที่จะอนุญาตให้การรับส่งข้อมูลที่มีอยู่ให้ใช้เส้นทางผ่านการกำหนดค่าของเวอร์ชันนี้

ผมจะสร้างกฎระยะเตรียมการ เพราะผมต้องการเป็นคนเดียวที่จะทำการทดสอบการเปลี่ยนแปลงโดยไม่ให้ส่งผลกับลูกค้าคนใดๆ จำไว้ว่า เมื่อสร้างกฎระยะเตรียมการแล้ว IPs สำหรับใช้ในการทดสอบเวอร์ชันนี้จะปรากฏขึ้นในหน้าจอการสร้างกฎ

หลังจากสร้างกฎแล้ว ผมสามารถกำหนดค่าคอมพิวเตอร์ของผมได้เพื่อส่งการร้องขอไปที่ IPs example.com Rackspace มี คำแนะนำที่ครอบคลุม สำหรับวิธีที่จะเปลี่ยนไฟล์โฮสต์ของเครื่องคุณ ตอนนี้ เมื่อผมไปที่ example.com กฎการเปลี่ยนแปลงใหม่จะถูกใช้งานอยู่ แต่สำหรับคนอื่นๆ ที่เข้าใช้ไซต์จะไม่มีอะไรเปลี่ยน

เมื่อผมมั่นใจแล้วว่าการเปลี่ยนแปลงทำงานได้ดี ผมสามารถสร้างการผลิตกฎการกำหนดเส้นทางที่จะนำการเปลี่ยนแปลงนี้ไปใช้กับการรับส่งข้อมูลทุกอย่างบน example.com — และผมก็ดำเนินการเสร็จแล้ว!

เมื่ออัปเดตแล้ว เส้นทางข้อมูลสำหรับไซต์ของผมก็จะถูกเขียนใหม่สำหรับทุกการร้องขอให้ไปที่ example.com

จะเกิดอะไรขึ้นหลังจากนั้น? เมื่อผมพร้อมที่จะสร้างการเปลี่ยนแปลงอีกครั้ง ผมสามารถไปที่แอปพลิเคชัน HTTP แล้วโคลนเวอร์ชัน 1 เพื่อสร้างเวอร์ชัน 2 ในช่วงแรกเวอร์ชัน 2 จะมีการกำหนดค่าเหมือนกับของเวอร์ชัน 1 ทุกประการ แต่เนื่องจากทั้งสองเวอร์ชันมีกฎการกำหนดเส้นทางต่างกัน จึงจะยังไม่มีการนำไปใช้กับการรับส่งข้อมูลใดๆ

แล้วผมก็สามารถแก้ไขเวอร์ชัน 2 ได้อย่างปลอดภัย เหมือนกับที่ทำกับเวอร์ชัน 1 ไปก่อนหน้านี้ ครั้งนี้ผมต้องการเปลี่ยนแปลงกฎไฟร์วอลล์ เพื่อให้สามารถป้องกันการรับส่งข้อมูลอันตรายที่อาจเกิดขึ้นจากการเข้าถึงเว็บไซต์ของผมได้ การเปลี่ยนแปลงในเวอร์ชัน 2 จะไม่เปลี่ยนแปลงการรับส่งข้อมูลในบริเวณขอบนอกจนกว่าผมจะอัปเดตกฎการกำหนดเส้นทางของสภาพแวดล้อมการเตรียมการ เพื่อใช้กับเวอร์ชัน 2 ซึ่งทำให้ผมสามารถเปลี่ยนแปลงได้อย่างมั่นใจ และสามารถทดสอบได้อย่างปลอดภัยอีกด้วย

หลังจากตรวจสอบการเปลี่ยนแปลงครั้งใหม่นี้แล้ว ผมสามารถส่งเวอร์ชัน 2 ไปที่การรับส่งข้อมูลทั้งหมดได้โดยการอัปเดตการผลิตกฎการกำหนดเส้นทางเพื่อใช้เวอร์ชัน 2 ผมสามารถใช้กระบวนการเดียวกันได้กับการเปลี่ยนแปลงที่จะตามมา
แอปพลิเคชัน HTTP มีให้ใช้งานแล้วตอนนี้ในเวอร์ชันเบต้าแบบปิด
ด้วยพลังแห่งแอปพลิเคชัน HTTP และกฎการกำหนดเส้นทาง ลูกค้าสามารถควบคุมได้ดีขึ้นว่าการเปลี่ยนแปลงการกำหนดค่าจะเกิดขึ้นอย่างไรและเมื่อไหร่ วิธีการนี้จะลดความกังวลในการเปลี่ยนแปลงที่ไม่ดีที่อาจเกิดกับไซต์ของคุณได้ ความสามารถนี้มีให้ใช้งานแล้วในเวอร์ชันเบต้าแบบปิดสำหรับผู้ใช้องค์กร แต่หากคุณสนใจ กรุณาติดต่อทีมบัญชี Cloudflare ของคุณเพื่อศึกษาข้อมูลเกี่ยวกับสิทธิ์การเข้าถึง