Cloud, Server, Edge: แอปของคุณอยู่ที่ไหนกันแน่

Cloud, Server, Edge: แอปของคุณอยู่ที่ไหนกันแน่

คุณบันทึกรูปไว้ แล้วมีคนพูดว่า "ไม่ต้องห่วง มันอยู่ใน cloud" คุณนึกภาพอะไร? ก้อนปุยขาว ๆ ลอยอยู่บนฟ้าน่ะหรือ? จากนั้นนักพัฒนาก็เอ่ยถึงการรันโค้ด "at the edge" ซึ่งฟังดูเสี่ยง เหมือนยืนอยู่ริมหน้าผา ไม่มีคำไหนเลยที่หมายความตามภาพในชีวิตประจำวัน และความไม่ตรงกันนั้นก่อความสับสนเล็ก ๆ ไม่รู้จบ

นี่คือความจริงที่ทำให้ใจสงบ คือ เบื้องหลังคำกวี ๆ ทั้งหมดนี้คือคอมพิวเตอร์ธรรมดาในอาคารธรรมดา เมื่อคุณรู้แบบนี้แล้ว คำศัพท์เรื่อง "ซอฟต์แวร์อยู่ที่ไหน" ก็จะเรียบง่ายและกระทั่งน่าเบื่อนิด ๆ ในแบบที่ดีที่สุด

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

คำตอบสั้น ๆ

Cloud คือแค่คอมพิวเตอร์ระยะไกลที่คนอื่นเป็นเจ้าของและดูแล เข้าถึงผ่านอินเทอร์เน็ต Server คือคอมพิวเตอร์ (หรือโปรแกรม) ที่มีหน้าที่ให้บริการผู้อื่น ไม่ว่าจะขนาดเท่าใด Edge หมายถึงอยู่ใกล้กับผู้ใช้หรืออุปกรณ์ในเชิงกายภาพ ไม่ใช่ "ล้ำสมัย" การ host บางสิ่งคือการรันมันบนคอมพิวเตอร์ให้ผู้อื่นเข้าถึงได้ On-premise หมายถึงการรันมันบนคอมพิวเตอร์ของคุณเอง ในอาคารของคุณเอง

คำสำคัญ

  • Cloud. คอมพิวเตอร์ระยะไกลในศูนย์ข้อมูล เช่าจากผู้ให้บริการ เข้าถึงผ่านอินเทอร์เน็ต "In the cloud" หมายถึง "บนคอมพิวเตอร์ของคนอื่นสักที่" ไม่ใช่บนท้องฟ้า
  • Server. คอมพิวเตอร์หรือโปรแกรมที่ให้บางสิ่งแก่ผู้อื่น เช่น หน้าเว็บ ไฟล์ ข้อมูล "Server" อธิบายบทบาท ไม่ใช่ขนาด กล่องเล็ก ๆ เป็น server ได้ เครื่องใหญ่ ๆ ก็เป็นได้
  • Edge. ใกล้กับที่ที่ผู้ใช้หรืออุปกรณ์อยู่ "Edge computing" หมายถึงการทำงานใกล้ผู้ใช้แทนที่จะอยู่ไกล เพื่อให้เร็วขึ้น
  • Host. ในฐานะกริยา คือการรันซอฟต์แวร์บนคอมพิวเตอร์เพื่อให้ผู้อื่นใช้ได้ ("we host the site") ในฐานะคำนาม คือคอมพิวเตอร์ที่ทำหน้าที่นั้น
  • On-premise / on-prem. การรันสิ่งต่าง ๆ บนคอมพิวเตอร์ที่คุณเป็นเจ้าของ ในสถานที่ของคุณเอง แทนที่จะเช่าจากผู้ให้บริการ cloud
  • Data center. อาคารที่เต็มไปด้วยคอมพิวเตอร์ คือความจริงเชิงกายภาพเบื้องหลัง "cloud" เวลาคุณได้ยินคำว่า "cloud" ให้นึกถึง data center คือ แถวของเครื่องจักร สายเคเบิลมากมาย พัดลมระบายความร้อนเสียงดัง
  • Client. บทบาทตรงข้ามกับ server client คือคอมพิวเตอร์หรือโปรแกรมที่ถาม ส่วน server คือฝ่ายที่ตอบ โทรศัพท์ของคุณมักเป็น client ส่วนสิ่งที่มันคุยด้วยมักเป็น server

กับดักที่พบบ่อย

กับดักที่พบบ่อยคือการนึกภาพ the cloud เป็นสถานที่พิเศษและมหัศจรรย์ มันไม่ใช่สถานที่เลยในความหมายเพ้อฝัน มันคือแถวของคอมพิวเตอร์ธรรมดาในอาคาร ที่บริษัทหนึ่งเป็นเจ้าของ และคุณจ่ายเงินเพื่อใช้ "Moving to the cloud" หมายความแค่ว่า "เช่าคอมพิวเตอร์ของคนอื่นแทนที่จะซื้อของตัวเอง" พอลอกความเป็นกวีออก คำนี้ก็เลิกลึกลับ

คำว่า server หลอกคนให้คิดว่ามันหมายถึง "เครื่องใหญ่ ๆ ทรงพลัง" แต่ไม่ใช่ Server คือบทบาท คือการให้บริการสิ่งต่าง ๆ แก่ผู้อื่น แล็ปท็อปของคุณทำหน้าที่เป็น server ได้ อุปกรณ์ชิ้นเล็ก ๆ เป็น server ได้ เวลาใครพูดว่า "the server is down" พวกเขาหมายถึงคอมพิวเตอร์หรือโปรแกรมที่ควรให้บริการคำขอได้หยุดทำงาน ไม่จำเป็นว่าเมนเฟรมยักษ์ตัวไหนพัง

Edge เจ้าเล่ห์ที่สุด ในภาษาพูดทั่วไป "edge" สื่อถึงอันตราย ("on the edge") หรือความล้ำสมัย ("cutting edge," "edgy") แต่ในโลกเทคโนโลยี "the edge" หมายถึงแค่ใกล้ผู้ใช้หรืออุปกรณ์ ทั้งในเชิงภูมิศาสตร์หรือในเครือข่าย "Running at the edge" หมายถึงการรันใกล้ ๆ คนเพื่อให้การตอบสนองรวดเร็ว มันไม่เกี่ยวกับความเสี่ยงหรือความทันสมัยเลย ถ้าคุณอ่าน "edge" เป็น "cutting edge" คุณจะอ่านทั้งประโยคผิด

Host ทำคนสะดุดเพราะความหมายแบบงานเลี้ยง เจ้าภาพต้อนรับแขก แต่ในโลกเทคโนโลยี การ host คือการรันซอฟต์แวร์ให้ผู้อื่นเข้าถึง "Who hosts your website?" หมายถึง "คอมพิวเตอร์ของใครรันมัน?" ไม่มีเรื่องการต้อนรับเข้ามาเกี่ยว

สุดท้าย on-premise (มักย่อเป็น "on-prem") หมายถึงแค่ "บนคอมพิวเตอร์ของคุณเอง ในอาคารของคุณเอง" บางคนมองมันเป็นของเก่าหรือถูกกว่าเสมอ แต่จริง ๆ มันเป็นแค่ทางเลือกเรื่องสถานที่ คือ เครื่องของคุณเทียบกับเครื่อง cloud ที่เช่ามา แต่ละแบบมีข้อแลกเปลี่ยน ไม่มีอันไหนดีกว่าโดยอัตโนมัติ

กับดักโบนัสเล็ก ๆ ซ่อนอยู่ใน data center วลีนี้ฟังดูล้ำและเป็นนามธรรม แต่จริง ๆ มันเป็นสิ่งที่เป็นรูปธรรมที่สุดในรายการทั้งหมดนี้ คือ อาคารจริง เต็มไปด้วยเครื่องจักรจริง ดึงไฟฟ้าจริง ทำให้เย็นด้วยพัดลมจริง เมื่อคุณจำได้ในที่สุดว่า "cloud" อยู่ในอาคารธรรมดาแบบนี้ ความลึกลับชิ้นสุดท้ายก็ไหลออกไปหมด

มันยังช่วยให้แยก server กับ client ออกจากกัน เพราะมันมีความหมายก็ต่อเมื่อเป็นคู่กัน ทั้งคู่อธิบายสองบทบาทในบทสนทนา คือ ฝ่ายหนึ่งถาม อีกฝ่ายตอบ ผู้ถามคือ client ผู้ตอบคือ server คอมพิวเตอร์เครื่องเดียวกันเล่นบทไหนก็ได้ขึ้นอยู่กับว่ามันกำลังทำอะไร ดังนั้นอย่านึกภาพ "server" เป็นเครื่องชนิดหนึ่งและ "client" เป็นอีกชนิด มันเป็นหน้าที่ ไม่ใช่สปีชีส์ เวลาคุณอ่าน "the client sends a request to the server" ทั้งหมดนั้นหมายถึงแค่ "โปรแกรมที่ถามส่งคำถามไปยังโปรแกรมที่ตอบ"

เอาทั้งกลุ่มมารวมกัน แผนที่ง่าย ๆ ก็ปรากฏ cloud คือคอมพิวเตอร์ที่เช่ามาใน data center ของใครสักคน server คือคอมพิวเตอร์ตัวใดก็ตามที่กำลังตอบ ไม่ว่าขนาดใด edge คือที่ใดก็ตามที่คอมพิวเตอร์เหล่านั้นตั้งอยู่ใกล้คุณ Hosting คือการลงมือรันซอฟต์แวร์ On-prem คือการเลือกอาคารของตัวเองมาทำสิ่งนั้น ไม่มีอะไรเกี่ยวกับเมฆ อันตราย หรือการต้อนรับ มีแค่ชุดคำตอบธรรมดาของคำถาม "คอมพิวเตอร์ของใคร และที่ไหน"

ตัวอย่างแบบธรรมชาติ vs แบบแปร่ง

แบบแปร่ง: My files are floating up in the cloud, somewhere in the sky.

แบบธรรมชาติ: My files are stored on the provider's remote computers, the cloud.

เป็นธรรมชาติน้อยกว่า: Running at the edge sounds dangerous and unstable.

ดีกว่า: Running at the edge means running close to users, so it's fast.

แบบแปร่ง: We need a server, so we bought the biggest, most powerful machine.

แบบธรรมชาติ: We need a server, even a small computer can serve our requests.

แบบแปร่ง: We host our app, so we welcome it warmly.

แบบธรรมชาติ: We host our app on a rented server, so users can reach it.

เป็นธรรมชาติน้อยกว่า: We went on-premise because the cloud is too modern for us.

ดีกว่า: We chose on-premise so we keep everything on our own computers.

ตารางสรุป

Word ฟังดูเหมือน จริง ๆ แล้วหมายถึง
cloud บางอย่างบนท้องฟ้า คอมพิวเตอร์ระยะไกลที่คนอื่นรัน
server เครื่องใหญ่ ๆ ทรงพลัง คอมพิวเตอร์หรือโปรแกรมในบทบาทให้บริการ ขนาดใดก็ได้
edge อันตราย; ทันสมัย ใกล้ผู้ใช้หรืออุปกรณ์
host เจ้าภาพที่ต้อนรับ การรันซอฟต์แวร์ให้ผู้อื่นเข้าถึง
on-premise ค่าตั้งต้นแบบโบราณ การรันบนคอมพิวเตอร์ของคุณเอง ในอาคารของคุณ

ฝึกสั้น ๆ

จริงหรือเท็จ? ตรวจคำตอบด้านล่าง

  1. "The cloud" is a special place in the sky.
  2. A server must be a very large machine.
  3. "At the edge" means close to the user.
  4. To host a website means to run it for others to reach.
  5. On-premise means renting computers from a cloud provider.

คำตอบ:

  1. เท็จ มันคือคอมพิวเตอร์ระยะไกลที่คนอื่นรัน
  2. เท็จ Server คือบทบาท ไม่ใช่ขนาด
  3. จริง
  4. จริง
  5. เท็จ On-premise หมายถึงคอมพิวเตอร์ของคุณเองในอาคารของคุณเอง

สิ่งที่ควรจำ

ทุกคำในกลุ่มนี้ซ่อนความจริงธรรมดาไว้หลังภาพที่ชัดเจน Cloud คือคอมพิวเตอร์ที่เช่ามา ไม่ใช่ท้องฟ้า Server คือบทบาท ไม่ใช่ขนาด Edge คือ "ใกล้คุณ" ไม่ใช่อันตรายหรือแฟชั่น การ host คือการรัน ไม่ใช่การต้อนรับ On-premise คือแค่ "เครื่องของคุณเอง" เวลาคุณอ่านงานเขียนเทคโนโลยีเรื่องว่าซอฟต์แวร์รันที่ไหน ให้แปลความเป็นกวีกลับเป็นคอมพิวเตอร์ธรรมดาในห้องธรรมดาในใจ แล้วทั้งเรื่องก็จะชัดเจน จัดการได้ และน่ากลัวน้อยลงมากกว่าที่การตลาดทำให้ฟังดู คราวหน้าเวลาใครพูดว่าไฟล์ของคุณอยู่ "ใน cloud" คุณก็ยิ้มได้ นึกถึง data center ที่ส่งเสียงหึ่ง ๆ อยู่สักที่ และรู้แน่ชัดว่าเขาหมายถึงอะไร นั่นคือ แค่คอมพิวเตอร์อีกเครื่องที่ทำงานของมัน ซึ่งบังเอิญเป็นของคนอื่น