Hey all, I am in the planning phase of designing a social media site. I've got a fairly comprehensive wire-frame built, along with the current DB design. Here is an idea what i'm working with. Its not really meant to be read, just showing the complexity so far and that I'm not just a guy with an idea… I actually have a plan.
EDIT: I have bolded what I am after in this post as many of the answers so far have missed the point of this post. I am trying to prepare the expense portion of my business plan and, secondarily, identify tech needs so I can hire appropriately. I appreciate the responses, but they are not answering the question. The rest of the content is to explain where I am at, and my requirements so you can help me figure out what I may need. I would most specifically be helped with TECH PEOPLE who have experience with cloud services that can help me understand the differences, or Tech Startups who have built successful apps that can help me identify hidden expenses I may not have thought of.
Anyway, I think I'm good at the planning and showcasing what I need to build, but I don't yet have the knowledge to actually build it. I'm doing as much as I can myself, but I will probably have to try and hire someone at some point. I've also created what I believe would be a realistic expected revenue, but I'm not really sure what all I would have to expect as far as Expenses. Which is what I would like you guys for, if you don't mind.
I am thinking of hosting on a cloud platform, at least to start out. I've been eyeing google cloud services, mostly because it is cheaper in the long run. I also have not been that impressed with some of Amazons other applications, so I'm not fully confident AWS will be much different. But I do know that AWS has more options and more people using it, though likely only because they were first to the ball game. But my problem is, I don't really understand what most of those options are, and if I need them or how to properly estimate how much I may be spending with those options.
So If you all have experience in this area, if you could ask me the questions I don't know to ask to help make my choice and determine the cost, it would be helpful. Here is what I can provide as far as my requirements.
- Being that this is a social media site, I will have a lot of dynamic content mostly created by users.
- My application will have a lot of content linking to sources outside of my site as it is partly an aggregate site, but I will also host content such as user generated articles, images, videos, and audio (podcast for example).
- I will need good caching capabilities. — I know that these services charge by the hour or minute or second, but I'm not entirely sure how that plays out. if my site becomes active, I don't see my database ever not having DB queries running. in other words, it will be open 24/7. so are these per second/minute/hour charges maxed at 24 hrs a day or is it multiplied by each user making a connection? If each user, how do I estimate potential usage for 1 user vs 1 million or more. Caching I know will help reduce this, but to what extent? i don't suspect commenting or messaging would benefit much from caching.
- I've been looking at graph databases in addition to MYSQL to handle the complex friend of friend type connections, or to ID users that may be interested in something based on shared traits with other users. So I believe a Big Data and or machine learning requirement would be needed for this?
- I need to be able to scale as the site grows, with partitioned servers and whatever else is needed to make that happen.
- I don't know if I will reach this number or how long it will take, but using other smaller social media sites (LinkedIn, Reddit, Pinterest) as an example, I'm planning for eventually reaching the 100+ million active user mark.
Like I said, I'm really at a beginner level with the programming aspect, but currently I am trying to build with PHP 7. and the Laravel 7 framework, using MySQL. I've read once that PostgreSQL may be better for partitioning, but I don't really know much about that. At this point, I'm just trying to understand Laravel's Eloquent ORM and I figure if i can get that right, it will be able to switch over to Postgres if i need it as Laravel supports both.
I know some of these things I can address later as I need them, but I also think if i can plan for it ahead of time, it would save me having to redo it later on. But regardless, I still don't know how to go about pricing these things other than development cost. I'm limited in money, so I'm doing as much as I can myself, but if I can secure funding, I need to know how much to ask for so I don't go broke before I even get started.
Any help and guidance would be appreciated. Thanks