Google app engine как платформа для вебразработки. Мониторинг сайтов при помощи app engine.

Какое-то время назад я увлекся экспериментами с платформой google app engine. Впечатления очень положительные. Безусловно не всякое приложение можно сделать в силу ограничение на скорость работы скрипта, время работы, некоторые возможности (например сокетные коннекты). Подкупает простота. Сделано программистами для программистов. Масса возможностей и ничего лишнего. Очень легко настраиваются задачи запускаемые по времени (типа отложенных задач и типа задач по крону). Очень просто работать с хранилище, которое не совсем SQL, что конечно дает свои достоинства и недостатки, но надо не забывать что это хранилище с неограниченным горизонтальным масштабированием, что само по себе нечто. Кеш, авторизация, язык темплейтов — из коробки. Средства для логирования, мониторинга, переключения версий по одному клику. Единственная причина почему это не становится массовой платформой для веба это инертность программистов, я думаю. Но тем не менее по тем изменениям что я вижу вокруг себя, популярность понемногу приходит к app engine.

Вот небольшой пример приложения, которое мониторит ваш сайт, и в случае если сайт не отдается или на сайте не находится эталонная строка, высылает вам письмо. Идеальное средство для получения извещений о любых проблемах с вашим сайтом.

from google.appengine.api import users

import os
import wsgiref.handlers

import cgi
import datetime
import httplib
import time

from google.appengine.api.labs import taskqueue
from google.appengine.ext.webapp import template
from google.appengine.ext import db
from google.appengine.ext import webapp
from google.appengine.api import memcache
from google.appengine.api import mail


class MonitoringHandler(BaseHandler):    
        
    def get(self):       
        today = datetime.datetime.now().strftime("%d-%m-%y %H:%M:%S")
        self.response.headers['Content-Type'] = 'text/plain'
        self.response.out.write(today)        
        try:
            conn = httplib.HTTPSConnection("site.com", timeout=1000)
            conn.request("GET", "/")
            
            if(conn.getresponse().read().find("some text string") < = 0):
                raise Exception("String not found")
            self.response.out.write(" Everything is ok")
        except Exception, e:                   
			self.response.out.write(" Send email")
			mail.send_mail(sender="[email protected]",
						  to="[email protected]",
						  subject="ServerFail",
						  body="[%s] %s" % (today, e))

if __name__ == '__main__':    
    application = webapp.WSGIApplication(
        [
            ('/', MonitoringHandler)            
        ], debug=True
    )
    wsgiref.handlers.CGIHandler().run(application)

Site Footer

Sliding Sidebar

About Me

About Me

For whom this blog for?

For those who are interested in modern Internet technologies, IT business, startups, management, quality control, personal effectiveness, motivation. Here I write about what is interesting, about problems I faced and solutions I found. I hope it will be interesting to you either.

What motivates me to write?

The desire to improve, to study deeper topics that interest me. Find people with similar problems and tasks, together look for ways out and solutions.

Feel free to contact if you have anything to say to me

Old Flash site with my artistic works and misuc.