ใน Windows Azure: บทบาทของเว็บบทบาทของผู้ปฏิบัติงานและบทบาท VM คืออะไร


115

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

คำตอบ:


101

แก้ไข 3/3/2013 - อัปเดตเพื่ออ้างอิงจุดสิ้นสุด UDP เครื่องเสมือนและภาษาอื่น ๆ

แก้ไข 6/6/2556 - อัปเดตเพื่อให้สอดคล้องกับการยุติบทบาท VM และอัปเดตอิมเมจระบบปฏิบัติการพื้นฐานของบทบาทเว็บ / ผู้ปฏิบัติงานเป็น Windows Server 2012

ลิงค์ที่ดีโดย @Vladimir ชี้แจงเพิ่มเติม: บทบาททั้งหมด (เว็บ, ผู้ปฏิบัติงาน) เป็น Windows Server เป็นหลัก บทบาทของเว็บและคนงานเกือบจะเหมือนกัน:

  • บทบาทของเว็บคือ Windows Server VM ที่เปิดใช้งาน IIS
  • บทบาทของผู้ปฏิบัติงานคือ Windows Server VM ที่ปิดใช้งาน IIS (และคุณสามารถเปิดใช้งานได้ด้วยตนเอง)
  • บทบาท VM คืออิมเมจของ Windows Server 2008 ที่คุณสร้างขึ้นภายในเครื่องผ่าน Hyper-V และอัปโหลดไปยัง Azure (และตอนนี้ถูกยกเลิกและไม่สามารถใช้งานได้อีกต่อไป ณ วันที่ 31 พฤษภาคม 2013
  • Virtual Machines คืออิมเมจ Windows หรือ Linux ที่สร้างขึ้นใน Azure จัดเก็บเป็น vhd ในที่จัดเก็บข้อมูลของคุณเองและมีการปรับปรุงหลายอย่างผ่านบทบาท VM ตัวอย่างเช่นเนื่องจาก vhd อยู่ในบัญชีพื้นที่เก็บข้อมูลของคุณเองคุณสามารถสร้างเทมเพลตรูปภาพจาก vhd ของคุณคัดลอกไปยัง vhd ใหม่หรือแม้แต่อัปโหลดไปยังVM Depot (Linux เท่านั้น)

หากต้องการตอบคำถามของคุณเกี่ยวกับสิ่งที่ต้องทำกับบทบาทเหล่านี้: ชุดฝึกอบรมแพลตฟอร์ม (ดังที่ระบุไว้ด้านล่าง) จะให้แนวคิดและตัวอย่างที่ดีมากมาย แต่นี่คือกรณีการใช้งานที่ตรงไปตรงมา:

  • คุณสามารถรันโค้ดใดก็ได้ที่แสดงจุดสิ้นสุด tcp, http, https หรือ udp (เว็บแอปพลิเคชัน, บริการ SOAP / REST ฯลฯ ) คุณต้องคิดถึงวิธีการทำสิ่งต่าง ๆ แบบไร้สัญชาติ - หากคุณมีอินสแตนซ์ VM มากกว่าหนึ่งรายการที่ทำงานการรับส่งข้อมูลของผู้ใช้จะกระจายไปตามอินสแตนซ์เหล่านั้น ชุดการฝึกอบรมแพลตฟอร์มจะแสดงวิธีใช้ที่เก็บข้อมูลหรือแคชเพื่อจัดการกับสิ่งนี้
  • คุณสามารถรันโค้ดที่อยู่นอกคิวหรือตัวจับเวลา บางทีคุณอาจมีงานตามความต้องการเช่นการสร้างภาพขนาดย่อหรือการคำนวณตามข้อมูลที่ผู้ใช้ป้อน สิ่งเหล่านี้ไม่จำเป็นต้องมีปลายทางที่พร้อมใช้งานจากภายนอก คุณสามารถส่งคำขอของคุณไปยังคิวจากนั้นให้เรียกใช้งานซึ่งเพียงแค่ดึงข้อมูลออกจากคิวนี้ (และคุณสามารถปรับขนาดกระบวนการนี้ในหลายอินสแตนซ์โดยมีข้อความคิวที่ใช้โดยอินสแตนซ์ทั้งหมด)
  • คุณสามารถเรียกใช้. NET, Java, php, python, node, ruby ​​และอื่น ๆ คุณเพียงแค่ต้องแจกจ่ายรหัสรันไทม์ที่เหมาะสมพร้อมกับรหัสโครงการของคุณ ทุกภาษาสามารถเรียก REST ไปยัง Azure API ได้และหลายภาษา (รวมถึงภาษาที่กล่าวถึงข้างต้น) มี SDK ที่ดูแลเรื่องนี้ให้คุณ ทั้งหมด SDK ของภาษาที่นี่มีรหัสที่มาบน GitHub, ที่นี่
  • ด้วยบทบาท VM คุณสามารถติดตั้งและเรียกใช้ซอฟต์แวร์ที่มีการติดตั้งที่ซับซ้อน / ใช้เวลานานมากการติดตั้งที่ต้องมีการแทรกแซงด้วยตนเองและการติดตั้งที่ไม่สามารถทำงานอัตโนมัติได้อย่างน่าเชื่อถือ คุณต้องจัดการกับการบำรุงรักษาระบบปฏิบัติการในกรณีนี้ นอกเหนือจากบทบาท VM แล้วตอนนี้ยังมี Virtual Machines ที่ให้การสร้าง VM บนคลาวด์พร้อมกับการรองรับทั้ง Windows และ Linux ฉันขอแนะนำ Virtual Machines ผ่าน VM Role

ด้วยบทบาทเว็บและคนงานระบบปฏิบัติการและแพตช์ที่เกี่ยวข้องจะได้รับการดูแลสำหรับคุณ คุณสร้างส่วนประกอบของแอปโดยไม่ต้องจัดการ VM

ด้วยบทบาท VM คุณสามารถสร้างอิมเมจ Windows Server ที่สมบูรณ์เพิ่ม Azure hooks และพุช VM ทั้งหมดไปยังระบบคลาวด์ (จากนั้นรักษาอิมเมจ VM ตลอดเวลา)

ด้วยเครื่องเสมือนคุณเพียงแค่เลือกอิมเมจระบบปฏิบัติการจากแกลเลอรีซึ่งสร้างขึ้นสำหรับคุณและจัดเก็บเป็น vhd ในที่เก็บข้อมูลแบบหยด จากนั้นคุณ RDP / ssh และตั้งค่าตามที่คุณต้องการ

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

สำหรับการเริ่มต้นที่ดีให้ดูที่Platform Training Kitและเริ่มทำแบบฝึกหัด


คุณสามารถเปิดเผยจุดสิ้นสุด tcp บนบทบาทเว็บได้จริงหรือ? ตาม smarx พวกเขาทั้งหมดจะต้องเป็น HTTP: stackoverflow.com/questions/2926737/… สิ่งนี้ทำให้เกิดความแตกต่างเล็กน้อยระหว่างบทบาท
Richard Astbury

ฉันตอบคำถามของตัวเองแล้วคุณสามารถเปิดพอร์ต tcp ได้ แต่ไม่ผูกเข้ากับเว็บไซต์
Richard Astbury

2
ริชาร์ด - แม้ว่าจะเคยเป็นเช่นนั้นจุดสิ้นสุดสามารถเป็น tcp, http หรือ https ได้โดยไม่คำนึงถึงประเภทบทบาท ฉันสร้างแอปตัวอย่างซึ่งมีส่วนผสมของ tcp และ http ในขณะที่สาธิตการอัปเดต 25 ปลายทางต่อบทบาทใหม่เมื่อไม่กี่เดือนที่ผ่านมา - ดูที่นี่สำหรับบล็อกโพสต์ - davidmakogon.com/2011/05/…
David Makogon

ขออภัยฉันหมายถึงการสาธิต 25 จุดสิ้นสุดต่อการปรับใช้ และ ... เมื่อเห็นความคิดเห็นอื่น ๆ ของคุณฉันอาจตอบคำถามผิด :)
David Makogon

@DavidMakogon - บทบาทเว็บและบทบาทของผู้ปฏิบัติงานมีอะไรมาแทนที่ ฉันต้องการปรับใช้เว็บไซต์ด้วย PhantomJS ซึ่งต้องใช้ GDI + เว็บงานไม่รองรับ GDI + ทั้งหมด ฉันหวังว่าฉันจะใช้ Web Role ได้ อะไรมาแทนที่ Web Role? ฉันชอบแนวคิดของ VM ซึ่งได้รับการแก้ไขและดูแลโดย Azure ขอบคุณ!
Martin

30
  • บทบาทของเว็บคือเว็บแอปพลิเคชันที่โฮสต์ใน IIS
  • บทบาทของผู้ปฏิบัติงานเป็นกระบวนการที่สามารถทำงานบางอย่างได้ (เช่นบีบอัดรูปภาพที่อัปโหลดโดยอัตโนมัติทำสิ่งต่างๆเมื่อมีการเปลี่ยนแปลงในฐานข้อมูลของคุณรับข้อความใหม่จากคิวและกระบวนการคุณตั้งชื่อ)
  • บทบาท VM โฮสต์ VMs

10
จริงๆแล้ว Web Roles และ Worker Roles คือ VM
David Makogon

นี่เป็นคำตอบที่ง่ายกว่ามากและขออภัยพวกเขาไม่ใช่ VM ... คุณนึกภาพออกไหมว่าค่าใช้จ่ายสำหรับโซลูชันหลายระบบที่มีหลายบทบาทของผู้ปฏิบัติงานทำงานอยู่เบื้องหลังหากเป็น VM แยกกัน blogs.msdn.microsoft.com/silverlining/2012/06/27/…
Clarence

เพื่อให้มีบทบาทที่เฉพาะเจาะจงมากขึ้นของ Worker คือ VM ที่ไม่มี IIS
dejjub-AIS

21

ฉันเจอคำถาม / คำตอบ SO นี้เมื่อหลายวันก่อนและฉันพบว่าคำตอบอยู่เหนือหัวของฉัน (ฉันใหม่ที่ Azure และ Web) ฉันพบบทสรุปนี้ในพื้นฐาน Azure คืนนี้ซึ่งฉันคิดว่าเป็นภาพรวมระดับสูงที่ดีของความแตกต่างหลักระหว่างผู้ปฏิบัติงานและบทบาทของเว็บ:

ความแตกต่างที่สำคัญระหว่างสองอย่างนี้คืออินสแตนซ์ของบทบาทเว็บเรียกใช้ IIS ในขณะที่บทบาทของผู้ปฏิบัติงานไม่มี อย่างไรก็ตามทั้งสองได้รับการจัดการในลักษณะเดียวกันและเป็นเรื่องปกติที่แอปพลิเคชันจะใช้ทั้งสองอย่าง ตัวอย่างเช่นอินสแตนซ์บทบาทเว็บอาจยอมรับคำขอจากผู้ใช้จากนั้นส่งต่อไปยังอินสแตนซ์บทบาทของผู้ปฏิบัติงานเพื่อประมวลผล ในการปรับขนาดแอปพลิเคชันของคุณขึ้นหรือลดลงคุณสามารถขอให้ Windows Azure สร้างอินสแตนซ์ของบทบาทหรือปิดอินสแตนซ์ที่มีอยู่ได้มากขึ้น และคล้ายกับ Windows Azure Virtual Machines คุณจะถูกเรียกเก็บเงินเฉพาะเวลาที่อินสแตนซ์บทบาทของเว็บหรือผู้ปฏิบัติงานแต่ละรายการทำงาน

หากคุณยังใหม่ในการพัฒนา Azure ขอแนะนำให้อ่านบทความฉบับเต็มที่นี่: ข้อมูลเบื้องต้นเกี่ยวกับ Windows Azure

ฉันหวังว่านี่จะช่วยใครบางคนได้มากพอ ๆ กับที่มันช่วยเปิดหลอดไฟให้ฉัน


3

บทบาทของเว็บใน Windows Azure เป็นจุดประสงค์พิเศษและให้บริการเว็บเซิร์ฟเวอร์เฉพาะทาง Internet Information Services (IIS) ที่ใช้สำหรับโฮสต์แอปพลิเคชันเว็บส่วนหน้า คุณสามารถปรับใช้เว็บแอปพลิเคชันกับ Web Roles ได้อย่างรวดเร็วและง่ายดายจากนั้นปรับขนาดความสามารถในการประมวลผลของคุณขึ้นหรือลงตามความต้องการ

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