สัปดาห์ที่ 15 OS-level Virtualization และ Mini Project

จุดประสงค์การเรียนรู้

  1. อธิบายแนวคิด OS-level Virtualization และ Container ได้
  2. ใช้ Docker Image, Container และ Volume เบื้องต้นได้
  3. ส่งมอบและนำเสนอ Mini Project ที่สรุปความรู้ทั้งรายวิชาได้

เนื้อหา

Container

Container คือการจำลองสภาพแวดล้อมระดับระบบปฏิบัติการสำหรับรันแอปพลิเคชัน ทำให้โปรแกรมทำงานได้สม่ำเสมอระหว่างเครื่องพัฒนาและเครื่องใช้งาน

Docker

Docker ใช้สร้าง Image และรัน Container ผู้เรียนจะเข้าใจแนวคิด Image, Container, Volume และการกำหนดคำสั่งรันโปรแกรม

Deployment

การส่งมอบโปรแกรมควรมีขั้นตอน Build และ Run ที่ชัดเจน พร้อมเอกสารประกอบเพื่อให้ผู้อื่นรันซ้ำได้

Mini Project

ผู้เรียนนำเสนอผลงาน อธิบายปัญหา แนวทางออกแบบ โครงสร้างโค้ด การทดสอบ การใช้ Git และการรันด้วย Container

Workshop

Build และ Run Mini Project ด้วย Docker จากนั้นนำเสนอผลลัพธ์และสรุปองค์ความรู้ที่ใช้จากรายวิชา

รายละเอียดการเรียนรู้

ผู้เรียนใช้ Container เพื่อทำให้โปรแกรมรันได้สม่ำเสมอในสภาพแวดล้อมที่ควบคุมได้ Dockerfile หรือคำสั่ง build/run ต้องระบุ dependency และขั้นตอนเริ่มโปรแกรมให้ชัดเจน หากโปรแกรมมีข้อมูลถาวรควรเข้าใจบทบาทของ Volume

การนำเสนอ Mini Project ต้องแสดงทั้งผลลัพธ์และกระบวนการพัฒนา ได้แก่ ปัญหาที่เลือกแก้ การออกแบบ UML โครงสร้างโค้ด แนวคิด OOP หรือโครงสร้างขั้นสูงที่ใช้ การทดสอบ การจัดการ error การใช้ Git และวิธีรันด้วย Container

เกณฑ์ตรวจชิ้นงาน

  1. โปรแกรมทำงานตามโจทย์และรันซ้ำได้
  2. โครงสร้างโค้ดอ่านง่ายและแบ่งหน้าที่ชัดเจน
  3. มีการจัดการข้อผิดพลาดหรือทดสอบอย่างเหมาะสม
  4. มี repository และประวัติ commit ที่ตรวจสอบได้
  5. มีเอกสารวิธี build/run และสรุปองค์ความรู้ที่ใช้

แบบฝึกหัด

จัดทำ README ของ Mini Project ให้มีคำอธิบายระบบ วิธีติดตั้ง วิธีรันด้วย Docker และตัวอย่างผลลัพธ์

รูปแบบการนำเสนอเพิ่มเติมตามแม่แบบ

OS-level Virtualization คือการแยกสภาพแวดล้อมของโปรแกรมด้วย container เพื่อให้รันซ้ำได้ใกล้เคียงกันในเครื่องต่าง ๆ และส่งมอบ Mini Project ได้ชัดเจนขึ้น

%%{init: {'theme': 'base', 'themeVariables': {'background': '#282828','primaryColor': '#3c3836','primaryTextColor': '#fbf1c7','primaryBorderColor': '#fabd2f','lineColor': '#fe8019','secondaryColor': '#504945','tertiaryColor': '#665c54'}}}%%
flowchart LR
  A[Source Code
โค้ด] --> B[Dockerfile
คำสั่ง build] B --> C[Image
อิมเมจ] C --> D[Container
คอนเทนเนอร์] D --> E[Demo
สาธิตโครงงาน]

สมการประเมินความพร้อมส่งมอบ

D=pt×100%

ตัวอย่าง Dockerfile

# ใช้ image พื้นฐานสำหรับ C++
FROM gcc:latest

# กำหนดโฟลเดอร์ทำงานใน container
WORKDIR /app

# คัดลอก source code เข้า container
COPY . .

# build โปรแกรม
RUN g++ main.cpp -o app

# รันโปรแกรมเมื่อ container เริ่มทำงาน
CMD ["./app"]
รายการส่งมอบ รายละเอียด
Source Code โค้ด Mini Project
README วิธีติดตั้งและรัน
UML แบบออกแบบระบบ
Test Evidence หลักฐานการทดสอบ
Dockerfile วิธีสร้าง container

กลับรายวิชา