การพัฒนา open service platform (paas) ด้วย oss
Post on 05-Jul-2015
277 Views
Preview:
DESCRIPTION
TRANSCRIPT
การพัฒนา Open Service Platform (PaaS) ดวย OSS
นายกําธร ไกรรักษหองปฏิบัติการวิศวกรรมซอฟตแวรและนวัตกรรมบริการ (Software Engineering and Service Innovation Laboratory: SSI) ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ (NECTEC)
Outline
● Open Service Platform คือ ?● NECTEC กับ Open Service● การศึกษาเพื่อเลือกเครื่องมือพัฒนา Open Service Platform● Red Hat Openshift● โครงสรางและการทํางานของ Open Service Platform● บทสรุป
Open Service Platform คือ ?
● Open Service คือ API ที่ใหบริการผานอินเทอรเน็ตแบบเปดใหภายนอกเรียกใชได ไมจํากัดเรื่องภาษาโปรแกรมเพราะสื่อสารผานมาตรฐานเปด
● Open Service Platform คือแพลตฟอรมสําหรับการใหบริการแบบเปด เปน cloud แบบ PaaS
ทําไมตอง Open Service
● มุงสู Digital Economy○ ซอฟตแวรแพกเกจเปลี่ยนรูปแบบเปนจําหนายออนไลน (Apple Appstore,
Google Play Store, Windows Store, Steam, Origin) หรือเชาใชผาน Cloud (Adobe Creative Cloud, Office 365)
○ ซอฟตแวรเปลี่ยนจากขายเปนฟรี แตหารายไดจากบริการ โดยเฉพาะบริการซอฟตแวรแบบ SaaS
○ มีการพัฒนาและใช API ผานอินเทอรเน็ต ทั้งใชภายใน และเปดใหภายนอกเขามาใช มีทั้งฟรีและคิดคาบริการ
● ความหลากหลายของแพลตฟอรม เชน Windows, Mac OS, Linux, Android, iOS, Web App, ...
● ความหลากหลายของภาษาโปรแกรม เชน PHP, Java, Ruby, Python, JavaScript, Go, ...
NECTEC กับ Open Service
● NECTEC สงเสริมงานวิจัยและพัฒนาที่สามารถใหบริการในรูปแบบ Open Service ทั้งการใหบริการเพื่อทดลองใช ใหบริการแบบเพื่อสาธารณประโยชน และใหบริการเชิงพาณิชย
● NECTEC เปดตัวเว็บไซต apiDD.com สําหรับเปนตลาดซื้อขายแลกเปลี่ยน API
● ขอดีคือ○ นักพัฒนาภายนอกสามารถทดลองใชบริการไดโดยสะดวก○ สามารถนําไปใชไดหลากหลายแพลตฟอรม○ ติดตาม/ประเมินผลการนําไปใชไดสะดวก
ปญหาที่ทําใหตองมี Open Service Platform ใน NECTEC
● ตองการระบบที่เสถียร ปลอดภัย สามารถใหบริการได 24/7● ตองใหบริการตอไปไดเมื่อจบโครงการวิจัย ● ตองการลดตนทุน ในการจัดซื้อเซิรฟเวอร การดูแลรักษาระบบ● ตองการระบบที่สามารถขยายตัวเพื่อรองรับการใชงานที่เพิ่มขึ้น
ได
การศึกษาเพื่อเลือกเครื่องมือพัฒนาระบบ
โครงการจัดทําขอกําหนดผูวาจางโครงการโอเพนเซอรวิสแพลตฟอรม (Open Service Platform) ที่ดําเนินการมากอนไดศึกษาไว มี 2 ประเด็นสําคัญคือ1. Cloud Platform ซึ่งเปน Infrastructure ของระบบ2. Service Platform
Cloud Platform
ทางเลือก● ทําเองดวยซอฟตแวรโอเพนซอรสเชน Open Stack, Xen
Cloud Platform, Nimbus, Open Nebula, Eucalyptus● ใชบริการ IaaS ที่มีอยูแลว
สรุปวาควรเลือกใชบริการ IaaS ที่มีอยูแลวเพราะ● ฝาก Infrastructure ใหระบบที่ดีอยูแลวดูแล● เอาแรงงานไปทําระดับ Service Platform ดีกวา
หลังจากเปรียบเทียบราคาและขอดีขอเสียแลว ทีมพัฒนาเลือกใชบริการของ Amazon AWS
Service Platform
ทางเลือก
Service Platform
สรุปวาเลือก Open Shift เนื่องจาก● นักพัฒนาเริ่มใชงานไดงายกวา ในขณะที่ Cloudify ตองเขียน
script เพื่อสราง platform● ออกแบบโครงสรางระบบใหแยกบริการกระจายเปนหลายๆ
เครื่องได
Open Service Platform Architecture
OpenShift
● พัฒนาโดย Red Hat● แบงเปน
Infrastructure Design
Service Design
สวนประกอบตางๆ ในระบบ Open Service Platform
● broker server ทําหนาที่บริหารจัดการระบบ นักพัฒนาตองล็อกอินเขามาสราง ปรับสวนประกอบ ปรับตั้งคาตางๆ ของ application ที่นี่ระบบจะมี broker 2 ตัวทํางานแบบ active/stand by
● DMD server ทําหนาที่ใหบริการ DNS, database, และ message queue
● node server ทําหนาที่ใหบริการทรัพยากรสําหรับบริการ application ไดแก CPU, memory, storage space
คุณสมบัติสําคัญของ Open Service Platform
● มีความเสถียร● รองรับการพัฒนา service / application ไดหลากไดเชน php,
nodejs, python, ruby (on rails), java (tomcat) รองรับระบบฐานขอมูล mysql และ mongodb
● รองรับการ update code ผาน git● รองรับการพัฒนา service / app แบบขยายระบบอัตโนมัติ
(auto scaling)
หลักการทํางานของ Open Service Platform
● เมื่อนักพัฒนาสราง app ขึ้น จะตองเลือกสวนประกอบของระบบวาจะใชอะไรบาง เรียกวา cartridge เชน PHP5.3, MySQL, PHPMyAdmin เปนตน
● แตละ cartridge จําเปนตองใชระบบสําหรับรันงาน เรียกวา gear เชน PHP ใช 1 gear, MySQL ใชอีก 1 gear, PHPMyAdmin ใชรวมกับ gear ของ PHP ได รวมใช 2 gear
● ถาตั้งให app ทํางานแบบ auto-scaling จะสามารถเพิ่มจํานวน gear เพื่อรัน code ไดอัตโนมัติ เพื่อรองรับบริการที่มากขึ้นได
เครื่องมือสําหรับนักพัฒนาที่จะใชกับ Open Service Platform
● git เปนเครื่องมือสําหรับ update code จากเครื่องเรา ขึ้นไปบน app
● ssh สําหรับ remote เขาไปใน app เพื่อตั้งคาคอนฟกบางอยาง เชน ha-proxy, apache, php เปนตน
● เราอาจจะใช IDE เชน Aptana หรือ Eclipse พัฒนา app ซึ่งจะรองรับการใช git ในตัวอยูแลว
● web browser สําหรับล็อกอินเขาไปจัดการ application
บทสรุป
● PaaS เปนเครื่องมือบน cloud อีกชั้นหนึ่งที่จะชวยใหนักพัฒนาใชงานระบบไดสะดวก รวดเร็ว ไมตองจัดการในระดับระบบโครงสรางพื้นฐาน แตโฟกัสที่งานพัฒนาเปนหลัก
● open service / open data เปนอีกชองทางหนึ่งที่จะทําเปนธุรกิจ/เสริมธุรกิจ โดยเราสามารถเนนที่เรามีขอมูล/API ที่เกี่ยวของกับภาษาไทย/ประเทศไทย/วัฒนธรรมไทย
top related