จำนวนการดูหน้าเว็บรวม

วันเสาร์ที่ 16 ตุลาคม พ.ศ. 2553

Java in Cloud Computing

Java in Cloud Computing



Cloud Computing คือ การทำคอมพิวเตอร์เสมือน หรือ การจำลองคอมพิวเตอร์ขึ้นมาเพื่อใช้งานโดยที่เราไม่ต้องมาติดตั้งหรือจัดการระบบเอง เพียงแต่ร้องขอไปทางบริษัทที่ให้บริการ Cloud เราก็จะได้ กลุ่มระบบที่ทำงานได้ทันที่ ซึ่ง เราสามารถกำหนดแนวทางของ Cloud ได้เองว่า จะให้เป็นแบบไหน ซึ่งปัจจุบันนี้มีให้บริการ Cloud มากมาย ซึ่งรวมทั้ง มีบริษัท ทำการพัฒนา Application บน Cloud ซึ่ง Java ก็เป็นอีกทางเลือกหนึ่งที่มีการพัฒนาเพื่อใช้งานใน Cloud ใน Blog นี้ จะพูดถึงแนวทางในการพัฒนา Java เพื่อ ใช้ใน Cloud

สามารถไปอ่านบทความที่เกี่ยวกับ Cloud Computing เพิ่มเติมได้ที่ Cloud Computing

ผู้ให้บริการ Cloud
 
Amazon EC2 , เป็นระบบคอมพิวเตอร์เสมือนที่ให้คุณสามารถติดตั้งสิ่งที่คุณต้องการ ในระบบเสมือนจริงของคุณ EC2 ช่วยให้คุณสามารถควบคุมการทำงานต่างๆได้อย่างมากมาย แต่คุณยังต้องติดตั้ง OS, Web Server, Web หรือ Database ต้องทำการติดตั้งสิ่งเหล่านี้เพื่อใช้ในการทำ Application หรือ โปรแกรมต่าง  โดยที่ เราสามารถจัดการทุกอย่างได้ด้วยตัวเอง  ใน VM (Virtual Machine) นี้จะมีความยืดหยุ่นมากพร้อมกับความเสี่ยงในการจัดการ ซึ่ง Amazon EC2 เหมาะที่สุดสำหรับ การนำไปใช้ในการพัฒนา Java ใน Cloud

ผมเชื่อว่า Sun เป็นไปได้ในการแข่งขันนี้ เนื่องจากเว็บไซต์ของพวกเขา  Grid Compute Utility Network.com ซึ่งมีข้อมความที่กล่าวว่า" Network.com เป็นตัวเลือกใหม่ที่น่าสนใจ ซึ่งเรายังไม่พร้อมที่จะอวดสิ่งที่เราทำ ซึ่งเรากำลังดำเนินการใน เพียงแต่ ขอให้เพียงคุณติดต่อเรามาเรา" มันทำให้รู้สึกว่า Sun พร้อมที่จะลงแข่งขันใน Cloud Computingเพราะพวกเขามีทั้งฮาร์ดแวร์ของพวกเขาเอง รวมทั้ง Solaris OS, พวกเขามี Java และพวกเขาก็ได้ MySQL มาร่วมในการพัฒนาเมื่อเร็ว ๆ นี้  ซึ่งทำให้น่าสนใจเป็นอย่างมาก

ด้วย Google App Engine  คุณไม่ได้มีเครื่องเสมือน และ คุณจะไม่รับผิดชอบต่อการติดตั้ง และ บริหารจัดการซอฟท์แวร์ ฐานข้อมูล ระบบปฏิบัติการ ตอนนี้คุณจะ ถูกจำกัด โดยการใช้ Python ในรหัส app และคุณจำเป็นต้องใช้ DataStore เพื่อให้ได้ ในการใส่ข้อมูล คุณมีความรับผิดชอบในการพัฒนาและการปรับใช้โปรแกรมประยุกต์ที่คุณต้องการเท่านั้น นอกจากนี้คุณยังถูกเข้าถึงระบบได้ด้วยการ Search ผ่าน Google, Gmail และอื่น ๆ และไม่มี OS, Server, การใช้ Database ก็มีข้อเสียของการถูกจำกัด เพราะ Google ใช้ได้เพียง Python และ Datastore และในปัจจุบัน มันไม่มีสนับสนุนของ Java แต่พวกเขาอาจะทำการสนับสนุนภาษามากขึ้นในอนาคต  Google น่าจะเป็นที่สนใจมากขึ้นใน Python กว่า Java ซึ่ง Sun ยังหันมาสนใจใน Python โดยมีการทำการจ้างสองนักพัฒนาหลักของ Python ในพัฒนาการทำงานร่วมกับ Jython ซึ่งช่วยให้คุณสามารถเรียกใช้ Python บน JVMได้ ซึ่งเราหวังว่า Google จะนำ Java มาเพื่อเป็นตัวเลือก App Engine หรือ ไม่อย่างน้อยก็ Jython

ผู้ให้บริการ PaaS สำหรับ Java

Stax  คือ การเริ่มต้นใหม่ที่มีการเปิดตัวในรุ่นเบต้า เพื่อบอกถึงนักพัฒนาว่า Stax นี้ให้ความสำคัญกับการพัฒนาโปรแกรมภาษาจาวา มันเป็น PaaS สำหรับ Java โดยใช้การสนับสนุนจาก Amazon EC2 เป็นโครงสร้างพื้นฐาน ซึ่งคิดว่ามันเหมือน Google App Engine สำหรับ Java กับฐานข้อมูล MySQL ทำให้การพัฒนาภาษา Java , การใช้งาน มีการเพิ่มขึ้นอย่างรวดเร็ว และคุณยังสามารทำการพัฒนาโดยประยุกต์ใช้ภายใต้โครงสร้างพื้นฐานของ Amazon โดยที่ไม่จำเป็น ต้องอยู่ภายใต้ โครงสร้างของ Stax เสมอไป Stax มีการใช้งานที่ง่าย และ มีการเปิดให้ทดลองใช้ระบบ มันมีในตัวแม่แบบสำหรับการประยุกต์เทคโนโลยี Java รวมทั้ง Struts, GWT, Wicket, JRuby on Rails, Jython แต่ไม่ จำกัดเฉพาะเหล่านี้ คุณสามารถปรัใช้ Web app ต่างๆ ที่ทำงานใน Web Container ผ่านทาง Stax SDK  พื้นฐานในการทำงานของ Stax  มีขึ้น เพื่อเป็นทรัพยากรที่ง่ายต่อการติดตั้งสำหรับการเรียกใช้โปรแกรมประยุกต์ ของคุณและมีเครื่องมือบางอย่างสำหรับการทำและการปรับใช้กับงานต่างๆ ของคุณ Application templates เป็นเพียงวิธีหนึ่งที่ทำให้บุคคลทั้งหลายสนใจ และ การกำหนดค่าที่น่าสนใจก็จะทำให้มีนักพัฒนามาช่วยกันวิจัยและพัฒนาระบบเพิ่มขึ้นอย่างรวดเร็ว นักพัฒนามีอิสระที่จะเพิ่มBinary และ configuration files ของพวกเขาก่อนที่จะปรับให้ใช้ รวมถึงlibraries ไม่จำเป็นต้องติดตั้งใน default application template Stax จะยังให้บริการฟรี อยู่ในรุ่น Beta บริษัท ยังไม่มีแผนนำเสนอที่จะเก็บค่าใช้บริการ แต่อาจจะมีการเก็บค่าบริการในบางรุ่นเมื่อใช้เป้นรุ่นเต็มที่ไม่ใช่ Beta

คุณสมบัติของ Cloud มีข้อจำกัด Stax จะต้องทำอย่างไร

ย้ายปพลิเคชันที่มีอยู่เพื่อ Cloud

การเคลื่อนย้าย App ที่มีอยู่แล้วขึ้นอยู่กับวิธีการ ซึ่ง Applicationช่วยในการทำนั้นคือ "Cloud Friendly"  Stax ไม่คิดที่จะแข่งขันปรับเปลี่ยนการใช้งานทั่วไปของ Hosting, Stax จะเน้นอย่างมากในเรื่องของการคำนวณความยืดหยุ่นในการใช้งานทรัพยากร ซึ่งสามารถมีการเปลี่ยนแปลงได้อย่างรวดเร็วเพื่อตอบสนองความต้องการของโปรแกรม หมายความว่า ตัวอย่างโปรแกรมใด ๆ ที่กำหนดอาจจะเข้ามาทำงานในระบบหรือยกเลิกออกไปจากระบบเมื่อไหร่ก็ได้ ในที่นี้จะแนะนำข้อจำกัดไม่กี่ข้อ ในการออกแบบ ข้อบังคับ (Constrains) บน Application

1. การใช้งานไม่สามารถวางใจได้ บนระบบ Local File เพื่อความคงอยู่หรือมีความสำคัญ คือ อาจจะมีการเปลี่ยนแปลงทำให้ไฟล์สำคัญเกิดการเสียหายได้

2. การใช้งานต้องหลีกเลี่ยงการพึ่งพิงหน่วยความจำหลักของเซิร์ฟเวอร์ (ยกเว้นการใช้cachingใน
which case apps just need to be designed to restore the cache from a persistent location like DB if the cache experiences a miss) ซึ่งกรณีAppsเพียงแค่ต้องได้รับการออกแบบเพื่อคืนค่า cache จากตำแหน่งใช้บ่อยอย่าง DB ถ้า cache เกิดการผิดพลาด

ซึ่งหมายความว่าความเข้ากันไม่ได้ของโปรแกรมที่มีอยู่จำนวนมากจะถูกจัดการด้วยทรัพยากรของ Stax แต่ผู้ก่อตั้งและประธานเจ้าหน้าที่บริหาร Spike Washburn ได้กล่าวว่า"นี้คือวิธีการยืดหยุ่นของการเขียนโปรแกรม ซึ่งมีความเป็นไปได้ที่จำเป็นสำหรับความต้องการของ Application ที่เพิ่มขึ้น ของโครงสร้างพื้นฐานที่มีความยืดหยุ่นใน Public Cloud และ Virtualized data centers"

การตรวจสอบ,การรายงาน,การแก้จุดบกพร่องและการสนับสนุน Java Apps ใน Cloud


เนื่องจากเป็นโปรแกรมที่พัฒนาโดยตัวผู้ใชเอง,คุณไม่จำเป็นต้องสนับสนุนการตรวจสอบแก้จุดบกพร่อง Cloud มีความต้องการที่จะให้มีการออกแบบมาเพื่อช่วยนักพัฒนารวบรวมข้อมูลเกี่ยวกับเซิร์ฟเวอร์ที่ใช้ของพวกเขาและจำแนกตามลักษณะการเสนอขาย  เช่น รายงานการวิเคราะห์ การตรวจสอบ และ APIs การแจ้งเตือนเป็นการออกแบบเพื่อช่วยนักพัฒนาเพื่อแก้ปัญหาและทำความเข้าใจกับหัวใจของ Application และ การตอบสนองตาม แน่นอนในนักพัฒนาบางคนมักจะต้องเข้าใจ internals การใช้งานของตัวเองและบันทึกได้เป็นส่วนหนึ่งของการแก้จุดบกพร่อง ของปัญหาเหล่านั้น ในการ สนทนากับนาย Washburn, เขากล่าวว่าพวกเขาจะไปปล่อยตัวตรวจสอบ และ APIs แจ้งเตือนเร็ว ๆ นี้และวางแผนที่จะให้การสนับสนุนและ คุณสมบัติอื่น ๆ 

การปรับไปใช้ในเซิร์ฟเวอร์ของโปรแกรมอื่น ๆ


Stax ถูกออกแบบมาเพื่อรุ่นของ Java Web Container(Tomcat) ที่สามารถบูรณาการกับ Cloud Computing ที่มีความยืดหยุ่นในการทำงานสูง Stax เป้าหมายคือการช่วยให้นักพัฒนาประสบความสำเร็จ
ในการพัฒนาการปรับใช้ในระดับใหม่ๆ ของ Application ที่มีความยืดหยุ่นในการทำงาน ไม่เพียงแค่นี้ยังมีการปรับขนาดของ Apps เพื่อการปรับใช้บน Paas และยังให้ความยืดหยุ่นในการใช้โปรแกรมประยุกต์พัฒนาและปรับใช้ Application Containers ของ ตัวเอง นอกจาสนับสนุน ของ End-to -End life cycle
ตัวอย่างเช่น ในCloud ปัจจุบัน ธุรกิจต่างยังลังเลที่เข้ามาในการผลิต หรือ สร้าง Application ของ พวกเขา ใน Cloud ซึ่งเขาจะพิจารณาจาก Dev/test ดังนั้นจึงเป็นสิ่งสำคัญที่ทำให้ Apps ทำงานใน 2สภาพแวดล้อมที่ต่างกัน (Stax สำหรับการทดสอบและเลือก Apps ตามสภาพแวดล้อมเซิร์ฟเวอร์ของตนเองในการผลิต)

Java Apps With Application Container

ในขณะนี้ Stax ไม่ได้วางแผนที่จะให้การสนับสนุนในการเลือกระหว่างการใช้งานแอพพลิเคชันเซิร์ฟเวอร์ ทำแต่ Tomcat Web Container เท่านั้น


***ถ้ากระผมเขียนไม่รู้เรื่อง หรือ ผิดพลาด ต้องขออภัยมา ณ ที่นี้ ด้วย ซึ่งผมแปลมาจากบทความภาษาอังกฤษ ซึ่งผมภาษาอังกฤษไม่แข็งแรงเท่าไหร่ และเขียนตามความเข้าใจของผมเอง มีข้อติ อะไรแจ้งผมได้นะครับ***

ที่มา http://broadcast.oreilly.com/2008/12/java-in-the-cloud.html 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น