มีเหตุผลใดที่จะไม่ยอมรับซอฟต์แวร์ที่ส่งมอบเป็นเครื่องเสมือนจริงหรือไม่?


40

นี่เป็นคำถามเกี่ยวกับโลจิสติกส์ไม่ใช่คำถามทางเทคนิค

บริษัท ของฉันจ้างงานซอฟต์แวร์ฝังตัวบางงาน โดยเฉพาะเราได้จ่ายผู้รับเหมาเพื่อพัฒนาระบบฝังตัวสำหรับเราเนื่องจากเราไม่มีความรู้ภายในเพียงพอที่จะทำเอง (เรามีนักพัฒนาแอปพลิเคชันบนเดสก์ท็อปเท่านั้น)

ดังนั้นผู้รับเหมาได้เสร็จสิ้นซอฟต์แวร์และพวกเขาได้ถามว่าพวกเขาอาจส่งมอบมันให้กับเราในเครื่องเสมือนจริงหรือไม่ VM เป็นเครื่อง Windows 8 ที่ประกอบด้วย CodeWarrior IDE ที่กำหนดค่าไว้ล่วงหน้าพร้อมด้วยซอร์สโค้ดเป็นโครงการ CodeWarrior แนวคิดคือสิ่งนี้จะช่วยให้เราสามารถทำการเปลี่ยนแปลงรหัสภายใน VM ที่กำหนดค่าไว้แล้วเพื่อการพัฒนาโครงการนี้ต่อไป

มีข้อเสียใด ๆ ในการทำเช่นนี้แทนที่จะให้พวกเขาแนะนำเราเกี่ยวกับวิธีการกำหนดค่าเครื่องพัฒนาของเราเองเพื่อทำการเปลี่ยนแปลงรหัสในโครงการหรือไม่? ปัญหาเดียวที่ฉันสามารถคาดการณ์ได้คือ VM ทำงานช้าและใช้เวลานานในการสร้างโครงการใหม่เมื่อเราทำการเปลี่ยนแปลงรหัส แต่ในทางกลับกันฉันชอบความคิดที่จะได้รับสภาพแวดล้อมการพัฒนาระบบฝังตัวที่กำหนดค่าไว้ล่วงหน้าดังนั้นฉันจึงไม่จำเป็นต้องเพิ่ม IDE อีกตัวในเดสก์ท็อปแอปพลิเคชันเดสก์ท็อปของฉัน

ฉันไม่สามารถนึกถึงเหตุผลที่ดีว่าทำไมไม่ยอมรับ VM ที่ส่งมอบได้ แต่ฉันแค่ต้องการเรียกใช้โดยชุมชนนี้ในกรณีที่มีบางสิ่งที่ฉันขาดหายไป


24
ลิขสิทธิ์ซอฟต์แวร์ Windows บน VM เป็นสิ่งสำคัญ
Robert Harvey

6
@RobertHarvey Windows เวอร์ชันเต็มมีสิทธิ์การใช้งานสำหรับเครื่องเสมือนสองเครื่อง และหากคุณมีใบอนุญาตสำหรับ Windows Datacenter คุณสามารถเรียกใช้ VM ได้มากเท่าที่เซิร์ฟเวอร์นั้นสามารถรองรับการตรวจสอบเว็บไซต์การออกใบอนุญาตการจำลองเสมือนสำหรับข้อมูลเพิ่มเติม
Michael Brown

19
นั่นเป็นวิธีหนึ่งในการหลีกเลี่ยง "การทำงานบนเครื่องของฉัน" ปัญหา.
MichaelHouse

2
ฉันสงสัยว่ารหัสนั้นเป็นรถ แต่ทำงานบนเครื่องเดียวเท่านั้น นักพัฒนาไม่ทราบว่าพวกเขากำลังทำอะไรและไม่สามารถสร้างการตั้งค่าที่ทำให้มันทำงานได้ดังนั้นพวกเขาจึงสร้างดิสก์อิมเมจและวางไว้ใน VM
MGOwen

ใบอนุญาตใด ๆ ที่คุณมีครอบคลุม VM ที่บุคคลภายนอกมอบให้ (อาจไม่มีสิทธิ์ในการแจก Windows VM)
Burhan Ali

คำตอบ:


66

ปัญหาที่ฉันเห็นคือความรู้เกี่ยวกับการตั้งค่าและการกำหนดค่าเครื่องเสมือนไม่ได้อยู่ในบ้านและหากการกำหนดค่านั้นไม่สำคัญคุณจะต้องพึ่งพา บริษัท อื่นเมื่อต้องมีการกำหนดค่าซอฟต์แวร์สำหรับรุ่นที่แตกต่างกันของ ระบบปฏิบัติการ / ไลบรารี / ฮาร์ดแวร์ / อะไรก็ตาม การยอมรับ VM นั้นใช้ได้ดีในการเริ่มต้นและทำงานได้เร็วขึ้น แต่ฉันขอยืนยันว่าจะแนะนำวิธีกำหนดค่าระบบของคุณเองเพื่อการบำรุงรักษาในอนาคต


9
+1 ส่วนที่น่ากลัวคือปัญหา "ภาพสีทอง" ที่คุณอาจมีในหกปี
ไวแอตต์บาร์เน็ตต์

8
หากผู้รับเหมายังสามารถให้คำแนะนำการตั้งค่า (ซึ่งควรทดสอบ) ฉันจะไม่มีปัญหากับสิ่งนี้
Jamie

2
@Jamie: แต่ถ้าคุณทดสอบคู่มือการติดตั้งไม่จำเป็นต้องใช้ VM อีกต่อไป
mattnz

10
คำว่า "ขั้นตอนการเริ่มเย็น" หมายความว่าถ้าคุณเริ่มต้นจากเครื่องเย็น - คุณต้องทำอะไรเพื่อให้ได้ภาพที่กำลังทำงานอยู่ ฉันยังใส่ใจด้วยความจริงที่ว่าพวกเขาอาจทำการเปลี่ยนแปลงบางอย่างกับการกำหนดค่าซอฟต์แวร์ที่ติดตั้งที่ไม่ได้จัดทำเป็นเอกสารหรืออาจรวมถึงประตูหลังด้วย ฉันอยากรู้ทุกอย่างที่อยู่ในเครื่องนั้น
ipaul

ฉันเห็นด้วยกับคำตอบนี้ด้วย มันไม่เป็นไรสำหรับการสาธิตเกี่ยวกับสิ่งที่ทำ แต่ถ้าฉันกำลังจะยอมรับผลิตภัณฑ์นี้ฉันจะขอเอกสาร / เชลล์สคริปต์ซึ่งอธิบาย / ทำการตั้งค่าสภาพแวดล้อม
Tsvetomir Dimitrov

36

ฉันไม่เห็นการดึงกลับมามากมาย แต่ฉันจะบอกว่าการยอมรับ VM พร้อมด้วยซอร์สโค้ดในนั้นควรทำให้เกิดความหวาดระแวงเดียวกันกับการยอมรับการจัดส่งของเครื่องที่ติดตั้งซอฟต์แวร์และสภาพแวดล้อม dev ดังนั้นโปรดทำ แน่ใจว่าไม่มีอะไรเลวร้ายติดตั้งบน VM ก่อนที่คุณจะหมุนขึ้นในสภาพแวดล้อมที่สามารถเข้าถึงเครือข่ายภายในของคุณ

หาก / เมื่อคุณมี VM และทำงานอยู่คุณควรจะสามารถพับซอร์สโค้ดลงในที่เก็บรหัสปกติของคุณตามที่คุณ (อาจจะ) ทำด้วยการส่งไฟล์เก็บถาวรซอร์สโค้ดเท่านั้น


11
ไม่ใช่ +1 เดียวที่ฉันได้รับคำตอบสำหรับคำถามนี้ แต่เป็นคำตอบเดียวที่กล่าวถึงการนำรหัสไปใช้ในการควบคุมเวอร์ชันภายใน ฉันหวังว่า VM จะมีที่เก็บข้อมูลด้วยเช่นกัน แต่ฉันจะไม่วางเดิมพันและอาจมีรหัสรุ่นที่วางจำหน่ายเท่านั้น
Mike Catrill 'Cat Recall'

18

ฉันจะกังวลว่ามีบางสิ่งที่กำหนดค่าในเครื่องที่ไม่มีเอกสารทำซ้ำยากหรือไม่ยอมรับในการกำหนดค่ามาตรฐานของคุณ

Ymmv แต่ฉันไม่ได้พิจารณาการพัฒนาที่เกิดขึ้นจริงจนกว่าโครงการจะสามารถแสดงให้เห็นถึงการสร้างเครื่อง dev มาตรฐานและปรับใช้บนเซิร์ฟเวอร์สินค้า / ลูกค้า


1
+1 เพื่อให้แน่ใจว่า VM เป็นเพียงคุณสมบัติอำนวยความสะดวก ไม่เช่นนั้นคุณอาจจบลงด้วยบางสิ่งที่สร้างเฉพาะบน VM นั้นเพราะมันขึ้นอยู่กับคอมไพเลอร์หรือเวอร์ชันลิงเกอร์ที่ไม่มีเอกสารที่ได้รับการแก้ไขหรือตัวลิงก์หรือสิ่งที่น่ากลัวเท่า ๆ กัน
ptyx

10

ในบางโครงการของฉันฉันต้องต่อสู้อย่างหนักเพื่อให้ได้ซอฟต์แวร์มาทางนี้ มันเป็นรูปแบบที่ยอดเยี่ยม

ให้แน่ใจว่าคุณ:

  1. รับซอร์สโค้ดของแต่ละรีลีสที่คุณได้รับจากผู้รับเหมาและรวมเข้ากับระบบควบคุมซอร์สของคุณเอง
  2. รับเอกสารเกี่ยวกับการตั้งค่าสภาพแวดล้อมของ VM และสามารถทำซ้ำได้เอง เพิ่มเอกสารไปยังแหล่งควบคุมของคุณเช่นกัน

สิทธิประโยชน์เพิ่มเติม:

  1. หากคุณเก็บถาวรการเผยแพร่ในรูปแบบ VM (บันทึก. vhd หรืออะไรบางอย่าง) มันง่ายกว่ามากที่จะนำมันมาใช้งานและใช้งานได้หลายปีในบรรทัดแม้ว่าทีมดั้งเดิมจะแยกส่วนหรือหายไป
  2. มันง่ายกว่าที่จะรันเวอร์ชั่นที่ต่างกัน
  3. ด้วยการรวม VMWare บางอย่าง (อาจเป็นไปได้กับ HyperV ด้วย) คุณสามารถรวมเหล่านี้เข้ากับ CI build โดยอัตโนมัติ
  4. มันช่วยประหยัดเวลาของนักพัฒนาซอฟต์แวร์ (ในตอนแรก) เนื่องจากไม่มีการตั้งค่าสภาพแวดล้อมเพียงเล็กน้อยหรือไม่มีเลย

ฉันว่าไปเลย


อืมมม จุดที่ดี
MGOwen

1
เวลาในการตั้งค่าสภาพแวดล้อมนั้นถูกเมื่อเทียบกับประสิทธิภาพที่ลดลงเมื่อเวลาผ่านไป เรามี VM เช่นนี้ในบ้านเราผลิตรุ่นต่อ แต่สำหรับวันในการใช้งานออกวันวิธีการ VM ก็เฉื่อยชาเกินไปและคุณจะได้รับการใช้หน้าจอเดียว (ในกรณีส่วนใหญ่) มันเหมือนความตายมากกว่า 1,000 ครั้งเทียบกับการตัดหัวที่ดี
boatcoder

@ Mark0978 ฉันคิดว่า # 4 เป็นสถานการณ์ YMMV เราใช้เวลาสามสัปดาห์ในการย้อนกลับสร้างการตั้งค่าสภาพแวดล้อมจากเอกสารเนื่องจากเราไม่สามารถเข้าถึงการตั้งค่าเซิร์ฟเวอร์ดั้งเดิมได้อีกต่อไป (IIS 6+ ไลบรารีของบุคคลที่สาม / ตัวจัดการ http) . ประเด็นของฉันคือการมีตัวอย่างการทำงานมีประโยชน์ คำวิจารณ์ส่วนใหญ่ที่ฉันได้ยินมักจะเป็นเพราะโฮสต์ VM ไม่ดีพอ ฮ่าฮ่า - 'การตัดหัวที่สะอาดดี'
Zachary Yates

1
จริง ๆ แล้วฉันคิดว่ามันเป็นบทลงโทษของสภาพแวดล้อมการพัฒนา (ซึ่งอาจไม่ใช่สิ่งที่ถูกถาม) การทำให้นักพัฒนาช้าลงตลอดเวลาก็ไม่คุ้มค่า เซิร์ฟเวอร์ที่ใช้งานจริงทั้งหมดของเราทำงานบน VM ในสถานที่จัดการโฮสต์ แต่เป็นเซิร์ฟเวอร์ที่ไม่ใช่กราฟิกทั้งหมด
boatcoder

1
@ Mark0978 ฉันชอบวิธีที่ผู้ชายเขียน ฉันเดาว่าฉันยังไม่ได้ทำให้คะแนนของฉันชัดเจน # 4 ฉันไม่ได้เรียกร้องให้ทำงานกับ VM ที่ช้า เมื่อคุณมีงานที่ต้องทำในหนึ่งวันหรือสองวันและใช้เวลาสามสัปดาห์ในการตั้งค่าสภาพแวดล้อมเพียงใช้ vm คุณต้องรับรู้ถึงสถานการณ์ทั้งหมด
Zachary Yates

6

นั่นคือประเภทของสิ่งที่ควรทำในสัญญาเดิม พวกเขาอาจจะไปอยู่เหนือกว่า ฉันไม่คาดหวังว่าจะได้รับคำแนะนำการกำหนดค่าโดยไม่ต้องจ่ายเงินเพิ่มเพราะมันต้องใช้งานมากกว่านี้ในส่วนของพวกเขา

ฉันเคยอยู่ในสถานการณ์คล้ายกับคุณมาก่อน สภาพแวดล้อมการพัฒนาของเราคือ Windows / Cygwin และเราได้เยี่ยมชมผู้จำหน่ายเป็นเวลาหนึ่งสัปดาห์เพื่อที่จะได้รับรหัสติดต่อกับเรา พวกเขาใช้ลินุกซ์เป็นหลักดังนั้นเราจึงติดตั้งเครื่องเสมือนของลีนุกซ์สำหรับสัปดาห์ที่พวกเขาอยู่ที่นี่ มันทำงานได้ค่อนข้างดีในขณะที่พวกเขาอยู่ที่นี่และเรามีปัญหาเล็กน้อยในการย้ายไปยัง Cygwin หลังจากที่พวกเขาจากไป

ฟังดูเหมือนว่าคุณประเมินความสามารถของคุณเองต่ำเกินไป การตั้งค่า IDE นั้นไม่ยากแม้จะไม่มีตัวอย่างที่ใช้งานได้เพื่อเปรียบเทียบ ฉันจะกังวลมากขึ้นเกี่ยวกับการละเมิดข้อตกลงสิทธิ์การใช้งาน Windows และ CodeWarrior หากคุณได้รับอนุญาตอย่างถูกต้องคุณควรได้รับการสนับสนุนจาก Freescale สำหรับปัญหาการตั้งค่าใด ๆ


4

ดังที่FrustratedWithFormsDesigner กล่าวไว้คุณจำเป็นต้องรู้วิธีตั้งค่าเครื่องด้วยตัวเอง อย่างไรก็ตามฉันต้องการเพิ่มว่าคุณอาจขอให้พวกเขาให้สคริปต์ที่กำหนดค่าเครื่องให้คุณมากกว่า VM ทั้งหมด หากสคริปต์เขียนได้ดีพอคุณจะมีเอกสารที่เป็นปัจจุบันเกี่ยวกับวิธีการตั้งค่าเครื่อง (โดยการอ่านซอร์สโค้ด) รวมถึงสคริปต์จะทำเพื่อคุณประหยัดเวลาทุกครั้งที่คุณต้องการ เครื่องใหม่

เครื่องมือที่ผมทดลองกับความช่วยเหลือเป็นมาตรฐาน / การตั้งค่าอัตโนมัติเครื่อง Windows ใหม่เป็นchocolatey

Chocolatey NuGet เป็น Machine Package Manager ซึ่งค่อนข้างจะเหมาะกับการใช้งาน แต่สร้างโดยคำนึงถึง Windows

คุณสามารถสร้างแพ็คเกจ Chocolatey ของคุณเองได้อย่างง่ายดายจากนั้นสร้างสคริปต์ PowerShell ที่จะติดตั้งและกำหนดค่าทุกอย่างในทางปฏิบัติ


ฉันเข้าใจแล้วว่ามันมีเครื่องมือที่เรียกว่าVagrantซึ่งทำขึ้นเป็นพิเศษสำหรับงานนี้
M. Dudley

3

สภาพแวดล้อมที่ทำงานช้าไม่ควรมีปัญหาเพียงแค่โยนหน่วยความจำและซีพียูที่มัน โอเวอร์เฮดของ VM ที่ทันสมัยสำหรับงานประเภทเดสก์ท็อปเหมือนกับการพัฒนา SW ส่วนใหญ่มีขนาดเล็กมากมันถูกบันทึกไว้หลายครั้งโดยไม่จำเป็นต้องทำการตั้งค่าใด ๆ เมื่อเปลี่ยนฮาร์ดแวร์


3

ฉันคิดว่าสัญญาการพัฒนาจะกำหนดสิ่งที่ส่งมอบและภาระหน้าที่ของผู้รับเหมาให้คุณ

อย่างน้อยที่สุดฉันจะขอคำแนะนำและเอกสารเกี่ยวกับการทำงานของการกำหนดค่าและสิ่งที่สำคัญต่อจุดที่คุณสามารถสร้างโครงการใหม่สร้างและปรับใช้ด้วยตนเอง

ในแง่ของการมีบางสิ่งบางอย่างพร้อมไปฉันคิดว่า VM เป็นที่ยอมรับอย่างสมบูรณ์

ฉันจะผลักดันเอกสารอย่างแน่นอน ฉันจะลังเลถ้าไม่มีเพราะคุณมีความเข้าใจในระดับสูงเกี่ยวกับวิธีการทำงานที่คุณอาจมีต่อบาร์เรลในอนาคตโดยเฉพาะถ้าคุณต้องการสนับสนุนแอปพลิเคชันด้วยตัวเอง


น่าเสียดายที่ฉันไม่ได้อยู่ที่ บริษัท นี้เมื่อทำสัญญา ฉันไม่สามารถเข้าถึงได้เพราะฉันไม่ได้เป็นสมาชิกของการจัดการดังนั้นฉันไม่แน่ใจว่าสิ่งที่กำหนดไว้
CFL_Jeff

2

แม้แต่ระบบสมองกลฝังตัวที่พัฒนาขึ้นภายในก็สำคัญที่จะต้องมีเอกสารอธิบายวิธีการตั้งค่าสภาพแวดล้อมการสร้าง คุณต้องเก็บถาวรไบนารี / ไฟล์ติดตั้งเครื่องมือและไลบรารีที่จำเป็นในการตั้งค่าสภาพแวดล้อมการสร้าง


1

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

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

หากนักพัฒนาซอฟต์แวร์ต้องการส่งมอบซอฟต์แวร์ให้ฉันในรูปแบบนั้นฉันจะพบนักพัฒนาซอฟต์แวร์คนอื่น สิ่งนี้บอกฉันว่าพวกเขามีความเป็นมืออาชีพไม่พอที่จะเขียนสคริปต์การพึ่งพาของพวกเขาหรืออย่างน้อยก็บันทึกไว้

ฉันต้องการพวกเขาทั้งสอง:

  1. สร้างไฟล์ข้อความที่ได้รับการตรวจสอบในการควบคุมแหล่งที่มาด้วยรหัส มันแสดงรายการการพึ่งพาทั้งหมดที่คุณต้องการเพื่อให้โครงการทำงานและเรียกใช้ที่ไม่ได้เป็นส่วนหนึ่งของ repo การควบคุมแหล่งที่มา (เช่น CodeWarrior เครื่องมือบรรทัดคำสั่งใด ๆ หรือแอพภายนอกอื่น ๆ ที่คุณพึ่งพา)

  2. สคริปต์เพื่อติดตั้งการอ้างอิง เนื่องจากคุณใช้ Windows มันไม่ควรยากเกินกว่าจะสร้างสคริปต์ Chocolatey เพื่อตั้งค่าสภาพแวดล้อม dev ให้เป็นอัตโนมัติ การพึ่งพาใด ๆ ที่คุณมีซึ่งไม่ใช่แพ็คเกจช็อกโกแลตที่คุณสามารถทำได้ ตัวอย่างเช่นคุณสามารถติดตั้งเครื่องมือทางการค้าขนาดใหญ่เช่น Visual Studio และ SQL Server ผ่าน Chocolatey แพ็คเกจเหล่านั้นติดตั้งเวอร์ชั่นทดลองซึ่งมีคุณสมบัติครบถ้วนและสามารถปลดล็อคได้โดยป้อนรหัสใบอนุญาต ดังนั้นจึงเป็นไปได้ที่คุณสามารถทำสิ่งเดียวกันกับ CodeWarrior และการพึ่งพาอื่น ๆ ที่คุณมีสำหรับสภาพแวดล้อมการพัฒนาของคุณ

บางทีนักพัฒนาของคุณอาจจะเก่งพอที่คุณจะยังคงต้องการทำงานกับเขา / เธอ แต่ไม่เก่งเรื่องอุปกรณ์อัตโนมัตินี้ ไม่เป็นไรถ้าเป็นเช่นนั้นฉันจะทำส่วนอัตโนมัติด้วยตัวเองทำงานร่วมกับเขา / เธอเพื่อระบุการพึ่งพาและทำให้สคริปต์ทำงานหรือฉันจะได้รับนักพัฒนาคนอื่นที่เก่งด้านระบบอัตโนมัติเพื่อทำมัน . มันควรจะทำในช่วงเริ่มต้นของโครงการ สำเนาที่สะอาดและไร้เดียงสาของ Win8 VM จะยังคงมีประโยชน์เพราะคุณสามารถใช้มันเพื่อทดสอบสคริปต์ช็อคโกแลตของคุณ


0

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

อย่างไรก็ตามตามที่ผู้โพสต์คนอื่นสังเกตเห็นมีสองสิ่งที่ฉันจะทำ ขั้นแรกตรวจสอบให้แน่ใจว่าเมื่อติดตั้ง VM ให้วางลงบนเครื่องที่แยกจากเครือข่ายของคุณ คุณจะไม่ดาวน์โหลด EXE ที่ไม่รู้จักจากอินเทอร์เน็ตและติดตั้งลงในเครื่องของคุณ

ประการที่สองหากเป็นไปได้เก็บสำเนาที่แยกนี้ไว้เป็นข้อมูลอ้างอิงสำหรับการตั้งค่ารุ่นภายใน ฉันพูดได้ถ้าเป็นไปได้เพราะฉันไม่ทราบว่าแรงกดดันทางธุรกิจของคุณอยู่ภายใต้ ในที่สุดมันจะเป็นแผนกไอที / โปรแกรมเมอร์ของ บริษัท ที่จะรับผิดชอบการสมัครนี้ ดังนั้นยิ่งคุณรู้มากเท่าไหร่ก็ยิ่งดีเท่านั้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.