การพัฒนา open service platform (paas) ด้วย oss

Post on 05-Jul-2015

277 Views

Category:

Presentations & Public Speaking

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

การพัฒนาระบบ Open Service Platform ด้วย open source เพื่อใช้เป็น PaaS ใน NECTEC ซึ่งมีจุดประสงค์สำหรับให้นักวิจัย นักพัฒนา ใน NECTEC ใช้สำหรับให้บริการแบบเปิด นำเสนอในงานมหกรรมซอฟต์แวร์โอเพนซอร์ส 2014 (OSS Festival 2014) เมื่อวันที่ 10 ตุลาคม 2557

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