Do you prefer to manage things yourself as opposed to using a fully managed hosted alternative? For example, self-hosted MongoDB cluster or a managed alternative like MongoDB Atlas or Amazon DocumentDB?
What do you prefer in general? What pros or cons do you see in each approach?
From a security standpoint, I've seen some major downsides to managed services unfortunately. So many moving parts and the problem with each managed service is that I've noticed many users of them do not become as well-trained as they should... So you end up seeing developers using 5-15 managed services and having only a cursory knowledge of the security implications behind them... Coupled with the fact that many managed services backseat security documentation and training, and it can be a nasty recipe.
I definitely see the benefits as well though - It's nice not having to deal with the upkeep and maintenance and being able to do a few click launch,
I am not only a developer, so the answer is it depends.
I personally don't use managed systems, I do it myself or I pay a really good admin to build it for me. But than that's how I approach things, there are different perspectives and values at play.
For normal developers they usually suck at system administration and there knowledge of an OS ends with the copy paste tutorial and their 4 projects where they wanted to do XYZ and need some insights.
So they should definitely use managed systems with automated redundancies integrated and so on.
To me they are usually little value for the small scale, because I need to practice my admin skills anyways so yeah .... values I get value out of it not using AWS others want AWS ....
There are even certain scenarios where it makes sense to have those externalities but we're talking big league here, for the others it's just being lazy most of the time.
Anyhow that's how I see it.
I don't like managing my own servers.
But I also don't like giving up complete control.
I went from own hardware with own git server to a VPS and a Github account.
But I still do all the application stuff myself. It's kind of horrible, but I have to admit the skills do often come in handy.
Managed services are usually costly. But if you've enough $$s, I'll choose managed services.
Even though I don't have enough $$s, I'm still using many managed services. The key advantage is "ship fast". As a startup, moreover reducing the price, I'd prefer to ship features fast.
While looking back at MFY we may have built 10 features with the help of many managed services. Out of 10, only 3 or 4 was very useful for customers. So we dropped the rest. If you didn't choose managed services, we may don't have enough time to ship all these 10!
What I would say is go with managed services first, once everything is up and running and you have a good team to focus on devops, gradually migrate away from managed!
In short
Pros:
Cons:
There was a time, when self-managed was better. But now, there are cloud providers, which allow me to upload my own applications. They offer infrastructure, like Firewalls and IP routing. They offer platforms, like hosting Docker containers. Why would I stay on a server, which I have to setup and secure and monitor and update, if I can just run one terminal command 😂
That's one reason why I cancelled my server contracts, and why I will switch all my stuff to cloud providers. It's easier and more stable, and also cheaper.
The whole thing is different for companies, though, and they will always come up with different strategies depending on their projects.
j
stuff ;)
Gijo Varghese
A WordPress speed enthusiast
Emil Moe
Senior Data Engineer
I prefer something in the middle that could be called "assisted services". I want to have my hands on and know what's going on, but I am too not only a programmer and I can manage most parts of a Linux server and the infrastructure.
But, if as some oppose, you categorise an interface to configure a firewall service around your servers, then I guess I'm on to managed too, but I don't see these as managed because I still manage the rules myself.
What I like is templating to make it easier to setup non-managed services and useful feedback that keeps my maintenance time low to the necessary part. I don't want to log into 10+ servers to see if they need my attention, I want something to tell me that a server needs my attention, and that's what I would call assisted services.
If I don't know what's happening, I tend to get confused, and that's a reason I am not satisfied with managed services. Just like I would hate to own a work computer that is locked to a company policy.