Microservices: กรอบงานโอเพ่นซอร์สและสถาปัตยกรรมซอฟต์แวร์

Microservices: สถาปัตยกรรมซอฟต์แวร์สมัยใหม่

Microservices: สถาปัตยกรรมซอฟต์แวร์สมัยใหม่

ต่อด้วย รูปแบบของวิวัฒนาการและการเปลี่ยนแปลงกระบวนทัศน์และวิธีการทำงาน เกิดขึ้นในด้านการพัฒนาซอฟต์แวร์ซึ่งเราเพิ่งได้สัมผัสในบทความที่ชื่อว่า "การพัฒนาซอฟต์แวร์: การทบทวนประวัติศาสตร์จนถึงปัจจุบัน", "การทำงานร่วมกันผ่านระบบคลาวด์: จะบรรลุได้อย่างไร" y "XaaS: Cloud Computing - ทุกอย่างเป็นบริการ"วันนี้เราจะมาพูดถึง ไมโครเซอร์วิส.

Microservices เป็นสถาปัตยกรรมซอฟต์แวร์ที่ทันสมัยไม่ใช่ API (Application Programming Interface) หรือเทคโนโลยีซึ่งสามารถติดตั้งและใช้งานได้ สถาปัตยกรรมซอฟต์แวร์หรือที่เรียกว่ารูปแบบซอฟต์แวร์นั้นต่างจากภาษาการเขียนโปรแกรมโดยสิ้นเชิงเนื่องจากเป็นเพียงการกำหนดวิธีการที่เทคโนโลยีควรใช้งานได้ไม่ใช่วิธีการนำไปใช้

Microservices: บทนำ

การแนะนำ

Microservices ถือได้ว่าเป็นวิวัฒนาการของ SOA Architecture (Service-Oriented Architecture)ซึ่งแนะนำให้นักพัฒนาสร้างแอปพลิเคชันแบบแยกส่วนมากขึ้นซึ่งใช้งานได้และเป็นอิสระโดยมีความจุสูงที่จะนำกลับมาใช้ใหม่ได้อย่างมีประสิทธิภาพเช่นเดียวกับที่ทำในลักษณะเดียวกันเมื่อเราปรับการใช้ฮาร์ดแวร์บางตัวให้เหมาะสมซึ่งจะขยายออกเท่านั้น สิ่งที่จำเป็นจริงๆแทนที่จะเปิดเผยศักยภาพทั้งหมดโดยไม่จำเป็น

สถาปัตยกรรมของไมโครเซอร์วิสในทางปฏิบัติยังไม่แพร่หลายเท่าในทางทฤษฎีกล่าวคือ เป็นที่รู้จักกันดีกว่าใช้. อย่างไรก็ตามทุกๆวันมีนักพัฒนาจำนวนมากนำมาใช้เนื่องจากเป็นรูปแบบการพัฒนาซอฟต์แวร์ที่ ปรับปรุงเวลาตัวแปรประสิทธิภาพและความเสถียรภายในโครงการที่นำไปใช้ นอกจากนี้ของเขา ความสามารถในการปรับขนาดที่เกี่ยวข้องอย่างง่าย ทำให้เหมาะอย่างยิ่งในการพัฒนาที่ความเข้ากันได้ข้ามแพลตฟอร์ม (เว็บ, มือถือ, อุปกรณ์สวมใส่, IoT) เป็นสิ่งสำคัญ

Microservices: Work Scheme

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

Microservices: มันคืออะไรและคืออะไร?

สถาปัตยกรรมซอฟต์แวร์ (รูปแบบ) คืออะไร?

เพื่อให้เข้าใจสถาปัตยกรรมซอฟต์แวร์ของ Microservices เป็นอย่างดีควรทราบข้อมูลเล็กน้อยเกี่ยวกับสถาปัตยกรรมซอฟต์แวร์ที่มีอยู่ซึ่งเป็นที่รู้จักกันดีทั้งหมด มีอยู่มากมายดังที่เห็นได้จากเว็บไซต์ของ oodesign หรือเพียงแค่ใน วิกิพีเดียแต่ตามหนังสือชื่อดังชื่อ "หนังสือออกแบบลวดลาย" (รูปแบบการออกแบบหนังสือ) รูปแบบที่มีอยู่สามารถแบ่งได้เป็น:

สร้างสรรค์

ผู้ที่จัดการกับวิธีการสร้างอินสแตนซ์อ็อบเจ็กต์และเป้าหมายคือการทำให้กระบวนการสร้างอินสแตนซ์เป็นนามธรรมและซ่อนรายละเอียดเกี่ยวกับวิธีสร้างหรือเริ่มต้นอ็อบเจ็กต์ ในคลาสนี้มีดังต่อไปนี้:

  • โรงงานนามธรรม
  • ผู้ก่อสร้าง
  • วิธีการโรงงาน
  • ต้นแบบ
  • ซิงเกิล

โครงสร้าง

สิ่งที่อธิบายว่าคลาสและอ็อบเจ็กต์ (แบบง่ายหรือแบบผสม) สามารถรวมเข้าด้วยกันเพื่อสร้างโครงสร้างขนาดใหญ่และให้ฟังก์ชันใหม่ได้อย่างไร ในคลาสนี้มีดังต่อไปนี้:

  • อะแดปเตอร์
  • สะพาน
  • ประกอบด้วย
  • มัณฑนากร
  • หน้าตึก
  • ฟลายเวท
  • หนังสือมอบฉันทะ

พฤติกรรม

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

  • ห่วงโซ่แห่งความรับผิดชอบ
  • คำสั่ง
  • ล่าม
  • ตัววนซ้ำ
  • สื่อกลาง
  • ของที่ระลึก
  • นักสังเกตการณ์
  • สถานะ
  • กลยุทธ์
  • วิธีเทมเพลต
  • ผู้มาเยือน

คนอื่น ๆ

รูปแบบการออกแบบก่อนหน้านี้แสดงสคีมาที่กำหนดโครงสร้างการออกแบบที่จะสร้างระบบซอฟต์แวร์ แต่เมื่อเราต้องการแสดงโครงร่างพื้นฐานขององค์กรและโครงสร้างสำหรับระบบซอฟต์แวร์ที่สร้างขึ้นเรามักจะพบการจำแนกประเภทอื่น ๆ นี้:

  • สถาปัตยกรรมกระดานชนวน
  • DAO: วัตถุการเข้าถึงข้อมูล
  • DTO: วัตถุการถ่ายโอนข้อมูล
  • EDA: สถาปัตยกรรมที่ขับเคลื่อนด้วยเหตุการณ์
  • การวิงวอนโดยปริยาย
  • วัตถุเปล่า
  • การเขียนโปรแกรมแบบเลเยอร์
  • Peer-to-peer
  • ท่อ
  • SOA: สถาปัตยกรรมเชิงบริการ
  • สามระดับ

นอกจากนี้ยังมี "โมเดลมุมมองคอนโทรลเลอร์" ซึ่งเป็นที่รู้จักและใช้กันดีและแบ่งออกเป็น:

  • รุ่น / ดู / คอนโทรลเลอร์
  • นางแบบ / ดู / ผู้นำเสนอ
  • Model / View / Presenter กับ Model Presenter
  • รุ่น / View / View-Model
  • Model / View / Presenter with Passive View
  • Model / View / Presenter พร้อม Supervisor Controller

กำลัง "Controller View Model" ซึ่งเป็นที่รู้จักและนำไปใช้งานได้ดีที่สุดในปัจจุบันไม่เพียงพอที่จะมอบฟังก์ชันที่จำเป็นให้กับแอปพลิเคชันขององค์กรและนี่คือหนึ่งในเหตุผลหลักว่าทำไม Microservices Architecture กำลังแทนที่ Model-View-Controller (MVC)

Microservices: ข้อดี

ข้อดีของสถาปัตยกรรมไมโครเซอร์วิส

เมื่อแพลตฟอร์มเว็บใช้ประโยชน์จากสถาปัตยกรรมไมโครเซอร์วิสโดยทั่วไปจะมีข้อดีดังต่อไปนี้:

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

Microservices: กรอบงาน

กรอบงานโอเพนซอร์ส

มีมากมาย ตัวเลือกโอเพ่นซอร์ส ที่นักพัฒนาซอฟต์แวร์สามารถใช้เพื่อพัฒนาโซลูชันที่เป็นส่วนหนึ่งของ Microservices Architectures โดยเฉพาะสำหรับ Java ซึ่งเป็นเทคโนโลยีที่ใช้กันอย่างแพร่หลายมีดังต่อไปนี้:

Microservices: เว็บ

ตัวอย่างเว็บที่มีสถาปัตยกรรมไมโครเซอร์วิส

ในบรรดาเว็บไซต์จำนวนมากที่ให้บริการแอพพลิเคชั่นขนาดใหญ่และได้นำ Microservices Architecture ไปใช้อย่างต่อเนื่องเพื่อปรับปรุงการบำรุงรักษาและความสามารถในการปรับขนาดของแพลตฟอร์มบริการและผลิตภัณฑ์ของพวกเขาทำให้ง่ายมีประสิทธิภาพและรวดเร็วเราสามารถพูดถึงสามหลักในอุตสาหกรรม พวกเขาคืออะไร:

  • อเมซอน
  • อีเบย์
  • Netflix

Microservices: บทสรุป

ข้อสรุป

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา