Cloud Portability ตามชื่อ คือการย้ายจากสภาพแวดล้อม Cloud หนึ่งไปอีกอัน เช่น จาก Microsoft Azure ไป AWS (Amazon Web Services) แต่กระบวนการย้าย (Migration) ขึ้นอยู่กับสถานการณ์เฉพาะและการใช้ Containers
Containers คืออะไร?
โดยพื้นฐาน Containers คือเอนทิตีที่ช่วยให้แอปพลิเคชันต่างๆ ย้ายจากสภาพแวดล้อมหนึ่งไปอีกอันได้ นักพัฒนาใช้ Containers ห่อหุ้มซอฟต์แวร์เป็นแพ็กเกจที่สามารถนำไปใช้บนแพลตฟอร์มอื่นที่รองรับมาตรฐาน Container เช่น Kubernetes หรือ Docker แต่ Containers ไม่ใช่ยาพิษสำเร็จรูป ไม่ว่าจะใช้ Containers หรือไม่ การวางแผนอย่างดีขณะสร้างแอปพลิเคชันสำคัญเพื่อลดปัญหาความเข้ากันได้กับสภาพแวดล้อมต่างๆ การใช้ Containers บรรจุแอปเมื่อย้ายสภาพแวดล้อม ไม่ได้หมายความว่าสามารถย้ายจาก Cloud หนึ่งไปอีก Cloud พร้อมความสามารถที่ต้องการทั้งหมดได้ Containers ช่วยห่อหุ้มแอปกับ OS แต่ไม่รับรองว่าจะพอร์ตแอปไปแพลตฟอร์มไหนก็ได้ ตัวอย่างเช่น ไม่คาดหวังว่า Container สำหรับ Linux จะทำงานกับ Windows และในทางกลับกัน
บริษัทต้องการแอปที่พกพาได้ และสามารถทำได้หากวางแผนดีตั้งแต่การออกแบบแอปพลิเคชัน สามารถพอร์ตแอปพลิเคชันใดๆ จากแพลตฟอร์มไปแพลตฟอร์มได้ แต่กระบวนการใช้เวลา ความท้าทายจริงคือการพอร์ตแอปในเวลาน้อยที่สุดและต้นทุนต่ำที่สุด นักพัฒนาควรเข้าใจว่าแม้ Containers จะช่วยให้ Cross-platform software compatibility ได้ แต่ไม่ควรพึ่งพา Containers เพียงอย่างเดียวสำหรับ Portability ควรจำว่า Containers เป็นเพียงลูกโซ่ในโซ่ใหญ่ Cloud Portability ไม่ใช่ขาว-ดำ แต่มุมมุมสีเทาที่กว้างขวาง คำตอบสำหรับคำถามใหญ่ "Cloud Portability เป็นไปได้ไหม?" คือ "ขึ้นอยู่กับ" ซึ่งหัวหน้า IT หลายคนเกลียด สิ่งสำคัญที่สุดคือกระบวนการนี้มีราคา ไม่แน่ใจว่าจะได้ฟังก์ชันอะไรหลัง Portability เพราะฟังก์ชันอาจแตกต่างกันไป เป็นการเสี่ยงโชค นอกจากนี้ แอปที่ใช้ฟีเจอร์ Cloud เฉพาะตัว (Inherent cloud features) มาก ยากต่อการพอร์ต
มีฟีเจอร์ที่ต้องการจาก Cloud platform, ภาษา, OS หรือเทคโนโลยีเฉพาะบางอย่าง อาจไม่สามารถย้ายบางส่วนหรือทั้งหมดระหว่าง Cloud Portability ได้ นักพัฒนาต้องระมัดระวังและวางแผนการออกแบบให้เหมาะสมเพื่อลดปัญหาเหล่านี้ เทคโนโลยีเปลี่ยนแปลงตลอดเวลา ดังนั้นโซลูชันสำหรับปัญหาเหล่านี้จึงไม่สามารถเป็นขาว-ดำได้