Heroku or digital ocean deployment [closed] - heroku

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
Maybe someone experienced can give me a hand with understanding what's a better solution for me.
I'm currently working on a Telegram Bot which has a web interface consisting of frontend part as Vue framework app and the backend part as Express app.
I found out that buying Hobby dyno on Heroku you can deploy only one app there what doesn't look good to me because I would need to buy three dynos for each app since Bot is an app itself and mixing it with express would be a mess.
I'm thinking what if I buy space on Digital Ocean. Can it solve my problem with at least these three-part app?
I've never had such experience before so your help would be very appreciated.

With Heroku you need to setup a Web Dyno for each of your application which requires HTTP connectivity, however you can create each application in the Free Tier at no-cost.
Your 3 components architecture can run for free (apps sleep after 30 min of inactivity).
Do you have Docker images? Then deploy them in the Heroku Container Registry. You can develop/deploy/test without cost then (when production-ready) decide to move to other hosting or purchase the Hobby tier ($7 per Dyno).
Heroku Developer experience is top: Docker registry or GitHub integration, logs viewer, secrets via env variables. You focus on development and let Heroku worry about the platform.

Provided that you have Docker images for your tasks you can easily deploy them to Digital Ocean's separate droplets.
That will cost you around 3 * $5 = $15 / monthly + $1 / month per droplet for backups.
Here is the flavor of how to deploy Docker containers to Digital Ocean's droplets.
The only downside is that you will needed Dockerized containers to setup infrastructure for yourself, and know how to do it.
My advice to you is if you have a lot to do and learn, stick with Heroku for a while. Once that get done you can go to setting up Linux/based VPS. There is a lot to learn and some situations can make you (as me previously) insane for some time.
Hope that helped.

Related

Deploy a mobile application in private/restricted App store [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 6 years ago.
Improve this question
I have developed a product based mobile application which should only be available and downloadable for my consumers who are using my product.
Please help me understand how the private/restricted app store works.
Is there any way to provide a direct download link from my website?
you could maybe give a try to companies providing enterprise private app store.
With such service you can create your own company app store and host your native apps, this would maybe make your app management easier.
You'll also be able to control distribution, updates and user access. For instance, you can create groups of customers with different right access, they will receive a direct invitation to install your app.
To name a few I can think of Appaloosa Store, Apperian, MobileIron...
I hope this will help you!
Your best bet is a Google Play Private Channel.
Its basically creating a private channel for your domain, for which only people part of your domain could access the app. There's a setting in your google apps control panel, "Allow users to access Google Play Private Channel" which you would have to untick.
Then when deploying the app check "Make this application available only to users of my Google Apps domain".
Have a look at this link, it gives you an in depth guide how to go about publishing an app to a private channel.
http://www.techrepublic.com/blog/google-in-the-enterprise/deploy-private-android-apps-on-google-play/
Alternatively, you could provide a download link to the actual apk file on your website (once your consumer has paid for the product) and just give them instructions on how to install the it. eg. Enable "Unknown Sources" on Android Settings, then install the apk file.
I hope this helps.

How to sell software online: from freshly compiled executable to final product [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
Suppose I have a freshly compiled and tested 100 MB software. I want to eventually distribute it and sell it online as a product. This is a cross-platform product (done in C++).
What are the needed technical steps to achieve this? For each step, a description and an example of some software (if pertinent) would help. Also, how important is it would be helpful too.
My problem is that it is not really clear what are the stages to go through to release a software online. This list would help me a lot to know what steps I should investigate in priority.
What I am not talking about / interested in (because it is mainly the results I got while searching for this):
Website building;
Marketing & Sales;
Continuous Integration servers;
Steam, Mac Store, Windows Store;
Open Source.
Steps I identified:
Obfuscate: not sure about this one;
Licensing System: activation code system integrated in the software directly (See Digital River, SafeNet, Reprise, Flexera);
Installers: MSI for Windows (see Wix), DMG for mac;
Code Signing: ensures that your users do not get warnings (Verisign, GlobalSign...)
Free Trial Distribution: putting the installers on our own site is risky because of bandwidth and lags. Your users should be able to download a free trial quickly wherever they are. So a CDN would help (AWS CloudFront).
Auto Update System: notifiy the users, download and install new versions (Omaha);
Activation: this allows the user to activate the product online or directly from within the product;
I think that these two steps are the missing pieces in your list:
Write documentation (in your case PDF/RTF/HTML, or online tutorial)
Integrate a payment provider that will accept the payment on behalf of you
With the above two steps you should be ready to go.
There are some books that I can recommend you (they are 10 year old now, but you see shareware/try before you buy/ software is an old thing - nowadays people tend to write web apps or mobile mostly):
http://www.alibris.com/From-Program-to-Product-Turning-Your-Code-Into-a-Saleable-Product-Rocky-Smolin/book/10572213?matches=50
http://www.alibris.com/Micro-Isv-From-Vision-to-Reality-Bob-Walsh/book/9122742?matches=37

What's Boxen and what does it do? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 9 years ago.
Improve this question
Today I see the new Github team project, called Boxen: http://boxen.github.com/
I completely read their introduction for this project but I really didn't understand WHY should I use that? How it goes to simplify development process?
EDIT: I see that this tool has something for Ruby and NodeJs also.
NOTICE: I'm not affiliated with the github folks, or an authority on the exact implementation(yet), but have been following its evolution since hinted at months ago - the spread of masterless puppet is a great thing, which this project delivers
From the horses mouth(a very recent presentation on Boxen, with Q&A!): http://vimeo.com/61172067
github.com/boxen/boxen is a framework, which uses puppet as an engine on current OS X(10.8+ as of this writing) workstations so devs can start working on projects or 'manage' their own workstations with all the dependencies they'd need. github.com/boxen/our-boxen is an example of the 'master repo' of curated software dependencies for a project you'd collaborate on, which are hard-coded to github's auth and repo's. Once happy that it delivers everything your 'team' would need to work on a particular project(or group of projects,) you'd send the resulting repo to Heroku for hosting with boxen-web. Now for more specifics:
You can use your own repo, with the contents of our-boxen(a fork is NOT recommended) without boxen-web if working solo or kicking the tires.
Puppet can be run in traditional client-server mode(the Puppetlabs folks have come up with different names as their product has evolved, but it's now - I think - referred to as agent-master.) In my own theory, in order to have as little 'hooks' or background processes running on a developers workstation as possible, this uses puppet 'modules' that are run without contacting a 'master', which then installs software or makes configuration changes.
A manifest to specify your own user/machine can be created, but every time you run the boxen binary, and 'drift' is detected or enhancements/refinements for your team are added, a baseline gets 'enforced'. An example from a recent presentation( https://speakerdeck.com/wfarr/boxen ) is java security patches, while not project-specific, can add management to the teams workstations, side-by-side with your individual needs.
The boxen organization(github.com/boxen,) created by the github folks, hosts puppet modules known to work with boxen that can be added at the team or individual level, although you can always break out your own puppet and expand what it can do as you see fit.
It's explained in their blog post, here: https://github.com/blog/1345-introducing-boxen
Boxen is a framework for managing almost every aspect of your Mac. We built a massive standard library of Puppet modules optimized for Boxen to manage everything from running MySQL to installing Minecraft.

App Store submission of two related apps that work as a pair [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 5 years ago.
Improve this question
I have two separate iOS apps, one is a client and one is a server. They need to be used together, either by itself is useless. Clients are free, server has a cost to use.
I know I can submit this as a single app, and maybe have the server functionality be unlocked with an In App Purchase.
But what if I want to submit this as two separate apps? What is the procedure to submit two related apps for Apple review? I can set the release date for each of them to a date in the future in case one gets approved and the other is rejected and needs rehabilitation. That way I can coordinate a single launch date for both of them once both have been approved.
Anyone with experience they would be willing to share?
Here is an example of why I might want to do this: Let's say my server app is very large in size because it has content, graphics, whatever. The server is used at a large gathering and many people want to join the fun as clients. They all need to download the client app over cellular data at the venue at that time. I want the related client app to have a small footprint.
They need to be used together, either by itself is useless.
This is the reason why you should make a single app with the server functionality locked as an In App Purchase. Think about it again.
People who download a free client version cannot use it anyway without buying another app. Not good.
People who download a free client version cannot easily upgrade it to the full version. Not good.
People who go through the hassle and install both apps have to somehow switch between them. They have one icon more on their home screen too.
If you can, ship a single app. Tell your users what's going on in the first-launch information view, letting them upgrade instantly.
To get around the client server uselessness without the other, first submit a paid app that does both, then submit the free client, then submit the paid server, then, if sales and revenue trends so indicate this to be a revenue optimization, remove the combo app from sale.

continuous integration web service [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I am in a position where I could become a team leader of a team distributed over two countries. This team would be the tech. team for a start up company that we plan to bootstrap on limited funds. So I am trying to find out ways to minimize upfront expenses. Right now we are planning to use Java and will have a lot of junit tests. I am planing on using github for VCS and lighthouse for a bug tracker. In addition I want to add a continuous integration server but I do not know of any continuous integration servers that are offered as a web service.
Does anybody know if there are continuous integration servers available in a software as a service model?
P.S. if anybody knows were I can get these three services at one location that would be great to know to.
I am assuming you are talking about continuous integration.
You can run CruiseControl on a virtual machine or an old machine, but if it needs to be up in the Internet, you can try virtual dedicated server hosting services. You can save money by picking Linux here, but I'd go for a Windows server if your target platform is Windows.
Note: This is an outdated answer from 2008. There are now plenty of such services thanks to things like Amazon's Elastic Cloud Compute service (for example, travis-ci)
I rather doubt you'll find a service to build stuff for you. Building requires a lot of CPU power, and if you're having to rebuild every time someone commits, it would be hard to scale such a service.. And I'm sure there's probably security issues and the likes as well..
As #eed3si9n said, you could run CruiseControl on a spare (virtual-)machine and use that. Then setup port forwarding, and something like http://dyndns.com or http://no-ip.info to make it publicly accessible. It's not ideal..
I've never used CruiseControl before, but I imagine there will be a way to take the build results, and upload them to a public web-server (as a dumb HTML file). That way it would sit on your home machine, watching github, building new versions and sending the results to a reliable web-host (so no "Connection Timeout" every time your home connection isn't accessible)
In fact, I just looked at the CruiseControl documentation - the build results are stored as a set of XML files, so it'd be trivial to transfer/display them on another machine.
Basically, my suggestion is: run the continuous integration server on a spare machine, have it upload the results to a public web server somehow.

Resources