Security (ความปลอดภัย)
ไมโครเซอร์วิส ให้โอกาสเรามากขึ้นในการป้องกันแอปพลิเคชันของเราแบบเป็นชั้นๆ (defense in depth) ซึ่งจะนำไปสู่ระบบที่ปลอดภัยกว่า ในอีกด้านหนึ่ง มันมักมีพื้นที่โจมตี (attack surface) ที่ใหญ่กว่า ซึ่งอาจทำให้เราเสี่ยงต่อการโจมตีมากขึ้น! การรักษาสมดุลนี้เป็นเหตุผลว่าทำไมการมีความเข้าใจแบบองค์รวมเกี่ยวกับความปลอดภัยจึงสำคัญมาก ซึ่งเป็นสิ่งที่ผมแชร์ไว้ใน Chapter 11
ด้วยข้อมูลที่ไหลผ่านเครือข่ายมากขึ้น การพิจารณาการป้องกันข้อมูลระหว่างการส่ง (data in transit) จึงสำคัญมากขึ้น จำนวนชิ้นส่วนที่เคลื่อนไหวที่เพิ่มขึ้นยังหมายความว่า automation เป็นส่วนสำคัญของความปลอดภัยไมโครเซอร์วิสด้วย การจัดการ patch, certificate และ secret ด้วยกระบวนการที่ทำด้วยมือและมีโอกาสผิดพลาดสูง อาจทำให้คุณเสี่ยงต่อการถูกโจมตี ดังนั้นให้ใช้เครื่องมือที่รองรับ automation ได้ง่าย
JWT สามารถใช้เพื่อกระจายอำนาจ authorization logic ในแบบที่หลีกเลี่ยงความจำเป็นในการเดินทางไปกลับเพิ่มเติมได้ด้วย สิ่งนี้ช่วยป้องกันคุณจากปัญหาอย่าง confused deputy problem ในขณะเดียวกันก็มั่นใจว่าไมโครเซอร์วิสของคุณสามารถทำงานได้อย่างเป็นอิสระมากขึ้น
สุดท้าย คนจำนวนมากขึ้นเรื่อยๆ กำลังหันมาใช้แนวคิด zero-trust ด้วย zero trust คุณทำงานราวกับว่าระบบของคุณถูกเจาะไปแล้ว และคุณต้องสร้างไมโครเซอร์วิสของคุณให้สอดคล้องกับสิ่งนั้น มันอาจดูเป็นท่าทีที่หวาดระแวง แต่ผมมีความเห็นมากขึ้นเรื่อยๆ ว่าการยอมรับหลักการนี้สามารถทำให้มุมมองด้านความปลอดภัยของระบบคุณเรียบง่ายขึ้นได้จริงๆ