25
การพัฒนา Open Service Platform (PaaS) ดวย OSS นายกําธร ไกรรักษ หองปฏิบัติการวิศวกรรมซอฟตแวรและนวัตกรรมบริการ (Software Engineering and Service Innovation Laboratory: SSI) ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ (NECTEC)

การพัฒนา Open Service Platform (PaaS) ด้วย oss

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: การพัฒนา Open Service Platform (PaaS) ด้วย oss

การพัฒนา Open Service Platform (PaaS) ดวย OSS

นายกําธร ไกรรักษหองปฏิบัติการวิศวกรรมซอฟตแวรและนวัตกรรมบริการ (Software Engineering and Service Innovation Laboratory: SSI) ศูนยเทคโนโลยีอิเล็กทรอนิกสและคอมพิวเตอรแหงชาติ (NECTEC)

Page 2: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Outline

● Open Service Platform คือ ?● NECTEC กับ Open Service● การศึกษาเพื่อเลือกเครื่องมือพัฒนา Open Service Platform● Red Hat Openshift● โครงสรางและการทํางานของ Open Service Platform● บทสรุป

Page 3: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Open Service Platform คือ ?

● Open Service คือ API ที่ใหบริการผานอินเทอรเน็ตแบบเปดใหภายนอกเรียกใชได ไมจํากัดเรื่องภาษาโปรแกรมเพราะสื่อสารผานมาตรฐานเปด

● Open Service Platform คือแพลตฟอรมสําหรับการใหบริการแบบเปด เปน cloud แบบ PaaS

Page 4: การพัฒนา Open Service Platform (PaaS) ด้วย oss

ทําไมตอง 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, ...

Page 5: การพัฒนา Open Service Platform (PaaS) ด้วย oss

NECTEC กับ Open Service

● NECTEC สงเสริมงานวิจัยและพัฒนาที่สามารถใหบริการในรูปแบบ Open Service ทั้งการใหบริการเพื่อทดลองใช ใหบริการแบบเพื่อสาธารณประโยชน และใหบริการเชิงพาณิชย

● NECTEC เปดตัวเว็บไซต apiDD.com สําหรับเปนตลาดซื้อขายแลกเปลี่ยน API

● ขอดีคือ○ นักพัฒนาภายนอกสามารถทดลองใชบริการไดโดยสะดวก○ สามารถนําไปใชไดหลากหลายแพลตฟอรม○ ติดตาม/ประเมินผลการนําไปใชไดสะดวก

Page 6: การพัฒนา Open Service Platform (PaaS) ด้วย oss
Page 7: การพัฒนา Open Service Platform (PaaS) ด้วย oss
Page 8: การพัฒนา Open Service Platform (PaaS) ด้วย oss

ปญหาที่ทําใหตองมี Open Service Platform ใน NECTEC

● ตองการระบบที่เสถียร ปลอดภัย สามารถใหบริการได 24/7● ตองใหบริการตอไปไดเมื่อจบโครงการวิจัย ● ตองการลดตนทุน ในการจัดซื้อเซิรฟเวอร การดูแลรักษาระบบ● ตองการระบบที่สามารถขยายตัวเพื่อรองรับการใชงานที่เพิ่มขึ้น

ได

Page 9: การพัฒนา Open Service Platform (PaaS) ด้วย oss

การศึกษาเพื่อเลือกเครื่องมือพัฒนาระบบ

โครงการจัดทําขอกําหนดผูวาจางโครงการโอเพนเซอรวิสแพลตฟอรม (Open Service Platform) ที่ดําเนินการมากอนไดศึกษาไว มี 2 ประเด็นสําคัญคือ1. Cloud Platform ซึ่งเปน Infrastructure ของระบบ2. Service Platform

Page 10: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Cloud Platform

ทางเลือก● ทําเองดวยซอฟตแวรโอเพนซอรสเชน Open Stack, Xen

Cloud Platform, Nimbus, Open Nebula, Eucalyptus● ใชบริการ IaaS ที่มีอยูแลว

สรุปวาควรเลือกใชบริการ IaaS ที่มีอยูแลวเพราะ● ฝาก Infrastructure ใหระบบที่ดีอยูแลวดูแล● เอาแรงงานไปทําระดับ Service Platform ดีกวา

หลังจากเปรียบเทียบราคาและขอดีขอเสียแลว ทีมพัฒนาเลือกใชบริการของ Amazon AWS

Page 11: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Service Platform

ทางเลือก

Page 12: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Service Platform

สรุปวาเลือก Open Shift เนื่องจาก● นักพัฒนาเริ่มใชงานไดงายกวา ในขณะที่ Cloudify ตองเขียน

script เพื่อสราง platform● ออกแบบโครงสรางระบบใหแยกบริการกระจายเปนหลายๆ

เครื่องได

Page 13: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Open Service Platform Architecture

Page 14: การพัฒนา Open Service Platform (PaaS) ด้วย oss

OpenShift

● พัฒนาโดย Red Hat● แบงเปน

Page 15: การพัฒนา Open Service Platform (PaaS) ด้วย oss
Page 16: การพัฒนา Open Service Platform (PaaS) ด้วย oss
Page 17: การพัฒนา Open Service Platform (PaaS) ด้วย oss
Page 18: การพัฒนา Open Service Platform (PaaS) ด้วย oss
Page 19: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Infrastructure Design

Page 20: การพัฒนา Open Service Platform (PaaS) ด้วย oss

Service Design

Page 21: การพัฒนา Open Service Platform (PaaS) ด้วย oss

สวนประกอบตางๆ ในระบบ Open Service Platform

● broker server ทําหนาที่บริหารจัดการระบบ นักพัฒนาตองล็อกอินเขามาสราง ปรับสวนประกอบ ปรับตั้งคาตางๆ ของ application ที่นี่ระบบจะมี broker 2 ตัวทํางานแบบ active/stand by

● DMD server ทําหนาที่ใหบริการ DNS, database, และ message queue

● node server ทําหนาที่ใหบริการทรัพยากรสําหรับบริการ application ไดแก CPU, memory, storage space

Page 22: การพัฒนา Open Service Platform (PaaS) ด้วย oss

คุณสมบัติสําคัญของ Open Service Platform

● มีความเสถียร● รองรับการพัฒนา service / application ไดหลากไดเชน php,

nodejs, python, ruby (on rails), java (tomcat) รองรับระบบฐานขอมูล mysql และ mongodb

● รองรับการ update code ผาน git● รองรับการพัฒนา service / app แบบขยายระบบอัตโนมัติ

(auto scaling)

Page 23: การพัฒนา Open Service Platform (PaaS) ด้วย oss

หลักการทํางานของ 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 ไดอัตโนมัติ เพื่อรองรับบริการที่มากขึ้นได

Page 24: การพัฒนา Open Service Platform (PaaS) ด้วย oss

เครื่องมือสําหรับนักพัฒนาที่จะใชกับ Open Service Platform

● git เปนเครื่องมือสําหรับ update code จากเครื่องเรา ขึ้นไปบน app

● ssh สําหรับ remote เขาไปใน app เพื่อตั้งคาคอนฟกบางอยาง เชน ha-proxy, apache, php เปนตน

● เราอาจจะใช IDE เชน Aptana หรือ Eclipse พัฒนา app ซึ่งจะรองรับการใช git ในตัวอยูแลว

● web browser สําหรับล็อกอินเขาไปจัดการ application

Page 25: การพัฒนา Open Service Platform (PaaS) ด้วย oss

บทสรุป

● PaaS เปนเครื่องมือบน cloud อีกชั้นหนึ่งที่จะชวยใหนักพัฒนาใชงานระบบไดสะดวก รวดเร็ว ไมตองจัดการในระดับระบบโครงสรางพื้นฐาน แตโฟกัสที่งานพัฒนาเปนหลัก

● open service / open data เปนอีกชองทางหนึ่งที่จะทําเปนธุรกิจ/เสริมธุรกิจ โดยเราสามารถเนนที่เรามีขอมูล/API ที่เกี่ยวของกับภาษาไทย/ประเทศไทย/วัฒนธรรมไทย