วันศุกร์ที่ 8 กรกฎาคม พ.ศ. 2559

Deploy to Production Environment แบบประหยัด

ก่อนอื่น ขอบอกก่อนนะครับว่าบล็อกนี้ #สาระ #GeekAlert

เรื่องของเรื่องคือ มีโอกาสได้ไปวางระบบคอมให้กับคลินิก จึงเป็นที่มาของบล็อกนี้ คือจะเน้นเล่าประสบการณ์ ว่าการเอาระบบ IT เข้าไปใช่ในคลินิกที่ไม่ใหญ่มากเนี่ยมันเป็นยังไงนะครับ



.

.
.
.
.
เชิญบพพบกับบล็อกไร้สาระในท้องเรื่องงงงงงงง 

Deploy to Production Environment แบบประหยัด


เพื่อการโฆษณาแบบเปิดเผย กรุณาเยี่ยมชม Facebook page คลินิกหมอศุภโชค เท้า ข้อเท้า พิษณุโลก โทร 086-3433714 นี่ไม่ได้ค่าโฆษณาอะไรเลยนะ



คลินิกหมอศุภโชค เท้า ข้อเท้า พิษณุโลก โทร 086-3433714



OK ละ เข้าเรื่องของ Developer ดีกว่า ขอเริ่มจาก



Requirement

เรื่องนี้ไม่ใหม่ แต่ก็ไม่ง่าย สำหรับเรื่องความต้องการของระบบ ก็ตามมาตรฐานชายไทยหน้าตาดี ที่ระบบจะยึดหลัก CAP (Consistency, Availability, Partition tolerance) [1] คือ


  • Consistency ข้อมูลจะต้องถูกต้อง ตรงกันเสมอ
  • Availability ระบบต้องพร้อมใช้งานได้แทบจะตลอด (ภายใต้เงื่อนไขที่เป็นไปได้สูงสุด)
  • Partition tolerance ระบบจะต้องแยกกันทำงานได้อิสระ (ภายใต้เงื่อนไขที่เป็นไปได้สูงสุด)

ทีนี้เราได้หลักการละ ต่อมาสิ่งที่ต้องพิจารณาคือสภาพแวดล้อมจริง ก็ต้องมี Software ที่เอาไว้จัดการคลินิกนะครับ ไม่มีไม่ได้นะ ต้องเอาแบบที่ทำงานได้แบบไม่ Standalone ด้วยนะ ระบบจะได้มีความคล่องตัว ซึ่งก็บังเอิญมากๆ ที่มีโปรแกรมที่ชื่อว่า "Win Clinic" ที่นี่ เค้าทำมาได้ OK เลยนะ แยกตัว Database มาให้เสร็จ ก็สำเร็จไป 1 ละ

ต่อไปก็จะเป็น เรื่อง Hardware ละ อันนี้นี่เรื่องใหญ่ ใหญ่ระดับ ดาวพฤหัสเลยครับ มันคือ Database Server เพราะต้องเลือกว่าจะวาง Database Server ไว้ที่ไหนดี ระหว่าง บน Cloud หรือ บน Local เพราะแต่ละอย่างก็มีข้อดีข้อเสียต่างกันไปประมาณนี้


... Cloud Local
Consistency ไม่ต่างกัน ไม่ต่างกัน
Availability เน็ทไม่มี ก็จบ Server พังก็จบ
Partition tolerance ไม่ต่างกัน ไม่ต่างกัน

จะเห็นได้ว่า ถ้าเราเลือก Cloud ปัญหาเราจะขึ้นกับ Internet เป็นหลัก แต่ถ้าเราเลือก Local เราจะเจอปัญหาเรื่อง Maintenance แทน ซึ่งก็นะคำตอบมันชัดอยู่แล้ว ว่าถ้า 
Internet เสีย ก็แค่โทรเรียกมาก็แก้ได้ แต่ถ้า Database Server เสีย เรียกใครดี? ชัดนะ

สรุปว่า เลือก Cloud เพราะดูแลง่ายกว่าครับ (การตัดสินใจแบบมีอคติ)

แล้วพวกเครื่องที่เป็น Client ล่ะ? เอาแบบไหนดี Notebook ดีมั้ย, All in One PC ดีมั้ย หรือเอาพวก mini PC ดีล่ะ อันนี้ก็เน้นเรื่อง Maintenance เหมือนเดิม เลือก mini PC ที่เป็นแบบ Stick [2] [3] เพราะมันง่าย ง่ายทั้งเรื่องพังแล้วหาอะไรมาทดแทนได้ง่าย ดูแลง่าย เคลื่อนย้ายง่าย แล้วก็ไม่มีปัญหาเรื่องระบบ Network มากนัก เพราะมันมีระบบ Wireless ในตัวอยู่แล้ว และที่สำคัญมี Windows ลิขสิทธิ์ติดตั้งมาด้วยเรียบร้อยแล้ว


มาถึงตรงนี้ก็คิดว่าครบแล้วนะ ไม่น่าจะมีปัญหาอะไรมากมาย แต่ๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆๆ ก็ต้องคิดเรื่อง Network ภายในก่อน เพราะถึงแม้ จะมี Wireless Modem Router ของ 3BB มาแล้ว แต่ถ้า Internet หายไป ก็... ใช้มือถือทำเป็น Hot Spot ใช้งานไปก่อน ก็รับได้นะ ไม่ซับซ้อน แล้วก็แก้ปัญหาได้ ที่เหลือก็จะเป็นเรื่องของ คลื่นความถี่ที่ 2.4GHz ละ อันนี้จะหนีไป 5GHz ก็ยังไม่ได้เพราะยังมีอุปกรณ์ที่วิ่งได้บน 2.4GHz เท่านั้นอยู่ ซึ่งก็ดันโชคดีที่ตึกเราเมพ 

"คลื่นในไม่ให้ออก คลื่นนอกไม่ให้เข้า" Yes!



Implementation

ต่อมาก็ลงมือทำ เราเริ่มต้นที่ Internet ก่อน จากการสำรวจและมโนเอา พบว่า ในแถบพิษณุโลก เราเลือก 3BB เพราะเมพสุดละ ถึงราคาจะไม่ถูกสุด และมีระบบ Internet Backup คือ DTAC 4G หรือ TRUEMOVE H 4G แล้วแต่กรณี


เราโชคดีที่เรามี Database Server พร้อมใช้อยู่แล้ว เป็น MySQL นะ เพราะโปรแกรม Win Clinic เค้าใช้ MySQL อันนี้เลือกไม่ได้ เพราะฉะนั้นก็เบาแรงในส่วนนี้ไปได้ เอาไฟล์ SQL ที่เค้าเตรียมให้มา Import เข้าไปก็พร้อมใช้งานได้เลย

ต่อมาก็จัดการ Install โปรแกรมจนครบก็ใช้งานได้
.
.
.
ตู้มมมมมมมมมมมมมมมมมมมมมมม
.
.
.
ทำไมโปรแกรมมันช้าจัง ก็นะเอา .Net3.5 เขียนมันก็คงเร็วได้ประมาณนี้ บวกกับ ตัว CPU ของเรามันก็แค่ Atom ตัวน้อยๆ จริงๆแล้วมันก็ช้าแค่โหลดครั้งแรกนี่แหละ หลังจากนี้ก็ไม่ใช้ละนะ












แล้วไงต่อ?


ก็เสร็จแล้วนี่นา เปิดคลินิกได้แล้ว เย่!




สรุปค่าใช้จ่าย

เน็ท เดือนละ 631 กับแรกเข้า 3500 เป็น 4200 ละกัน
คอม Intel Compute stick อันละ 5500 ซื้อเอง 1 ได้มาฟรี 1 อัน เป็น 5500
จอคอม 9900 + 4500 = 14400 
เม้าส์ กับคีบอร์ด ฟรี เพราะใช้ของเก่า


รวมเป็น 4200 + 5500 + 14400 = 24100

ก็แอบแพงนะ แต่ก็ถือได้ว่าไม่แพง งงมั้ย


----------------------- ตัดจบ -----------------------

 
อ้างอิง

[1] https://en.wikipedia.org/wiki/CAP_theorem
[2] http://www.thailand.intel.com/buy/th/th/product/desktop/intel-stk1aw32sc-507158
[3] http://www.thailand.intel.com/buy/th/th/product/desktop/intel-boxstck1a32wfc-472459

ไม่มีความคิดเห็น: