Давайте узнаем о недавнем внедрении Google Google в Google App Engine, что это означает для сообщества PHP и как его можно улучшить еще больше, если они добавят поддержку высокопроизводительной PHP-инфраструктуры Phalcon.
Что такое Google App Engine?
Google App Engine (GAE) — это платформа Google для облачных вычислений как услуга, предлагающая пользователям развертывать веб-приложения, расположенные в центрах обработки данных Google. Это означает, что любое приложение, которое мы развертываем в среде, автоматически наследует стабильность, функциональную совместимость и масштабируемость таких приложений, как Gmail, Google+ и т. Д.
Хотя полное обсуждение GAE выходит за рамки этой статьи, достаточно сказать, что GAE не является ни частным сервером, ни виртуальным частным сервером — это платформа. Как таковой, он имеет некоторые ограничения. Вы не можете просто установить в него расширения и не можете свободно записывать на диск. Вы не можете самостоятельно изменять ограничения ресурсов и не можете устанавливать собственные системные инструменты. Это не обычный ящик с Linux; это полностью управляемая колоссальная среда для приложений уровня предприятия.
В последние несколько лет популярность GAE неуклонно растет, особенно для развертывания приложений на языке Python 2 и JVM (Java, Scala, Clojure), но только недавно в Google I / O было объявлено, что поддержка PHP была добавлена благодаря сообществу интерес .
Развертывание GAE бесплатно до определенного момента. Если ваше приложение превышает квоты бесплатного использования, вы можете запросить платное обновление. Это модель с оплатой по мере использования, которая лучше всего подходит для крупномасштабных высокопроизводительных приложений. Таким образом, оптимизация вашего приложения и сокращение количества запросов абсолютно необходимы. Мало того, что это помогает производительности, но это буквально экономит ваши деньги.
Переход на Google App Engine
Файловая система GAE доступна только для чтения. Единственный способ записи чего-либо на диск (например, загрузка файлов, кэш, пользовательские журналы и т. Д.) — это использовать внешний сервис, такой как CDN для чтения и записи, или использовать виртуальную файловую систему, такую как gae-filestore (доступна дополнительная информация). в видео Google I / O, указанном выше и здесь ) или в Google Cloud Storage . Кроме того, нет такой вещи, как локальная установка MySQL / MariaDB или PostgreSQL. Вместо этого у вас есть возможность использовать Google Cloud SQL (который похож на MySQL, но с ограничениями и различиями, которые мы не будем здесь рассматривать).
Само собой разумеется, что PHP-разработчик, переходящий в среду GAE, отказался от своей работы. К счастью, команда Google PHP ведет блог (который на самом деле является установкой WordPress для GAE) с полезными советами и руководствами, а документация по все еще экспериментальной реализации PHP хорошо сделана. Для тех, кто заинтересован в простом обзоре, есть также довольно понятное руководство по началу работы .
Я призываю вас проверить все связанные ресурсы, чтобы как можно больше познакомиться с этой новой средой. Утверждение GAE в отношении PHP — огромный сдвиг в сообществе PHP, и оно определенно может оказать влияние на развитие PHP в долгосрочной перспективе.
Основные расширения PHP и Phalcon
Люди уже отмечали огромный недостаток невозможности установки расширений и просили добавить два основных: mbstring и iconv (которые были установлены с тех пор), что делает среду исполнения GAE PHP намного более удобной для использования. Учитывая, что поддержка PHP все еще экспериментальна и не готова к производству, команда GAE принимает и активно просматривает предложения для новых установок и обновлений.
Это где Phalcon вступает в игру. Phalcon — это очень продвинутый PHP-фреймворк, написанный на C и установленный как расширение PHP. Он предлагает все функции платформы, к которым вы привыкли, и многое другое, но с гораздо большей производительностью (большая скорость, меньше ресурсов) и надежностью. Написанный на C, он выполняется изначально и загружается в память при запуске сервера, существенно улучшая сам PHP с некоторыми крайне необходимыми отсутствующими функциями.
Phalcon в некотором смысле больше PHP6, чем PHP6, и позволяет вам писать быстрые и безопасные приложения за долю времени, которое требовалось для их создания раньше. Если вы еще не попробовали Phalcon, я призываю вас сделать это — их документация очень полная и полная с примерами для каждого вызова API.
Проблема заключается в невозможности установки пользовательских расширений в PHP GAE, что означает, что Phalcon постоянно недоступен для таких сред. Из-за отличной производительности Phalcon было бы обидно, если бы она не была реализована, поскольку это, несомненно, уменьшило бы как нагрузку на сервер Google, так и стоимость, с которой столкнулись бы владельцы приложений. Вот почему я открыл новый запрос функции в системе отслеживания проблем GAE, за который вы можете проголосовать. Пока что он входит в топ-30 запрошенных функций.
Не верьте моему слову, попробуйте Phalcon и посмотрите, как вам это понравится. Скорее всего, вы будете голосовать за моменты позже. Пожалуйста, голосуйте исключительно по главной роли, но не комментируя. Комментарии предназначены исключительно для того, чтобы помочь с информацией и потенциальными проблемами во время установки. Когда в Google Code делается комментарий, всем тем, кто пометил проблему, отправляется электронное письмо, что может привести к тому, что некоторые люди не будут играть главную роль, если они почувствуют, что их рассылают спамом, что в конечном итоге наносит ущерб усилиям.
Резюме
GAE — это новая возможность для PHP. У него есть потенциал, чтобы произвести революцию в мире разработки PHP и вариантов хостинга, доступных для разработчиков. Чтобы быть частью этой новой эры с самого начала, следите за учебными курсами по PHP-GAE и руководствами по Phalcon в SitePoint и следите за ситуациями по мере их развития по ссылкам в этой статье, в частности по gaeforphp-blog.appspot.com . И не забывайте проверять Phalcon и голосовать за проблему, чтобы продвинуть причину, и не стесняйтесь задавать мне любые вопросы через Google+ или в комментариях ниже.