ผลพวงของ Microservice Developer ต้องทำอะไรเพิ่ม

ผลพวงของ Microservice Developer ต้องทำอะไรเพิ่ม

แวดวงนักพัฒนาซอฟท์แวร์คงได้ยินเรื่อง Microservice กันบ่อยๆ แล้ว Microservice มันคืออะไรนะ แล้วมันเกิดผลกระทบต่อโลกการพัฒนาอย่างไรบ้างละ

Microservice คืออะไร ?

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

  • ระบบบริหารจัดการข้อมูลลูกค้า
  • ระบบจัดการตั๋ว
  • ระบบจัดการข้อมูลกิจกรรม
  • ระบบจัดการข้อมูลการขายตั๋ว
  • ระบบบัญชี

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

Microservice

ผลพวงจากการทำ Microservice

Microservice ทำให้แอพเล็กลงเรื่อยๆ มีการบริหารจัดการที่เป็นอิสระมากขึ้น เมื่อเล็กมาก แต่ระบบใช้งานจริงมันใหญ่นะ Microservice  ก็เหมือนคนหนึ่งคนมีความสามารถทำอะไรได้บ้าง แต่มนุษย์เราก็ต้องมีสังคมต้องพูดคุยกับคนอื่น เมื่อทำโครงการอะไรใหญ่ๆขึ้น ก็ต้องคุยกันร่วมมือกัน เมื่อ Microservice เกิดมากขึ้นเรื่อยๆ สิ่งที่เราต้องทำใน Microservice ก็คือทำให้ Service ของเราคุยกับชาวบ้านได้ แล้ววิธีคุยเราคุยกันได้ทางไหนบ้างละ ถ้าแบ่งวิธีการคุยกันก็แบ่งออกได้ 2 แบบคือ

  • สังสรรค์กันยาวเลย (Batch)

การคุยกันของแอพพลิเคชั่นมีกันมานานแล้ว การคุยกันหรือแลกเปลี่ยนข้อมูลกันของแต่ละ Service แบบดังเดิมก็คือแบบ Batch เปรียบเทียบชีวิตคนก็คุยกันทีเดียวยาวๆเลย เช่น การอัพโหลดไฟล์ยอดขายของร้านสะดวกซื้อหลังเที่ยงคืนไปให้สำนักงานใหญ่ ลักษณะการส่งข้อมูลแบบนี้ส่วนใหญ่ก็จะทำเป็นไฟล์สักรูปแบบไปวางไว้ที่โฟลเดอร์หนึ่งแล้วก็นำเข้าฐานข้อมูล ไฟล์ที่นิยมก็ได้แก่ .txt, csv , xml , json ซึ่งการคุยท่านี้ของต่างระบบ ก็จะมีงานงอกขึ้นมาในเรื่องการทำ Data Mapping ซึ่งหลายคนน่าจะคุ้นเคย

Batch-1-1

  • อยากรู้ค่อยถาม (Tranaction)

การแลกเปลี่ยนข้อมูลท่านี้ก็อารมณ์ประมาณว่าอยากรู้แล้วค่อยถาม ซึ่งเป็นการรับส่งข้อมูลปริมาณไม่มาก แต่อาจจะถี่ๆหรือรีลไทม์ ขึ้นอยู่กับแต่ละระบบ การใช้เทคโนโลยีในการแลกเปลี่ยนข้อมูลท่านี้ก็มีรูปแบบที่นิยม คือ การใช้เว็บเซอร์วิสอย่าง SOAP , Restful , Socket , หรือ Protocol ต่างๆ ซึ่งมีมากมาย

Transaction

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

การทำให้แอพคุยกันได้ ก็ต้องรู้จักการทำ Data Integration ซึ่งจะยิ่งมีมากๆขึ้นๆ การมาเขียนโค้ดทำเรื่องพวกนี้ตลอดก็เสียเวลามาก ดังนั้นก็ลองเรียนเครื่องมือเหล่านี้กันดูนะ

http://www.datasciencecentral.com/profiles/blogs/10-open-source-etl-tools

ตัวที่นิยมในเมืองไทย ก็น่าจะเป็น SSIS กับ Pentaho

วันนี้คุณเตรียมแอพให้คุยกะแอพอื่นได้รึยัง ?


Leave a comment!

You must be logged in to post a comment.