Облачное программирование и помощь в выборе хорошей платформы - PullRequest
4 голосов
/ 20 марта 2010

Как я могу написать облачное приложение?например, приложение, которое использует преимущества развертывания в облаке.Это так же, как приложение, которое работает или VPS / выделенный сервер?если нет то в чем различия?есть ли изменения в дизайне?Какие процедуры мне нужно предпринять, если я хочу перенести приложение в облачное хранилище?

Также я собираюсь реализовать идею веб-приложения, которая потребует таких функций, как безопасность, производительность, кэширование и т. Д.главное бесплатно.Я сравнивал некоторые фреймворки и обнаружил, что у django наименьшее использование ОЗУ и ЦП, и он отлично работает в режиме prefork + thread, но я также читал, что сайты, основанные на django, перестают отвечать с огромной нагрузкой на соединения.Другие фреймворки, которые я видел / знаю, это Zend, CakePHP, Lithium / Cake3, CodeIgnitor, Symfony, Ruby on Rails ....

Так что я бы оставил это на ваше мнение, предложите мне хороший бесплатныйрамки, основанные на моих потребностях.

Наконец, спасибо за чтение эссе;)

Ответы [ 3 ]

3 голосов
/ 20 марта 2010

Я чувствую, что наступает момент матрицы ... "Что такое облако? Облако вокруг нас, тюрьма для вашей программы ..." (что? Ответы на часто задаваемые вопросы приносят вам чувство юмора ...)

Хорошо, так серьезно, что такое облако? Это зависит от реализации, но обычные функции включают в себя масштабируемый вычислительный ресурс и плату за процессорное время, область хранения и т. Д. Так что да, это немного похоже на разработку на вашем VPS / обычном сервере.

Насколько я понимаю, Google App Engine позволяет вам потреблять столько, сколько вы хотите. Управление внутренними ресурсами осуществляется Google и выставляется вам счет, и вы платите за то, что вы используете. Я считаю, что есть даже свободный порог.

Amazon EC2 предоставляет API, который фактически позволяет вам добавлять экземпляры виртуальных машин (кто-то исправит меня, если я ошибаюсь), предварительно настроив их, развернуть другой экземпляр вашего веб-приложения, поговорить между частными диапазонами IP, если хотите ( slicehost определенно разрешает это). Таким образом, EC2 может позволить вам действовать как гигантский балансировщик нагрузки на внешнем интерфейсе, передавая работу целому числу виртуальных машин на заднем конце, или показывать все это публично, на ваш выбор. Я не уверен в точных деталях, потому что я не создавал систему, но я так понимаю.

У меня есть чувство (но я меньше всего знаю о Azure), что в Azure управление ресурсами для вас автоматически выполняется корпорацией Майкрософт в зависимости от того, что использует ваше приложение.

Итак, в общем, облако - это разные вещи в зависимости от того, какое именно облако вы выберете. EC2, похоже, предоставляет API для управления ресурсами, GAE и Azure - это среды, которые растут и сужаются в фоновом режиме в зависимости от вашего использования.

Примечание. Мне известно, что в GAE существуют определенные ограничения, особенно в Java. Через минуту я отредактирую в другой ветке, где кто-то сделал отличный комментарий к одному из моих сообщений на этот счет.

Редактировать как и обещали, см. Эту ветку: Архитектура облачной агностики?

Что касается выбора фреймворка, это действительно не имеет значения, насколько я понимаю. Если вы планируете развертывание на одной из этих платформ, вы можете проверить наличие фреймворка / языка. Лично я только начал Django и люблю его, изучив python некоторое время назад, поэтому, по моему совершенно непредвзятому мнению, использую Django. Другие разработчики, вероятно, будут рекомендовать другие вещи, исходя из своих предпочтений. Что ты знаешь? Что тебе больше всего нравится? Что тебе нравится больше всего? Я бы пошел с этим. Я выбрал Django просто потому, что я не такой большой поклонник PHP, мне нравится Python, и я был доволен фреймворком, когда впервые поиграл с ним.

Редактировать : Итак, как вы пишете облачный код? Вы разрабатываете свое программное обеспечение таким образом, чтобы оно соответствовало одной из этих архитектур. Опять же, посмотрите ветвь, не зависящую от облаков, для действительно хорошего обсуждения способов сделать это. Например, вы можете поговорить с некоторыми службами GAE, которые масштабируются. То, что они на GAE (пример), на самом деле не имеет значения, вы используете идеи слабой связи. По сути, это всего лишь шаг от идеи веб-сервиса.

Кроме того, еще одна особенность облака, о котором я забыл упомянуть, - это идея предоставления CDN для вас - некоторые облачные реализации могут перемещать ваши данные по всему земному шару, чтобы сделать его более эффективным для обслуживания, или просто потому, что именно там они и работают. получил место. Если это проблема, не используйте облако.

2 голосов
/ 20 марта 2010

Я не могу ответить на ваш вопрос - у меня нет опыта в таких проектах - но я могу сказать вам одну вещь ... и CakePHP, и CodeIgniter предназначены для PHP4 - другими словами: для действительно старых технологий.И, похоже, ничего не изменится в их случае.Стоит рассмотреть Symfony (особенно версию 2.0, которая все еще находится в тяжелой бета-версии), но, как я уже сказал в самом начале, я не могу поддержать это своим собственным опытом.

0 голосов
/ 20 марта 2010

Для разработки приложений для развертывания в облаке главное учитывать возможность восстановления. Если ваш сервер отключен, вы можете потерять все свои данные. Если вы развертываете на Amazon, я бы рекомендовал сохранить все необходимые данные на устройстве Elastic Block Storage (EBS). Это будут данные, такие как пользовательский контент / файлы, файлы базы данных и журналы. Я также использую снимок EBS на 5-дневной ротации, так что это резервное копирование само по себе. Тем не менее, у меня более года без проблем работает облачный сервер на AWS.

Что касается фреймворков, я в данный момент пробую Grails, и мне это очень нравится. Создан, чтобы быть синтаксически похожим на Rails, но работает на JVM. Это означает, что вы можете воспользоваться всеми преимуществами Java, такими как многопоточность, параллелизм и все замечательные библиотеки, для создания своего веб-приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...