← blog

গুগল অ্যাপ ইঞ্জিনে হাতেখড়ি: পর্ব-১

বিশ্বের সবচেয়ে জনপ্রিয় PAAS প্রোভাইডারদের মধ্যে অন্যতম হল গুগলের অ্যাপ ইঞ্জিন। গুগল সার্চ, জিমেইলের মত গুগলের সেবাসমূহ যে ইনফাস্ট্রাকচারে চলছে, সেই একই পরিবেশে ও যন্ত্রাংশে আপনার অ্যাপ চালানোর সুযোগ করে দেবার জন্যই এসেছে অ্যাপ ইঞ্জিন। গুগলের নিজস্ব ডাটাস্টোরের পাশাপাশি কিছু ব্যতিক্রমী বৈশিষ্ট্যের জন্য অনেকেই এই অসাধারণ প্লাটফর্মটিকে এড়িয়ে চলার চেষ্টা করেন, তাদের জন্যই আমার এ টিউটোরিয়াল সিরিজ! আসুন, শুরু করা যাক।

এই টিউটোরিয়ালটি অনুসরণ করতে আপনার প্রয়োজন হবে যেকোন আধুনিক GNU/Linux ডিস্ট্রিবিউশন (উবুন্টু, লিনাক্স মিন্ট, ফেডোরা, ডেবিয়ান…)। অন্যান্য অপারেটিং সিস্টেমের ব্যবহারকারীরাও অনুসরণ করতে পারবেন, তবে নিজ দায়িত্বে!

SDK সংগ্রহ

অ্যাপ ইঞ্জিনের অ্যাপ বানানোর পূর্বে আমাদের অ্যাপ ইঞ্জিনের SDK টি সংগ্রহ করতে হবে। গুগল অ্যাপ ইঞ্জিন জাভা, পাইথন, পিএইচপি এবং গো সমর্থন করে। আমি এই ব্লগ পোস্টগুলোতে পাইথনের সাহায্য নেব। শুরু করার জন্য আমরা এখানে গিয়ে লিনাক্সের জন্য প্রদত্ত ফাইলটি ডাউনলোড করবো। এরপর zip ফাইলটি এক্সট্র্যাক্ট করলেই google_appengine নামক একটি ফোল্ডার পাওয়া যাবে। ফোল্ডারটি আমরা আমাদের হোম (Home) ফোল্ডারে রেখে দিব, যেন ফোল্ডারটিকে ~/google_appengine প্যাথে পাওয়া যায়।

হ্যালো ওয়ার্ল্ড

সময় হয়ে গেল হ্যালো ওয়ার্ল্ড লিখে ফেলার! এবার আসুন helloworld নামের একটি ফোল্ডার তৈরি করি এবং ফোল্ডারটির মধ্যে app.yaml এবং helloworld.py নামের দুইটি ফাইল তৈরি করি। app.yaml ফাইলটিতে আমাদের অ্যাপ সম্পর্কে যাবতীয় প্রয়োজনীয় তথ্য অ্যাপ ইঞ্জিনকে দেব, এবং helloworld.py ফাইলটিই আমাদের অ্যাপের মূল সোর্স ফাইল। আমরা এখানে Bottle Web Framework টি ব্যবহার করবো। এজন্য bottle.py ফাইলটি ডাউনলোড করে helloworld ফোল্ডারে রেখে দিই।

app.yaml

এবার আমরা আমাদের app.yaml ফাইলটি লিখে ফেলি।

application: helloworld
version: 1
runtime: python27
api_version: 1
threadsafe: false

handlers:
- url: /.*
  script: helloworld.py

application: আমাদের অ্যাপ্লিকেশনের আইডি। অ্যাপ ইঞ্জিনে আপনার অ্যাপ রেজিস্টার করার সময় আপনাকে একটি আইডি দেওয়া হবে। সেটিই এখানে বসবে। তবে আপাতত, আমরা কেবল নিজেদের কম্পিউটারে পরীক্ষামূলক ডেভেলপমেন্ট সার্ভারে চালিয়ে দেখবো বলে নিজেদের ইচ্ছেমত নাম দিতে পারি। তবে, নামে কোন স্পেস ও যতিচিহ্ন না রাখাই ভালো। (স্পেস থাকলে কাজ করবে না অবশ্য )

handlers: এখানে আমরা কোন URL প্যাটার্নের জন্য কোন পাইথন ফাইলটি কাজ করবে তা বলে দেবো।

আপাতত এই দুইটি জিনিসই মোটামুটি গুরুত্বপূর্ণ, বাকিগুলো আলোচনা করবো অ্যাপ ইঞ্জিনে অ্যাপ আপলোড করা নিয়ে যে পোস্টটি করবো, সেখানে।

helloworld.py

from bottle import route, run

@route('/')
def index():
    return "Hello World!"

run(server='gae')

মাত্র পাঁচ লাইনেই আমাদের হ্যালো ওয়ার্ল্ড হয়ে গেল (ফাঁকা লাইনগুলো বাদ দিয়ে আরকি)।

লাইন #১ এ আমরা bottle থেকে route ও run মেথড দু’টো ইম্পোর্ট করছি, বেসিক পাইথন কোড।** লাইন #৩** আমরা একটি রাউট / রুট ডিফাইন করছি। ”/” অর্থাৎ আমাদের ওয়েব অ্যাপের রুটকে (ভিজিটর অ্যাড্রেসবারে www.omuk.com লিখলে যা পাবে) নির্দেশ করছি।** লাইন #৪** এ আমরা index() নামের একটি ফাংশন ডিফাইন করছি, যা লাইন #৩ এর রুটের জন্য কার্যকরী হবে। অর্থাৎ, ওই URL এ কেউ প্রবেশ করলেই এই ফাংশনটি এক্সিকিউট হবে।** লাইন #৫** এ আমরা একটি স্ট্রিং রিটার্ন করছি, এই রিটার্ন করা স্ট্রিংটিই ব্রাউজারে পাঠানো হবে এবং প্রদর্শিত হবে।** লাইন #৭** এ আমরা গুগল অ্যাপ ইঞ্জিনে চলার উপযোগী করে সার্ভার চালু করলাম।

অ্যাপ চালু করা

এবার আসুন দেখি অ্যাপটি আদৌ চলে কিনা! এজন্য একটি টার্মিনাল চালু করে helloworld ফোল্ডারের ভেতর থেকে কমান্ড দিন,

python ~/google_appengine/dev_appserver.py .

অর্থাৎ, python <স্পেস> <যেখানে dev_appserver.py রাখা আছে> <স্পেস> <যে ফোল্ডারে অ্যাপটি রয়েছে>

এবার আমাদের ব্রাউজারের অ্যাড্রেসবারে localhost:8080 ঠিকানাটি লিখে এন্টার চাপি। যদি সবকিছু ঠিকঠাক থাকে তাহলে একটি সুন্দর Hello World! মেসেজ দেখতে পাবেন। এবার Hello World! এর বদলে অন্য কিছু লেখার চেষ্টা করে দেখুন তো! আপনার helloworld.py ফাইলটি চেঞ্জ করে সেভ করে ব্রাউজারে পেজটি রিলোড / রিফ্রেশ করলেই হবে!

কেমন লেগেছে এই টিউটোরিয়ালটি? আপনি কি এ বিষয়ে আরও টিউটোরিয়াল পেতে ইচ্ছুক?