I recently hired three fantastic developers – one who's great with React and two Python experts. However, I was surprised to discover that none of them knew how to deploy their work on AWS, GCP, or even Vercel. They did an excellent job understanding the business requirements and writing the code, but when it came to deployment, they simply pushed their code to GitHub and thought that was it.
Is this a common situation? Do I actually need to bring in a DevOps or infrastructure expert? Are there any dev-friendly platforms available where developers can easily set up EC2 instances and handle the entire deployment process from start to finish?
Thanks!
1. you did not specify that you wanted developers with DevOp experience.
2. it is possible that the developers you hired had previously worked in much larger companies where infrastructure staff handled the deployment aspect.
As a general rule, deployment depends on numerous factors, is it SaaS, in-house, cloud, hybrid? What technologies, what volumes, etc, etc? Except for trivial setups AWS and GCP require considerable expertise.
If you don't want to hire a fourth person, you could specify your requirements for deployment and have one of your team train as a DevOp.
I didn't know the end-to-end process of deploying a dynamic web application[^1] until somewhat recently (5+ years into a software career). For much of my career a different team handled the site deployment, which only ran on the company intranet[^2].
That said, I only learned the FULL end-to-end process in the last few months, when I finally began building my own web application, entirely on my own, from the ground up.
The process wasn't hard to learn. The basic fundamentals have not changed, it's just there is a lot more noise and abstractions. AWS, GCP, Vercel, DigitalOcean, whatever - the myriad of services they offer are all examples of that noise.
Don't get me wrong, cloud providers solve real business problems and make developers lives easier in a lot of ways. But they are not in the business of making it easy for you to roll your own web application without them. They still want your money and that sweet, sweet vendor-lock.
Anyway, I kinda like DigitalOcean because the abstraction layer is relatively transparent and their documentation is very, very good. They also have a limited set of features, which sounds like a con but is in fact a pro. Fewer features = less "noise". For a simple web app, one may only need 3-5 of AWS's hundreds of services.
If your web-dev company is very small, you don't need a dedicated DevOps expert[^3]. It's easy enough for a decent software engineer to learn. It sounds like you just hired three of them.
[^1]: I knew how to deploy sites with HTML, CSS, and Javascript only.
[^2]: Should I have learned how to deploy dynamic apps to the world wide web sooner? Sure, but there were a lot of things to learn early in my career.
[^3]: This is assuming a standard web-dev shop, making a web service running online.
I have never used the platforms you mention because the employers that used them had an existing deployment infrastructure when I joined.
That also applies to a lot of tools. By the time I showed up a lot of complex tasks had become a two word command. I could focus on writing code because other people had already worked on the developer experience.
No biggie. Congrats to the Python people, they will now be enjoying dev ops.
Look into Heroku for the easiest to get started with. GCP is pretty understandable too depending on use-case and other needs.
Render and Fly.io are similar to Heroku, but tbh, do not seem as reliable. I have personally had some issues with Render.
Sincerely, a DevOps guy.