I have question about Shopify app development and the deployment process.
I've used the getting started guide here, and I have an app that works fine when I use npm run dev and view the app in the store admin.
However, of course, once I stop the server from running, the app is no longer accessible.
I believe I need to deploy the app to Heroku (or something similar) in order to have it work in a non-development environment.
It doesn't seem like there is much guidance online from Shopify about the best way to go about this.
Does anyone know what steps I need to take in order to deploy my app to Heroku, so that I can use the app in by test store on another device?
It seems like every guide online stops JUST BEFORE explaining this process and I can't figure out why! I have tried everything online but nothing has worked:
Adding the code to Github and connecting it to Heroku
Using Docker
Any help is appreciated. Thank you!
You have zero obligations to use Heroku. If you have an IP address dedicated to your house, you could host the App using your house. If you co-locate your own server at an Internet business, and they give you IP addresses you can use that. If you wanted to use Amazon directly, you could use EC2. If you wanted to use Linode, or Azure, or any other cloud service, feel free! It is up to you!
Using Heroku (built on AWS) is traditional only in the sense that it is the original easy peasy hosting in the cloud service. Play with Heroku by reading Heroku-specific documentation or hosting information. This has nothing to do with Shopify. Shopify only mentions Heroku because traditionally, developers used it. No other reason.
If you want to learn how to use Heroku, 100% there are blog posts within easy reach for you to study and learn from.
I've visited Google Cloud full day "training" and I still don't get if there is any REAL advantage in using it for my Laravel applications.
Currently I'm using a VPS server from local hosting provider, and I can deploy a laravel application in 5 ssh commands. In few minutes it becomes live.
I've searched through options on how to do it on GoogleCloud. All of them are for minimum 2 hours of tedious reading/clicking and none offers deploying straight from a git repository, thus no continuous integration.
Please help me understand what is the advantage of paying 5 times more and configuring 20 times longer in GoogleCloud versus VPS?
Thx
It all depends on what you try to achieve by deploying your Laravel app. If you expect little traffic and of a constant nature, you local hosting provider is fine. Do you expect your app to scale for millions of requests per second? Would you value resilience? In this case, you are better off doing a little extra effort and deploying in the cloud. You may gather more detail from the "Building Scalable and Resilient Web Applications on Google Cloud Platform" online document.
We run a whitelabeled site builder -- think squarespace or shopify (different market, though). We currently host on Heroku, but need to be able to offer customers an IP address so they can easily point their naked domains at our service. Although I want to move to AWS at some point, we're a bit short on resources right now, so I need an interim solution for this.
It seems like I should be able to set up a simple proxy server behind a static IP on Route53 or something that would proxy traffic to our Heroku app. But I've little experience with this sort of thing and don't know A) if this is actually the right way to go about it, B) resources to look at or the right tools to check out, or C) if there are commercial services that would be easier temporarily than running it ourselves.
Thanks in advance for any pointers!
PS - Believe me, I know this is sub-optimal, but there are a number of reasons we definitely have to offer an IP.
You could certainly do this, since a proxy or hand-made LB within EC2 can shuttle traffic off to wherever you need. So HAproxy running on an EC2 instance could pass traffic over to Heroku for you.
However, I see this was posted about 6 months ago and I know Heroku has just reconfigured pricing. So maybe that is encouragement to move into AWS now. My only real worry about your above solution is latency. What if you ran an EC2 instance with Varnish to cache your Heroku app(s) and try to mitigate any sluggishness?
I have been making Desktop applications for last few years. but now i have quite that job and thinking about doing working for myself. I have gone through many ideas. finally i decided to develop Online billing application . Since i am new in web application i know very little about web technologies.
I am thinking about developing that application in php or asp.net with mysql database. I don't know which one is better.(you can guide me here). I don't know whether its good idea or not.but i don't want to do job and work for myself that's for sure.
its going to be a big project so I was making budget for this whole project but i don't know what kind of hosting i will need for this app because database load will be very high because its billing application. i don't know how much it will cost me.I will give user free trial for 30 days to use application and if they like they can upgrade their accounts.
So i need your help to decide what kind of hosting will be appropriate.is this ok if i use webhosting that we use to host website which will cost me $10 to $15 a month or i will have to use cloud hosting which will cost me a lot?
I hope this link will give you idea. I want to make application like this : http://www.rapid-billing.com .
pls help me out. it might me small things for you but to me it matters a lot. Thanks
Initially, you won't have very high traffic, so using a cheap, shared server should be fine. If you outgrow it, then you must have some money coming in, so the added expense of cloud hosting will be more tolerable. There's no need to go all-in before you even get going.
That said, many cloud hosts offer some amount of hosting free, which would probably suit you just as well during initial development. An added plus of starting in the cloud is that you won't have to migrate later. Off the top of my head, Google App Engine and Heroku come to mind as well-known cloud hosts with a free tier. Microsoft Azure also provides a free 3 month trial, and I imagine they'd be a good host if you choose to go with ASP.
Considering you're a startup with no funds for own server farm. Which existing solution can give you a peace of mind that any sudden increase in traffic won't bring everything down.
I know it's not just up to hardware, so we plan to have at least a load balancer, memcache and few db servers.
Is it possible to have a setup on AWS that would automatically add instances and bandwidth if the traffic increases?
What other advice you could give to deployment noobs? Thanks.
ps: I apologize in advance if a question is too broad or reflects inexperience on mentioned topics, but that's why I ask.
Heroku. Because you're a start-up, keep things lean and it doesn't get leaner than almost free (with 1 dyno + small shared DB). Spend time building your product, not on the infrastructure. You don't want to be installing patches when you should be talking to customers. Heroku is also flexible and allows you to scale up 'dynos' as your traffic increases so no worries about growing there. Heroku won't scale automatically for you, though, so do your own server monitoring. Heroku add-ons are also nice.
Recently we have done a very good comparison between AWS and Heroku and we decided to move to Heroku, here is the detail of this http://www.confiz.com/blog/tech-session/selecting-the-right-cloud-platform/
If you're on Python, you can try Google App Engine.
Migrating the Python app from one platform to another isn't too difficult once you get the past the learning curve as to what features is (not) available. GAE offers datastore, memcache, blobstore plus a few other goodies like dJango and Jinja (templating). Worth checking the Python start page and it didn't take me long to integrate it into Facebook and Dropbox too.
Stay away from Heroku. You can get EC2 for free for a year from Amazon. Scaling up heroku is extremely costly. Their pricing tends to be unclear and their customer service in general sucks.
BitNami for Amazon EC2 includes ready-to-run versions of Apache, MySQL, PostgreSQL, SQLite, Python, Django, Git, their required dependencies, and much more. It can be deployed via all-in-one free native installers, virtual machines and Cloud Images. maybe worth checking out.
My personal experience is that you should generally start with Heroku. Get your app out in the wild and find that product/market-fit or some type of traction. You will know you are going somewhere because customers will cause scaling issues. In this case, Heroku will allow you to scale with very little overhead. And for some time, this scaling will not hit you in the wallet.
Jump to AWS when you are ready. When will you be ready? When you have enough pain, in the wallet, where you need more control over the stack. You can hire a AWS devops type or learn about it, yourself.
Both Heroku and AWS have auto-scaling solutions, but whereas Heroku has a fairly flat learning curve -- that is what you are paying for -- AWS can get broad and steep fairly quickly. A Udemy AWS course or any of the hundred other online resources will get your started down building a robust AWS architecture.
Lastly, while performance should not be your primary concern, make sure that you are using best practices in your code. Your first user should not bring your system to a crawl. And AWS will not help if she does.
Hope this helps in some way.
This has been my experience. My saas start kits are built to deploy to Heroku out of the box for this reason. However, the start kits are also containerized. I know that you spoke of AWS explicitly, but with containers you can be infrastructure agnostic. This is worth considering!
Ted [at] https://stacksimple.io
Check out this blog series I'm starting because I found Heroku to not be scalable at all from a financial perspective compared to EC2 and Digital Ocean. Going to be showing how to put a Ruby application on Digital Ocean using Docker, which allows you the same flexibility and ability to scale up and down very quickly https://medium.com/#karimbutt/weaning-off-heroku-part-1-b7f123ae855f
It greatly depeneds whether you're looking for a PaaS, IaaS or SaaS, and what is the language you using.
AWS is a IAAS/PAAS with multiple components and layers.
Heroku is a PAAS supporting multiple languages, most notably Java, Ruby and Node.js
Other platforms come into play depending on your needs, you might want to take a look at this comparison as well: https://dictativ.com/compare/paas