In a world where we want access to everything 24/7 and want it instantly. Technology has to progress with it. Even though I am only just coming up to 6 years of experience as a developer. I feel the landscape of CI/CD has changed MASSIVELY. Since I set out on my journey.
I remember that years ago I was deploying .NET solutions via either a dedicated server or a virtual machine, simply by publishing the output then using FileZilla take that output and put it on the server. That was what worked (kind-of). .NET back then was in its framework ages, .NET Core was not much more than a glimmer.
Fast forward to today, you can literally get a free CI/CD pipeline based on your git commits integrated into your repository. In a few clicks. With hosting so freely / widely accessible, it's truly amazing how easy it is these days to get world-class CI/CD without an expense being paid on your behalf.
Netlify is a web development platform that will allow you to link up to your git repositories and have a domain, environment, ci/cd pipeline all setup and configured from its UI (As well as a ton of other stuff). It essentially encapsulates all the things that typically you would need to be an expert in DevOps to do, but made simple.
Netlify essentially takes the process of deploying a web application (react, angular, vue, etc) and makes it so simple. You can take advantage of their CLI or opt for their intuitive UI. Their UI takes 4 clicks in total to get a git repository and deploy it on their servers with a subdomain. It's that simple. You can view your builds in progress with logs, trigger new builds, and more.
If you want:
- Continuous Integration
- Continuous Deployment
- A new environment created with a domain for each pull request
- Domain management
- A/B Testing on branches
- Environment specific behavior
- Custom config files for your environments
For free, then you should definitely look into Netlify 😉
Honestly, you get all of that for free. Meaning you do not need to even start with picking a cloud provider and figuring out what resources to provision. You just use their service through a few buttons and you're up and running.
True, but that is where other providers such as Heroku come into play. Heroku for example has near-exact functionality that Netlify does (CI/CD) but can support your NodeJs services and many more types of languages. This means that regardless of what your need is for hosting (backend service, frontend app) there is a provider that can suit your needs. I currently use both, Netlify for my frontend solutions and Heroku for my backend solutions.
Again, that is a good point because as Github becomes even more enhanced in it's CI/CD actions it might be simpler for you to plug into Github pages. But again this is where it depends on your requirements. You won't get out the box monitoring and analytics from Github, however, for a small fee you can get things like Analytics from Netlify seamlessly. I also think the domain management is outstanding from Netlify. I've managed to manage my domains with ease and set up email domains etc all from the panel. Something that as a PAAS offering Netlify offers, whereas Github won't. Again, it all depends on your requirements.
So with my Netlify site all hooked up to my Github repository as soon as I commit to my main branch, it will go and deploy to production. However, if I open a pull request it behaves a little differently. See below 👇
As you can see above it outlines the process of my main branch at the top and my pull requests below it. It's really sophisticated and I'm actually really grateful that I have access to this type of infrastructure, free and easy to access.
Netlify Docs: https://docs.netlify.com/
Heroku Docs: https://devcenter.heroku.com/start
What are your thoughts on the likes of Netlify and Heroku? What do you use yourself? Let me know in the comments below! 👇