เมื่อใดควรใช้สิ่งต่อไปนี้: Amazon EC2, Google App Engine, Microsoft Azure และ Salesforce.com


88

ฉันกำลังถามสิ่งนี้โดยทั่วไป ทั้งจากผู้ให้บริการระบบคลาวด์และมุมมองของผู้บริโภคระบบคลาวด์ นอกจากนี้คำถามไม่ได้มีไว้สำหรับแอปพลิเคชันประเภทใดประเภทหนึ่ง (อันที่จริงแล้วความตั้งใจคือการรู้ว่าแอปพลิเคชัน / โดเมนประเภทใดที่สามารถใช้กับแผ่นคลาวด์ -SaaS PaaS IaaS ได้)

ความเข้าใจของฉันจนถึงตอนนี้คือ:

IaaS: ฮาร์ดแวร์ดิบ (โปรเซสเซอร์, เครือข่าย, ที่เก็บข้อมูล)

PaaS: OS, โปรแกรมระบบ, กรอบการพัฒนา, เครื่องเสมือน

SaaS: แอปพลิเคชันซอฟต์แวร์

จะดีมากถ้า Stackoverflower สามารถแบ่งปันความเข้าใจและประสบการณ์เกี่ยวกับแนวคิดการประมวลผลแบบคลาวด์

แก้ไข: โอเคฉันจะพูดให้เจาะจงมากขึ้น -

Amazon EC2: คุณไม่สามารถควบคุมชั้นฮาร์ดแวร์ได้ แต่คุณสามารถเลือกอิมเมจ OS, Dev Framework (.NET, J2EE, LAMP) และ Application แล้ววางลงบนฮาร์ดแวร์ EC2 คุณสามารถปรับใช้แอปพลิเคชันที่สร้างด้วย Google App Engine หรือ Azure บน EC2 ได้หรือไม่

Google App Engine: คุณไม่สามารถควบคุมฮาร์ดแวร์และระบบปฏิบัติการและคุณจะได้รับ Dev Framework เฉพาะเพื่อสร้างแอปพลิเคชันของคุณ คุณสามารถใช้แอปพลิเคชัน Java หรือ Python ที่มีอยู่แล้วพอร์ตไปยัง GAE ได้หรือไม่? หรือในทางกลับกันแอปพลิเคชันที่สร้างบน GAE สามารถนำออกจาก GAE และย้ายไปยัง Application Server เช่น Websphere หรือ Weblogic ได้หรือไม่

Azure: คุณไม่สามารถควบคุมฮาร์ดแวร์และระบบปฏิบัติการและคุณได้รับ Dev Framework เฉพาะเพื่อสร้างแอปพลิเคชันของคุณ คุณสามารถใช้แอปพลิเคชัน. NET ที่มีอยู่แล้วพอร์ตไปยัง Azure ได้หรือไม่ หรือในทางกลับกันแอปพลิเคชันที่สร้างบน Azure สามารถนำออกจาก Azure และย้ายไปยัง Application Server เช่น Biztalk ได้หรือไม่


2
คุณลืมเซิร์ฟเวอร์ Rackspace Cloud / Rackspace Cloud
phoebus

2
เป็นคำถามที่น่าสนใจ แต่อาจจะเหมาะกับ ServerFault มากกว่าเนื่องจากมีวิธีกระจายแอปพลิเคชันเซิร์ฟเวอร์มากกว่าการเขียนเพียงอย่างเดียว บางทีคุณควรโพสต์โพสต์ที่สองบน SF ซึ่งอ้างถึงโพสต์นี้และเพิ่มลิงก์จากที่นี่ไปยัง Q ที่ SF ด้วยวิธีนี้คุณจะได้รับมุมมองที่ดีขึ้นจากทั้งโปรแกรมเมอร์และผู้ดูแลระบบ!
Wim ten Brink

@phoebus ยังCloudSigmaซึ่งเป็นที่รู้จักน้อยกว่า แต่สามารถปรับขนาดได้มาก
AwesomeUser

คำตอบ:


58

คำถามที่ดี! ดังที่คุณชี้ให้เห็นข้อเสนอที่แตกต่างกันนั้นเหมาะสมกับหมวดหมู่ต่างๆ:

EC2 เป็นโครงสร้างพื้นฐานในฐานะบริการ คุณจะได้รับอินสแตนซ์ VM และทำตามที่คุณต้องการ Rackspace Cloud Servers มีความเหมือนกันมากหรือน้อย

Azure, App Engine และ Salesforce ล้วนเป็นแพลตฟอร์มที่ให้บริการ พวกเขาเสนอการรวมในระดับที่แตกต่างกัน: Azure ช่วยให้คุณสามารถเรียกใช้บริการพื้นหลังได้ตามอำเภอใจในขณะที่ App Engine มุ่งเน้นไปที่งานตัวจัดการคำขอที่มีอายุสั้น (แม้ว่าจะรองรับคิวงานและงานที่กำหนดเวลาไว้ก็ตาม) ฉันไม่ค่อยคุ้นเคยกับข้อเสนอของ Salesforce มากนัก แต่ความเข้าใจของฉันก็คือมันคล้ายกับ App Engine ในบางประเด็นแม้ว่าจะมีความเชี่ยวชาญเฉพาะด้านมากกว่าก็ตาม

ข้อเสนอระบบคลาวด์ที่อยู่ภายใต้ Software as a Service คือทุกอย่างตั้งแต่โครงสร้างพื้นฐานเช่น Simple Storage Service ของ Amazon และ SimpleDB ไปจนถึงแอปพลิเคชันที่สมบูรณ์เช่น FogBugz ที่โฮสต์ของ Fog Creek และ StackExchange

กฎทั่วไปที่ดีคือยิ่งข้อเสนอระดับสูงคุณจะต้องทำงานน้อยลง แต่ยิ่งมีความเฉพาะเจาะจงมากขึ้น หากคุณต้องการตัวติดตามข้อผิดพลาดการใช้ FogBugz จะใช้งานได้น้อยที่สุด การสร้างหนึ่งที่ด้านบนของ App Engine หรือ Azure นั้นทำงานได้มากกว่า แต่ให้ความคล่องตัวมากกว่าในขณะที่การสร้างหนึ่งบน VMs ดิบเช่น EC2 นั้นทำงานได้มากกว่า (ในความเป็นจริงค่อนข้างมาก) แต่ให้ความคล่องตัวมากกว่า คำแนะนำทั่วไปของฉันคือเลือกแพลตฟอร์มระดับสูงสุดที่ยังตรงกับความต้องการของคุณและสร้างจากที่นั่น


สวัสดีตอนนี้เราใช้ Godaddy และ arvixe แต่เรากำลังวางแผนที่จะย้ายไปที่ Amazon AWS หรือ Azure ฉันอ่านจากที่นี่ว่าสำหรับ AWS จำเป็นต้องมีการเปลี่ยนแปลงโค้ดจำนวนมาก แต่ในฐานะเว็บไซต์ค้าปลีกออนไลน์เราไม่ต้องการให้มีการเปลี่ยนแปลงใด ๆ ใน code เพราะต้องใช้เวลาดังนั้นในสถานการณ์นี้จะเลือกโฮสติ้งอะไรดี?
Shaiju T

13

นี่เป็นคำถามที่ยอดเยี่ยม การเปิดเผยข้อมูลทั้งหมดเนื่องจากฉันเป็นส่วนหนึ่งของ Azure แต่มีประสบการณ์กับผู้อื่น

จุดที่ฉันคิดว่า Azure โดดเด่นกว่าที่อื่นคือการเปลี่ยนจากภายในองค์กรไปสู่ระบบคลาวด์อย่างรวดเร็ว ตัวอย่างเช่น -

  • SQL Azure - เปลี่ยนสตริงการเชื่อมต่ออัปโหลดฐานข้อมูลไปเลย!
  • คิวทำงานเหมือน MSMQ
  • Blobs เป็น blobs ที่ไม่ว่าคุณจะเขย่า แต่มันก็ขนาดอย่างบ้าคลั่ง
  • องค์ประกอบการจัดเก็บตารางเป็นสิ่งที่ดีเพราะให้ความสามารถในการปรับขนาดที่น่าทึ่งสำหรับคู่ชื่อ / ค่า - แต่ต้องใช้เวลาทำความคุ้นเคย
  • Service Bus เป็นบริการที่ฉันชอบเพราะช่วยให้มีกระบวนทัศน์การสื่อสารที่หลากหลาย จุดสิ้นสุด SB สองจุดแรกจะพยายามเชื่อมต่อซึ่งกันและกันหากไม่สามารถทำได้ก็จะกำหนดเส้นทางผ่านระบบคลาวด์ - ทำให้การประมวลผลที่ปลอดภัยและปรับขนาดได้เมื่อไฟร์วอลล์มีแนวโน้มที่จะเข้ามาขวางทาง
  • รายการควบคุมการเข้าถึง - โดยทั่วไปจะจับคู่กับบัสบริการเพื่อให้แน่ใจว่าคนที่ใช่จะเข้าถึงสิ่งที่ถูกต้อง - คิดว่า SAML ในระบบคลาวด์

หวังว่าจะช่วยได้!


8

ขณะนี้ประสบการณ์ระบบคลาวด์ของฉันถูก จำกัด ไว้ที่ Salesforce.com

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

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

แพลตฟอร์มไม่ได้แก้ปัญหาทุกอย่าง

ฉันจะไม่ใช้แพลตฟอร์มเพื่อจำลองสถานีพลังงานนิวเคลียร์หรือสร้างทวิตเตอร์ถัดไป


6

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

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

ดังนั้นในความคิดของฉันประโยชน์ที่ใหญ่ที่สุดมาจากข้อเสนอ SaaS และ PaaS คลาวด์ ควรไปที่ IaaS ก็ต่อเมื่อ PaaS หรือ SaaS มีข้อ จำกัด ที่ร้ายแรงสำหรับความต้องการเฉพาะ (เช่นฉันต้องติดตั้งชุดส่วนประกอบ COM ที่เป็นกรรมสิทธิ์และ Azure ไม่รองรับ)

SaaS เหมาะสำหรับการใช้งานประเภทสินค้าโภคภัณฑ์ที่ไม่ใช่สายธุรกิจหลักสำหรับลูกค้า แต่เป็นยูทิลิตี้มากกว่า นี่คือระบบการรับส่งข้อความทั่วไปพอร์ทัลที่เก็บเอกสารระบบอีเมล CRMs ERP การบัญชี ฯลฯ ฯลฯ ทำไมต้องสร้างวงล้อใหม่ด้วยการเขียนของคุณเองเมื่อคุณสามารถปรับแต่งผลิตภัณฑ์ของบุคคลที่สามที่ได้รับการสนับสนุนอย่างดี

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


3

นอกจากนี้เรายังสามารถใช้ประโยชน์จากประโยชน์ของ PaaS (สมมติว่า Google App Engine) และขยายในบางครั้งและหากจำเป็นโดยการดึงเครื่องเสมือนบางส่วนออกจากผู้ให้บริการ IaaS (เช่น Amazon) เพื่อทำการกระทืบจำนวนแล้วส่งกลับ ผลลัพธ์ไปยัง Google App Engine

ด้วยวิธีนี้คุณจะได้รับสิ่งที่ดีที่สุดจากทั้งสองโลก - คุณสามารถพัฒนาแอพที่ปรับขนาดได้อย่างรวดเร็วใน GAE จากนั้นคุณสามารถเพิ่มได้ตลอดเวลาโดยเรียกใช้โปรแกรมใด ๆ ที่คุณต้องการจากเครื่องเสมือนของ Amazon


ฟังดูน่าสนใจ @ joemar.ct! งานนั้นจะเป็นแบบไหน? ฉันจะหาบทเรียนเกี่ยวกับวิธีการนั้นได้ที่ไหน?
Andru


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.