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

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

Upload: kamthorn-krairaksa

Post on 05-Jul-2015

271 views

Category:

Presentations & Public Speaking


2 download

DESCRIPTION

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

TRANSCRIPT

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 ที่เกี่ยวของกับภาษาไทย/ประเทศไทย/วัฒนธรรมไทย