In my first job, I was in a small startup where we had a 60 year old linux neckbeard as IT. He built an incredibly robust infrastructure out of free open source software and old cheap hardware.
@@robrider838the question is: at what cost. Could admins are also crazy expensive. So you pay a lot on the guy setting it up, running it and infrastructure. Just so that another expensive guy can take over? At a certain scale it might actually be advisable to simply have a team of 3 or 4 doing the thing. Not being that expensive because you train them and not having a high turnover because your company has a nice culture.
@@johanneskurz7122 And good luck overtaking their job after they leave most of the time it's outdated code structure from a nerd who wants to do it his way so nobody can understand what his doing.
This is a genuinely a really good self-hosting walkthrough, and you're right about the cloud's shortcomings. I'll be dead before I carry water for aws/gcp/etc, but i think it must be said that there's a pretty large gap between what you're showing and the sort of commercial-scale operations that the cloud is meant to be a practical replacement for (one where the cost of a devops department would run into six figures)
Well, if you have 1 devops then your cost is already six figures. And cloud doesn't fix it, as most developers are too bad with cloud stuff so you'll still need to hire someone with an expertise or suffer the consequences.
@@cloudboogie"most devs are bad with cloud stuff" hmmm... What? I see people developing/certifying themselves on it every single day man, and taking into account how many jobs there are available on that field... Just makes no sense unless you're thinking about the 40yo+ devs that have a beard, yellow glasses, "I'm on arch btw" and still think WSL is a desecration of the Linux Kernel or something.
for real. Have any of you been through a process-related audit (e.g. SOX, NIST, PCI, HIPAA)? Every single process in your enterprise will be reviewed, with varying degrees of thoroughness, depending on your industry. Your "it runs faster if I host it from the PC under my desk!" attitudes represent real risk to the company you work for. _Everything_ has to be logged, everything has to be auditable, and (at this point) nothing does that as well as public cloud.
Companies like AWS, Google, and Azure price on a curve. Its cheaper in the begining but once you use the handy dandy "scalability" you are effectively trapped in an overpriced money pit that you can't escape from
Yup. Used to sell those as a „consultant“ the cost to change the system is so high that companies stick to your solution and continue to pay you to maintain ist even tho they know it’s overpriced trap.
Yeah, we hit the million dollar AWS bill mark, the frugal CEO starts freaking out, and soon enough we have 6-7 fairly competent engineers iterating on the infrastructure for cost and other improvements anyways. Doesn't make a lot of sense at that point, but it also doesn't make sense to change.
@@1err3 not having the burden to buy, maintain, replace the hardware. Many years ago I had physical servers in a data center, and I had many dick failures. Unless you have a lot of machines, and you can save a ton buying your own hardware, getting a virtual machine is much better. Also you don't have to deal with the initial investment cost. And the time you spend to install, buy, upgrade, is money. It is more convenient use Linode or Digital Ocean, or other providers.
@@1err3hosting providers have built in power redundancy, some level of physical redundancy (host based), handle edge (firewall), they have publicly routable ranges (eg not CG NAT)- all for a few bucks a month for a basic package, it’s a no brainer.
@@1err3 in the video he can access his website on public network because he has public ip address, some internet providers doesn't allow that, so you have to rent a cloud server (usually cheaper than aws) and either host your stuff there or set up a reverse proxy. Another perk is that cloud servers tend to have much higher bandwidth (around 8Gbps in my case) and lower latency to mainframes so the end users might have a better experience.
YESSS... I'm so happy I learned the LAMP stack doing everything by scratch before the insanity that is webdev now became what it is. I know how to do everything manually.
The way you showcased how things would actually work if self hosted is really impressive. I, for the longest time, wanted to self host my website, blogs, packages, etc. But I couldn't figure out how to do it. This just gives me a reason to do it. Thanks.
As a software engineer who has worked with bare metals, hybrid infrastructure and Cloud I tell you cheap is a very relative concept. You can deploy anything on your cheap notebook, but maintaining it will be a pain. Backup, upgrades and disk replacement is just something you have to consistently consider when you host these things. I used to work in a company where the infrastructure was hybrid, we hosted our stuff through VMware and bare metal, and it was a pain. Setting up distaste recovery plans and monitoring was just annoying. No one wanted to do it. And with the cloud you just trust it will work. It’s truly on another level.
Everything is In your word trust. You trust until one day you notice issues in your data, then you open a ticket, the answer is yes we lost your data. You field a claim, the answer is in the contract your responsible for your data saving... Then you wonder why the cloud at the first point 😂
@@user-vb9vc1es3o "notice issues in your data". A competent software engineer would be able to discover the origin of these data issues and address them appropriately. The scenario you laid out assumes that the data/software engineer is not qualified for the role and needs to be let go.
dude i was already hooked after you started out saying everything ive been experiencing about industry in the first 2 minutes, and then you mentioned nixos and i literally started cheering. this video is what all developers and enterprise archtiects need to see. we waste so much effort over engineering simple scripts to work in aws that should be a collection of systemd units configured with nix on a SINGLE ec2 or, better yet, an on prem computer. i swear sometimes my work laptop could run our data pipelines every morning that we currently deploy with terraform and aws lambda
So my personal philosophy: - if project doesn’t demand absurd SLA or you just having fun, use home hosting - if initial or small deployment for high reliability, cloud makes sense. Cost of reliable internet and power usually exceeds cost of cloud (eg lambda + RDS instance) - the tipping point of dedicated local hosting is when the cost of backup power, real estate, and high SLA fiber can be amortized against cloud bill - cloud only makes sense for large loads in narrow circumstances. The overhead price for scalability is often not less than the cost of maintaining excess infra. The main variable here is time/consistency. Also worth differentiating “cloud” versus like private server hosting. I think that the typical shared data center renting rack space or even single bare metal server model looks more like home hosting with defrayed cost of reliable power and fiber. Personally being able to reconfigure my home network rack without taking down my public website is nice. Also if you try to do email from Comcast consumer IP space you will be permanently spammed. You need reverse DNS etc.
For my application I’d absolutely do home hosting if I didn’t have Comcast randomly taking out my Internet for 10-15 minutes at a time during business hours. It’s not a daily occurrence but I’m not certain paying for a business line would fix it. Plus I live in Florida, where a hurricane can wipe out power for 2 weeks. Not the usual result but it’s been known to happen.
@@headlibrarian1996 yeah the business plan does provide an SLA but it’s like proportional refund not actually a penalty. Usually if you want quite reliable internet you need your own AS number and multiple providers which is out of the ballpark for most home users. And yeah there’s a reason data centers tend to appear right next to power plants :)
This version is actually very good! Completely watchable, professional, and engaging, compared to the version with the loud music. Over there, I constantly felt like I want to turn the volume down, but I would also not be able to hear your voice
Nice video! I built my second startup using FreeBSD jails, Git, and Gitlab CI/CD. It's definitely possible to avoid cloud complexity until you really need it. Love your approach here, keeps things nice and simple but leaves options for later on the table. Bravo.
Yep. We essentially run a HA enterprise version of what he demos here in three DCs (FC SAN, NAS, , SDN, DB clusters). It's not as difficult as people make out to be. We do prototype and run some SaaS like email in the cloud but it's way cheaper for us to run almost everything in our private cloud.
I’m an ex-AWS and ex-Microsoft engineer. This video is brilliantly creative and full of great advice and humor. Thank you and keep up the great work! I learned some things and I’m excited for the world to start understanding these software development patterns and principles. I’m committed to only building my products following four principles: my software must be open, portable, local-first, and decentralized. This is the way forward for many use cases. My favorite use case is for a family AI server. It’s trivial to apply these patterns to create a private ChatGPT like service with free API calls. These approaches will make the Internet more affordable and safe for everyone.
oddly enough seeing (no music) bought me to the channel. This was a really interesting watch, thanks for posting it (and keeping the presentation simple :) )
Currently in a startup: moved everything to linode from AWS, deployed on kubernetes using all open source solutions. Total operational cost for a horizontally scaled SaaS app is $50 per week.for a total of $2600 per year.
@@vcoolif a startup is able to logically expense the cost of a full rewrite to save $1k/year they either don't have a product or won't have any staff soon.
I'm also looking at something like Hetzner Cloud with k3s. I kind of still want to outsource DB to something like Neon or CoachroachDB, but cloud compute is too expensive, especially if your app is mostly I/O bound. Most of our line of business apps are literally sitting at sub 1% CPU on the smallest AWS Fargate instances
I watched the first video and there were complaints about music. Got back on and you had re uploaded and fixed version. That was fast man. I just subbed this video was great.
This is an awesome video! I see so many cases where teams just default to the Cloud for everything. Then, they're fighting with things like IAM and networking policies and chasing down subtle issues for days that simply would not have even existed if they had chosen to deploy to their own data center. And, don't get me started on the AWS Lambda and managed serverless idea that was going to solve all our problems - no, solved some, created others. All, while 100% locking you into the vendor. There is a place for most technology solutions. And, you did a great job of mentioning some reasons to go Cloud. The Cloud serves a real purpose. However, it's still amazing to me how so many companies and otherwise great technologists have drunk the "Cloud kool-aid" and look at you with disdain if you even mention that they should consider another option. Hats off to the vendors for doing an outstanding job of marketing.
This is a great video and makes a fantastic case for on prem. But i disagree with it entirely, your cost breakdown for the cloud of 1mil a year is misleading. These are entire companies not one guy accidentally spinning up something that could be hosted in his bedroom. They would likely need to spend upwards of 1 million on rackspace if they were on premises anyway. For personal projects i disagree as well I too have a complex site with user login, logs, ssl, a db, and a backend that costs $1 a month. But it also requires 0 effort when i get new users, its scaling is limited manually, it has 100% uptime and i never have to touch anything. All of it took me maybe 4 hours to set up, the cloud is learnable and powerful. 94% of companies use it because it’s really good, not because they got tricked.
Without a too loud music. The video is still good ! Since you always show things on screen while never stop of talking. There is no blank and that’s perfect. That’s nice of you to have made this modification and that show your dedication in your channel. Anyway nice job. I didn’t subscribe in the first video but it’s now done ^^
I'm kicking myself as I definitely spent a long time trying to get some healthcheck scripts to work, when yeah a sleep for 30s or so would've definitely worked
This is soo good! I actually learnt the hard-way not to use the big vendors because I had 3 cosmosDB containers running slightly over free tier and it cost £150 for a month, absolute robbery. Now I use a $4/mo vps and it barely goes over 10% usage.
This is a great solution if you are young or unemployed, but when you are a business this is exactly what you want to avoid. This solution is very costly because you need to pay the wages for at least two employees who have such a deep understanding of those tools. Then you constantly need to monitor if this home grown solution still works and have to do software updates yourself all the time. While with AWS you don't need to spend money on those sysadmin guys and you have the confidence that your solution is tried and tested and will work all the time while not having to care about software updates at all.
@@vcool How would you automate software updates? You need to check if the application is still running after an update and be ready to revert the update if it fails. Plus you also need to check your homegrown solution if it is still compatible with the newer versions of the software it relies on. There's a reason why business spend so much on Amazon, because they would spend much more if they would do it themselves.
@@youtubevideos415tools like Jenkins are great for testing before deployment. All the automation software has processes to check for updates at build which generally happens at use, so the flow could be fully automated. While I believe Amazon is obviously more stable, you'll still need experts to understand, setup, monitor and grow. I guess for me I'd rather have the autonomy to fix things to work for me, and not essentially allow my company to be owned and operated by Amazon. Also AWS really just makes hardware easily accessible. Everything going on in the background needs someone to get paid to monitor it.
thank you, finally a voice of reason. also, what happens if the power goes out at your office? or your internet provider goes down? or the CTO spills coffee on the server? or the disk fails? are your users going to wait around while you drive to Best Buy? like I get the hate for the AWS alphabet soup services, but there's a middle ground between that and a box under your desk like it's the 90s. look at Digital Ocean, Hetzner Cloud, Linode, etc.
wonderful video, sir! exactly what i was looking for. even as i'm not really a programmer, i do need to make my own tools from time to time and it always annoyed me to no end that whenever i'd try to get an actual professional to build a solution, they could never understand that i don't want it on a cloud, and that i also want to be able to control and change it myself, as i can't just sit around and wait for someone else to answer me when i have an error or something. so i would always actually end up crudely doing it myself, which took a bit longer, but it was at least working the way i needed it to. you explained this point very well at the end, most truly don't need such complicated tools and more often they take away too much in turn of some apparent advantages that few are actually asking for.
Look, I was going to make a tech joke about the video and all that, but the more I listened the more the video LITERALLY FUC.. ING showed what I do for a living. Including same decisions, mindset and more. Obviously you have more than 10 years of IT experience and have gone through the WTF moments as I have. This video touched so many points in so little time. So congratulations and I happily subscribed to the channel. Also the joke was "This video is for cases when you have less than 15 minutes for the cloud and server interview and no time to learn... But you need to sound knowledgeable".
The more I learn the more I realize the solution is to bullshit other people at work. No matter what industry or what role, just bullshit a sense of competence and results. I remember one company, I lied about literally everything on the application, in the interview, and even when I was "working." The wrong people were pleased and the right people were mad but powerless to inflict on me personally any consequence. The whole world works like this. Everyone should just start doing it as much as possible. Grind the system to a halt.
I like that this video is way more popular and no one complains. Fixing mistakes is just as good as not making them in the first place as long as you don't repeat them
I couldn’t agree more. I built a server rack for multiple thousands of dollars that’s way over what I need, and it’ll still pay for itself within 2 years compared to hosting on the cloud.
The thing with AWS is you don’t have long term commitments and you can start and stop services on demand. BUT of course if you only need servers, there are also classic hosting providers that offer those on the same dynamic way as AWS for much less. Nobody says you can’t do this with normal servers. But you need more people, that is inevitable.
Which is paradoxical since it is only by paying upfront for the resources you plan to use that you can get the best pricing, the true spirit of the whole thing what was pitched years ago when the whole thing started.
@@StaffyDoo yes that's true and it is annoying. We offer a SaaS solution on AWS and we are working hard on cost optimization even though we have long term customers. If you can use spot instances then maybe you can have an advantage but for us it is not feasible. But we do benefit in that way that we have batch workloads where you would have to buy a lot of extra capacity if you used classic servers.
I've worked at a company that had their own servers sitting in Rackspace in a Datacenter nearby, the datacenter bill was laughbale compared to what we would've spent in the cloud, and surprisingly, 5 year old servers don't perform too bad. We were running on OpenShift and ArgoCD, including some very tight network firewall rules, meaning we could only log in to the control planes of those nodes from a Remote Desktop within the DC. It was honestly quite intruiging.
@@AstralJaeger if that fits your workload it is the best option. Server rental is always cheaper than cloud. But if you have a workload where you need like 5 servers for 4 hours and 1 for the rest of the day it can be problematic. On the other hand if you need fast disk I/O, servers are nearly always better as on AWS it is either slow AF or costs you an arm and a leg.
@@mudi2000a Oh I fully agree, it was a long term hosted SaaS Product that was hosted in 3 datacenters over 3 european countries. It was honestly impressive how far you can get when your are unwilling to spend money. But I still think you can host on AWS and Azure without getting fully locked in, but then it would be cheaper to just rent a dedicated box on Hetzner for 50$/mo
Love 💖 this opening statement > "AWS" service that still recommends a certification so that you can learn how to use it properly. How do we live in a world where we have subject matter experts for setting up AWS isn't the whole point of paying for the cloud that it's supposed to be painless
Yeah, had me dying as well... of cringe! It's a text editor ffs, you open the config file with it, change what you need to change, save the change, and life goes on. But nooo, it's a self-hosting video, gotta rub the neckbeards that make up the majority of the target audience...
Thanks for this great vid. This is a great intro into self-hosting. There are a lot of smaller companies in my area who are moving from clout to self-hosted solutions. This is a great way to get into those technologies and thinker a bit with them.
This video feels like an affirmation that I haven't gone crazy. Literally every professor this year in my faculty that had computer-related class (not programming, just the theory of computer architecture, professors that taught programming and oop were actually great) was telling us to use cloud, even when we were doing RAID.
@@Macheako Self hosting can be a major pain or outright impossible in some situations. You have to have a stable IP and you're ISP has to be ok with you hosting. If neither are true, then you simply can't self host. You could move, but that's quite the major life change just to avoid using someone else's computer.
@@Beakerbite Or maybe its about time to force ISPs to give all customers static IP leases without expiration on demand at no charge. I don't believe that there is any reasonable explanation that can excuse this failure.
I'm head of engineering responsible for small business / start up with 150-200 headcount, round A-D funding for example I would not choose you to lead the tech team. You'd be great consultant for advisory role, or coming in hot to fix particular project, but you would not be in a decision making decision on tech roadmaps and strategies, vendor vs in-house engineering decisions, when to use cloud natively, hybrid, or 100% on-prem, risk of power / network ISP outages. For startup, it's about trading speed for growth and less about dollar optimization for self-hosted savings. First of all, you're not just going to buy 10 servers and get 20 engineer to share those 10 servers nicely, with various apps performance differences. Also, you can't adjust compute needs to match utilization for on-prem local hosted servers. In the Cloud, you can turn it off anytime you're not using it (for development, CI-CD). For production servers, if it generates significant traffic that underpins the start up growth value, would you be ok to have no physical staff on site 24/7 monitoring the hardware because it's hosted on your office condo IDF closet / electrical room? What's the cost of that on site service vs cloud again? Once you get to matured stage, then you can benchmark on-prem savings, but usually hybrid is necessary in most cases. But the complexity of hybrid environment is way more than meet the eyes as pointed by other comments. I don't think think you understand the overall business drag and labor black hole on competitiveness of self hosted vs outsourced to the cloud.
These are two different startups. He is talking about a startup with only him it sounds like. He also seems to know his product will never become huge, but it can gain traction and be a solid company. A company with 150+ headcount and funding has usally a proven market and product. You are working on a scale-up it sounds like. These cases are just very very very different and he is not solving the scale-up problem.
A person building his startup with sound business fundamentals is an entrepreneur. A person aiming for fast growth by expanding fast to create hype is a scammer aiming for VC's money. Its tough initially but you can have same or higher compute/storage power on your own servers at a far lesser cost compared to cloud over 5~10 years. When VC money tightens you will know what on-prem is !
I was a network engineer before moving to software. Rack space is cheap. If you're paying more than maybe $1500 per month in cloud fees, its worth taking a hard look at self-hosting options.
Recently I have found "docker compose up --scale" removes the latest created container. Finally I have found the way to remove the old container. Thanks.
Nice. The main negative point is that the servers will usually be in same network and same location, so it is not proof for downtimes due power outage for example, or network issues from providers.
The only think I look for a provider today is for managed databases, I still don't want to deal with the pain of managing database servers (snapshots, backups, updates, security, patches, etc...). I don't need that much to run stateless applications, just spawning a new docker container and works like a charm, but the data store is still a pain to manage myself.
Okay, so we run RDS with backups. Cool. Where do you want to host your compute? Your compute needs to be hosted close to the database or else the database hops are going to end up costing you a lot of latency, not to mention the traffic costs at the edge for the connection into AWS coming from public internet. (additionally there's security concerns here now because your database is exposed publicly rather than living in the confines of an AWS VPC. Okay, the security issue here can be solved with properly configured security groups to limit connections in, but the requirements are stacking up here, and this is an easy step to miss for a team that's not savvy on security) Then there's the question of routing into your compute. Amazon makes this insanely easy with ELBs (Elastic Load Balancer). With your home internet provider, you'll either have a dynamic IP, or be straight up natted and you'll have a very difficult time routing to your system. The dynamic IP can be worked around with tools that will monitor your public IP address and update DNS records accordingly, but this is another piece of infrastructure to manage, and there's no way to do it with zero downtime. To get reliable static IPs you're talking about creating a datacenter, and a datacenter specifically close to AWS datacenters where they've already bought up the best land in the area for that purpose. It's also a giant upfront cost in terms of money and time for a startup that needs to be quick to market. Self hosting is a LOT more than running a couple of containers on a machine.
@@patrickrobertshaw7020I would just set up a vpn to my database, something like zerotier, it’s super fast and doesn’t need to know your ip address. You don’t need to open up any ports on your firewall for it to work. For serving you app you can use something like Cloudfront tunnels. Or just buy a cheap 1-5$ vps and set your nginx on it. Although I prefer Traefik.
@@patrickrobertshaw7020 "or be straight up natted" " already bought up the best land in the area for that purpose." You can write comments normally lol
@@patrickrobertshaw7020 No self hosting is pretty much running a couple containers on a machine. All those services you describes are just open source tools with fancy UIs. And I mean the same open source tools. In a "real" company you don't run your product from a macbook, fucking obviously. You work with a datacenter that guarantees internet, power, cooling, drive replacement. You can just run your compute there, and it'll be a few orders of magnitude faster per hardware, because storage on the cloud is UNBELIEVABLY SLOW. I'm talking spinning disks levels of read speed, with your "ssd" tier.
I thought this video was going to be a little circle jerky but like, I learned some shit and now, in 20 minutes, I added zero downtime deployment to my blog, something I thought only Kube could do. That's nice, thanks Tom.
Totally agree with this video. From my experience the only thing that I like about cloud providers is the ability to create snapshots and backups and not setup all the backup stuff alone. All the other stuff is easily replaceable.
I've been on a cloud-native project for two years in a large well-established company that runs many on-prem projects and I've noticed they have so many problems we never worry about. I'm concerned about Amazon and Google running such a large part of the world's information systems but there's no doubt that for many business problems Cloud-based architectures can be the more cost-effective than managing your own machines.
Kept working for corps that had elaborate aws systems and configs for things that could be handled with a bash script. I thought I was alone, thank you.
I appreciate this video a lot. I hate the cloud first mindset. My company decided it would like to spend thousands a month for an app that has a total of like 20 users instead of using the kubernetes cluster we set up on prem for free; which btw is still functioning with little to no downtime. Meanwhile we struggle with random bugs in the cloud that are so abstracted you can barely troubleshoot, and have to just wait until the cloud provider decides to push a fix 6 months later.
Cloud has been oversold for nearly its whole lifetime. Outside of the original concepts of rapid scale out and scale back and software deployment speed, cloud makes little sense. If you are anything above a small business with predictable system load, clouds only purpose is to make the cost opex so you can sell it to the shareholders as something that can go down.
@NoOnesBCE most cloud companies enables you to set a threshold for scaling and a limit. If done properly you should never scale beyond what's within your budget.
last year, a few classmates and I started working on a side project about LLMs. At first, it was fun learning about LLMs and playing with the latest tools and models, and we made a simple MVP for a problem we thought we could try to fix. we entered a start-up pitch competition and raised some $$, and that was the worst thing that could've happened to us imo. We suddenly switched into high gear, immediately jumping into AWS without any prior experience, and worked tirelessly to get a demo to show to clients. That winter, when i came back from a family trip after new years, i found out that all the work i had done had been abandoned as we were shifting to a new infrastructure. I quit a few weeks later, and looking back i wish we had just taken the time to learn the basics and build a quality service from the ground up. I completely lost interest in a topic I was really into not too long ago, which sucks because i still find new innovations in the field to be cool, but i have a mental block stopping me from delving deeper because of this experience.
Great video. Thought it was going to be a talking point on cloud services. Was pleasantly surprised to discover what this video actually was. I like the workflow and your video taught a few tips and tricks that I hadn't previously known. P.S. You had me at "I refuse to use nano more than once per device"
In general, whatever I watch or listen to. I don't like to have music in the back- ground or in the foreground. Having no music is a huge plus for me. Thank you very much.
Incedibly well done video. Really covered a lot of topics in a short time. I think all the advice was great! Even for someone who knows and uses most of these tools already, it is great to see how others are setting things up. Just one critical thing you missed (in my opinion) is backups. I very much agree with you that I am not so worried about a bit of down time. Downtime is no such a big deal. But data loss is a big deal. So maybe some cron jobs that backup some data to S3 for example? Sure you are using cloud in that case but in a very minimal way usually very low cost to use S3. Doing this really adds a lot of value and peace of mind at minimal cost. And one last thing. It would be great if you included a git repo with the files you created in the video.
Thank you so much, this is so inspiring that I want to setup a lab for myself and see how much do I need a cloud to "provide the solutions to my problems". Keep it coming!
Nice Vid, But I disagree with the title. Cloud is not over-engineered, (That would imply it works). The cloud tends to be needlessly abstracted to fleece customers for more money. If you look at AWS most of the services are half baked, bug riddled and wrapped in a horseshit UI. Take for example; recently AWS started charging for IPv4 public IPs but guess what you can't run IPv6 on their shit because 88% of their services ONLY(not even duel stack) support IPv4. Tbh I don't care about IPv6, I am happy to sit behind NAT for the rest of my life but to be billed for something as basic as NAT just shows how much they are missing the plot.
@@fluffysheap You do pay for NAT, either via NAT gateway(costs a small fortune) or running a NAT instance. Without NAT the private ipv4 network is cut off from the internet.
@@muhammadosama3358 Haha, that is funny you are calling basic networking, a feature... Got any more jokes? No, really this is expected by their own name; "Amazon Web Services". If we wanted to run a web less server, we can just run a closet server. The EC2 costs should already include the networking costs of NAT at minimum. So to have a basic VPC you get billed for three separate things: EC2, EC2 traffic outbound per GB and then (NAT or Pub IPv4). There are cloud providers who do not double bill like this.
As someone who has self-hosted many websites, you seem to be missing the entire point of why people prefer using cloud servers for their startups. It's all about scaling applications on a need basis to handle sudden, dramatic increases in traffic, which all startups expect as a part of their projected exponential growth strategy. Using local machines is cheaper, yes, but that is when the traffic and scale is static; even then there is a lot of infrastructure that goes into running a data center.
This video is great, regardless of migrating to the cloud or not. I believe that knowing these steps is important to anyone deploying applications in cloud
Agreed. You probably already know but ECS isn't just docker like mentioned in the vid, it'll automate provisioning servers to scale to your traffic in a rubber-banding effect (hence elastic). When mentioned in the video that it's 'preferred to have the site crash and then provision more servers' makes me cringe because while that's fine for a random person's website that can be detrimental to a business whose infrastructure failed just as they may have finally gained the traffic they worked hard to get, and once user's see hiccups in your service then that's a lasting impression that you aren't trustworthy. There's ways of using cloud without being locked down to a provider.
@@coreycollins8554 Yeah it's never preferable to have the site crash, this guy has almost certainly never worked in a proper tech company if he recommends this. The bare minimum for an app with business customers is multi AZ and 4 nines - they likely wouldn't sign a contract for an app that does less. Docker swarm isn't a solution as stated in the video, since a powercut still kills all of your machines at once. No replication of customer data is a liability issue. No node autoscaling, and it's not really feasible to automate that at home. No CDN, so the frontend will load horrifically slow from a different country. There's many reasons we use PaaS.
@@coreycollins8554 In this context it, ECS is a term of abstraction. Docker is just an core component of that abstraction. SLA is up to client to choose. If you implement "ECS" in house you pick and choose the requirements. That includes hardware(owned/rented) and location(s).
I love your content! I work at a self hosting organization. We buy used servers and run kubernetes. We own the building. We use 2 ISP and use cloudflare to load balance but looking to get into BGP when we move buildings soon. Your setup scales well. I can attest to that. Simple, not easy I mean. We use Amazon for S3 storage though. I would tweak your video by jumping straight from docker run bypassing compose and swarm straight to kubernetes. Kubernetes is great, if you don’t think so let me talk you into it.
If you call me a hypocrite for using s3… try beating about $200 last month bill for s3 but $208k of revenue. Yeah I’m not spending one minute of my day to optimize that. But the fun part is on premise I don’t have to optimize anything, ever. 32 gigs of ram per tenant ? Database server + redis + single tenant app per customer? Sure. Done. Easy. AWS is like hundreds of dollars per month for a couple cores and a couple gigs
Would you suggest K8 for a single node server? I 'm deploying customer projects on VMs and trying to dockerize the process. I 've never touched K8 or Swarm, and just stick to compose, but I 'm not confident it's a stable solution.
This is a very simplified view on how much things cost. AWS et al are professionals that invest millions of dollars into everything, starting from custom HW, hypervisors, networking, software and beyond, so that companies can abstract away infrastructure. You think that companies want to build their own infrastructure and CICD and store data and manage it? Of course they don’t! They want to write software and innovate and they are willing to handsomely pay to hyperscalers that do this professionally. There are companies that calculate TCO of infrastructure that ultimately advise companies how to do this and whether self hosting makes sense. I’m glad you shared your view, but behind this whole industry, there are thousands of experts that established this is the way.
The guys voice sounds quite young. Maybe he’s never had to forecast cpu and disc usage to purchase for a new project for the next 3 years that’s a lot harder to scale up once providers and installed than clicking a button in a cloud
It's a bit of a hard claim that cloud is over engineerd. Too bad that the majority of the video was around deploying a simple webserver. It would better proof your point if you would be able to apply, integrate, secure and scale multiple different applications. Then add data processing and analytics on top and ensure that the entire stack is fully observable. My point is: cloud is very usefull, but merely overkill if you only have a very simple compute demand. Other than that, the additional services are worth their money very fast.
I think the assumption of this video is incorrect. The cloud is obviously not for you or your scale. The cloud is for SCALE and RELIABILITY not simplicity. Although it is significantly simpler than running your own tools
When you need certifications to do something, then it isn't simple. What this video went through is the absolute rock bottom of competence, because the level of understanding required is low, and you can get by mainly following instructions. You can't do this in a day, you shouldn't work as a software engineer.
100% this, as a DevOps engineer for a massive company (30,000 engineers and billions in revenue) you don’t choose these tools for simplicity of setup, you choose them for simplicity of adaptation and scale.
For most businesses and people, those are just buzz words. Startups usually don't make money and some of the biggest ones don't have stable business models. If you need cheap cloud scalability to run your business, you probably don't have a viable business model.
That's a big one. The convenience of not having to set up and maintain your own equipment and just having something work. Your place could have a power outage or a flood and your site and services will still work. Amazon could have their equipment crap out but they have back up equipment ready to go and will deal with getting new equipment. There is a big value in having a service that will pretty much magically always work and maintain itself for you.
what music... man this was a breath of common sense after a week of aws test prep... i understood it all intuitively (except i had not used cuddy - just nginx) with like zero weirdness plus i liked the penguins. And i have used aws for 4 years professionally and ... yes i have never scaled more than a server at a time and... it used to be cheap. subscribed!
You're comparing 1 mil of cloud spending by a startup to an old laptop running a docker container in someone's apartment. Is this a joke? Also, depending on the website (static vs dynamic), It might be cheaper to just run it in the cloud. Statically host it in S3 + use cloudfront for your CDN, and use lambda for API routes. Use a serverless DB like dynamo or aurora. Depending on your traffic, the cloud soultion could be cheaper. Also, it would come out of the box with: Unified metrics, logging, and alarms. 99.99+ SLAs on availability and persistence. IaC, no infra management, near infinite scalability, audit logs, ops console, etc... Perhaps people reach for cloud solutions too often -- but the self hosted docker container is not convincing me of anything.
Yup, there's a LOT of caveats. I've worked at startups that had such huge AWS spend. It is so much more complicated than this video suggests. For sure, you get to a point where it makes sense to hire a DevOps person or two and do it yourself on bare metal. Or even an AWS guru who can reoptimize things and cut down the bill, making themselves more than worth their salary (I've seen this before). Too many people these days *do* go for cloud hosting when it's just never going to be needed. (e.g. Vercel / Netlify) vs a $50 a month VPS. The startup example with $1million+ bill is a weird example.
You forgot to mention that cloud is not only lambdas and s3s but also networking. Good luck with setting up firewalls, switches, routers as hardware in your garage alone. With cloud it is much simpler
As an SRE/DevOps/Blahblah engineer, I cannot but strongly agree with you, especially when you say, 'I just don't like the idea that because Fortune 500 companies do things a certain way, we should all follow.' My job mainly involves meeting the needs of companies aspiring to be like Fortune 500s, but personally, I don't trust those 'black boxes' wrapped in marketing fluff just so they can be called 'cloud.' My instances are all self-hosted Kubernetes clusters, simply because I'm also a bit pedantic. Regards from Chile!
As a senior engineer working in AWS, I've been telling people that there is literally no way in hell that paying for AWS is cheaper than running your own data center. With AWS, you have to pay for the data center, and all the maintenance, and Amazon has to make a profit. During a major migration to AWS internally, we calculated that the cost of AWS compared to Amazon's internal data center was 3x. We even got the internal discount, and it is still far cheaper to run our own.
@@mananshah3248 Yes absolutely. Managing AWS infrastructure is just as expensive as managing your own data center, always. There's a reason why some of the internal Amazon teams are moving off of AWS into internal "self managed" data centers. (note: all data centers are on "aws" because we're all using the same data centers, "aws" is just a tool/ui overlay)
Just to give an update on this. We purposely change names of tools and mechanisms from industry standard (for example security groups are just firewalls) just to hide the underlying mechanisms because we don't want customers to realize that AWS is literally just a UI wrapper over open source products for the most part. If you're not a real engineer, this is not an issue. But once your business starts to become larger and hit scaling capacity considerations, your engineers will never learn what is the actual bottleneck because our documentation is purposely written just to onboard customers and has very few details about how it actually is working. This has a lot of important issues because your architects will never be able to fully architect an efficient system because they will not know the actual issues until they happen. (this is why we are now offering ProServ to "help" people architect a more effective infra...but we charge a lot for that) So on the cost of management side, I would strongly argue that managing your own infrastructure is by far and away easier than managing cloud infrastructure. It is also by far more secure because you don't even need to open your internal data centers externally; whereas AWS is always available to the public, so you have to manage your own private networks carefully. In fact, a great way to evaluate your engineer's depth of actual software engineering knowledge is how scared they are to build an internal infrastructure as compared to cloud infrastructure. A good engineer should have more confidence when given more self-managed controls. A bad engineers would argue all these nonsense about not knowing how to do things yourself and cloud managed services is a great advantage.
In my first job, I was in a small startup where we had a 60 year old linux neckbeard as IT. He built an incredibly robust infrastructure out of free open source software and old cheap hardware.
Who let the grandpa stallman in?
But it was still shit as no one else could maintain it. What happened when he retired a few years later?
@@robrider838the question is: at what cost. Could admins are also crazy expensive. So you pay a lot on the guy setting it up, running it and infrastructure. Just so that another expensive guy can take over? At a certain scale it might actually be advisable to simply have a team of 3 or 4 doing the thing. Not being that expensive because you train them and not having a high turnover because your company has a nice culture.
@@johanneskurz7122 And good luck overtaking their job after they leave most of the time it's outdated code structure from a nerd who wants to do it his way so nobody can understand what his doing.
When you have a bus factor of 1, and neckbeards don't have that high a life expectancy
This is a genuinely a really good self-hosting walkthrough, and you're right about the cloud's shortcomings. I'll be dead before I carry water for aws/gcp/etc, but i think it must be said that there's a pretty large gap between what you're showing and the sort of commercial-scale operations that the cloud is meant to be a practical replacement for (one where the cost of a devops department would run into six figures)
Exactly. I’m really looking for a way to reduce our company’s AWS bill but this just wont cut it
Well, if you have 1 devops then your cost is already six figures. And cloud doesn't fix it, as most developers are too bad with cloud stuff so you'll still need to hire someone with an expertise or suffer the consequences.
@@cloudboogie"most devs are bad with cloud stuff" hmmm... What? I see people developing/certifying themselves on it every single day man, and taking into account how many jobs there are available on that field... Just makes no sense unless you're thinking about the 40yo+ devs that have a beard, yellow glasses, "I'm on arch btw" and still think WSL is a desecration of the Linux Kernel or something.
@@Jossarianz move to another provider - running your containers under VMs i.e. Linode, Equinix Metal, Digital Ocean, Vultur
for real.
Have any of you been through a process-related audit (e.g. SOX, NIST, PCI, HIPAA)?
Every single process in your enterprise will be reviewed, with varying degrees of thoroughness, depending on your industry.
Your "it runs faster if I host it from the PC under my desk!" attitudes represent real risk to the company you work for. _Everything_ has to be logged, everything has to be auditable, and (at this point) nothing does that as well as public cloud.
Nice one , music was a little loud
music is haram
😂@@user-zg2bx4oz2p
Music is haram
Yes music is HARAM
Can verify music is indeed haram
Companies like AWS, Google, and Azure price on a curve. Its cheaper in the begining but once you use the handy dandy "scalability" you are effectively trapped in an overpriced money pit that you can't escape from
Yup. Used to sell those as a „consultant“ the cost to change the system is so high that companies stick to your solution and continue to pay you to maintain ist even tho they know it’s overpriced trap.
Yeah, we hit the million dollar AWS bill mark, the frugal CEO starts freaking out, and soon enough we have 6-7 fairly competent engineers iterating on the infrastructure for cost and other improvements anyways. Doesn't make a lot of sense at that point, but it also doesn't make sense to change.
can you give examples with real numbers because the more data u use per month the less u pay per gb used
@@user-lrg3glm6rhdyv okay so that's true, but it depends on what features are attached. Those features are an absolute ripoff
the actual pricey thing in the cloud is storage. Compute isnt really that expensive nowadays.
Love the VC -> Bezos pipeline. One of the all time classics
Things I learned:
a) How to self host
b) This video used to have annoyingly loud music
Well, you are still going to use the cloud, but it will be Linode or Digital Ocean, which are way cheaper than AWS.
@@biomorphic What makes it necessary to use hosting providers?
@@1err3 not having the burden to buy, maintain, replace the hardware. Many years ago I had physical servers in a data center, and I had many dick failures. Unless you have a lot of machines, and you can save a ton buying your own hardware, getting a virtual machine is much better. Also you don't have to deal with the initial investment cost. And the time you spend to install, buy, upgrade, is money. It is more convenient use Linode or Digital Ocean, or other providers.
@@1err3hosting providers have built in power redundancy, some level of physical redundancy (host based), handle edge (firewall), they have publicly routable ranges (eg not CG NAT)- all for a few bucks a month for a basic package, it’s a no brainer.
@@1err3 in the video he can access his website on public network because he has public ip address, some internet providers doesn't allow that, so you have to rent a cloud server (usually cheaper than aws) and either host your stuff there or set up a reverse proxy. Another perk is that cloud servers tend to have much higher bandwidth (around 8Gbps in my case) and lower latency to mainframes so the end users might have a better experience.
I am simple person, I see self host, I like.
😆😆
You sound like you could be my friend
Ain't that the truth
Did we just become best friends?
No really I need friends. 😭 lol
@@jjones503 yeah we can be friends 😅
YESSS... I'm so happy I learned the LAMP stack doing everything by scratch before the insanity that is webdev now became what it is. I know how to do everything manually.
Thank you for having a version without music
😭😂🤣. Bro paid you for saving his ears
When are you donating us poor souls?
Thank you for donating. More videos should not have music.
Just curious, what's wrong with music?
@@imamuzzaki
distracting
The way you showcased how things would actually work if self hosted is really impressive. I, for the longest time, wanted to self host my website, blogs, packages, etc. But I couldn't figure out how to do it. This just gives me a reason to do it. Thanks.
if this man disappears, we all know the reason
The music mafia got to him
He's an aussie, Bezos has no power over him.
@@AUniqueHandleName444 I don't think the music is from Amazon tho
Did he get trapped inside one of his own Docker containers?
The AWS death squadron is coming for you
As a software engineer who has worked with bare metals, hybrid infrastructure and Cloud I tell you cheap is a very relative concept. You can deploy anything on your cheap notebook, but maintaining it will be a pain. Backup, upgrades and disk replacement is just something you have to consistently consider when you host these things. I used to work in a company where the infrastructure was hybrid, we hosted our stuff through VMware and bare metal, and it was a pain. Setting up distaste recovery plans and monitoring was just annoying. No one wanted to do it. And with the cloud you just trust it will work. It’s truly on another level.
Exactly. Getting something to ”work“ and maintaining something are completely different things.
Everything is In your word trust.
You trust until one day you notice issues in your data, then you open a ticket, the answer is yes we lost your data. You field a claim, the answer is in the contract your responsible for your data saving... Then you wonder why the cloud at the first point 😂
Most companies grossly underestimate the costs
Also.. imagine trusting aws
@@user-vb9vc1es3o me when backups do not exist
@@user-vb9vc1es3o "notice issues in your data". A competent software engineer would be able to discover the origin of these data issues and address them appropriately. The scenario you laid out assumes that the data/software engineer is not qualified for the role and needs to be let go.
music was REALLY loud for a tech video. thanks!
So caught me off guard with the nixOS spin. It was a pleasant surprise.
dude i was already hooked after you started out saying everything ive been experiencing about industry in the first 2 minutes, and then you mentioned nixos and i literally started cheering. this video is what all developers and enterprise archtiects need to see. we waste so much effort over engineering simple scripts to work in aws that should be a collection of systemd units configured with nix on a SINGLE ec2 or, better yet, an on prem computer. i swear sometimes my work laptop could run our data pipelines every morning that we currently deploy with terraform and aws lambda
So my personal philosophy:
- if project doesn’t demand absurd SLA or you just having fun, use home hosting
- if initial or small deployment for high reliability, cloud makes sense. Cost of reliable internet and power usually exceeds cost of cloud (eg lambda + RDS instance)
- the tipping point of dedicated local hosting is when the cost of backup power, real estate, and high SLA fiber can be amortized against cloud bill
- cloud only makes sense for large loads in narrow circumstances. The overhead price for scalability is often not less than the cost of maintaining excess infra. The main variable here is time/consistency.
Also worth differentiating “cloud” versus like private server hosting. I think that the typical shared data center renting rack space or even single bare metal server model looks more like home hosting with defrayed cost of reliable power and fiber.
Personally being able to reconfigure my home network rack without taking down my public website is nice. Also if you try to do email from Comcast consumer IP space you will be permanently spammed. You need reverse DNS etc.
For my application I’d absolutely do home hosting if I didn’t have Comcast randomly taking out my Internet for 10-15 minutes at a time during business hours. It’s not a daily occurrence but I’m not certain paying for a business line would fix it. Plus I live in Florida, where a hurricane can wipe out power for 2 weeks. Not the usual result but it’s been known to happen.
@@headlibrarian1996 yeah the business plan does provide an SLA but it’s like proportional refund not actually a penalty. Usually if you want quite reliable internet you need your own AS number and multiple providers which is out of the ballpark for most home users. And yeah there’s a reason data centers tend to appear right next to power plants :)
This version is actually very good! Completely watchable, professional, and engaging, compared to the version with the loud music.
Over there, I constantly felt like I want to turn the volume down, but I would also not be able to hear your voice
Nice video! I built my second startup using FreeBSD jails, Git, and Gitlab CI/CD. It's definitely possible to avoid cloud complexity until you really need it. Love your approach here, keeps things nice and simple but leaves options for later on the table. Bravo.
Yep. We essentially run a HA enterprise version of what he demos here in three DCs (FC SAN, NAS, , SDN, DB clusters). It's not as difficult as people make out to be. We do prototype and run some SaaS like email in the cloud but it's way cheaper for us to run almost everything in our private cloud.
I’m an ex-AWS and ex-Microsoft engineer. This video is brilliantly creative and full of great advice and humor. Thank you and keep up the great work! I learned some things and I’m excited for the world to start understanding these software development patterns and principles.
I’m committed to only building my products following four principles: my software must be open, portable, local-first, and decentralized. This is the way forward for many use cases.
My favorite use case is for a family AI server. It’s trivial to apply these patterns to create a private ChatGPT like service with free API calls. These approaches will make the Internet more affordable and safe for everyone.
And Then, theres people become multi millionare selling your stuff.. that you actively develop each day.
oddly enough seeing (no music) bought me to the channel. This was a really interesting watch, thanks for posting it (and keeping the presentation simple :) )
Currently in a startup: moved everything to linode from AWS, deployed on kubernetes using all open source solutions.
Total operational cost for a horizontally scaled SaaS app is $50 per week.for a total of $2600 per year.
what was it like before?
That's still a lot. Can you rewrite it into an efficient language with efficient algorithms to where a single node is sufficient?
@@vcoolif a startup is able to logically expense the cost of a full rewrite to save $1k/year they either don't have a product or won't have any staff soon.
@@vcoolrewriting a product can take 100’s of 1000’s of $, and can potentially fail.
I'm also looking at something like Hetzner Cloud with k3s.
I kind of still want to outsource DB to something like Neon or CoachroachDB, but cloud compute is too expensive, especially if your app is mostly I/O bound.
Most of our line of business apps are literally sitting at sub 1% CPU on the smallest AWS Fargate instances
12:33 This is exactly why I still use VPS servers, Self host, and use Docker, and Nginx. I want control and save a lot of money.
Better without music
Average linux user publishing an index.html file
I watched the first video and there were complaints about music. Got back on and you had re uploaded and fixed version. That was fast man. I just subbed this video was great.
This is an awesome video! I see so many cases where teams just default to the Cloud for everything. Then, they're fighting with things like IAM and networking policies and chasing down subtle issues for days that simply would not have even existed if they had chosen to deploy to their own data center. And, don't get me started on the AWS Lambda and managed serverless idea that was going to solve all our problems - no, solved some, created others. All, while 100% locking you into the vendor. There is a place for most technology solutions. And, you did a great job of mentioning some reasons to go Cloud. The Cloud serves a real purpose. However, it's still amazing to me how so many companies and otherwise great technologists have drunk the "Cloud kool-aid" and look at you with disdain if you even mention that they should consider another option. Hats off to the vendors for doing an outstanding job of marketing.
I just watched your previous video and now i am hooked to your channel. Nice content.
Bro really. Make a tutorial replicate this one using Kamal I can help you with the configuration
This is a great video and makes a fantastic case for on prem. But i disagree with it entirely, your cost breakdown for the cloud of 1mil a year is misleading. These are entire companies not one guy accidentally spinning up something that could be hosted in his bedroom. They would likely need to spend upwards of 1 million on rackspace if they were on premises anyway.
For personal projects i disagree as well I too have a complex site with user login, logs, ssl, a db, and a backend that costs $1 a month. But it also requires 0 effort when i get new users, its scaling is limited manually, it has 100% uptime and i never have to touch anything. All of it took me maybe 4 hours to set up, the cloud is learnable and powerful. 94% of companies use it because it’s really good, not because they got tricked.
Thank you for using "on premises" instead of "on premise" like most people.
Without a too loud music. The video is still good !
Since you always show things on screen while never stop of talking. There is no blank and that’s perfect.
That’s nice of you to have made this modification and that show your dedication in your channel.
Anyway nice job. I didn’t subscribe in the first video but it’s now done ^^
Saved this. I’m a big fan of self hosting and love the thought you put in software you can run instead of picking defaults like nginx and Ubuntu.
"I sleep for 30 seconds since it's easier than doing a health check" best life advice here
I'm kicking myself as I definitely spent a long time trying to get some healthcheck scripts to work, when yeah a sleep for 30s or so would've definitely worked
This is soo good! I actually learnt the hard-way not to use the big vendors because I had 3 cosmosDB containers running slightly over free tier and it cost £150 for a month, absolute robbery. Now I use a $4/mo vps and it barely goes over 10% usage.
This is a great solution if you are young or unemployed, but when you are a business this is exactly what you want to avoid. This solution is very costly because you need to pay the wages for at least two employees who have such a deep understanding of those tools. Then you constantly need to monitor if this home grown solution still works and have to do software updates yourself all the time. While with AWS you don't need to spend money on those sysadmin guys and you have the confidence that your solution is tried and tested and will work all the time while not having to care about software updates at all.
Software updates for the most part are supposed to be automated or otherwise skippable.
@@vcool How would you automate software updates? You need to check if the application is still running after an update and be ready to revert the update if it fails. Plus you also need to check your homegrown solution if it is still compatible with the newer versions of the software it relies on. There's a reason why business spend so much on Amazon, because they would spend much more if they would do it themselves.
@@youtubevideos415tools like Jenkins are great for testing before deployment. All the automation software has processes to check for updates at build which generally happens at use, so the flow could be fully automated.
While I believe Amazon is obviously more stable, you'll still need experts to understand, setup, monitor and grow. I guess for me I'd rather have the autonomy to fix things to work for me, and not essentially allow my company to be owned and operated by Amazon. Also AWS really just makes hardware easily accessible. Everything going on in the background needs someone to get paid to monitor it.
thank you, finally a voice of reason. also, what happens if the power goes out at your office? or your internet provider goes down? or the CTO spills coffee on the server? or the disk fails? are your users going to wait around while you drive to Best Buy? like I get the hate for the AWS alphabet soup services, but there's a middle ground between that and a box under your desk like it's the 90s. look at Digital Ocean, Hetzner Cloud, Linode, etc.
The cloud isn't gonna maintain itself either. You got shared responsibility. Or you end up paying another MSP for doing that.
Yeah most software developers don't know anything about hardware or system administration. If you do, you are one of the few and deserve a raise.
Very wise. We’ve traded a strong magic aversion to layers of magic recently. Too much magic equals too little understanding.
wonderful video, sir! exactly what i was looking for. even as i'm not really a programmer, i do need to make my own tools from time to time and it always annoyed me to no end that whenever i'd try to get an actual professional to build a solution, they could never understand that i don't want it on a cloud, and that i also want to be able to control and change it myself, as i can't just sit around and wait for someone else to answer me when i have an error or something. so i would always actually end up crudely doing it myself, which took a bit longer, but it was at least working the way i needed it to. you explained this point very well at the end, most truly don't need such complicated tools and more often they take away too much in turn of some apparent advantages that few are actually asking for.
0:12 you had me sold in the first 10 seconds… here take my crippling AWS credit debt
I love how simple and straightforward all of this is. And I find it really interesting the choice for NIXOS for just it's config file nature
Look, I was going to make a tech joke about the video and all that, but the more I listened the more the video LITERALLY FUC.. ING showed what I do for a living. Including same decisions, mindset and more. Obviously you have more than 10 years of IT experience and have gone through the WTF moments as I have.
This video touched so many points in so little time. So congratulations and I happily subscribed to the channel.
Also the joke was "This video is for cases when you have less than 15 minutes for the cloud and server interview and no time to learn... But you need to sound knowledgeable".
The more I learn the more I realize the solution is to bullshit other people at work. No matter what industry or what role, just bullshit a sense of competence and results. I remember one company, I lied about literally everything on the application, in the interview, and even when I was "working." The wrong people were pleased and the right people were mad but powerless to inflict on me personally any consequence.
The whole world works like this. Everyone should just start doing it as much as possible. Grind the system to a halt.
"the video LITERALLY FUC.. ING showed what I do for a living."
Why do people write like this?
I like that this video is way more popular and no one complains. Fixing mistakes is just as good as not making them in the first place as long as you don't repeat them
You earned my trust in less than 15 minutes. Subscribed!
I couldn’t agree more. I built a server rack for multiple thousands of dollars that’s way over what I need, and it’ll still pay for itself within 2 years compared to hosting on the cloud.
The thing with AWS is you don’t have long term commitments and you can start and stop services on demand. BUT of course if you only need servers, there are also classic hosting providers that offer those on the same dynamic way as AWS for much less. Nobody says you can’t do this with normal servers. But you need more people, that is inevitable.
Which is paradoxical since it is only by paying upfront for the resources you plan to use that you can get the best pricing, the true spirit of the whole thing what was pitched years ago when the whole thing started.
@@StaffyDoo yes that's true and it is annoying. We offer a SaaS solution on AWS and we are working hard on cost optimization even though we have long term customers. If you can use spot instances then maybe you can have an advantage but for us it is not feasible. But we do benefit in that way that we have batch workloads where you would have to buy a lot of extra capacity if you used classic servers.
I've worked at a company that had their own servers sitting in Rackspace in a Datacenter nearby, the datacenter bill was laughbale compared to what we would've spent in the cloud, and surprisingly, 5 year old servers don't perform too bad. We were running on OpenShift and ArgoCD, including some very tight network firewall rules, meaning we could only log in to the control planes of those nodes from a Remote Desktop within the DC. It was honestly quite intruiging.
@@AstralJaeger if that fits your workload it is the best option. Server rental is always cheaper than cloud. But if you have a workload where you need like 5 servers for 4 hours and 1 for the rest of the day it can be problematic. On the other hand if you need fast disk I/O, servers are nearly always better as on AWS it is either slow AF or costs you an arm and a leg.
@@mudi2000a Oh I fully agree, it was a long term hosted SaaS Product that was hosted in 3 datacenters over 3 european countries. It was honestly impressive how far you can get when your are unwilling to spend money.
But I still think you can host on AWS and Azure without getting fully locked in, but then it would be cheaper to just rent a dedicated box on Hetzner for 50$/mo
Love 💖 this opening statement
> "AWS" service that still recommends a certification so that you can learn how to use it properly. How do we live in a world where we have subject matter experts for setting up AWS isn't the whole point of paying for the cloud that it's supposed to be painless
You had me at "I refuse to use nano more than once per computer" 👏
Yeah, had me dying as well... of cringe!
It's a text editor ffs, you open the config file with it, change what you need to change, save the change, and life goes on.
But nooo, it's a self-hosting video, gotta rub the neckbeards that make up the majority of the target audience...
@@THESERIOUSLYSMILEexactly
Thanks for this great vid. This is a great intro into self-hosting. There are a lot of smaller companies in my area who are moving from clout to self-hosted solutions. This is a great way to get into those technologies and thinker a bit with them.
This video feels like an affirmation that I haven't gone crazy.
Literally every professor this year in my faculty that had computer-related class (not programming, just the theory of computer architecture, professors that taught programming and oop were actually great) was telling us to use cloud, even when we were doing RAID.
It really did just sweep the industry by storm and people haven’t looked back at all 😢
@@Macheako Self hosting can be a major pain or outright impossible in some situations. You have to have a stable IP and you're ISP has to be ok with you hosting. If neither are true, then you simply can't self host. You could move, but that's quite the major life change just to avoid using someone else's computer.
@@Beakerbite That's what colocation datacenters are for. en.wikipedia.org/wiki/Colocation_centre
@@Beakerbite Or maybe its about time to force ISPs to give all customers static IP leases without expiration on demand at no charge. I don't believe that there is any reasonable explanation that can excuse this failure.
@@Moe_Posting_Chad Won't work unless we all switch to ipv6
this is very, very good in that "the rant I would go on myself if I was better informed" sort of way
I'm head of engineering responsible for small business / start up with 150-200 headcount, round A-D funding for example I would not choose you to lead the tech team. You'd be great consultant for advisory role, or coming in hot to fix particular project, but you would not be in a decision making decision on tech roadmaps and strategies, vendor vs in-house engineering decisions, when to use cloud natively, hybrid, or 100% on-prem, risk of power / network ISP outages.
For startup, it's about trading speed for growth and less about dollar optimization for self-hosted savings. First of all, you're not just going to buy 10 servers and get 20 engineer to share those 10 servers nicely, with various apps performance differences. Also, you can't adjust compute needs to match utilization for on-prem local hosted servers. In the Cloud, you can turn it off anytime you're not using it (for development, CI-CD). For production servers, if it generates significant traffic that underpins the start up growth value, would you be ok to have no physical staff on site 24/7 monitoring the hardware because it's hosted on your office condo IDF closet / electrical room? What's the cost of that on site service vs cloud again?
Once you get to matured stage, then you can benchmark on-prem savings, but usually hybrid is necessary in most cases. But the complexity of hybrid environment is way more than meet the eyes as pointed by other comments. I don't think think you understand the overall business drag and labor black hole on competitiveness of self hosted vs outsourced to the cloud.
These are two different startups. He is talking about a startup with only him it sounds like. He also seems to know his product will never become huge, but it can gain traction and be a solid company. A company with 150+ headcount and funding has usally a proven market and product. You are working on a scale-up it sounds like. These cases are just very very very different and he is not solving the scale-up problem.
A person building his startup with sound business fundamentals is an entrepreneur. A person aiming for fast growth by expanding fast to create hype is a scammer aiming for VC's money. Its tough initially but you can have same or higher compute/storage power on your own servers at a far lesser cost compared to cloud over 5~10 years. When VC money tightens you will know what on-prem is !
I was a network engineer before moving to software. Rack space is cheap. If you're paying more than maybe $1500 per month in cloud fees, its worth taking a hard look at self-hosting options.
Recently I have found "docker compose up --scale" removes the latest created container. Finally I have found the way to remove the old container. Thanks.
Lawliet?
First time someone mentioned "revisit that later" and actually revisited it later. Bravo
Been wanting to self-host and this was a great start. Awesome video, man!
Nice.
The main negative point is that the servers will usually be in same network and same location, so it is not proof for downtimes due power outage for example, or network issues from providers.
Good for you to reupload this. Great video, totally agree (as a cloud engineer myself!!)
This video is great. No dragging, no padding content. Just straight to the point. Must RUclipsrs should take notes. Thanks!
The only think I look for a provider today is for managed databases, I still don't want to deal with the pain of managing database servers (snapshots, backups, updates, security, patches, etc...). I don't need that much to run stateless applications, just spawning a new docker container and works like a charm, but the data store is still a pain to manage myself.
Okay, so we run RDS with backups. Cool.
Where do you want to host your compute? Your compute needs to be hosted close to the database or else the database hops are going to end up costing you a lot of latency, not to mention the traffic costs at the edge for the connection into AWS coming from public internet. (additionally there's security concerns here now because your database is exposed publicly rather than living in the confines of an AWS VPC. Okay, the security issue here can be solved with properly configured security groups to limit connections in, but the requirements are stacking up here, and this is an easy step to miss for a team that's not savvy on security)
Then there's the question of routing into your compute. Amazon makes this insanely easy with ELBs (Elastic Load Balancer). With your home internet provider, you'll either have a dynamic IP, or be straight up natted and you'll have a very difficult time routing to your system. The dynamic IP can be worked around with tools that will monitor your public IP address and update DNS records accordingly, but this is another piece of infrastructure to manage, and there's no way to do it with zero downtime. To get reliable static IPs you're talking about creating a datacenter, and a datacenter specifically close to AWS datacenters where they've already bought up the best land in the area for that purpose. It's also a giant upfront cost in terms of money and time for a startup that needs to be quick to market.
Self hosting is a LOT more than running a couple of containers on a machine.
@@patrickrobertshaw7020I would just set up a vpn to my database, something like zerotier, it’s super fast and doesn’t need to know your ip address. You don’t need to open up any ports on your firewall for it to work.
For serving you app you can use something like Cloudfront tunnels. Or just buy a cheap 1-5$ vps and set your nginx on it. Although I prefer Traefik.
@@patrickrobertshaw7020
"or be straight up natted"
" already bought up the best land in the area for that purpose."
You can write comments normally lol
@@patrickrobertshaw7020 No self hosting is pretty much running a couple containers on a machine. All those services you describes are just open source tools with fancy UIs. And I mean the same open source tools. In a "real" company you don't run your product from a macbook, fucking obviously. You work with a datacenter that guarantees internet, power, cooling, drive replacement. You can just run your compute there, and it'll be a few orders of magnitude faster per hardware, because storage on the cloud is UNBELIEVABLY SLOW. I'm talking spinning disks levels of read speed, with your "ssd" tier.
I thought this video was going to be a little circle jerky but like, I learned some shit and now, in 20 minutes, I added zero downtime deployment to my blog, something I thought only Kube could do. That's nice, thanks Tom.
0:51 Half-Life easter egg.
thank you! been searching ages for this topic. it's been my age old interest to do devops without getting vendor locked in as a fullstack developer.
I mentioned something like this once in a job interview. They didn't want to hear it and didn't proceed, unsurprisingly...
You’re supposed to hide your “crazy” during interviews, and let it loose once they let you in.
simple != easy. Such a gold statement. Instant DeepCopy, right there :D
Totally agree with this video.
From my experience the only thing that I like about cloud providers is the ability to create snapshots and backups and not setup all the backup stuff alone. All the other stuff is easily replaceable.
nice comeback dude, i saw how fast you acted on feedback, big ups!
I've been on a cloud-native project for two years in a large well-established company that runs many on-prem projects and I've noticed they have so many problems we never worry about.
I'm concerned about Amazon and Google running such a large part of the world's information systems but there's no doubt that for many business problems Cloud-based architectures can be the more cost-effective than managing your own machines.
Subbed after no music upload
Likewise lol
Same!
Kept working for corps that had elaborate aws systems and configs for things that could be handled with a bash script. I thought I was alone, thank you.
I am verry impressed by the details and all in one description you are delivering here. Thank you verry much!
now, i know i don't have a spend a single dime on cloud services for my own projects. Thank you so much!!
Deleting docker would make this small scope use case much simpler and better IMO
I ran a website from a single binary executable as a systemd service and caddy installed on bare metal Debian. It works really well
I appreciate this video a lot. I hate the cloud first mindset. My company decided it would like to spend thousands a month for an app that has a total of like 20 users instead of using the kubernetes cluster we set up on prem for free; which btw is still functioning with little to no downtime. Meanwhile we struggle with random bugs in the cloud that are so abstracted you can barely troubleshoot, and have to just wait until the cloud provider decides to push a fix 6 months later.
Cloud has been oversold for nearly its whole lifetime. Outside of the original concepts of rapid scale out and scale back and software deployment speed, cloud makes little sense. If you are anything above a small business with predictable system load, clouds only purpose is to make the cost opex so you can sell it to the shareholders as something that can go down.
Even the scalability comes with massive risks as costs can scale out of control and tank a startup.
@NoOnesBCE most cloud companies enables you to set a threshold for scaling and a limit. If done properly you should never scale beyond what's within your budget.
last year, a few classmates and I started working on a side project about LLMs. At first, it was fun learning about LLMs and playing with the latest tools and models, and we made a simple MVP for a problem we thought we could try to fix. we entered a start-up pitch competition and raised some $$, and that was the worst thing that could've happened to us imo. We suddenly switched into high gear, immediately jumping into AWS without any prior experience, and worked tirelessly to get a demo to show to clients. That winter, when i came back from a family trip after new years, i found out that all the work i had done had been abandoned as we were shifting to a new infrastructure. I quit a few weeks later, and looking back i wish we had just taken the time to learn the basics and build a quality service from the ground up. I completely lost interest in a topic I was really into not too long ago, which sucks because i still find new innovations in the field to be cool, but i have a mental block stopping me from delving deeper because of this experience.
Great video. Thought it was going to be a talking point on cloud services. Was pleasantly surprised to discover what this video actually was.
I like the workflow and your video taught a few tips and tricks that I hadn't previously known.
P.S. You had me at "I refuse to use nano more than once per device"
In general, whatever I watch or listen to.
I don't like to have music in the back-
ground or in the foreground. Having
no music is a huge plus for me. Thank
you very much.
Incedibly well done video. Really covered a lot of topics in a short time. I think all the advice was great! Even for someone who knows and uses most of these tools already, it is great to see how others are setting things up.
Just one critical thing you missed (in my opinion) is backups. I very much agree with you that I am not so worried about a bit of down time. Downtime is no such a big deal. But data loss is a big deal. So maybe some cron jobs that backup some data to S3 for example? Sure you are using cloud in that case but in a very minimal way usually very low cost to use S3. Doing this really adds a lot of value and peace of mind at minimal cost.
And one last thing. It would be great if you included a git repo with the files you created in the video.
Thank you so much, this is so inspiring that I want to setup a lab for myself and see how much do I need a cloud to "provide the solutions to my problems". Keep it coming!
Nice Vid, But I disagree with the title. Cloud is not over-engineered, (That would imply it works). The cloud tends to be needlessly abstracted to fleece customers for more money. If you look at AWS most of the services are half baked, bug riddled and wrapped in a horseshit UI. Take for example; recently AWS started charging for IPv4 public IPs but guess what you can't run IPv6 on their shit because 88% of their services ONLY(not even duel stack) support IPv4. Tbh I don't care about IPv6, I am happy to sit behind NAT for the rest of my life but to be billed for something as basic as NAT just shows how much they are missing the plot.
They only charge for public IP. You can have all the 10.x, etc addresses you want, and use those to access their ipv4 only services.
@@fluffysheap You do pay for NAT, either via NAT gateway(costs a small fortune) or running a NAT instance. Without NAT the private ipv4 network is cut off from the internet.
can you blame them? it was probably the most abused feature ever. basically free hosting forever (in the context of EC2 with a public IP attached)
@@muhammadosama3358 Haha, that is funny you are calling basic networking, a feature... Got any more jokes? No, really this is expected by their own name; "Amazon Web Services". If we wanted to run a web less server, we can just run a closet server. The EC2 costs should already include the networking costs of NAT at minimum. So to have a basic VPC you get billed for three separate things: EC2, EC2 traffic outbound per GB and then (NAT or Pub IPv4). There are cloud providers who do not double bill like this.
Came in to the vid quite sceptical of the main argument, and came out pretty convinced. Good job!
The cloud is just someone else's computer.
*virtual computer. It's virtual computers all the way down
@@tomasprochazka6198 virtual computers running on somebody else's computers you pay yet cannot access directly
@@tomasprochazka6198 ...that still needs to run on someone else's computer.
Dumbest comment
Your passion is contagious, I know what I will do this summer.
As someone who has self-hosted many websites, you seem to be missing the entire point of why people prefer using cloud servers for their startups. It's all about scaling applications on a need basis to handle sudden, dramatic increases in traffic, which all startups expect as a part of their projected exponential growth strategy. Using local machines is cheaper, yes, but that is when the traffic and scale is static; even then there is a lot of infrastructure that goes into running a data center.
Using a hybrid Cloud Model with Focus on bare-metal 😉
is the bare metal focus for your machine or the cloud machine? and why the bare metal focus, what does it provide?
This video is great, regardless of migrating to the cloud or not. I believe that knowing these steps is important to anyone deploying applications in cloud
If you are a tinker, then do this, if you are a business, who wants to focus on business and not server maintenance, then use the cloud
Agreed. You probably already know but ECS isn't just docker like mentioned in the vid, it'll automate provisioning servers to scale to your traffic in a rubber-banding effect (hence elastic). When mentioned in the video that it's 'preferred to have the site crash and then provision more servers' makes me cringe because while that's fine for a random person's website that can be detrimental to a business whose infrastructure failed just as they may have finally gained the traffic they worked hard to get, and once user's see hiccups in your service then that's a lasting impression that you aren't trustworthy. There's ways of using cloud without being locked down to a provider.
@@coreycollins8554 Yeah it's never preferable to have the site crash, this guy has almost certainly never worked in a proper tech company if he recommends this. The bare minimum for an app with business customers is multi AZ and 4 nines - they likely wouldn't sign a contract for an app that does less. Docker swarm isn't a solution as stated in the video, since a powercut still kills all of your machines at once. No replication of customer data is a liability issue. No node autoscaling, and it's not really feasible to automate that at home. No CDN, so the frontend will load horrifically slow from a different country.
There's many reasons we use PaaS.
"I've never seen anyone actually use multi regions on the cloud for their services" ok yeah that's the nail in the coffin for this video
@@coreycollins8554 In this context it, ECS is a term of abstraction. Docker is just an core component of that abstraction. SLA is up to client to choose. If you implement "ECS" in house you pick and choose the requirements. That includes hardware(owned/rented) and location(s).
And get shoved down the throat a 10k bill at the end of the month because you have no idea what you’re doing
You are an expert in DevOps. I have zero idea on this other than Vercel and Netlify
I love your content! I work at a self hosting organization. We buy used servers and run kubernetes. We own the building. We use 2 ISP and use cloudflare to load balance but looking to get into BGP when we move buildings soon.
Your setup scales well. I can attest to that. Simple, not easy I mean.
We use Amazon for S3 storage though.
I would tweak your video by jumping straight from docker run bypassing compose and swarm straight to kubernetes. Kubernetes is great, if you don’t think so let me talk you into it.
If you call me a hypocrite for using s3… try beating about $200 last month bill for s3 but $208k of revenue. Yeah I’m not spending one minute of my day to optimize that.
But the fun part is on premise I don’t have to optimize anything, ever. 32 gigs of ram per tenant ? Database server + redis + single tenant app per customer? Sure. Done. Easy.
AWS is like hundreds of dollars per month for a couple cores and a couple gigs
Would you suggest K8 for a single node server? I 'm deploying customer projects on VMs and trying to dockerize the process. I 've never touched K8 or Swarm, and just stick to compose, but I 'm not confident it's a stable solution.
This is a very simplified view on how much things cost. AWS et al are professionals that invest millions of dollars into everything, starting from custom HW, hypervisors, networking, software and beyond, so that companies can abstract away infrastructure. You think that companies want to build their own infrastructure and CICD and store data and manage it? Of course they don’t! They want to write software and innovate and they are willing to handsomely pay to hyperscalers that do this professionally. There are companies that calculate TCO of infrastructure that ultimately advise companies how to do this and whether self hosting makes sense. I’m glad you shared your view, but behind this whole industry, there are thousands of experts that established this is the way.
The guys voice sounds quite young. Maybe he’s never had to forecast cpu and disc usage to purchase for a new project for the next 3 years that’s a lot harder to scale up once providers and installed than clicking a button in a cloud
It's insane how there are tons of very valuable companies whose entire thing is to be a wrapper around AWS to make it easier to use.
It's a bit of a hard claim that cloud is over engineerd. Too bad that the majority of the video was around deploying a simple webserver. It would better proof your point if you would be able to apply, integrate, secure and scale multiple different applications. Then add data processing and analytics on top and ensure that the entire stack is fully observable.
My point is: cloud is very usefull, but merely overkill if you only have a very simple compute demand. Other than that, the additional services are worth their money very fast.
Cool, this proves the point I don't want to do any of this self-hosting stuff
I think the assumption of this video is incorrect. The cloud is obviously not for you or your scale. The cloud is for SCALE and RELIABILITY not simplicity. Although it is significantly simpler than running your own tools
“Although it is significantly simpler than running your own tools.”
Wut.
When you need certifications to do something, then it isn't simple.
What this video went through is the absolute rock bottom of competence, because the level of understanding required is low, and you can get by mainly following instructions. You can't do this in a day, you shouldn't work as a software engineer.
100% this, as a DevOps engineer for a massive company (30,000 engineers and billions in revenue) you don’t choose these tools for simplicity of setup, you choose them for simplicity of adaptation and scale.
For most businesses and people, those are just buzz words. Startups usually don't make money and some of the biggest ones don't have stable business models. If you need cheap cloud scalability to run your business, you probably don't have a viable business model.
That's a big one. The convenience of not having to set up and maintain your own equipment and just having something work. Your place could have a power outage or a flood and your site and services will still work. Amazon could have their equipment crap out but they have back up equipment ready to go and will deal with getting new equipment. There is a big value in having a service that will pretty much magically always work and maintain itself for you.
what music... man this was a breath of common sense after a week of aws test prep... i understood it all intuitively (except i had not used cuddy - just nginx) with like zero weirdness plus i liked the penguins. And i have used aws for 4 years professionally and ... yes i have never scaled more than a server at a time and... it used to be cheap. subscribed!
You're comparing 1 mil of cloud spending by a startup to an old laptop running a docker container in someone's apartment. Is this a joke?
Also, depending on the website (static vs dynamic), It might be cheaper to just run it in the cloud. Statically host it in S3 + use cloudfront for your CDN, and use lambda for API routes. Use a serverless DB like dynamo or aurora. Depending on your traffic, the cloud soultion could be cheaper.
Also, it would come out of the box with: Unified metrics, logging, and alarms. 99.99+ SLAs on availability and persistence. IaC, no infra management, near infinite scalability, audit logs, ops console, etc...
Perhaps people reach for cloud solutions too often -- but the self hosted docker container is not convincing me of anything.
Yup, there's a LOT of caveats. I've worked at startups that had such huge AWS spend. It is so much more complicated than this video suggests.
For sure, you get to a point where it makes sense to hire a DevOps person or two and do it yourself on bare metal. Or even an AWS guru who can reoptimize things and cut down the bill, making themselves more than worth their salary (I've seen this before).
Too many people these days *do* go for cloud hosting when it's just never going to be needed. (e.g. Vercel / Netlify) vs a $50 a month VPS.
The startup example with $1million+ bill is a weird example.
This is the first video of yours I've seen. 2 minutes in I knew I wanted to sub.
You forgot to mention that cloud is not only lambdas and s3s but also networking. Good luck with setting up firewalls, switches, routers as hardware in your garage alone. With cloud it is much simpler
As an SRE/DevOps/Blahblah engineer, I cannot but strongly agree with you, especially when you say, 'I just don't like the idea that because Fortune 500 companies do things a certain way, we should all follow.' My job mainly involves meeting the needs of companies aspiring to be like Fortune 500s, but personally, I don't trust those 'black boxes' wrapped in marketing fluff just so they can be called 'cloud.' My instances are all self-hosted Kubernetes clusters, simply because I'm also a bit pedantic. Regards from Chile!
Not bad, young engineer. You only reinvented like 10 wheels.
Didn’t see your video on how not to reinvent 10 wheels
I really appreciated your conclusion! ... Folks need to take time and rethink the cloud argument
As a senior engineer working in AWS, I've been telling people that there is literally no way in hell that paying for AWS is cheaper than running your own data center. With AWS, you have to pay for the data center, and all the maintenance, and Amazon has to make a profit. During a major migration to AWS internally, we calculated that the cost of AWS compared to Amazon's internal data center was 3x. We even got the internal discount, and it is still far cheaper to run our own.
if you factor in loss of engineering time to build and maintain owned data center, would it still cost less?
@@mananshah3248 Yes absolutely. Managing AWS infrastructure is just as expensive as managing your own data center, always. There's a reason why some of the internal Amazon teams are moving off of AWS into internal "self managed" data centers. (note: all data centers are on "aws" because we're all using the same data centers, "aws" is just a tool/ui overlay)
@@mananshah3248have you factored in engineering time for thikering with API, control panels, sizing, aux services and integrations on AWS?
Just to give an update on this. We purposely change names of tools and mechanisms from industry standard (for example security groups are just firewalls) just to hide the underlying mechanisms because we don't want customers to realize that AWS is literally just a UI wrapper over open source products for the most part.
If you're not a real engineer, this is not an issue. But once your business starts to become larger and hit scaling capacity considerations, your engineers will never learn what is the actual bottleneck because our documentation is purposely written just to onboard customers and has very few details about how it actually is working.
This has a lot of important issues because your architects will never be able to fully architect an efficient system because they will not know the actual issues until they happen. (this is why we are now offering ProServ to "help" people architect a more effective infra...but we charge a lot for that)
So on the cost of management side, I would strongly argue that managing your own infrastructure is by far and away easier than managing cloud infrastructure. It is also by far more secure because you don't even need to open your internal data centers externally; whereas AWS is always available to the public, so you have to manage your own private networks carefully.
In fact, a great way to evaluate your engineer's depth of actual software engineering knowledge is how scared they are to build an internal infrastructure as compared to cloud infrastructure. A good engineer should have more confidence when given more self-managed controls. A bad engineers would argue all these nonsense about not knowing how to do things yourself and cloud managed services is a great advantage.