มีผู้ใช้งานที่เป็นมนุษย์ถึงสามร้อยสามสิบคนต่อวัน ค่าไฟอยู่ที่สี่สิบสองดอลลาร์ต่อปี นี่ไม่ใช่ความผิดพลาดจากการปัดเศษหรือลูกเล่นทางการตลาด แต่มันคือค่าใช้จ่ายในการดำเนินงานจริงของระบบ production ที่รันอยู่ในอิตาลี โดยใช้ Raspberry Pi 4B และบอร์ด Orange Pi สองบอร์ด ซึ่งใช้พลังงานน้อยกว่า 30 วัตต์จากปลั๊กไฟเพียงช่องเดียว
สำหรับทีมส่วนใหญ่ การใช้จ่ายด้านโครงสร้างพื้นฐานเป็นเรื่องที่ยอมรับกันโดยดุษฎี คุณจัดเตรียม managed instance เพิ่มบริการฐานข้อมูล ใส่ระบบ monitoring เข้าไป แล้วก็นั่งดูใบแจ้งหนี้ที่ค่อยๆ พุ่งสูงขึ้น แต่การตั้งค่านี้ตั้งคำถามที่แรงกว่านั้น: จะเป็นอย่างไรถ้าการมีตัวตนบนโลกออนไลน์ทั้งหมดของคุณ ใช้พลังงานน้อยกว่าหลอดไฟแบบไส้ที่หรี่แสงลงมา?
งบประมาณด้านพลังงาน
แผนกบัญชีพลังงานทั้งหมดคือ smart plug ราคา 20 ดอลลาร์ มันแสดงการใช้พลังงานแบบเรียลไทม์ และตอนนี้ตัวเลขยังต่ำกว่า 30 วัตต์ ด้วยอัตราคงที่ระดับนี้ ค่าไฟรายปีจะอยู่ที่ 42 ดอลลาร์ ซึ่งส่วนใหญ่เป็นเพราะอัตราค่าไฟฟ้าในอิตาลีค่อนข้างสูง หากเป็นภาระงานเดียวกันนี้ในสหรัฐอเมริกา จะมีค่าใช้จ่ายประมาณ 18 ดอลลาร์ต่อปี
เพื่อให้เห็นภาพชัดขึ้น 30 วัตต์คือปริมาณไฟที่ที่ชาร์จแล็ปท็อปหลายรุ่นใช้ขณะไม่ได้ใช้งาน มันน้อยกว่าหลอดไฟฟลูออเรสเซนต์แบบคอมแพคเพียงหลอดเดียวเสียอีก แต่ที่นี่มันสามารถขับเคลื่อนการดำเนินงานดิจิทัลทั้งหมดได้: ทั้งการให้บริการเว็บ, การจัดเก็บข้อมูล, อีเมล, การกำหนดเส้นทางทราฟฟิกแบบเข้ารหัส, การวิเคราะห์ข้อมูล, การสำรองข้อมูล และบริการเสริมอื่นๆ ไม่มีค่าใช้จ่ายในการทำความเย็นของดาต้าเซ็นเตอร์ ไม่มีค่าใช้จ่ายส่วนเกินสำหรับแหล่งจ่ายไฟสำรอง และไม่มีการบวกกำไรเพิ่มจากผู้ให้บริการ มีเพียงฟิสิกส์ล้วนๆ ของชิป ARM ที่ค่อยๆ จิบอิเล็กตรอนเข้าไป
สิ่งที่รันอยู่จริงที่นี่
ภาระงานนี้ไม่ใช่เรื่องเล่นๆ ภายใน Docker containers บนบอร์ด ARM ทั้งสามบอร์ดนั้น stack ประกอบด้วย:
- Nginx และ MariaDB สำหรับการให้บริการเว็บและข้อมูลแบบ relational
- Postfix และ Dovecot ที่จัดการระบบเมลแบบครบวงจร
- HAProxy และ SSL termination สำหรับจัดการและรักษาความปลอดภัยของทราฟฟิกขาเข้า
- Self-hosted analytics ที่มาแทนที่สคริปต์การติดตามจากบุคคลที่สาม
- A DNS failover monitor เพื่อให้การตรวจสอบ uptime เป็นอิสระ
- An IoT MQTT broker สำหรับรับข้อมูล telemetry จากอุปกรณ์
- A backup server ที่เก็บ 283 snapshots เพื่อการกู้คืนข้อมูล
- A license server สำหรับการแจกจ่ายซอฟต์แวร์
- A small Bitcoin miner ที่รันไปพร้อมกับบริการอื่นๆ
- ที่ชาร์จโทรศัพท์ที่จ่ายไฟให้ 4G hotspot ซึ่งทำหน้าที่เป็น uplink
นี่ไม่ใช่แค่หน้า landing page นิ่งๆ แต่มันคือสภาพแวดล้อมแบบ multi-tenant edge Raspberry Pi 4B และบอร์ด Orange Pi ทั้งสองเครื่องไม่ใช่ cloud instances ที่ทำ load-balancing แต่เป็นคอมพิวเตอร์บอร์ดเดี่ยว (single-board computers) แบบ ARM เกรดผู้บริโภค ทุกอย่างรันในรูปแบบ containerized ซึ่งหมายความว่าผู้ดูแลระบบสามารถสลับบริการไปมาระหว่างบอร์ดได้โดยไม่ต้องสร้างสภาพแวดล้อมใหม่ตั้งแต่ต้น สถาปัตยกรรมนี้เป็นข้อพิสูจน์ที่ไม่อาจปฏิเสธได้ว่าความหนาแน่นของ container นั้นสำคัญเพียงใด เมื่องบประมาณในการประมวลผลของคุณวัดกันที่วัตต์แทนที่จะเป็นจำนวนคอร์ ทุกๆ container image และทุกๆ การคิวรีฐานข้อมูลจึงกลายเป็นการตัดสินใจในการออกแบบอย่างรอบคอบ
ภาระงานที่ซ่อนอยู่
นี่คือข้อเท็จจริงของเว็บสมัยใหม่ที่ไม่ปรากฏในแผนผังโครงสร้างที่สวยงาม: การตั้งค่านี้ต้องรับมือกับการเข้าชมจาก AI crawler ถึง 7,400 ครั้งในทุกๆ วัน GPTBot และ ClaudeBot เข้ามาเยี่ยมชมอยู่ตลอดเวลา นั่นหมายความว่ามีคำขอจากบอทประมาณ 22 ครั้ง ต่อผู้เข้าชมที่เป็นมนุษย์เพียง 1 คน
บน cloud instance มาตรฐาน อัตราส่วนนี้เป็นเพียงเสียงรบกวนในพื้นหลัง คุณจะไม่สังเกตเห็นมัน และใบแจ้งหนี้ของคุณก็จะไม่ขยับ เพราะคุณจ่ายเงินสำหรับความจุที่จัดเตรียมไว้ (provisioned capacity) ไม่ว่ามันจะให้บริการมนุษย์หรือตัวสแกนข้อมูลก็ตาม แต่บนคลัสเตอร์ ARM ขนาด 30 วัตต์ ทุกการเชื่อมต่อ HTTP จะใช้สัดส่วนที่วัดค่าได้จากเค้กก้อนเล็กๆ นี้ ข้อเท็จจริงที่ว่าระบบยังคงตอบสนองได้ภายใต้การโจมตีที่ไม่สมมาตรเช่นนี้ บ่งบอกถึงประสิทธิภาพของ software stack ได้เป็นอย่างดี หากโครงสร้างพื้นฐานของคุณสามารถรองรับ AI crawler อัตโนมัติได้หลายพันตัวบน Pi ได้ มันก็แทบจะรับประกันได้เลยว่าสามารถจัดการกับช่วงที่ทราฟฟิกจริงพุ่งสูงขึ้น (organic traffic spikes) เมื่อมันมาถึงได้เช่นกัน
การคำนวณตามความเป็นจริง
ค่าไฟฟ้าเป็นเพียงส่วนหนึ่งของเรื่องราวเท่านั้น ตัวฮาร์ดแวร์เอง—Raspberry Pi 4B และบอร์ด Orange Pi สองบอร์ด—มีต้นทุนเริ่มต้น หากเฉลี่ยค่าใช้จ่ายส่วนนี้ในระยะเวลา 5 ปี จะมีค่าใช้จ่ายประมาณ 60 ดอลลาร์ต่อปี รวมค่าใช้จ่ายทั้งหมดต่อปีคือ 102 ดอลลาร์
เมื่อเปรียบเทียบกัน ผู้ดูแลระบบประมาณการว่าการจัดเตรียม cloud มาตรฐานที่ใช้ instance อย่าง t3.medium คู่กับ RDS จะมีค่าใช้จ่ายประมาณ 960 ดอลลาร์ต่อปี ซึ่งนั่นเกือบจะเป็นสิบเท่าของต้นทุนการเป็นเจ้าของทั้งหมด (total cost of ownership) สำหรับ stack ที่โฮสต์เองนี้
การเปรียบเทียบนี้อาจไม่ใช่การเปรียบเทียบที่เทียบกันได้โดยตรงเสียทีเดียว และไม่ได้มีเจตนาที่จะตำหนิผู้ให้บริการคลาวด์แบบเหมารวม บริการแบบ Managed services ช่วยให้คุณได้ทั้งความซ้ำซ้อนเพื่อสำรองข้อมูล (redundancy), การกระจายตัวทางภูมิศาสตร์, การสนับสนุนระดับองค์กร และการบำรุงรักษาแบบที่คุณไม่ต้องลงมือเอง ฟีเจอร์เหล่านี้จะมีความสำคัญก็ต่อเมื่อคุณจำเป็นต้องใช้ ประเด็นสำคัญคือ หลายโครงการมักจะเลือกใช้การใช้จ่ายในระดับนั้นเป็นค่าเริ่มต้น โดยไม่ได้ตั้งคำถามว่าแอปพลิเคชันจำเป็นต้องใช้มันจริงหรือไม่ ปลั๊กอัจฉริยะราคา 20 ดอลลาร์และบอร์ด ARM ไม่กี่บอร์ดก็สามารถท้าทายมาตรฐานเดิมนั้นได้ เมื่อชุดเครื่องมือตรวจสอบ (monitoring stack) ของคุณมีราคาถูกกว่าพิซซ่าหนึ่งถาด และบิลค่าโครงสร้างพื้นฐานรายปีของคุณมีงบประมาณพอๆ กับของขวัญวันเกิดเล็กๆ สักชิ้น เศรษฐศาสตร์ของซอฟต์แวร์ขนาดเล็กก็จะเริ่มดูแตกต่างออกไปอย่างสิ้นเชิง
ทำไม 4G ที่ถูกจำกัดความเร็วถึงเปลี่ยนทุกอย่าง
บางทีข้อจำกัดที่รุนแรงที่สุดในที่นี้อาจไม่ใช่ชิป ARM หรือเพดานการใช้พลังงานที่ 30 วัตต์ แต่มันคือเครือข่าย โดยอัปลิงก์ (uplink) เป็น 4G ที่ถูกจำกัดความเร็ว ซึ่งส่งผ่านการแชร์ฮอตสปอตจากที่ชาร์จโทรศัพท์
ข้อมูลเซลลูลาร์ที่ถูกจำกัดความเร็วนั้นไม่เสถียร ค่าความหน่วง (latency) พุ่งสูงขึ้น การจำกัดแบนด์วิดท์คอยจ้องจะเล่นงานคุณ การสูญเสียแพ็กเก็ต (packet loss) ไม่ใช่แค่เรื่องทางทฤษฎี แต่มันคือสิ่งที่เกิดขึ้นจริงในบ่ายวันอังคาร การรันทราฟฟิกใช้งานจริง (production traffic) ผ่านท่อส่งข้อมูลแบบนั้นคือการทดสอบความเครียด (stress test) ที่ไม่มีเฟรมเวิร์กทดสอบโหลด (load-testing framework) ใดสามารถจำลองได้อย่างสมบูรณ์ หากงานจำลองฐานข้อมูล (database replication job) หรือเว็บแอสเซทไพป์ไลน์ (web asset pipeline) สามารถทำงานได้ภายใต้เงื่อนไขเหล่านั้น มันก็จะสามารถอยู่รอดได้ภายใต้อัปลิงก์แบบไฟเบอร์อย่างแน่นอน
ผู้ดูแลระบบตั้งใจรักษาการตั้งค่านี้ไว้เพื่อใช้ในการทดสอบโดยเฉพาะ พวกเขาแย้งว่าข้อจำกัดไม่ใช่ขีดจำกัด แต่มันคือเครื่องมือวินิจฉัย ซอฟต์แวร์ที่ทำงานได้ภายใต้สภาวะที่ทรัพยากรขาดแคลนจริงๆ จะสามารถทำงานได้ทุกที่ ความเทอะทะ (bloat) ของซอฟต์แวร์จะกลายเป็นสิ่งที่มองข้ามไม่ได้ เมื่อคิวรีที่ช้าหรือรูปภาพที่ไม่ได้ปรับแต่งส่งผลโดยตรงต่อการพุ่งสูงขึ้นของวัตต์ที่วัดค่าได้ หรือทำให้เกิดการหมดเวลา (timeout) บนท่อส่งข้อมูลที่แคบ ประสิทธิภาพจะไม่ใช่แค่ "ตั๋ว" (ticket) ในการทำงานสปรินต์ (sprint) ของเดือนหน้าอีกต่อไป แต่มันจะกลายเป็นความจริงทางกายภาพที่เกิดขึ้นทันที
แสดงให้เห็นผลลัพธ์
ไม่จำเป็นต้องเชื่อคำบอกเล่าของใคร ข้อมูลสดสามารถดูได้ที่ stats.lake8.dev/geo.html ซึ่งผู้เข้าชมสามารถดูการพุ่งขึ้นของวัตต์และการคาดการณ์ต้นทุนแบบเรียลไทม์ได้ ที่นี่ไม่มีรายงานความยั่งยืนในรูปแบบ PDF หลายหน้า ไม่มีโลโก้รับรองด้านสิ่งแวดล้อม มีเพียง
