TPA จับมือยกระดับค้าปลีกไทย สู่ยุคดิจิทัล ภายในงาน Go Tech Talk 2025
สมาคมโปรแกรมเมอร์ไทย ได้เข้าร่วมงาน Go Tech Talk: Retai […]
แวดวงนักพัฒนาซอฟท์แวร์คงได้ยินเรื่อง Microservice กันบ่อยๆ แล้ว Microservice มันคืออะไรนะ แล้วมันเกิดผลกระทบต่อโลกการพัฒนาอย่างไรบ้างละ
Microservice ในความเข้าใจของผมที่เกี่ยวข้องกับเรื่องการพัฒนาแอพพลิเคชั่น คือ กระบวนการสร้างแอพพลิเคชั่นขนาดเล็กที่สามารถทำงานได้ด้วยตัวเอง เมื่อแอพพลิเคชั่นหรือเซอร์วิสไม่สามารถให้บริการได้ ก็ไม่ส่งผลทำให้การทำงานของ Microservice อื่นๆพังไปด้วย ซึ่งแนวโน้มของการพัฒนาแอพลิเคชั่น มีแน้วโน้มจะมีขนาดเล็กลงเรื่อยๆ และมีแน้วโน้มพัฒนาแบบนี้ปริมาณมากขึ้นเรื่อยๆ ยกตัวอย่าง การทำแอพพลิเคชั่นระบบจองตั๋วประกอบไปด้วยโมดูลต่างๆ ดังนี้
โดยปกติแล้วเมื่อเราได้ Requirement มาให้พัฒนาระบบดังกล่าวเราก็พัฒนารวมๆให้เป็นแอพพลิเคชั่นเดียว แต่หลักการของไมโครเซอร์วิสนั้น ต้องพยายามออกแบบแยกฟังก์ชั่นการทำงานออกมาให้อิสระต่อกัน และมีขนาดเล็กลงมากที่สุดเพื่อให้เกิดความยืดหยุ่นในการบริหารจัดการได้ง่ายขึ้น 4 โมดูลที่กล่าวมา อาจจะแตกรายละเอียดให้เล็กลงและอิสระต่อได้อีก โดยมองกันเป็นคนละแอพพลิเคชั่นไปเลย ดังนี้
[img src=”/wp-content/uploads/2016/09/Microservice.png”]
Microservice ทำให้แอพเล็กลงเรื่อยๆ มีการบริหารจัดการที่เป็นอิสระมากขึ้น เมื่อเล็กมาก แต่ระบบใช้งานจริงมันใหญ่นะ Microservice ก็เหมือนคนหนึ่งคนมีความสามารถทำอะไรได้บ้าง แต่มนุษย์เราก็ต้องมีสังคมต้องพูดคุยกับคนอื่น เมื่อทำโครงการอะไรใหญ่ๆขึ้น ก็ต้องคุยกันร่วมมือกัน เมื่อ Microservice เกิดมากขึ้นเรื่อยๆ สิ่งที่เราต้องทำใน Microservice ก็คือทำให้ Service ของเราคุยกับชาวบ้านได้ แล้ววิธีคุยเราคุยกันได้ทางไหนบ้างละ ถ้าแบ่งวิธีการคุยกันก็แบ่งออกได้ 2 แบบคือ
การคุยกันของแอพพลิเคชั่นมีกันมานานแล้ว การคุยกันหรือแลกเปลี่ยนข้อมูลกันของแต่ละ Service แบบดังเดิมก็คือแบบ Batch เปรียบเทียบชีวิตคนก็คุยกันทีเดียวยาวๆเลย เช่น การอัพโหลดไฟล์ยอดขายของร้านสะดวกซื้อหลังเที่ยงคืนไปให้สำนักงานใหญ่ ลักษณะการส่งข้อมูลแบบนี้ส่วนใหญ่ก็จะทำเป็นไฟล์สักรูปแบบไปวางไว้ที่โฟลเดอร์หนึ่งแล้วก็นำเข้าฐานข้อมูล ไฟล์ที่นิยมก็ได้แก่ .txt, csv , xml , json ซึ่งการคุยท่านี้ของต่างระบบ ก็จะมีงานงอกขึ้นมาในเรื่องการทำ Data Mapping ซึ่งหลายคนน่าจะคุ้นเคย
[img src=”/wp-content/uploads/2016/09/Batch-1-1.png” class=”aligncenter”]
การแลกเปลี่ยนข้อมูลท่านี้ก็อารมณ์ประมาณว่าอยากรู้แล้วค่อยถาม ซึ่งเป็นการรับส่งข้อมูลปริมาณไม่มาก แต่อาจจะถี่ๆหรือรีลไทม์ ขึ้นอยู่กับแต่ละระบบ การใช้เทคโนโลยีในการแลกเปลี่ยนข้อมูลท่านี้ก็มีรูปแบบที่นิยม คือ การใช้เว็บเซอร์วิสอย่าง SOAP , Restful , Socket , หรือ Protocol ต่างๆ ซึ่งมีมากมาย
[img src=”/wp-content/uploads/2016/09/Transaction.png” class=”aligncenter”]
สิ่งที่เป็นผลพวงจากการเกิด Microservice ที่พบในชีวิตของผมและเพื่อนๆหลายๆคนแน่นอนก็คือ ยิ่งมีแอพมากขึ้น เราก็ต้องยิ่งต้องเพิ่มความรู้ เทคนิค วิธีการที่จะทำให้แอพพลิเคชั่น ที่มีหลากหลายแพลตฟอร์ม คุยกันได้
การทำให้แอพคุยกันได้ ก็ต้องรู้จักการทำ Data Integration ซึ่งจะยิ่งมีมากๆขึ้นๆ การมาเขียนโค้ดทำเรื่องพวกนี้ตลอดก็เสียเวลามาก ดังนั้นก็ลองเรียนเครื่องมือเหล่านี้กันดูนะ
http://www.datasciencecentral.com/profiles/blogs/10-open-source-etl-tools
ตัวที่นิยมในเมืองไทย ก็น่าจะเป็น SSIS กับ Pentaho