Как запустить приложение из Интернета / облака

Я разработал приложение в Twilio, которое хочу запускать из облака. Я попытался узнать об AWS и Google App Engine, но на этом этапе меня очень смущает:

У меня есть 2 вопроса, по которым я надеюсь получить вашу помощь:

1) Как я могу хранить свои скрипты и базу данных в облаке? Прямо сейчас на моем локальном компьютере все работает, но я хотел бы перенести скрипты и базу данных на другой сервер и запустить свое приложение в заранее определенное время суток. Как лучше всего это сделать?

2) Как я могу написать командный файл для запуска моего приложения в заранее определенное время суток в облаке?

Я понимаю, что здесь нет кода, но я очень надеюсь, что кто-то может указать мне правильное направление. Я потратил много времени, пытаясь понять это сам, но все еще не уверен. Ткс в нареч.

Обновление: приложение представляет собой приложение Twilio, которое обращается к людям, сценарий просто применяет алгоритм для выполнения вызовов определенным образом, а база данных представляет собой базу данных mysql, которая предоставляет подробную информацию о людях, которых нужно вызвать.


person stretchr    schedule 31.08.2014    source источник
comment
На каком языке вы написали свое приложение? В каком контейнере он работает?   -  person Guy    schedule 31.08.2014


Ответы (3)


Довольно сложно дать точный ответ, не понимая, что такое приложение, что такое БД или какой сценарий вы хотите запустить.

Я могу дать вам несколько идей, которые могут быть полезны в таких случаях.

OpsWorks (http://aws.amazon.com/opsworks/) - управляемая служба для управления приложениями. . Вы можете определить свой стек (несколько уровней, таких как сеть, рабочие, БД ...) и какие рецепты шеф-повара должны выполняться в различные моменты жизни экземпляров на каждом уровне (запуск, завершение работы, развертывание приложения или модификация стека. .). Затем вы можете использовать возможность добавлять экземпляры к каждому слою в определенные дни и часы, чтобы реализовать функциональность запуска в заранее определенное время по вашему запросу.

В таком решении вы можете либо иметь некоторые из ваших экземпляров (например, DB) постоянно, либо даже загружать их, используя рецепты шеф-повара каждый день, с восстановлением из моментального снимка при запуске и созданием моментального снимка при завершении работы.

Еще один сервис AWS, который вы используете, - это Data Pipeline (http://aws.amazon.com/datapipeline/ ). Он предназначен для периодического перемещения данных между источниками данных, например из базы данных MySQL в Amazon Redshift, службу хранилища данных. Но вы можете использовать его для запуска сценариев и запуска случайных сценариев оболочки по вашему желанию (http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-shellcommandactivity.html) и запланируйте его запуск в различных условиях, например каждый час / день или в определенных условиях. раз (http://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-concepts-schedules.html).

person Guy    schedule 31.08.2014
comment
Спасибо, парень. Я проверяю это. Похоже, что для AWS / Google App Engine потребуется много работы (или нет?). Похоже, Heroku может делать что-то быстрее (stackoverflow.com/questions/9802259/). Однако я не слишком хорошо с ним знаком. - person stretchr; 31.08.2014
comment
кстати, я обновил свой вопрос более подробной информацией на случай, если вы его пересмотрите - person stretchr; 31.08.2014

Простым путем здесь было бы просто создать экземпляр EC2 в AWS и поместить туда компоненты, необходимые для запуска вашего приложения. Подробное описание здесь:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html

По сути, вы создадите виртуальную машину EC2, с которой в большинстве случаев можно обращаться так же, как с любым другим сервером Linux. Вы можете установить на него MySQL, скопировать туда свой скрипт и запустить его. Конечно, потребуется также установить любой контейнер или вспомогательные библиотеки, которые требуются вашему коду.

Вы не говорите, какую ОС вы используете локально, но если это Mac или Linux, вы должны иметь возможность выполнить почти тот же процесс, чтобы запустить сценарий на экземпляре EC2, который вы использовали на своем локальном компьютере.

По мере знакомства с AWS появляются сложные сервисы, которые можно использовать для развертывания, оркестровки инфраструктуры, сервисов баз данных и т. Д. Но просто начать запуск сценария на виртуальной машине должно быть довольно просто.

person Peter    schedule 31.08.2014

Недавно я разработал приложение Twilio с использованием Ruby on Rails в качестве серверной части и обнаружил, что Heroku чрезвычайно прост в установке и запуске. Хотя Heroku стоит больше, чем AWS, я обнаружил, что время, сэкономленное с помощью Heroku, с лихвой окупилось. На раннем этапе стартапа мы хотели тратить время на разработку важных функций, а не «тратить» время на оптимизацию нашего облака AWS.

Однако, хотя я считаю, что Heroku идеально подходит для веб-сайтов / стартапов на ранних стадиях, я считаю, что хостинг следует переоценить, как только компания достигнет определенного размера. В какой-то момент становится экономически целесообразным выделять ресурсы на оптимизацию облачного решения AWS, потому что в долгосрочной перспективе оно будет дешевле, чем Heroku.

person Joel Brewer    schedule 01.09.2014