การสร้างระบบซอฟต์แวร์อัตโนมัติหมายถึงการตั้งค่าเซิร์ฟเวอร์หลายเครื่องด้วยการกำหนดค่า CPU หน่วยความจำ พื้นที่เก็บข้อมูล และทรัพยากรอื่นๆ เป็นเวลาหลายปีโดยเฉพาะ จากนั้นจึงจัดตั้งทีมผู้ดูแลระบบเพื่อจัดการระบบเหล่านี้ จากนั้นทีมพัฒนาก็เข้าควบคุมโครงสร้างพื้นฐานและเริ่มสร้างกระบวนการที่เชื่อมต่อกับเซิร์ฟเวอร์
กระบวนการนี้อาจซับซ้อนเนื่องจากเกี่ยวข้องกับกลุ่มต่างๆ มากมายที่ทำงานร่วมกันเพื่อบรรลุเป้าหมายร่วมกัน ความขัดแย้งทางผลประโยชน์เหล่านี้อาจเป็นปัญหาได้
นอกจากนี้ยังอาจมีค่าใช้จ่ายค่อนข้างสูง คุณต้องมีผู้ดูแลระบบในบัญชีเงินเดือนของคุณ เซิร์ฟเวอร์ที่ทำงานอย่างต่อเนื่องกินทรัพยากรแม้ว่าจะไม่ได้ใช้งานก็ตาม
เพื่อรักษาประสิทธิภาพที่ดีที่สุดเมื่อเวลาผ่านไป คุณต้องมีโซลูชันปรับขนาดอัตโนมัติที่ปรับขนาดทรัพยากรเซิร์ฟเวอร์โดยอัตโนมัติ
แพลตฟอร์มคลาวด์มีข้อดีอย่างหนึ่ง: ช่วยให้คุณสร้างสถาปัตยกรรมแบบ end-to-end โดยไม่จำเป็นต้องตั้งค่าคลัสเตอร์เซิร์ฟเวอร์ จากมุมมองการบริหาร ไม่มีอะไรต้องรักษา
นี่เป็นตัวเลือกที่คุ้มค่าสำหรับสตาร์ทอัพและขั้นตอนของผลิตภัณฑ์ขั้นต่ำ (MVP) ของโครงการ เป็นจุดเริ่มต้นที่ดี หากเป็นการยากที่จะคาดการณ์ปริมาณการผลิตในอนาคตและกิจกรรมของผู้ใช้ นี่คือจุดที่การกำหนดคอนฟิกของเซิร์ฟเวอร์คลัสเตอร์อาจเป็นเรื่องยาก
ระบบอัตโนมัติของกระบวนการผ่านบริการคลาวด์แบบไร้เซิร์ฟเวอร์คือสิ่งที่ทำให้สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์โดดเด่น เชื่อมต่อบริการและสร้างผลลัพธ์ที่คล้ายกับเซิร์ฟเวอร์คลัสเตอร์แบบดั้งเดิม
นี่คือตัวอย่างของการสร้างสถาปัตยกรรมดังกล่าวโดยใช้บริการของ AWS แบบเนทีฟเท่านั้น
การเลือกใช้บริการ Serverless Flow
ลองนึกภาพว่าคุณต้องการสร้างแพลตฟอร์มเพื่อรวบรวมข้อมูลและรูปภาพต่างๆ (หรือภาพถ่าย) ของโครงสร้างพื้นฐานของสินทรัพย์ที่เป็นรูปธรรม (ซึ่งอาจเป็นสินทรัพย์การผลิตหรือยูทิลิตี้ก็ได้)
- เพื่อให้สามารถวิเคราะห์ในอนาคตได้ จำเป็นต้องมีการนำเข้าข้อมูลก่อน
- หลังจากใช้กฎทางธุรกิจแล้ว โพรซีเดอร์ส่วนหลังจะบันทึกผลลัพธ์ที่คำนวณได้เป็นข้อมูลที่ทำให้เป็นมาตรฐานในฐานข้อมูลเชิงสัมพันธ์
- ส่วนหน้าของแอปพลิเคชันที่แสดงข้อมูลที่สะอาดเป็นมาตรฐานช่วยให้ผู้ใช้สามารถดูผลลัพธ์ได้
มาดูกันว่าสถาปัตยกรรมคอมโพเนนต์ใดที่อาจรวมถึง
บัคเก็ต AWS S3
ที่มา: aws.amazon.com
บัคเก็ต Amazon S3 เป็นวิธีที่ยอดเยี่ยมในการจัดเก็บไฟล์หรือรูปภาพในระบบคลาวด์ AWS ราคาของที่เก็บข้อมูลบนบัคเก็ต S3 นั้นต่ำมาก ยิ่งไปกว่านั้น การแนะนำนโยบายวงจรชีวิตของบัคเก็ต S3 ยังช่วยลดราคานี้ลงไปอีก
นโยบายดังกล่าวจะย้ายไฟล์ที่เก่ากว่าไปยังคลาสต่างๆ ของบัคเก็ต S3 โดยอัตโนมัติ เช่น การเข้าถึงไฟล์เก็บถาวรหรือไฟล์เก็บถาวรแบบลึก คลาสจะแตกต่างกันตามความเร็วของเวลาในการเข้าถึงเช่นกัน แต่สำหรับข้อมูลเก่า สิ่งนี้จะไม่มีปัญหาน้อยกว่า ส่วนใหญ่ทำหน้าที่ในการเข้าถึงข้อมูลที่เก็บถาวรในกรณีของเหตุการณ์เร่งด่วนมากกว่าความต้องการในการดำเนินงานมาตรฐาน
- คุณสามารถจัดระเบียบข้อมูลของคุณในโฟลเดอร์ย่อย
- คุณควรกำหนดข้อจำกัดสิทธิ์ที่เหมาะสม
- เพิ่มแท็กลงในบัคเก็ตเพื่อให้ง่ายต่อการระบุและสำหรับการใช้งานที่เป็นไปได้ภายในนโยบายบัคเก็ต S3 แบบไดนามิก
- ที่ฝากข้อมูลเป็นแบบไร้เซิร์ฟเวอร์โดยการออกแบบ เป็นเพียงพื้นที่เก็บข้อมูลของคุณ
บัคเก็ต S3 เป็นแบบไร้เซิร์ฟเวอร์โดยการออกแบบ เป็นเพียงพื้นที่เก็บข้อมูลของคุณ
ฐานข้อมูล AWS Athena
ที่มา: aws.amazon.com
Athena ทำให้การสร้างที่เก็บข้อมูลพื้นฐาน AWS เป็นเรื่องง่าย เป็นฐานข้อมูลที่ไม่มีเซิร์ฟเวอร์ที่ใช้บัคเก็ต S3 เพื่อจัดเก็บข้อมูล การจัดระเบียบข้อมูลจะได้รับการดูแลโดยรูปแบบไฟล์ที่มีโครงสร้าง เช่น ไฟล์ parquet หรือไฟล์ค่าที่คั่นด้วยเครื่องหมายจุลภาค (CSV) บัคเก็ต S3 เก็บไฟล์ และ Athena อ้างถึงไฟล์เหล่านี้เมื่อใดก็ตามที่กระบวนการเลือกข้อมูลจากฐานข้อมูล
โปรดทราบว่า Athena ไม่รองรับฟังก์ชันการทำงานต่างๆ ที่ถือว่าเป็นมาตรฐาน เช่น คำสั่งอัปเดต นี่คือเหตุผลที่คุณต้องมองว่า Athena เป็นตัวเลือกที่ง่ายมาก
อย่างไรก็ตาม รองรับการสร้างดัชนีและการแบ่งพาร์ติชัน นอกจากนี้ยังสามารถปรับขนาดในแนวนอนได้อย่างง่ายดาย เนื่องจากมีความซับซ้อนพอๆ กับการเพิ่มบัคเก็ตใหม่ให้กับโครงสร้างพื้นฐาน สำหรับการสร้าง Data Lake ที่เรียบง่ายแต่ใช้งานได้ดี ในกรณีส่วนใหญ่ก็ยังเพียงพอ
เพื่อประสิทธิภาพที่ดี การเลือกการออกแบบข้อมูลที่ดีที่สุดโดยมุ่งเน้นที่การใช้งานในอนาคตเป็นสิ่งสำคัญ สิ่งสำคัญคือต้องมีความชัดเจนมากเกี่ยวกับวิธีที่คุณต้องการเลือกข้อมูล การสร้างตารางใหม่ในภายหลังเมื่อมีตารางอยู่แล้วและเต็มไปด้วยข้อมูลจำนวนมากนั้นเป็นเรื่องยาก
Athena DB เป็นตัวเลือกที่ยอดเยี่ยมและเหมาะสมกับเป้าหมายของคุณ หากคุณกำลังมองหาการสร้างกลุ่มข้อมูลที่เรียบง่ายและไม่เปลี่ยนรูปแบบ ซึ่งง่ายต่อการปรับขนาดตามแนวนอนเมื่อเวลาผ่านไป
ฐานข้อมูล AWS Aurora
ที่มา: aws.amazon.com
Athena DB เก่งในการจัดเก็บข้อมูลที่ไม่ได้คัดสรร นี่คือวิธีที่คุณต้องการจัดเก็บเนื้อหาต้นฉบับของคุณเพื่อเพิ่มการใช้ซ้ำในอนาคตให้ได้มากที่สุด อย่างไรก็ตาม การให้ผลลัพธ์ที่เลือกไปยังแอปส่วนหน้าทำได้ช้า
หนึ่งในตัวเลือกที่ดีที่สุด ส่วนใหญ่มาจากมุมมองของการตั้งค่าที่ง่ายต่อการดำเนินการ คือฐานข้อมูล Aurora ที่ทำงานในโหมดไร้เซิร์ฟเวอร์
Aurora อยู่ไกลจากฐานข้อมูลพื้นฐาน เป็นหนึ่งในโซลูชันฐานข้อมูลเชิงสัมพันธ์แบบเนทีฟที่ทันสมัยที่สุดใน AWS นอกจากนี้ยังเป็นโซลูชันฐานข้อมูลเชิงสัมพันธ์แบบเนทีฟที่มีความซับซ้อนสูงซึ่งได้รับการปรับปรุงในทุก ๆ รุ่น
Aurora มีเอกลักษณ์เฉพาะตัวเนื่องจากสามารถทำงานในโหมดไร้เซิร์ฟเวอร์ได้ ทำให้โดดเด่นกว่าบริการเชิงสัมพันธ์อื่นๆ นี่คือวิธีการทำงานของโหมด:
- ในการกำหนดค่าคลัสเตอร์ Aurora ให้ใช้คอนโซล AWS คุณจะต้องระบุระดับ CPU และ RAM มาตรฐาน รวมถึงช่วงเวลาสูงสุดของฟังก์ชันปรับขนาดอัตโนมัติ ซึ่งจะส่งผลต่อประสิทธิภาพที่คลัสเตอร์ Aurora สามารถเพิ่มหรือลบแบบไดนามิกได้ AWS ตัดสินใจว่าจะขยายขนาดขึ้นหรือลงตามการใช้งานปัจจุบันของฐานข้อมูล
- ออโรราคลัสเตอร์จะไม่เริ่มทำงานเว้นแต่ผู้ใช้หรือกระบวนการจะเริ่มต้นคำขอจริง ตัวอย่างเช่น เมื่อการประมวลผลชุดตามกำหนดเวลาเริ่มต้นขึ้น หรือหากแอปพลิเคชันดำเนินการเรียก API ส่วนหลังเพื่อดึงข้อมูลจากฐานข้อมูล ฐานข้อมูลจะเปิดโดยอัตโนมัติและจะยังคงใช้งานได้ตามเวลาที่กำหนดไว้หลังจากกระบวนการร้องขอเสร็จสิ้น
- ออโรร่าคลัสเตอร์จะปิดโดยอัตโนมัติหากไม่มีงานในฐานข้อมูลอีกต่อไป
เพื่อเป็นการย้ำอีกครั้ง Aurora DB แบบไร้เซิร์ฟเวอร์จะทำงานเมื่อต้องทำงานจริงเท่านั้น คลัสเตอร์ที่เริ่มต้นโดยอัตโนมัติจะปิดอีกครั้งหากไม่ได้ประมวลผลงานใดๆ งานจริงคือสิ่งที่คุณจ่ายไม่ใช่เวลาว่างของคุณ
Aurora แบบไร้เซิร์ฟเวอร์ได้รับการจัดการอย่างสมบูรณ์โดย AWS และไม่จำเป็นต้องมีผู้ดูแลระบบ
AWS ขยาย
Amplify นำเสนอแพลตฟอร์มแบบไร้เซิร์ฟเวอร์สำหรับการปรับใช้แอปพลิเคชันส่วนหน้าอย่างรวดเร็วที่สร้างด้วยไลบรารี JavaScript และ React ไม่จำเป็นต้องตั้งค่าเซิร์ฟเวอร์คลัสเตอร์ ใช้คอนโซล AWS เพื่อปรับใช้โค้ดโดยตรง หรือใช้ไปป์ไลน์ DevOps อัตโนมัติ
คุณสามารถเรียกใช้ API แบ็คเอนด์เพื่อเข้าถึงข้อมูลที่จัดเก็บไว้ในฐานข้อมูล การโทรเหล่านี้ช่วยให้คุณเข้าถึงข้อมูลจริงในแอปพลิเคชันส่วนหน้า การปรับปรุงประสิทธิภาพหลักในส่วนหลังควรดำเนินการโดยทีม คุณยังสามารถลดความเป็นไปได้ของการตอบสนองที่ช้าใน UI หากคุณออกแบบคำสั่ง Select ที่มีประสิทธิภาพภายในการเรียก API โดยตรง
ฟังก์ชันขั้นตอนของ AWS
ที่มา: aws.amazon.com
แม้ว่าส่วนประกอบหลักทั้งหมดของระบบจะไร้เซิร์ฟเวอร์ แต่สิ่งนี้ไม่ได้รับประกันว่าสถาปัตยกรรมไร้เซิร์ฟเวอร์อย่างสมบูรณ์ สิ่งนี้เป็นไปได้ก็ต่อเมื่อกระบวนการแบทช์ทั้งหมดระหว่างคอมโพเนนต์เป็นแบบไร้เซิร์ฟเวอร์
ฟังก์ชัน AWS Step เป็นโซลูชันที่ดีที่สุดบน AWS Cloud รายการที่เชื่อมต่อของฟังก์ชัน AWS Lambda ประกอบด้วยฟังก์ชัน step ฟังก์ชันเหล่านี้สร้างแผนผังลำดับงานที่มีสถานะเริ่มต้นและสิ้นสุดที่ชัดเจน ฟังก์ชันแลมบ์ดาซึ่งมักจะเขียนด้วยภาษา Python หรือ Node JS เป็นบิตของโค้ดปฏิบัติการที่ประมวลผลสิ่งที่จำเป็น
ต่อไปนี้เป็นตัวอย่างของวิธีที่คุณอาจเรียกใช้ฟังก์ชันขั้นตอน:
การไหลแบบไร้เซิร์ฟเวอร์นี้มีข้อเสียเปรียบหลักประการหนึ่ง: แต่ละฟังก์ชันแลมบ์ดาสามารถทำงานได้สูงสุด 15 นาทีเท่านั้น ดังนั้น การแยกโฟลว์ออกเป็นฟังก์ชันแลมบ์ดาที่เล็กลงจะทำให้ปัญหานี้น้อยลง
เป็นไปได้ที่จะเรียกฟังก์ชันแลมบ์ดาหลายตัวพร้อมกันในขั้นตอนเดียว ซึ่งโดยทั่วไปหมายถึงการขนานขั้นตอนที่มีแลมบ์ดาหลายตัวทำงานพร้อมกัน เพียงรอให้การประมวลผลแลมบ์ดาแบบขนานทั้งหมดเสร็จสิ้นก่อนดำเนินการต่อ จากนั้น ดำเนินการประมวลผลแลมบ์ดาถัดไป
คำสุดท้าย
สถาปัตยกรรมแบบไร้เซิร์ฟเวอร์มอบโอกาสพิเศษในการสร้างแพลตฟอร์มคลาวด์ที่ครอบคลุมภูมิทัศน์ของระบบทั้งหมด แพลตฟอร์มนี้สามารถปรับขนาดได้ในแนวนอนและมีต้นทุนการดำเนินงานที่ต่ำในขณะดำเนินการดังกล่าว
เป็นโซลูชั่นที่สมบูรณ์แบบสำหรับโครงการที่มีงบประมาณจำกัด เป็นตัวเลือกการสำรวจที่ยอดเยี่ยม โดยทั่วไปแล้วเมื่อไม่มีใครรู้ความเป็นจริงของปริมาณการผลิต นี่เป็นสิ่งสำคัญอย่างยิ่งหลังจากที่คุณเริ่มต้นใช้งานผู้ใช้ทั้งหมดเรียบร้อยแล้ว เป็นไปได้ที่ทีมโครงการจะยังคงได้รับมุมมองโดยรวมว่าระบบทำงานอย่างไร คุณสามารถรับสิทธิประโยชน์ทั้งหมดนี้ได้และยังไม่จำเป็นต้องยอมรับการประนีประนอม
ความครอบคลุมนี้จะไม่เพียงพอสำหรับทุกกรณี โดยเฉพาะกรณีที่เกี่ยวข้องกับการใช้งาน CPU สูง อย่างไรก็ตาม AWS Cloud มีการพัฒนาอย่างต่อเนื่องในแง่ของกรณีการใช้งานแบบไร้เซิร์ฟเวอร์ โดยปกติแล้ว ควรทำการวิจัยอย่างถี่ถ้วนก่อนที่คุณจะตัดสินใจเลือกตัวเลือกแบบไร้เซิร์ฟเวอร์สำหรับโครงการ AWS Cloud ถัดไปของคุณ
ต่อไป ตรวจสอบฐานข้อมูลไร้เซิร์ฟเวอร์ที่ดีที่สุดสำหรับแอปพลิเคชันสมัยใหม่