By Arnon Puitrakul - 11 พฤศจิกายน 2024
สำหรับเราที่โตมาในยุค 90s ปลาย ๆ อะนะ เราเคยได้ยินว่าตอนนั้นพวกธนาคารไปใช้ Mainframe Computer ในการทำงานกัน แต่เคยสงสัยกันมั้ยว่า มันต่างจากเครื่องคอมพิวเตอร์ที่เราใช้งานกันทั่ว ๆ ไปอย่างไรละ และปัจจุบันที่เรามี Distributed System ที่ดีมากขึ้น Mainframe ยังจำเป็นอยู่มั้ย มันได้ตายจากโลกนี้ไปหรือยัง วันนี้เรามาหาคำตอบไปด้วยกันเลย
เวลาเราไปซื้อเครื่องคอมพิวเตอร์สักเครื่อง มันมีตัวเลือกเยอะแยะมากมายอยู่เต็มไปหมด อย่างแค่การเลือก CPU ที่มีตั้งแต่ CPU ที่เน้นอัด Clock Speed เยอะ ๆ, CPU ที่เน้นประหยัดพลังงานและ CPU ที่เน้นจำนวน Core เยอะ ๆ กันไปเลย ซึ่งในแต่ละรูปแบบมันมีจุดเด่นในการใช้งานที่แตกต่างกัน
เช่นถ้าเราต้องการเอามาทำงาน Professional ใช้โปรแกรมที่มีความสามารถในการทำงานแบบ Multi-thread ได้ การเลือก CPU ที่ Core เยอะกว่า ก็ย่อมได้พลังในการประมวลผลมากกว่า แต่กลับกัน หากเราเอามาใช้งานทั่วไปเน้นการใช้งาน Single-Thread Application มันก็อาจจะไปเหมาะกับ CPU ที่มี Clock Speed สูง ๆ เพื่อให้ทำงานได้เร็วขึ้น จะเห็นได้ว่า แค่ตัวเลือกของ CPU เองก็ทำให้คอมพิวเตอร์แต่ละแบบ มันมีลักษณะการใช้งานที่แตกต่างกัน
หรืออีกตัวอย่างนึงคือ Super Computer เอาเข้าจริง มันก็คือ Computer เครื่องนึงนั่นแหละ ไส้ในมันก็คือ Server ตัวนึงเท่านั้นเอง แต่ทำไม่เราถึงบอกว่า เครื่องนี้เป็น Super Computer ละ มันดูจาก จุดประสงค์ในการสร้างของมันว่า มันถูกสร้างเพื่อเอามาทำอะไร เช่น Super Computer มันถูกออกแบบมาเพื่อให้มีพลังในการประมวลผลสูง ๆ มากกว่าพวก General-Purpose Computer ที่เราใช้งานตามบ้านมหาศาล ทำให้สามารถทำงานที่ซับซ้อน เช่นการจำลองการเคลื่อนที่ของอะตอม, การทำ Molecular Docking สำหรับการค้นหายาใหม่ ๆ, การเปรียบเทียบรหัส DNA และอื่น ๆ อีกมากมายเลย
ดังนั้น เครื่องคอมพิวเตอร์แต่ละเครื่องนั้นมี จุดประสงค์ในการสร้างเพื่อนำมาใช้งานที่แตกต่างกัน ทำให้เครื่องแต่ละเครื่องจึงมีการออกแบบหรือใช้ชิ้นส่วนพิเศษบางอย่างเพื่อเอื้อให้เกิดประโยชน์กับจุดประสงค์ของการสร้างนั่นเอง
Mainframe Computer เป็น Computer เครื่องนึงนั่นแหละ แต่มันเป็นคอมพิวเตอร์ที่ออกแบบมาโดยมี 2 เป้าประสงค์ใหญ่ ๆ คือ Throughput และ Reliability เรามักจะเจอมันถูกใช้อยู่ในกลุ่มบริษัทการเงินและธุรกิจทั้งหลายเช่น ธนาคารเป็นต้น
หากเราบอกว่า Super Computer มันเก่งในเรื่องของการทำงานสักงานให้เร็ว Mainframe Computer มันถูกออกแบบมาเพื่อทำงานตรงกันข้ามกันเลยคือ การทำงานเล็ก ๆ แต่ทำเยอะมาก ๆ ตัวอย่างเช่น Supermarket เวลาพนักงานยิง Barcode 1 ติ๊ด มันจะต้องเข้าถึงฐานข้อมูลว่าไอ้ที่ยิงไปมันคืออะไร ราคาเท่าไหร่ บางระบบทำถึงว่ามีการ Track ตระกร้าเพื่อ Cross-Check กับ POS ปลายทางเพื่อความมั่นใจ แล้วจ่ายเงินเสร็จ มันต้องเข้าไปตัด Stock ในระบบอีก แล้วเวลาเราไปยืนอยู่ในดง Cashier อะ เราได้ยินเสียง ติ๊ด สัก 1 นาที กี่รอบแล้วคิดว่า เขามีกี่สาขา ดังนั้นเราจะเห็นว่า ลักษณะงานที่ใช้ในตัวอย่างนี้ มันอาจจะไม่ได้มีการคำนวณที่ซับซ้อนเลยแค่บวกเลข แต่มันมีปริมาณต่อหน่วยเวลาที่เยอะมาก ๆ ถ้าเป็นเครื่อง Server กดกันหลายสาขาตายก่อนแน่นอน
ทำให้เราจะต้องมีเครื่องคอมพิวเตอร์สักรูปแบบนึงที่มีความสามารถในการรองรับ งานขนาดเล็ก แต่มี Throughput จำนวนมหาศาลนี้ได้ ซึ่งนี่แหละคือจุดที่ Mainframe Computer มันเข้ามาช่วยเหลือเรา
พองานของเรามันมี Data Stream ที่ไหลมาขนาดนี้ ถ้าเราไม่มีท่อรับและปล่อยที่เยอะมากเพียงพอ ให้เราคิดภาพเหมือนโรงงานที่ถึงแม้ว่าเจ้าสั่วจะอัดเครื่องจักรไปได้มากเท่าไหร่ แต่สุดท้ายถ้าเส้นทางวัตถุดิบมันมาไม่ทันเครื่องทำงาน เครื่องที่มีเยอะ ๆ ก็จะไม่ได้เปิดใช้งาน อาการนี้เราเรียกว่า Underutilisation
เพื่อป้องกันไม่ให้เกิดปัญหานี้ Mainframe Computer สมัยใหม่มีการทำ Hardware พิเศษออกมาเรียกว่า System Assist Processor (SAP) มันเป็น Hardware ที่ทำหน้าที่อย่างเดียวเลยคือ การเป็นเหมือนท่อข้อมูลเข้าออกเครื่อง Mainframe เพื่อทำให้มั่นใจว่า CPU จะอิ่มหน่ำ รันได้แบบเต็มเม็ดเต็มหน่วยได้ตลอดเวลานั่นเอง และนี่ก็คือวิธีการที่ Mainframe เข้ามาตอบโจทย์แรกคือ Throughput
ส่วนเรื่อง Reliability ต้องยอมรับเลยว่า เครื่อง Mainframe มีระบบสำรองแทบจะเหมือนกับเครื่องบิน หรือยานอวกาศกันไปแล้ว ตั้งแต่ PSU ที่มีมากกว่า 1 ตัวเป็นแบบ Fail-Over คือ ถ้า Power Source ที่นึงดับ มันสามารถสลับไปใช้อีก Power Source ได้โดยไม่กระทบต่อการทำงานเลย หรือกระทั่งพวก Networking ทั้งหมดจะมีระบบสำรองหมด หากสายขาด หรืออุปกรณ์สักชุดนึงได้รับความเสียหาย อีกชุดก็ยังสามารถทำงานไปได้เหมือนไม่มีอะไรเกิดขึ้นเลยละ เรียกว่าถ้าเกิดชิ้นไหนเสีย ระบบก็ยังเดินต่อไปได้แบบเต็มกำลัง และผู้ดูแลสามารถดึงชิ้นที่เสียแล้วสลับได้โดยไม่ต้องปิดเปิดเครื่องเลยด้วยซ้ำ ทำให้การทำงานไม่มีสะดุด
พอเราบอกว่า Mainframe มันออกแบบมาเพื่อ Throughput มหาศาล ก็อาจจะทำให้สะกิดต่อมบางคนแล้วบอกว่า เอ้านี่ไง เรา Move ไป Cloud แล้วสิ มันรองรับ Transaction ได้มหาศาลเลยนะ ถ้าเกิด Compute เราไม่พอ เราเล่น Scaling เติม Load Balance แล้วกระจายโหลดเอาได้เลย และในฝั่ง Database เราก็มี Distributed Relational Database ที่ได้ทั้งในเรื่อง ACID Properties และ Throughput มหาศาล อย่างพวก PlanetScale และ CockroachDB หรือเราจะไปในกลุ่มที่เป็น Realtime Database อย่าง Supabase และ Firebase พวกนี้หากเราใช้งานไปแล้วปรากฏว่า มันรับโหลดไม่ไหวแล้วเราสามารถ Scale มันขึ้นไปได้เรื่อย ๆ อย่างน้อยเพดานสุด ๆ ของมันในอุดมคติคือ เครื่องหมด Data Centre แล้ว แต่แหม่ ใครจะ Scale ไปจนหมด Data Centre ได้หว่า...
แต่กลับกันฝั่ง Mainframe สมัยก่อน เรื่องของการ Scaling มันอาจจะไม่ได้ดีเท่าไหร่ แต่ ณ ปัจจุบันนี้มันได้รับการพัฒนามาให้มีความสามารถในการ Scale ที่เรียกว่า สุด ๆ ไปเลย เราเคยฟังพวกพี่ ๆ ยุคเก่า ๆ เขาเคยเล่าว่า เวลาเราซื้อเครื่องมา เราจะซื้อตัวเครื่องมาตั้งจริง ๆ เกินกับที่เราต้องการใช้ เช่น เราบอกว่า เรา Estimate Load แล้วเราต้องการ 5 เครื่อง เขาจะกดมา 6-8 เครื่องแทน แต่เขาจะเปิดใช้งาน 5 เครื่องที่ต้องการก่อน ส่วนที่เหลือจะโดน Software Lock เอาไว้ เมื่อเกิดเหตุการณ์ที่ 5 เครื่องมันไม่พอ จะติดต่อไปที่บริษัทเพื่อขอปลดล๊อคเครื่องที่เหลือกี่เครื่องก็ว่ากันไป คือไม่รู้นะว่ามันเป็นเรื่องจริงมั้ย เพราะมันเกิดขึ้นมาแบบหลายสิบปีแล้ว เราว่ามันคือวิธีการ Scaling ในยุคเก่าแหละที่เราจะต้องเอาเครื่องมาตั้งไว้ก่อนแล้วค่อยเปิดเมื่อต้องการใช้งานเอา
พอ Cloud มันสามารถรับโหลดของงานส่วนใหญ่ได้ และรองรับการ Scaling ได้อย่างรวดเร็วมาก ๆ ทำให้ธุรกิจส่วนใหญ่จึงหันไปใช้งาน Cloud กันมากขึ้น Mainframe ถูกลดบทบาทลงไป กลายเป็นอยู่ในกลุ่มที่ค่อนข้าง Niche มาก ๆ คิดว่าส่วนใหญ่ที่ยังต้องการ Mainframe อยู่น่าจะเป็น 2 กลุ่มใหญ่ ๆ คือ Lagacy Software คือยังใช้ Software ตัวเก่ามาก ๆ ที่จำเป็นต้องใช้ Mainframe อยู่ไม่ยอม Upgrade ไป Software Stack ใหม่ ๆ และอีกกลุ่มคือกลุ่มที่มีปริมาณ Transaction เยอะมาก ๆ เยอะจนสามารถลงทุนกับระบบ Mainframe และคุ้มค่ากว่าการใช้ Cloud หรือ Server Farm ขนาดใหญ่
อยากรู้ว่าใครใช้ Mainframe บ้างไม่ยาก เวลาเราไปซื้อของแล้วหน้าจอโปรแกรมเขามันคล้าย Command Line แต่มีตัวเลือกพิมพ์ดูดีขึ้นนิดนึง พวกนั้นแหละใช่ เช่นเราไปซื้ออุปกรณ์สำนักงานที่ร้านขายแห่งนึงในห้าง เราเห็นหน้าจอสำหรับการค้นหาข้อมูลสินค้าเขาก็คือ ชัดเลอ Mainframe ชัด ๆ เลย เห็นอยู่บนหน้าต่างด้วยว่า Z15 ชัดเลอ IBM Z15 แน่นวล หรือตอนเรา Check-in กระเป๋าที่สุวรรณภูมิก็เห็นสายการบินนึงก็ใช้เหมือนกัน (เอาจริง ๆ สายการบินนี่แหละตัวดีเลย Mainframe ฉ่ำ) เอาจริงนะ ทำไมกรูต้องสังเกตขนาดนั้นวะ ถถถถถ
เพราะเวลาเราใช้งาน Mainframe มันไม่ใช่ลักษณะของการที่เราเรียก API เหมือนปัจจุบันนะ เราจะต้องทำลักษณะคล้ายกับการ Remote เข้าไป โดยใช้เครื่องคอมพิวเตอร์สมัยใหม่เหมือนที่เราใช้งานกันนี่ละ แต่เราแค่ลงโปรแกรมสำหรับการเชื่อมต่อเข้าไปที่ Mainframe ก็เท่านั้น ทำให้เราดูจากภายนอกเราก็เดาไม่ออกหรอกว่าเขาใช้ Mainframe มั้ย จนกว่าจะเห็นหน้าจอนี่แหละ
ในเมื่อ Mainframe มันยังมีความต้องการอยู่ ทำให้ ณ ปัจจุบัน Mainframe ก็ยังไม่ได้หายไปไหน มันมีการพัฒนาขึ้นไปเรื่อย ๆ จนเรียกได้ว่า หากมาอ่านสเปก น่าจะออกแนวตาเหลือกกันได้เลย
ยกตัวอย่างเจ้าพ่อ Mainframe ตั้งแต่อดีตจนถึงปัจจุบันอย่าง IBM ตัวล่าสุดที่พึ่งเผยโฉมออกมาอย่าง Z17 เมื่อช่วงกลางปีที่ผ่านมา ใช้หน่วยประมวลผลรุ่นล่าสุดอย่าง Telum II ที่ได้รับการพัฒนาจากรุ่นก่อนอย่าง Telum แค่รุ่นแรก เราเห็นสเปก เราก็แตกตื่นแล้วละ รุ่นแรกมันก็อลังการแล้วอย่าง L3 Cache ขนาด 256 MB ในขณะที่เจ้าพ่อ L3 Cache อย่าง AMD ในรุ่น Ryzen 9 7950X3D ยังใส่มาแค่ 128 MB เท่านั้นเองและมี L4 Cache อีก 2 GB บ้าไปแล้ว ทำให้มันมีข้อมูลมาเพื่อ Fed ให้ Processor ได้แบบต่อเนื่องสุด Utilise กันฉ่ำ ๆ
ความอร่อยมากกว่านั้นคือ มันใส่ Accelerators สำหรับงานพวก Cryptography, Compression และ Sorting เข้ามา ทำให้ตัวมันสามารถทำงานพวกนี้ได้เร็วกว่าการใช้ CPU ปกติทำงานมาก ๆ เขาบอกว่ามันทำได้มากกว่า 6 TFLOPs ต่อ Chip นะ แล้วในตู้ทั้งหมดนั้นเอ่อ เพียบ... เป็นกองทัพเลยละ
แต่จุดที่เราคิดว่า อร่อยที่สุด อ่านแล้วซี๊ดปากคือ การที่เขารองรับงานทางด้าน AI จริงจังมาก ด้วยการใส่ AI Accelerators เข้าไป On-Chip เลย ทำให้ตัวมันสามารถทำงานอย่าง Neural Network Inference ได้รวดเร็วมาก ๆ หากคิดว่า Neural Engine บนพวก Chip ตระกูล Apple M-Series เร็วเท่าไหร่ เจ้าตัวนี้โหดสัสกว่า และมันมาเป็นกองทัพแบบบึ้ม ๆ ตัวอย่างในการใช้งาน เราว่าน่าสนใจมาก ๆ
IBM ยกตัวอย่างเป็นการทำ Fraud Detection โดยการใช้ AI แบบ Real-time จากเมื่อก่อนที่ธนาคารไม่สามารถตรวจสอบการโกงได้ในทุก ๆ Transaction เพราะวิธีการตรวจสอบมันมีความซับซ้อน หากจะให้ลูกค้ารูดแล้วบอกผลใน 1-3 นาที ลูกค้าที่ไหนจะยอมใช่มะ มันควรจะไม่กี่วินาทีแล้วตอบได้ทันที ทำให้ธนาคารอาจจะต้องมีการยอมให้บาง Transaction ผ่านไปก่อนแล้วค่อยไปต่อคิวรันผ่าน Model ตรวจสอบทีหลัง แต่ด้วย AI Acclerators ที่อยู่ภายใน Chip เลย ทำให้การทำ Real-time Fraud Detection เป็นไปได้ และรองรับการ Scale ได้มหาศาลมาก ๆ ทำให้มันสามารถทำให้ความต้องการที่เมื่อก่อนเป็นไปไม่ได้ กลับเป็นไปได้เฉยเลย
Mainframe Computer มันเป็นเครื่องคอมพิวเตอร์ประเภทนึงที่ถูกกแบบมาเพื่อ 2 จุดประสงค์ใหญ่ ๆ คือ Throughput และ Reliability หรือก็คือมันออกแบบมาเพื่อรองรับงานขนาดเล็กจำนวนเยอะมาก ๆ และยังต้องมีความเสถียร เชื่อถือได้ แตกต่างจากเครื่องคอมพิวเตอร์ที่เราใช้งานกันอยู่ตามบ้าน หรือกระทั่ง Server เลยทีเดียว แต่ด้วยการพัฒนาเทคโนโลยี Distribution Computing ที่เก่งมากขึ้น ทำให้เครื่อง Server ทั่ว ๆ ไปก็สามารถรับโหลดปริมาณมาก ๆ ของธุรกิจส่วนใหญ่ได้แล้ว ทำให้ความนิยมเริ่มเสื่อมลงไปเหลือในกลุ่มที่มีโหลดมหาศาลและต้องการประสิทธิภาพสูงอยู่ เอาจริง ๆ อยากลูบคำสัมผัสอยู่นะ อยากเข้าไปในที่ ๆ เก็บมาก ๆ ใครมีก็ติดต่อมาได้นะ
หลังจากเมื่อหลายอาทิตย์ก่อน Apple ออก Mac รัว ๆ ตั้งแต่ Mac Mini, iMac และ Macbook Pro ที่ใช้ M4 กันไปแล้ว มีหลายคนถามเราเข้ามาว่า เราควรจะเลือก M4 ตัวไหนดีถึงจะเหมาะกับเรา...
จากตอนก่อน เราเล่าเรื่องการ Host Website จากบ้านของเราอย่างปลอดภัยด้วย Cloudflare Tunnel ไปแล้ว แต่ Product ด้าน Zero-Trust ของนางยังไม่หมด วันนี้เราจะมาเล่าอีกหนึ่งขาที่จะช่วยปกป้อง Infrastructure และ Application ต่าง ๆ ของเราด้วย Cloudflare Access กัน...
ทุกคนเคยได้ยินคำว่า Mainframe Computer กันมั้ย เคยสงสัยกันมั้ยว่า มันต่างจากเครื่องคอมพิวเตอร์ที่เราใช้งานกันทั่ว ๆ ไปอย่างไรละ และ Mainframe ยังจำเป็นอยู่มั้ย มันได้ตายจากโลกนี้ไปหรือยัง วันนี้เรามาหาคำตอบไปด้วยกันเลย...
เคยมั้ยเวลา Deploy โปรแกรมสักตัว เราจะต้องมานั่ง Provision Infrastructure ไหนจะ VM และ Settings อื่น ๆ อีกมากมาย มันจะดีกว่ามั้ยถ้าเรามีเครื่องมือบางอย่างที่จะ Automate งานที่น่าเบื่อเหล่านี้ออกไป และลดความผิดพลาดที่อาจจะเกิดขึ้น วันนี้เราจะพาทุกคนมาทำความรู้จักกับ Infrastructure as Code กัน...