You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@predictionio.apache.org by Jenna Kwon <ji...@gmail.com> on 2016/10/02 22:07:32 UTC

Running predictionIO on a web server other than localhost

Hello!

I am a beginner so please excuse me if my question is rudimentary.
I've followed a demo for Tapster Comics Recommendation (
http://predictionio.incubator.apache.org/demo/tapster/) and have a good
understanding of deploying the engine, app and event server on localhost.

My app ran on localhost:3000, engine ran on localhost:8000, and eventserver
ran on localhost:7000.

I would like to now deploy these on a web server. The "app" would be a
specific website. How would I hook up and deploy eventserver and
predictionIO engine to gather information from that specific website?

Would it just be a matter of changing environmental variables in pio-env.sh
(in predictionIO installation directory) as well as those in app's
directory? For example, would I substitute "localhost" with a web server?

Thank you!

Best Regards,
Jenna Kwon


-- 
Jenna Kwon
B.S. Computer Science '17| Georgia Institute of Technology
Denning Technology and Management Scholar
GT Tennis Club | GT Trailblazers
www.jennakwon.com
(541)908-2963

Re: Running predictionIO on a web server other than localhost

Posted by Mars Hall <ma...@heroku.com>.
Jenna,

Glad to hear you got PredictionIO running on Heroku.

The PIO engine & eventserver need to be live, reachable on the internet so that a front-end web app can access them. Ideally all microservices (engine, evenserver, web app) are deployed to the same cloud provider & region so that backend HTTP & database/Postgres communication are low-latency. While it is technically feasible to have the services running in different places, that will only degrade reliability & responsiveness of the integrated application.

*Mars

( <> .. <> )

> On Oct 17, 2016, at 12:30, Jenna Kwon <ji...@gmail.com> wrote:
> 
> I tried the github guide out and was able to deploy the event server & classification engine to heroku. I have my locally running webapp communicate with them via HTTP. Thank you!
> 
> I have a remaining question. Must the eventserver & predictionIO engine be deployed on the cloud if I want my webapp running on a web server (instead of on localhost) to communicate with them via HTTP? 
> 
> Best Regards,
> Jenna Kwon 
> 
> On Tue, Oct 4, 2016 at 11:28 AM, Mars Hall <ma...@heroku.com> wrote:
> Hi Jenna,
> 
> Today at Dreamforce (the Salesforce conference) we're presenting this PredictionIO Heroku buildpack in a developer session called "Exploring Machine Learning on Heroku":
> 
> https://github.com/heroku/predictionio-buildpack
> 
> The README is a tailored guide to getting an attribute-based classifier running. To use the buildpack for engines of your own choosing, follow the more generalized (and more complex) CUSTOM docs:
> 
> https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md
> 
> If you decide to try it out, please post Github issues with questions, problems, or feedback!
> 
> *Mars Hall
> Customer Facing Architect
> Salesforce App Cloud / Heroku
> San Francisco, California
> 
> 
> On Tue, Oct 4, 2016 at 05:34 Sunny <su...@gmail.com> wrote:
> Hello Jenna,
> 
> Deployment in local is fine if you are running lightweight jobs and using it just for hands-on and learning purpose, no need to bear extra cost of the additional computing power of cloud services.
> In case you are into heavy weight research work or running a production system and wants it to be accessible from around the globe, private or hybrid or using available cloud services like AWS is must.
> 
> -- Tapo
> 
> On Tue, 4 Oct 2016 at 06:23 Jenna Kwon <ji...@gmail.com> wrote:
> Dear Mr. Szeto,
> 
> Thank you so much for your reply. I saw some posts demonstrating deployment of event server & engine via Heroku. I also saw that there used to be deployment through AWS. In what case would I want to do that instead of keeping them local?
> 
> Best Regards,
> Jenna Kwon 
> 
> On Mon, Oct 3, 2016 at 5:45 PM, Donald Szeto <do...@apache.org> wrote:
> Hi Jenna,
> 
> You probably want to have a reverse proxy in front of your app (localhost:3000) so that it is exposed to the Internet via standard ports (80 for HTTP or 443 for HTTPS). Your app can communicate to the event server and engine over localhost. They don't need to be exposed to the Internet. Your app should be using one of PredictionIO SDKs to interact with the event server and engine.
> 
> Regards,
> Donald
> 
> On Sun, Oct 2, 2016 at 3:07 PM, Jenna Kwon <ji...@gmail.com> wrote:
> Hello!
> 
> I am a beginner so please excuse me if my question is rudimentary.
> I've followed a demo for Tapster Comics Recommendation (http://predictionio.incubator.apache.org/demo/tapster/) and have a good understanding of deploying the engine, app and event server on localhost.
> 
> My app ran on localhost:3000, engine ran on localhost:8000, and eventserver ran on localhost:7000.
> 
> I would like to now deploy these on a web server. The "app" would be a specific website. How would I hook up and deploy eventserver and predictionIO engine to gather information from that specific website? 
> 
> Would it just be a matter of changing environmental variables in pio-env.sh (in predictionIO installation directory) as well as those in app's directory? For example, would I substitute "localhost" with a web server? 
> 
> Thank you!
> 
> Best Regards,
> Jenna Kwon 
> 
> 
> -- 
> Jenna Kwon
> B.S. Computer Science '17| Georgia Institute of Technology 
> Denning Technology and Management Scholar 
> GT Tennis Club | GT Trailblazers
> www.jennakwon.com
> (541)908-2963
> 
> 
> 
> 
> -- 
> Jenna Kwon
> B.S. Computer Science '17| Georgia Institute of Technology 
> Denning Technology and Management Scholar 
> GT Tennis Club | GT Trailblazers
> www.jennakwon.com
> (541)908-2963
> 
> 
> 
> 
> 
> 
> -- 
> Jenna Kwon
> B.S. Computer Science '17| Georgia Institute of Technology 
> Denning Technology and Management Scholar 
> GT Tennis Club | GT Trailblazers
> www.jennakwon.com
> (541)908-2963


Re: Running predictionIO on a web server other than localhost

Posted by Jenna Kwon <ji...@gmail.com>.
I tried the github guide out and was able to deploy the event server &
classification engine to heroku. I have my locally running webapp
communicate with them via HTTP. Thank you!

I have a remaining question. Must the eventserver & predictionIO engine be
deployed on the cloud if I want my webapp running on a web server (instead
of on localhost) to communicate with them via HTTP?

Best Regards,
Jenna Kwon

On Tue, Oct 4, 2016 at 11:28 AM, Mars Hall <ma...@heroku.com> wrote:

> Hi Jenna,
>
> Today at Dreamforce (the Salesforce conference) we're presenting this
> PredictionIO Heroku buildpack in a developer session called "Exploring
> Machine Learning on Heroku":
>
> https://github.com/heroku/predictionio-buildpack
>
> The README is a tailored guide to getting an attribute-based classifier
> running. To use the buildpack for engines of your own choosing, follow the
> more generalized (and more complex) CUSTOM docs:
>
> https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md
>
> If you decide to try it out, please post Github issues with questions,
> problems, or feedback!
>
> *Mars Hall
> Customer Facing Architect
> Salesforce App Cloud / Heroku
> San Francisco, California
>
>
> On Tue, Oct 4, 2016 at 05:34 Sunny <su...@gmail.com> wrote:
>
>> Hello Jenna,
>>
>> Deployment in local is fine if you are running lightweight jobs and using
>> it just for hands-on and learning purpose, no need to bear extra cost of
>> the additional computing power of cloud services.
>> In case you are into heavy weight research work or running a production
>> system and wants it to be accessible from around the globe, private or
>> hybrid or using available cloud services like AWS is must.
>>
>> -- Tapo
>>
>> On Tue, 4 Oct 2016 at 06:23 Jenna Kwon <ji...@gmail.com> wrote:
>>
>> Dear Mr. Szeto,
>>
>> Thank you so much for your reply. I saw some posts demonstrating
>> deployment of event server & engine via Heroku. I also saw that there used
>> to be deployment through AWS. In what case would I want to do that instead
>> of keeping them local?
>>
>> Best Regards,
>> Jenna Kwon
>>
>> On Mon, Oct 3, 2016 at 5:45 PM, Donald Szeto <do...@apache.org> wrote:
>>
>> Hi Jenna,
>>
>> You probably want to have a reverse proxy in front of your app
>> (localhost:3000) so that it is exposed to the Internet via standard ports
>> (80 for HTTP or 443 for HTTPS). Your app can communicate to the event
>> server and engine over localhost. They don't need to be exposed to the
>> Internet. Your app should be using one of PredictionIO SDKs to interact
>> with the event server and engine.
>>
>> Regards,
>> Donald
>>
>> On Sun, Oct 2, 2016 at 3:07 PM, Jenna Kwon <ji...@gmail.com> wrote:
>>
>> Hello!
>>
>> I am a beginner so please excuse me if my question is rudimentary.
>> I've followed a demo for Tapster Comics Recommendation (
>> http://predictionio.incubator.apache.org/demo/tapster/) and have a good
>> understanding of deploying the engine, app and event server on localhost.
>>
>> My app ran on localhost:3000, engine ran on localhost:8000, and
>> eventserver ran on localhost:7000.
>>
>> I would like to now deploy these on a web server. The "app" would be a
>> specific website. How would I hook up and deploy eventserver and
>> predictionIO engine to gather information from that specific website?
>>
>> Would it just be a matter of changing environmental variables in
>> pio-env.sh (in predictionIO installation directory) as well as those in
>> app's directory? For example, would I substitute "localhost" with a web
>> server?
>>
>> Thank you!
>>
>> Best Regards,
>> Jenna Kwon
>>
>>
>> --
>> Jenna Kwon
>> B.S. Computer Science '17| Georgia Institute of Technology
>> Denning Technology and Management Scholar
>> GT Tennis Club | GT Trailblazers
>> www.jennakwon.com
>> (541)908-2963
>>
>>
>>
>>
>>
>> --
>> Jenna Kwon
>> B.S. Computer Science '17| Georgia Institute of Technology
>> Denning Technology and Management Scholar
>> GT Tennis Club | GT Trailblazers
>> www.jennakwon.com
>> (541)908-2963
>>
>>
>
>
>


-- 
Jenna Kwon
B.S. Computer Science '17| Georgia Institute of Technology
Denning Technology and Management Scholar
GT Tennis Club | GT Trailblazers
www.jennakwon.com
(541)908-2963

Re: Running predictionIO on a web server other than localhost

Posted by Mars Hall <ma...@heroku.com>.
Hi Jenna,

Today at Dreamforce (the Salesforce conference) we're presenting this PredictionIO Heroku buildpack in a developer session called "Exploring Machine Learning on Heroku":

https://github.com/heroku/predictionio-buildpack <https://github.com/heroku/predictionio-buildpack>

The README is a tailored guide to getting an attribute-based classifier running. To use the buildpack for engines of your own choosing, follow the more generalized (and more complex) CUSTOM docs:

https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md <https://github.com/heroku/predictionio-buildpack/blob/master/CUSTOM.md>

If you decide to try it out, please post Github issues with questions, problems, or feedback!

*Mars Hall
Customer Facing Architect
Salesforce App Cloud / Heroku
San Francisco, California


On Tue, Oct 4, 2016 at 05:34 Sunny <sunnystarin@gmail.com <ma...@gmail.com>> wrote:
Hello Jenna,

Deployment in local is fine if you are running lightweight jobs and using it just for hands-on and learning purpose, no need to bear extra cost of the additional computing power of cloud services.
In case you are into heavy weight research work or running a production system and wants it to be accessible from around the globe, private or hybrid or using available cloud services like AWS is must.

-- Tapo

On Tue, 4 Oct 2016 at 06:23 Jenna Kwon <jinkwon06@gmail.com <ma...@gmail.com>> wrote:
Dear Mr. Szeto,

Thank you so much for your reply. I saw some posts demonstrating deployment of event server & engine via Heroku. I also saw that there used to be deployment through AWS. In what case would I want to do that instead of keeping them local?

Best Regards,
Jenna Kwon 

On Mon, Oct 3, 2016 at 5:45 PM, Donald Szeto <donald@apache.org <ma...@apache.org>> wrote:
Hi Jenna,

You probably want to have a reverse proxy in front of your app (localhost:3000) so that it is exposed to the Internet via standard ports (80 for HTTP or 443 for HTTPS). Your app can communicate to the event server and engine over localhost. They don't need to be exposed to the Internet. Your app should be using one of PredictionIO SDKs to interact with the event server and engine.

Regards,
Donald

On Sun, Oct 2, 2016 at 3:07 PM, Jenna Kwon <jinkwon06@gmail.com <ma...@gmail.com>> wrote:
Hello!

I am a beginner so please excuse me if my question is rudimentary.
I've followed a demo for Tapster Comics Recommendation (http://predictionio.incubator.apache.org/demo/tapster/ <http://predictionio.incubator.apache.org/demo/tapster/>) and have a good understanding of deploying the engine, app and event server on localhost.

My app ran on localhost:3000, engine ran on localhost:8000, and eventserver ran on localhost:7000.

I would like to now deploy these on a web server. The "app" would be a specific website. How would I hook up and deploy eventserver and predictionIO engine to gather information from that specific website? 

Would it just be a matter of changing environmental variables in pio-env.sh (in predictionIO installation directory) as well as those in app's directory? For example, would I substitute "localhost" with a web server? 

Thank you!

Best Regards,
Jenna Kwon 


-- 
Jenna Kwon
B.S. Computer Science '17| Georgia Institute of Technology 
Denning Technology and Management Scholar 
GT Tennis Club | GT Trailblazers
www.jennakwon.com <http://www.jennakwon.com/>
(541)908-2963 <tel:%28541%29908-2963>



-- 
Jenna Kwon
B.S. Computer Science '17| Georgia Institute of Technology 
Denning Technology and Management Scholar 
GT Tennis Club | GT Trailblazers
www.jennakwon.com <http://www.jennakwon.com/>
(541)908-2963




Re: Running predictionIO on a web server other than localhost

Posted by Sunny <su...@gmail.com>.
Hello Jenna,

Deployment in local is fine if you are running lightweight jobs and using
it just for hands-on and learning purpose, no need to bear extra cost of
the additional computing power of cloud services.
In case you are into heavy weight research work or running a production
system and wants it to be accessible from around the globe, private or
hybrid or using available cloud services like AWS is must.

-- Tapo

On Tue, 4 Oct 2016 at 06:23 Jenna Kwon <ji...@gmail.com> wrote:

> Dear Mr. Szeto,
>
> Thank you so much for your reply. I saw some posts demonstrating
> deployment of event server & engine via Heroku. I also saw that there used
> to be deployment through AWS. In what case would I want to do that instead
> of keeping them local?
>
> Best Regards,
> Jenna Kwon
>
> On Mon, Oct 3, 2016 at 5:45 PM, Donald Szeto <do...@apache.org> wrote:
>
> Hi Jenna,
>
> You probably want to have a reverse proxy in front of your app
> (localhost:3000) so that it is exposed to the Internet via standard ports
> (80 for HTTP or 443 for HTTPS). Your app can communicate to the event
> server and engine over localhost. They don't need to be exposed to the
> Internet. Your app should be using one of PredictionIO SDKs to interact
> with the event server and engine.
>
> Regards,
> Donald
>
> On Sun, Oct 2, 2016 at 3:07 PM, Jenna Kwon <ji...@gmail.com> wrote:
>
> Hello!
>
> I am a beginner so please excuse me if my question is rudimentary.
> I've followed a demo for Tapster Comics Recommendation (
> http://predictionio.incubator.apache.org/demo/tapster/) and have a good
> understanding of deploying the engine, app and event server on localhost.
>
> My app ran on localhost:3000, engine ran on localhost:8000, and
> eventserver ran on localhost:7000.
>
> I would like to now deploy these on a web server. The "app" would be a
> specific website. How would I hook up and deploy eventserver and
> predictionIO engine to gather information from that specific website?
>
> Would it just be a matter of changing environmental variables in
> pio-env.sh (in predictionIO installation directory) as well as those in
> app's directory? For example, would I substitute "localhost" with a web
> server?
>
> Thank you!
>
> Best Regards,
> Jenna Kwon
>
>
> --
> Jenna Kwon
> B.S. Computer Science '17| Georgia Institute of Technology
> Denning Technology and Management Scholar
> GT Tennis Club | GT Trailblazers
> www.jennakwon.com
> (541)908-2963
>
>
>
>
>
> --
> Jenna Kwon
> B.S. Computer Science '17| Georgia Institute of Technology
> Denning Technology and Management Scholar
> GT Tennis Club | GT Trailblazers
> www.jennakwon.com
> (541)908-2963
>

Re: Running predictionIO on a web server other than localhost

Posted by Jenna Kwon <ji...@gmail.com>.
Dear Mr. Szeto,

Thank you so much for your reply. I saw some posts demonstrating deployment
of event server & engine via Heroku. I also saw that there used to be
deployment through AWS. In what case would I want to do that instead of
keeping them local?

Best Regards,
Jenna Kwon

On Mon, Oct 3, 2016 at 5:45 PM, Donald Szeto <do...@apache.org> wrote:

> Hi Jenna,
>
> You probably want to have a reverse proxy in front of your app
> (localhost:3000) so that it is exposed to the Internet via standard ports
> (80 for HTTP or 443 for HTTPS). Your app can communicate to the event
> server and engine over localhost. They don't need to be exposed to the
> Internet. Your app should be using one of PredictionIO SDKs to interact
> with the event server and engine.
>
> Regards,
> Donald
>
> On Sun, Oct 2, 2016 at 3:07 PM, Jenna Kwon <ji...@gmail.com> wrote:
>
>> Hello!
>>
>> I am a beginner so please excuse me if my question is rudimentary.
>> I've followed a demo for Tapster Comics Recommendation (
>> http://predictionio.incubator.apache.org/demo/tapster/) and have a good
>> understanding of deploying the engine, app and event server on localhost.
>>
>> My app ran on localhost:3000, engine ran on localhost:8000, and
>> eventserver ran on localhost:7000.
>>
>> I would like to now deploy these on a web server. The "app" would be a
>> specific website. How would I hook up and deploy eventserver and
>> predictionIO engine to gather information from that specific website?
>>
>> Would it just be a matter of changing environmental variables in
>> pio-env.sh (in predictionIO installation directory) as well as those in
>> app's directory? For example, would I substitute "localhost" with a web
>> server?
>>
>> Thank you!
>>
>> Best Regards,
>> Jenna Kwon
>>
>>
>> --
>> Jenna Kwon
>> B.S. Computer Science '17| Georgia Institute of Technology
>> Denning Technology and Management Scholar
>> GT Tennis Club | GT Trailblazers
>> www.jennakwon.com
>> (541)908-2963
>>
>
>


-- 
Jenna Kwon
B.S. Computer Science '17| Georgia Institute of Technology
Denning Technology and Management Scholar
GT Tennis Club | GT Trailblazers
www.jennakwon.com
(541)908-2963

Re: Running predictionIO on a web server other than localhost

Posted by Donald Szeto <do...@apache.org>.
Hi Jenna,

You probably want to have a reverse proxy in front of your app
(localhost:3000) so that it is exposed to the Internet via standard ports
(80 for HTTP or 443 for HTTPS). Your app can communicate to the event
server and engine over localhost. They don't need to be exposed to the
Internet. Your app should be using one of PredictionIO SDKs to interact
with the event server and engine.

Regards,
Donald

On Sun, Oct 2, 2016 at 3:07 PM, Jenna Kwon <ji...@gmail.com> wrote:

> Hello!
>
> I am a beginner so please excuse me if my question is rudimentary.
> I've followed a demo for Tapster Comics Recommendation (
> http://predictionio.incubator.apache.org/demo/tapster/) and have a good
> understanding of deploying the engine, app and event server on localhost.
>
> My app ran on localhost:3000, engine ran on localhost:8000, and
> eventserver ran on localhost:7000.
>
> I would like to now deploy these on a web server. The "app" would be a
> specific website. How would I hook up and deploy eventserver and
> predictionIO engine to gather information from that specific website?
>
> Would it just be a matter of changing environmental variables in
> pio-env.sh (in predictionIO installation directory) as well as those in
> app's directory? For example, would I substitute "localhost" with a web
> server?
>
> Thank you!
>
> Best Regards,
> Jenna Kwon
>
>
> --
> Jenna Kwon
> B.S. Computer Science '17| Georgia Institute of Technology
> Denning Technology and Management Scholar
> GT Tennis Club | GT Trailblazers
> www.jennakwon.com
> (541)908-2963
>