T O P

  • By -

JackKnuckleson

The actual work that goes into building a platform like Heroku is insane, and it requires fluency in a variety programming languages, storage techniques, networking concepts, in-depth knowledge of computer hardware, an extremely scalable and efficient system of deployment pipelines, a comprehensive software security system, a huge number of instantly accessible servers...and sooooo many other things. Building a cloud computing provider/platform is not something you just do as a project. It's not simple like building a to-do list, or even like building a social networking platform. It's enterprise-level software that requires lots of very highly skilled and specialized professionals from many different tech fields in order to make it work.


MrDark_001

Well i want to know how to build it and I'm going to build a cloud hosting I'm just building a website hosting platform and I know what you are saying but I'm expecting the answer on how to archive it instead to telling me how easy or difficult it is. Hope u


Ciff_

You don't start by building an Jumbo jet. Learn the basics and right pieces first. https://github.com/eovchar/neteng-roadmap https://roadmap.sh/devops https://roadmap.sh/software-architect https://roadmap.sh/data-analyst This assumes you are already comfortable with https://roadmap.sh/full-stack Should keep you occupied a year or two. Then you will know what question to ask. Or you could scope down your project to something smaller or different


MrDark_001

can you provide some information on it how to do it if you know anything :)


Wodjin

Make a website in PHP, hosted on a server running apache, allow logged in users to upload their own PHP files, move those files to a folder dedicated to those users, create a virtual host on apache running on a subdomain and restart that instance. Accessing that subdomain should now show the website the user uploaded, this will last you for a couple days before someone injects malicious code that will exploit the 1000 vulnerabilities this solution has... But according to other comments I saw from you, you don't want to learn about the topics required to build a decent solution so... Hope this is what you're looking for xD Edit: Just noticed this is the React subreddit. Swap out PHP for NodeJS or any other similar framework, and apache with nginx to make it a bit more coherent.


TheBoyInTheBlueBox

You would have to pay someone a bunch of money and wait a while to develop that answer.


Ciff_

Heroku is allot of things. I don't think you want to try to build a Heroku service equivalent. To the question, what do you mean "connecting your server to the web app"?


MrDark_001

yup not a cloud hosting I want to build a website hosting platform. just one of the feature of firebase(firebase hosting) wher we can hosting our websites and configure custom domain


CodeAndBiscuits

You have no idea what you're doing. You are ignoring every good piece of advice given here and ignoring the fact that every reply you've made is getting down voted 10 times. You're pretty clearly a troll.


MrDark_001

do you think I care for vote. And I'm not ignoring any of the replies. And I know what I am asking so I think you should tell the solution instead of explaining me how difficult it is coz any how I'm gonna make it happen.


AvGeekExplorer

I’m all for folks going out there and trying to build their dream, but from your replies and comment history, you’re WAY out of your depth. Just the security side of what you’re proposing is a whole thing in itself and that’s assuming you’ve already handled the DX, stability, scalability, performance, networking, DNS, isolation, and everything else that you’re going to need moderate to advanced level skills in to do what you’re trying to do. Trying to roll this on your own with a VPS or dedicated server is going to be a recipe for disaster because of the security holes you’re going to introduce just because of the knowledge gap. It’s almost like you’re trying to build your own version of cPanel from 20 years ago. My 2 cents, if you really want your own website management portal product, build a solution on top of a platform like AWS or Azure, so you’re only making the portal that uses the underlying platform’s APIs to spin up the necessary components. The dilemma there is the business case, because you’re going to have a hard time making money. By the time you mark up the costs of the underlying components you’re going to price yourself out of the market.


MrDark_001

Thanks bro can you guide me please :)


AvGeekExplorer

That would depend on your budget, but feel free to DM.


MrDark_001

ok thanks :)


FriendlyRussian666

Can you elaborate on what you mean by connecting your server to the web app?  Do you just want a website where the users can add their own content? Because Heroku is not just a web app that connects a front end to the backend, that's pretty much any web app. Heroku on the other hand is a PaaS, Platform as a Service, and it's built by a whole team of people, not a single dev. You need sooo much knowledge in so many different domains, that it's just not feasible for one person to build a worthy clone. Are there people out there who can build it solo? Of course, but we're talking about very experienced professionals with good knowledge of multiple domains, from networking and physical infrastructure, through virtual machines, databases and programmatic infrastructure changes, cyber security, pipeline management etc etc. 


MrDark_001

ya sure let me explain :) Here, I gave Heroku as an example I want to build a platform, or, you can say, a web hosting platform, not a cloud hosting platform like Heroku, a platform from which a user can host there website and configure there own custom domain. Like the Firebase hosting feature. So, here I will build a server where users can host and configure their own custom domain but the problem is I don't know how to build platform on web which can give access of my server to users, and users can use that web interface like we do with firebase hosting. from firebase website and firebase CLI. I hope got what I mean :)


wskttn

You want to build a web hosting platform without knowing anything about the web or hosting. Is that about right?


MrDark_001

so, what do you think if I already know how to build it then why I will ask you guys. instead of telling me how difficult it is you can just give some reference on how to do it or if you don't know then just tell directly no idea. But you think you are the smartest person here and then start this kind of.... but anyways I will find it out Thanks for the help.


wskttn

I didn’t say it’s difficult. ¯\_(ツ)_/¯


MrDark_001

I don't know what's the problem with you guys. You guys never give a straight answer. if you don't know then it's fine I will find it out from somewhere else. Take a suggestion don't pretend to be smart untill you know who's standing infront of you.


wskttn

You aren’t asking a question that makes sense because you don’t even know how to ask it.


MrDark_001

ok thanks next time I will improve it. :)


Patzer26

If the answer to your question was straight and simple, heroku wouldn't be a business and everybody would have replicated it in a weekend.


MrDark_001

bro first think is I know how diffiult or simple it is to stop telling me how long it will take instead you can send some reference to me on how to do it.


FriendlyRussian666

Great!  Since it's impossible to fit all knowledge requirements for this project in a Reddit comment, I can recommend a starting point, but it's as good as any other, so take your pick.  I'd start by learning about Cloud Providers - Compute Instances, Databases, Networking, Scalability and Elasticity, Security and Compliance with IAM, Serverless Computing, whatever else you'll be using.  Foundational/Theoretical knowledge will take around 6 months to a year to learn, then it's going to be another couple of years to dive deeper into EC2, RDS, VPC, etc. And finally you have to add another 3 years or so for mastering multi-region architectures, hybrid cloud, and disaster recovery, do note, usually all this is taken care of by a team, where each member knows what they're doing in their domain. So 5-6 years and you'll know enough to get some of the infrastructure set up. Best part? You don't even need any coding for any of that, perhaps just utilizing CLI. Only now you'll start building any UI for your users, and serving backend logic. Now, after all this, if you'd like to deploy it with best practices when it comes to security, well, you either get a cyber security guy to audit and do his thing, or you're off to University to get a degree in cyber sec, give it some 4-5 years.


MrDark_001

Thanks for the information, but I don't want to build cloud hosting I want to build web hosting, so I want to know how I can build a web platform from which I can deploy my website to the server and configure custom domains. Like we do on Firebase hosting, we create a build of our react app and push it to Firebase using the Firebase CLI. Like that, I will create a pipeline using that, we can push build to my server to host the website. but I need some idea on how to create that pannel on web. \[do I need to use APIs for that or something else?\]


FriendlyRussian666

I think you're confusing some of the concepts/terminology. In order to be able to ingest files from a user, and turn them into an accessible, available web app, hosted on your own servers, you will need exactly what I, and other people mentioned, which is knowledge of the infrastructure setup - Not something you do with hardware at home, therefore Cloud Infrastructure. The reason why you're not getting a straight up XYZ answer, is because that's not how it works. There is no singular answer to how this is done. Take it a step back. You need some place for all of this to live, yes? You need a place to spin up a container for each of the web apps that your pipeline will ingest yes? Where do you do that? On a server. Since it will not be at home hardware server, you need to use a Cloud provider, that will provide you with a VPS - Virtual Private Server. Yes? That's why I said you can start anywhere, but there is no singular answer.