อยากจะพัฒนา Application ให้รองรับความยืดหยุ่นตาม Workload ของงาน และยังรองรับการใช้ทรัพยากรร่วมกันอีกด้วย ต้องทำอย่างไรดี ? 🤔
.
ในวันนี้แอดมินจะพาทุกคนมาทำความรู้จักกับ การพัฒนา Application ด้วยรูปแบบ Cloud Native จะเป็นอย่างไรนั้น ไปดูกันนน !!
.
อ้างอิงจาก Cloud Native Computing Foundation (CNCF) ได้เขียนไว้ว่า Cloud Native นั้นจะมีแนวคิดและเทคโนโลยี ที่จะช่วยให้เราสามารถสร้างและรันระบบโดยที่ Scale ได้ง่ายขึ้นและอีกทั้งรองรับ Environment ต่าง ๆ ได้ง่ายขึ้น ไม่ว่าจะเป็น Public, Private, Hybrid Cloud หรืออาจจะเป็น On-premise ก็ได้
.
ซึ่งแนวคิดนี้ทำให้
🔸 ระบบเป็นอิสระจากกัน (Loosely Coupled)
🔸 จัดการได้ง่าย (Manageble)
🔸 ดูการทำงานได้ (Observable)
🔸 Recovery จากความผิดพลาดต่าง ๆ ได้ (Resilient)
.
✨ Cloud Native คือ รูปแบบของการพัฒนา Application ให้รองรับการประมวลผลแบบ Cloud Computing เพื่อให้ Application นั้นมีความยืดหยุ่นตาม Workload ของงาน และยังรองรับการใช้ทรัพยากรร่วมกันอีกด้วย
.
คุณสมบัติหลักที่จำเป็นต้องมีของ Cloud Native มีอยู่ 3 อย่างด้วยกัน คือ
.
1. Application ต้องถูกออกแบบด้วยแนวคิดของ Microservice - เป็นแนวคิดในการแยกระบบงาน ออกมาเป็น Service ย่อย ๆ ลงมา ที่เป็นอิสระต่อกันให้ได้มากที่สุด แล้วค่อยแบ่งหน้าที่ให้แต่ละฝ่ายดูแลในแต่ละส่วน ทำให้สามารถพัฒนา Application แบบ Parallel เพื่อเพิ่มความเร็วในการพัฒนานั่นเอง
.
2. Application ต้องทำงานภายใต้เทคโนโลยี Container - เป็นการจำลองสภาพแวดล้อมการทำงานของ Application ที่ใช้ทรัพยากรน้อยกว่าการทำงานบน Virtual Machine เสียอีก มีการรองรับการใช้งานร่วมกับ Services อื่น ๆ อีกมากมาย
.
3. Application ต้องถูกพัฒนาด้วยแนวคิดแบบ DevOps - เป็นแนวคิดที่ครอบคลุมส่วนการทำงานหลัก ๆ ด้วยกัน เช่น การทำงานเป็นทีม (Culture), เครื่องมือที่ใช้ทำงาน (Technology), กระบวนการทำงาน (Process)
.
ซึ่งระบบของ Cloud Native นั้นจำเป็นต้องมีคุณสมบัติเหล่านี้ และประโยชน์ของ Cloud Native นั้นมี่อยู่หลายอย่างด้วยกันเช่น
.
🔹 ตัว Application นั้นใช้ทรัพยากรน้อยลงกว่าเดิม (เนื่องจากใช้ตัว Container)
🔹 ทำให้การพัฒนา Application นั้นทำได้รวดเร็วขึ้น
🔹 ลดความเสี่ยงที่จะทำให้ระบบล่มจากสาเหตุที่คาดเดาไม่ได้ (Resiliency)
🔹 รองรับความยืดหยุ่นในการจัดการ Workload (On Demand Workload)
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#cloudnative #BorntoDev
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「parallel computing」的推薦目錄:
- 關於parallel computing 在 BorntoDev Facebook 的最佳貼文
- 關於parallel computing 在 BorntoDev Facebook 的最佳貼文
- 關於parallel computing 在 BorntoDev Facebook 的最讚貼文
- 關於parallel computing 在 コバにゃんチャンネル Youtube 的最佳解答
- 關於parallel computing 在 大象中醫 Youtube 的最佳貼文
- 關於parallel computing 在 大象中醫 Youtube 的精選貼文
- 關於parallel computing 在 A curated list of awesome parallel computing resources - GitHub 的評價
- 關於parallel computing 在 Parallel computing and Julia - Stack Overflow 的評價
parallel computing 在 BorntoDev Facebook 的最佳貼文
✨ มาต่อกันที่ EP. 2 กับการทำ Parallel Computing ในรูปแบบของ Message Passing
.
👉 ซึ่งในโพสนี้เราจะมา พูดถึง Model อีกตัวหนึ่งที่เป็นหลักการของการใช้ Memory ในการทำ Parallel Computing ซึ่งเจ้าวิธีนี้เป็นหลักการที่ใช้สำหรับการทำ MPI นั่นเอง จะมีรูปแบบการทำงานอย่างไรนั้น ไปดูกันเลย !!
.
⭐ Message Passing คือ รูปแบบที่คอมพิวเตอร์ในแต่ละเครื่องนั้นมี Memory ที่แยกออกจากกัน จะช่วยป้องกันการเกิดปัญหาตัวแปรชนกัน ซึ่ง Model นี้ ต้องใช้การสื่อสารข้าม CPU เพื่อส่งข้อมูลแทน ในเมื่อต้องการเรียกใช้ตัวแปรข้ามเครื่องก็ต้องมีการ Send ข้อมูลตัวนั้น ๆ ไปให้อีกตัวหนึ่งแทน
.
👍 ข้อดี
🔸 CPU แต่ละอันมี Memory เป็นของตนเอง ไม่ต้องกลัวตัวแปรไปขัดแย้งกับ CPU อื่น ๆ
🔸 จะแก้ไขอะไรไม่ต้องกลัวไปกระทบกับ CPU อื่น ๆ
.
👎 ข้อเสีย
🔹 เนื่องจาก CPU นั้นไม่ได้ใช้ Memory ร่วมกัน จึงต้องใช้เวลาเพิ่มในการส่งข้อมูลไปกลับ ถ้าเทียบจาก Shared Memory ที่สามารถหยิบมาใช้งานได้เลย
.
💥 หากใครไม่ทัน EP แรก กดลิงค์นี้ไปอ่านได้เลย >> https://www.facebook.com/borntodev/photos/4212042818853979
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
parallel computing 在 BorntoDev Facebook 的最讚貼文
❓ เวลาเราเขียนโปรแกรมนึง ก็จะมีการใช้ตัวแปรเยอะแยะไปหมด ซึ่งตัวแปรก็จะถูกเก็บไว้ใน Memory หรือ RAM หมายความว่า..คอม 1 เครื่อง ใช้ Memory 1 ตัว
.
🔥 แต่ๆๆๆ!! ถ้าหากเรามีคอมเยอะกว่า 1 เครื่อง หรือการทำ Parallel ล่ะ จะจัดการ Memory ยังไงดี ??
.
คำตอบง่าย ๆ นั่นคือ การทำ Parallel Computing ยังไงล่ะ ซึ่งมันมีรายละเอียดและวิธีการยังไงบ้าง ไปหาคำตอบไปพร้อมกันโลดด !!
.
🌈 การทำ Parallel Computing นั่นเป็นสิ่งที่สำคัญมากเลย มันคือการบริหารการจัดการวิธีการเชื่อมต่อของ Memory นั่นเอง
.
ซึ่งการทำ Parallel Computing จะมี 2 รูปแบบด้วยกัน คือ Share Memory และ Message Passing ใน EP แรกเราจะมาพูดถึงรูปแบบ Share Memory กันก่อนนะ
.
🟢 Shared Memory คือ รูปแบบที่คอมพิวเตอร์ทุกเครื่องจะใช้ Memory เดียวกันทั้งหมด (ใช้ร่วมกัน)
.
สมมุติว่า CPU0 สร้างตัวแปร x = 1 เอาไว้ CPU1 และ CPU2 สามารถเข้ามาใช้งานตัวแปร x ที่ CPU0 สร้างไว้ได้ด้วย (จะเรียกใช้ แก้ไข ลบทิ้งก็ทำได้ เพราะอยู่ในที่เดียวกัน)
.
👍ข้อดี
🔹 CPU สามารถมองเห็น เรียกใช้งานและเข้าถึงตัวแปรอื่น ๆ ที่ CPU ตัวอื่นถือครองได้
🔹 CPU สื่อสารกันได้เร็วมาก เพราะใช้ Memory ร่วมกัน จึงไม่จำเป็นต้องส่งค่าข้ามไปมา
.
👎ข้อเสีย
🔸การที่ตัวแปรนั้นอยู่ที่เดียวกัน ใครก็สามารถหยิบจับใช้งานได้ ถ้าเกิดเหตุการ CPU 2 ตัวทำการเปลี่ยนแปลงค่าพร้อมกัน ตัวแปรก็แตกสิครับ!
.
จบไปกันแล้วกับรูปแบบแรก..
.
และใน EP หน้าเราจะมาแชร์การทำ Parallel Computing อีกรูปแบบนึงนั่นก็คือ..Message Passing นั่นเอง ฝากติดตามกันด้วยน้าาา 🥰
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
parallel computing 在 A curated list of awesome parallel computing resources - GitHub 的推薦與評價
A curated list of awesome parallel computing resources - GitHub - taskflow/awesome-parallel-computing: A curated list of awesome parallel computing ... ... <看更多>