ทดสอบความเร็ว .NET Core 3.0 และฟีเจอร์ ReadyToRun (R2R) ในการทำ AWS Lambda

เมื่อ 23 กันยายน ที่ผ่านมา Microsoft ได้ฤกษ์เปิดตัว .NET Core 3.0 (3.0.100) ตัวเต็มให้ได้เล่นกัน หลังจากเป็นข่าวมาร่วมปี ซึ่งมาพร้อมกับฟีเจอร์และพัฒนา Performance จากเวอร์ชัน 2.2 เยอะพอสมควร ใครอยากรู้รายละเอียดสามารถไปตามอ่านได้ที่ Announcing .NET Core 3.0

ในครั้งนี้มีฟีเจอร์หนึ่งที่น่าสนใจคือ ReadyToRun (R2R) ซึ่งจริงๆ มันมาตั้งแต่ .NET Core 3 Preview 6 แล้ว นั่นคือทำให้ .NET Core application แปลงเป็น Native App ให้ไวขึ้น ส่งผลกับ startup time ที่ดีขึ้น (AOT – ahead-of-time) จากแต่เดิมซึ่งมีเพียงแค่ แปลง Byte Code เป็น Executable Code (JIT – Just in Time)

ผมนี่ตาลุกวาวทันที ไม่รอช้าที่จะหยิบมันมาทดสอบเป็น AWS Lambda เพื่อดูปัญหา Cold Start ว่าจะดีขึ้นได้มากน้อยแค่ไหน

Continue reading “ทดสอบความเร็ว .NET Core 3.0 และฟีเจอร์ ReadyToRun (R2R) ในการทำ AWS Lambda” »

9 วิธีจัดการกับ Cold Start ใน Serverless ให้ทำงานได้ไวที่สุด พร้อมตัวอย่าง

Update 6 Nov 2019 – ทาง AWS ได้แก้ไขปัญหาเรื่อง Cold Start เนื่องจากใช้ VPC แล้ว ซึ่งมีผลกับ Region ดังนี้ US West (N. California), EU (Ireland), EU (Paris), Asia Pacific (Mumbai), Asia Pacific (Seoul), Asia Pacific (Singapore), Asia Pacific (Sydney), and South America (San Paulo) – ที่มา aws.amazon.com

Update 27 Sep 2019 – ทาง AWS ได้แก้ไขปัญหาเรื่อง Cold Start เนื่องจากใช้ VPC แล้ว ซึ่งมีผลกับ Region ดังนี้ US East (Ohio), EU (Frankfurt), and Asia Pacific (Tokyo) – ที่มา aws.amazon.com

ผมเชื่อว่าใครก็ตามที่ตัดสินใจทำ Serverless มักเจอปัญหาที่แก้ไม่ตกคือ เรื่อง Cold Start ซึ่งบล็อกนี้ผมขอแชร์ประสบการณ์ที่ได้แก้ปัญหาทั้งหมด 9 วิธี เผื่อจะเป็นประโยชน์กันนะครับ (ขออ้างอิงจากผู้ให้บริการ AWS Lambda และภาษาที่ใช้พัฒนา C# .NET Core)

Continue reading “9 วิธีจัดการกับ Cold Start ใน Serverless ให้ทำงานได้ไวที่สุด พร้อมตัวอย่าง” »

จัดสรรทรัพยากร AWS Lambda อย่างไร ให้ราคาถูกและเร็วที่สุด

มาจัดเรื่อง AWS Lambda อีกสักโพสต์ (ก่อนที่ผมจะสลับไปเขียนเรื่องท่องเที่ยวบ้าง ฮ่าๆ) ซึ่งครั้งนี้ขอเขียนถึงวิธีการเลือกใช้ทรัพยากร อย่างเช่น Memory ให้เหมาะสมที่สุด ทำงานได้เร็วด้วย และต้องคุ้มค่ากับการจ่ายเงินด้วย

Continue reading “จัดสรรทรัพยากร AWS Lambda อย่างไร ให้ราคาถูกและเร็วที่สุด” »

ลองทำ Serverless WebSocket ด้วย AWS Lambda และ AWS API Gateway

อยากอัพเดทข้อมูลแบบ Real-time, แสดงข้อความ Notification ทันทีเมื่อมีการแจ้งข่าวให้สมาชิก, ทำระบบแชทที่พูดคุยกันได้ตลอดเวลา ฯลฯ ระบบแบบนี้เรามักทำเป็น WebSocket ซึ่งเป็น Protocol หนึ่งที่จะเปิดท่อ Connection ไว้เพื่อให้สื่อสารระหว่าง Server และ Client ได้ตลอดเวลา ซึ่งรายละเอียดมากกว่านี้ หรือทำอย่างไร ลองไปหาจาก Google ได้เยอะแยะ

แต่ที่ชวนฉงนคือ การทำงานของ Serverless เป็นแบบ เกิดขึ้น และทำ Process แล้วก็ดับไป มันจะทำเป็น WebSocket ได้ด้วยหรอ เพราะต้องเปิดแช่ Connection เพื่อสื่อสารกันตลอดเวลา

โพสต์นี้จะแชร์แนวคิดให้อ่านกัน ว่ามันเป็นไปได้จริงๆ ด้วยบริการของ Amazon API Gateway และ AWS Lambda ส่วนโค้ดตัวอย่าง ไปดูได้ที่ Github (aws-lambda-websocket) ผมได้เลย

Continue reading “ลองทำ Serverless WebSocket ด้วย AWS Lambda และ AWS API Gateway” »

มาทำความรู้จักกับ Serverless และ AWS Lambda ฉบับคนคิดจะใช้

ผมได้ยินกิตติศัพท์ AWS Lambda มานานมาก แต่ไม่เคยเข้าไปดูจริงจัง รู้แค่มันเป็น Service ที่มีไว้ทำ Process สักอย่าง เมื่อเสร็จแล้วก็ทำลายตัวเองทิ้งไป คิดเงินตามการเรียกใช้และระยะเวลาที่ใช้ทำงานเท่านั้น หรือที่เรียกกันว่า Serverless

ช่วงนี้ได้มีโอกาสเล่นมันแบบจริงๆจังๆ เลยรู้สึกว่า คนต้นคิดเรื่อง Serverless เจ๋งดี เลยอยากมาเขียนสรุปให้อ่านกันสำหรับคนที่ไม่รู้อะไรเลย ผ่านตัวอย่างบริการของ AWS Lambda

Continue reading “มาทำความรู้จักกับ Serverless และ AWS Lambda ฉบับคนคิดจะใช้” »