Now people would prefer using cloud services for their workload like personal blogs, websites, and databases. It is totally fine since it really gets the thing done and save your time, but as a devops guy I prefer to host my own services on my own system.
Anyway please don't get me wrong. I'm not running my own physical machine like people did twenty years ago. This post you are reading is hosted on a VPS costing me about USD $10 a month.
There are some benefits of running your own system.
Keep understanding the basics
Using cloud services is good, but you will miss the underlying mechanism like kernel, shells, cronjobs... you name it. These components had changed a lot in a decade. Do you still remember SysV Init and Upstart?
Simplicity and flexibility
Before the container dominance, having different services integrated on the same server really needs some effort. Just the C library or package dependency can screw up your solution. Finally you get those dependencies done, but how about the next update? With container technologies you can just simply update a particular software without affecting others.
My definition of freedom is the level of having control over something. The more control you have, the more freedom you have. Using cloud services implies that you have to follow the provider's policies. Say you have to upgrade your software version before a deadline or the software and data will be forced to upgrade, which may not be what you want. Only hosting our own server can give us the freedom for these kind of decisions.
You never know how the service providers protect your data. There are many cases saying that the data is not encrypted, or even the passwords are not hashed! I would say Murphy's law is the first law to remember in IT industry. Consider owning your data if possible.
Managing my own server is cumbersome, but this challenge me to keep update the knowledge and rethink about the architecture, which is a accomplishment for a tech guy to pursue.