กาลครั้งหนึ่งไม่นานมาแล้ว มีเหตุการณ์บทสนทนาของวิศวกรระบบด้วยกันได้มีการพูดคุยเกี่ยวกับ การป้อนชุดคำสั่งการทำงานให้กับอุปกรณ์เครือข่ายคอมพิวเตอร์ ระหว่าง CLI (Command Line Interface) และ GUI (Graphic User Interface) ว่าแบบไหนดีกว่ากัน หลายปีผ่านไปดูเหมือนว่า CLI จะเป็นฝ่ายชนะ (หรือเปล่า?) เพราะหันไปทางไหน ส่วนใหญ่ผู้ใช้งานที่เป็นผู้ดูแลระบบก็จะใช้ CLI เป็นหลัก ยิ่งผู้ใช้งานในระบบ Enterprise รายใหญ่ ๆ ในเมืองไทย ไม่ว่าจะเป็น Service Provider, Banking, Education, Healthcare ชัดเจนมากที่ใช้ CLI ในการทำงาน และการดูแลระบบเครือข่ายของตัวเอง
ก่อนอื่นมาขยายความกันก่อนครับว่า CLI กับ GUI มันต่างกันอย่างไร สำหรับคนที่อาจจะยังเป็นนักเรียน นักศึกษา หรือผู้สนใจในด้านเทค และเข้ามาอ่านบทความนี้นะครับ โดยทั้ง 2 อย่างเป็นรูปแบบของการติดตั้งอุปกรณ์เพื่อให้ใช้งานได้ตามความต้องการ
CLI คือ Command Line Interface เป็นรูปแบบการสั่งงานแบบ text mode ใครนึกไม่ออกให้นึกหน้าตาของ cmd บน windows ปัจจุบัน หรือระบบปฎิบัติการแบบ DOS สมัยก่อนไว้นะครับ โดยโปรแกรมจะรับ input จากคนที่ configure หรือพิมพ์ลงไปในแต่ละบรรทัด เพื่อไปสั่งให้ระบบหรืออุปกรณ์ของเราทำตามคำสั่งที่เราได้พิมพ์ลงไป
GUI คือ Graphic User Interface เป็นรูปแบบการสั่งงานแบบเริ่มมีหน้าตา มีสัญลักษณ์ มีสีสัน ใช้เม้าส์ในการคลิกเลือกเมนูต่าง ๆได้ ทำให้สะดวกกับผู้ใช้งานมากยิ่งขึ้น โดยเฉพาะคนที่ไม่รู้ชุดคำสั่งแบบ CLI ตัว GUI ก็จะรับคำสั่งจากผู้ใช้งาน เมื่อกดปุ่ม ok หรือ apply ก็สามารถสั่งให้ระบบหรืออุปกรณ์ทำตามสิ่งที่เราเลือกไปได้นั่นเอง
ผมรู้สึกว่าคนส่วนใหญ่เข้าใจว่า ถ้าอุปกรณ์ไหนมันไม่มี CLI พอเอาไปใช้แล้วไม่เวิร์ค หรือมันมีแค่ GUI เพียงอย่างเดียว ก็เหมาว่าอุปกรณ์นั้นไม่เวิร์ค ส่วนใหญ่ที่พบเห็นคือคนเหล่านั้นอาจจะไม่รู้ว่า GUI ของอุปกรณ์นั้น เมนูมันใช้งานอย่างไร ผมยกตัวอย่างเช่นทีวีในบ้านของเรา ในตอนนี้เป็น smart tv หมดแล้ว มันไม่มี CLI เลย แต่มีเมนูเป็นสัญลักษณ์ต่าง ๆ ให้เราใช้งานซึ่งเป็นแบบ GUI โดยเรากดเลือกช่องได้ ไม่ต้องไป key command สั่งให้มันเล่นช่อง 31 เลย หรือเลือกไปที่เมนู YouTube เพื่อรับชมช่องต่าง ๆ ผ่าน YouTube ได้ เป็นต้น
CLI จะเน้นให้ผู้ใช้งานสามารถ copy และ paste คำสั่งได้ง่ายหากทราบว่าชุดคำสั่งนั้นไว้ทำอะไร หรือสามารถนำมา Troubleshooting ที่แสดงผลได้อย่างรวดเร็ว ส่วน GUI จะเน้นไปที่ให้ผู้ใช้งานสามารถใช้งานได้ง่ายมากขึ้น โดยไม่จำเป็นต้องมีความรู้เกี่ยวกับชุดคำสั่งต่าง ๆ มาก่อนก็ได้
อ้าวเฮ้ยย… แล้วเราจะเลือกอะไรดี?
หน้างานจริงผู้ดูแลระบบเจอสถานการณ์หลายรูปแบบ หลายอุปกรณ์ และหลายยี่ห้อ ในทางปฏิบัติแทนที่จะต้อง “เลือก” ทางใดทางหนึ่ง ควรนำทางที่เหมาะสมกับลักษณะงานของเรามา “ผสมกันอย่างพอเหมาะ” โดยไม่ยึดติดกับความคิดใดความคิดหนึ่งมากนักว่าจะต้องปฏิบัติแบบนั้นหรือต้องทำแบบนี้เท่านั้นถึงจะเวิร์ค
คนที่ทำงานมาสักพัก จะเริ่มเข้าใจว่าบางครั้ง CLI ก็ไม่ได้แก้ปัญหาทุกอย่างได้ในโลก (ผมพูดแบบนี้ไม่ได้หมายความว่า GUI จะดีกว่านะครับ) โดยเฉพาะในองค์กรที่เริ่มมีอุปกรณ์เยอะมากขึ้นในระดับเป็นพัน ๆ อุปกรณ์ก็มักจะหา Solution ที่เป็น GUI มาช่วยบริหารจัดการ
ในโลกนี้ไม่มีตำรวจมาตรวจเราครับว่าเราจะเลือกใช้ CLI หรือ GUI แบบไหนที่มันถูกต้อง แต่การใช้งาน CLI หรือ GUI ที่ถูกต้องคือสิ่งที่มันเวิร์คสำหรับเราเองครับ