টপিকঃ appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

আগের টপিক: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ১

--------------------------------------------------------------------------------------------

af টুলটি ইন্সটল করা হয়ে গেছে। এবার আপনার অ্যাপ্লিকেশানটির একটি লোকাল কপি পেতে হবে। এজন্য রুবি কমান্ড প্রম্পট থেকেই নীচের কমান্ড দিন।

af login

আপনার ইমেইল ও পাসওয়ার্ড দিয়ে লগিন করুন।
ধরি আপনার অ্যাপ্লিকেশানটির নাম ছিলো pyhello123, সেটার সোর্স পেতে হলে নীচের কমান্ড দিন-

af pull pyhello123

আপনার সোর্সকোডের ফোল্ডারটি ডাউনলোড হয়ে যাবে।

--------------------------------------------------------------------------------------------

এবার আমরা একটা ছোট্ট অ্যাপ্লিকেশান লিখবো। পাইথনে এজন্য বহু ওয়েব-ফ্রেমওয়ার্ক আছে। তবে ফোরামে bottle.py নিয়ে আলোচনা হওয়ায় আমরা bottle ফ্রেমওয়ার্কই ব্যবহার করবো।
সোর্সকোডের ফোল্ডারে নীচের দুটি ফাইল থাকবে -

requirements.txt
wsgi.py

মূল অ্যাপ্লিকেশান চালু হবে wsgi.py থেকে। যে যে লাইব্রেরি ব্যবহৃত হচ্ছে সেটার লিস্ট থাকবে requirements.txt ফাইলে। requirements.txt এ অলরেডি bottle অন্তর্ভুক্ত আছে।

wsgi তে অ্যাপ লেখার ক্ষেত্রে দুটি বিষয় জানতে হবে-

১) bottle ফ্রেমওয়ার্কে অ্যাপ্লিকেশান দুভাবে তৈরি করা যায়। ডকুমেন্টেশানে দুটি পদ্ধতিই দেখতে পাবেন। আমাদের এই পদ্ধতিটি ফলো করে ডিফল্ট অ্যাপ্লিকেশান তৈরি করতে হবে।

২) ডিফল্ট অ্যাপ্লিকেশানের ভ্যারিয়েবল নাম অবশ্যই application রাখতে হবে। কারণ wsgi তে মূল অ্যাপে এই "application" নামটি থাকতে হয়।

নমুনা হিসাবে wsgi.py ফাইলটিতে নীচের মতন কোড রাখা যেতে পারে-

import os
from bottle import Bottle, route, request, run

##application object is required by wsgi
application = app = Bottle()
 
@app.route('/')
def index():
    return '''<a href='/login'>Welcome</a> to mysite.appfog<br/>
            Powerded by <a href='http://www.python.org/' target='blank'>Python</a> | <a href='http://bottlepy.org/' target='blank'>bottle</a>.'''

@app.route('/login')
def loginform():
    return '''<form method='POST' action='/loginsubmit'>
                Name: <input name='name' type='text'/>
                Pass: <input name='passw' type='password'/>
                <input type='submit' value='GO'/>
              </form>'''

@app.route('/loginsubmit', method='POST')
def login_submit():
    name = request.forms.get('name')
    passw = request.forms.get('passw')
    if name == 'bottle' and passw == 'appfog':
        return '''Welcome Admin.<br/>
                  Since you are the dev of this site, you know what to do next.'''
    else:
        return '''Sorry, you are unknown.'''
 
if __name__ == '__main__':
    run(app, host='0.0.0.0', port=80)

route, request এবং run এর ব্যবহার জানার জন্য এই টপিক এবং বোতলের ডকুমেন্টেশান দেখুন।

এবার সোর্সকোড আপলোড করার জন্য রুবি কমান্ড প্রম্পটে নীচের কমান্ড দিন -

af update pyhello123

সফলভাবে আপলোড হয়ে গেলে অ্যাপ্লিকেশানটির সাবডোমেইনে অ্যাপটিকে অনলাইন দেখতে পাবেন।

টিউটোরিয়ালটি পড়ার জন্য ধন্যবাদ।

"No ship should go down without her captain."

হৃদয়১'এর ওয়েবসাইট

লেখাটি LGPL এর অধীনে প্রকাশিত

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

বুঝি নাই কিচ্চুই.... worried

আমাকে কোথাও পাবেন না।

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

পলাশ মাহমুদ লিখেছেন:

বুঝি নাই কিচ্চুই.... worried

sad আসলে এই টপিকদুটো একটা বিশেষ স্টেজের লার্নারদের কথা ভেবে লেখা, যাঁরা পাইথনে প্রোগ্রামিং করতে পারেন। বটল ফ্রেমওয়ার্ক নিয়ে নাড়াচাড়া করছেন। অতঃপর নিজেদের ছোট্ট হ্যালো ওয়ার্ল্ড অ্যাপটিকে একটা ওয়েবসাইটে চলতে দেখতে চান।

প্রথমে পাইথন জানা দরকার। LPTHW ব্যবহার করে পাইথন শিখতে পারেন।
তারপর পাইথনে ওয়েব অ্যাপ তৈরির জন্য প্রজন্ম ফোরামের এই টপিক দেখতে পারেন।
তারপর এই টপিকদুটি দেখুন।

"No ship should go down without her captain."

হৃদয়১'এর ওয়েবসাইট

লেখাটি LGPL এর অধীনে প্রকাশিত

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

পলাশ মাহমুদ লিখেছেন:

বুঝি নাই কিচ্চুই.... worried

পিএইচপি দিয়ে তৈরী করা এ্যাপও এ্যাপফগে ডিপ্লয় করা যাবে। smile

লেখাটি CC by-nc-sa 3.0 এর অধীনে প্রকাশিত

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

পাইথনে এখনও কোন ওয়েব এপ্লিকেশন তৈরী করা হয় নি। হালকা পাতলা কাজের জন্য ওয়েবপাই ইউজ করি। তবে ইন টোটাল সম্ভবত ২ বার ইউজ করেছি। তার মধ্যে একটা এক্সাম্পল এখানেই আছে।
এপফগে কি শুধু ওয়েবসাইটই ডিপ্লয় করা যায়? নাকি নরমাল সার্ভারও ডিপ্লয় করা সম্ভব?

Feed থেকে ফোরাম সিগনেচার, imgsign.com
ব্লগ: shiplu.mokadd.im
মুখে তুলে কেউ খাইয়ে দেবে না। নিজের হাতেই সেটা করতে হবে।

শিপলু'এর ওয়েবসাইট

লেখাটি GPL v3 এর অধীনে প্রকাশিত

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

শিপলু লিখেছেন:

এপফগে কি শুধু ওয়েবসাইটই ডিপ্লয় করা যায়? নাকি নরমাল সার্ভারও ডিপ্লয় করা সম্ভব?

সার্ভারও ডিপ্লয় করতে পারার কথা। একবার সার্চ করতে করতে স্ট্যাকওভারফ্লোতে দেখেছিলাম অ্যাপফগে দুটি পোর্টে দুটি সার্ভার চালানোর পদ্ধতি নিয়ে আলোচনা হচ্ছে।

"No ship should go down without her captain."

হৃদয়১'এর ওয়েবসাইট

লেখাটি LGPL এর অধীনে প্রকাশিত

সর্বশেষ সম্পাদনা করেছেন invarbrass (১৮-০৬-২০১৩ ১১:২২)

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

রেগুলার সার্ভার বক্স চালাতে চাইলে PaaS নয়। ক্লাউড হোস্টিং আসলে শেয়ার্ড হোস্টিং-এরই সেক্সড আপ, রিব্র্যাণ্ডেড এডিশন।  cool

শেয়ার্ড হোস্টিং-এর মত এখানেও ডেডিকেটেড এ্যাপ সার্ভার থাকে (যেখানে আপনার ওয়েবএ্যাপ রান করবে), আর থাকে আলাদা ডিবি, ইমেইল, ক্যাশিং ইত্যাদি সার্ভার/ক্লাস্টার। PaaS সাধারণতঃ কিছু স্পেসিফিক এ্যাপ/ফ্রেমওয়ার্ক (রেইলস, য্যাংগো, যেণ্ড, নোড.জেস) চালানোর জন্য অপ্টিমাইজড করা থাকে - ডিপ্লয়মেণ্ট, মনিটরিং, মেইন্টেনেস ইত্যাদি দৈনন্দিন কাজগুলো বেশ সহজ করে দেয়।

প্রথমদিকে ক্লাউড হোস্টিং নাম শুনে ভেবেছিলাম কি না কি। পরে হেরোকু, এন্জিনইয়ার্ড এবং আরো কিছু প্রভাইডারের ফৃ প্ল্যান গুঁতাগুঁতি করে বুঝলাম এগুলো মূলতঃ আরেকটু এ্যাডভান্সড লেভেলের শেয়ার্ড হোস্টিং  lol

যেহেতু আপনাকে মেশিনে রুট/শেল এ্যাক্সেস দেবে না, রেগুলার সার্ভার হিসাবে ড্রপ ইন প্যাকেজগুলো (এক্সিম, মাইসিকল, এ্যাপাচী) ব্যবহার করতে পারবেন না। তবে আপনি নিজে যদি সার্ভার স্কৃপ্ট তৈরী করে কোনো পোর্ট ওপেন করেন তাহলে ওরাও কিছু করতে পারবে না। এখানেও আবার আরেক ফ্যাকড়া আছে। ক্লাউড হোস্টিং-এ বিলিং হয় রিসোর্স (ওয়ার্কার ইন্সট্যান্স, মেমরী, সিপিউ সাইকল, গিগা ইন+আউট ইত্যাদি) ইউসেজ এর ওপর - পে এ্যায ইউ গো। ভিজিটর এলে (বা ক্রণজব শিডিউলের কারণে) আপনার ওয়েব ওয়ার্কারগুলো এ্যাক্টিভেটেড হবে - এবং বিলিং স্টার্ট হবে (ঘণ্টা প্রতি হিসাবে)। আইডল মোডে বিলিং বন্ধ থাকবে (বা ওয়ার্কার প্রসেসগুলো কীপ-এ্যালাইভ রাখার জন্য খুব সামান্য পরিমাণে বিল হবে)। এখানে আপনি যদি ইমেল, ডিবি সার্ভার জাতীয় ডীমন প্রসেস চালু রাখেন তাহলে ২৪/৭ বিলিং হবে এবং মাস শেষে ফোর্ট নক্স লুট করা ছাড়া উপায় থাকবে না  hairpull Live poor, and die soft  hmm

যাকগে, ক্লাউড নিয়ে নিজের মেশিনে এক্সপেরিমেণ্ট করতে চাইলে ওপেনস্ট্যাক, এ্যাপস্কেইল, ওপেনশিফট, স্ট্যাকাটো ইত্যাদি নিয়ে গুতোঁগুতি করতে পারেন - শেষেরটা ছাড়া সবগুলো ওপেনসোর্স।

@হৃদয়দাঃ আপনি বটল থেকে ফ্লাস্কে আপগ্রেড কনসিডার করতে পারেন। ফ্লাস্কের এক্সটেনশন/প্লাগইনস কালেক্সন বিশাল! গত সপ্তাহে ফ্লাস্কের পাইথন ৩  সাপোর্টেড ভার্সন রিলিজড হলো (এতদিন পাই৩ হল অব শেইম-এর নাম্বার #১ ছিলো ফ্লাস্ক, জিণ্জা, ভার্কযু্গ গ্যাং mad )।

Calm... like a bomb.

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

বুঝতে গলে মনে হয় ক্লাস করা লাগবে ।

কাজকে বলেন নামাজ আছে, নামাজ কে বলবেন না কাজ আছে.......
premium Place
xpassplace

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

ফ্লাস্কের ডকুমেন্টেশান ডাউনলোড করা আছে। পড়ে ওঠার সময়ই পাচ্ছিনা  sad

"No ship should go down without her captain."

হৃদয়১'এর ওয়েবসাইট

লেখাটি LGPL এর অধীনে প্রকাশিত

১০

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

বেশ কিছুদিন আগে স্টেপ বাই স্টেপ ফলো করে আগানোর চেষ্টা করছিলাম ... বিফল  confused

১১

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

আমি তো কিছু বুঝলাম না । কেউ বুঝলে বুঝাবেন ।

১২

Re: appfog ক্লাউডে পাইথন অ্যাপ ডিপ্লয় করা - ২

raihan.blogging লিখেছেন:

আমি তো কিছু বুঝলাম না । কেউ বুঝলে বুঝাবেন ।

আপনি কি পাইথন ল্যাংগুয়েজ দিয়ে বানানো ওয়েব এপলিকেশন ডিপ্লয় করতে ইচ্ছুক? নাহলে এই পোস্ট আপনার কোনো কাজেই আসবেনা।  tongue