Why Netlify has mastered CI/CD
Tags: beginners, webdev, netlify, javascript
Published: 2021-01-11 22:29:56

## Introduction

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.

# What is Netlify?

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.

It has solved a problem that is so needed given how much is required of developers to know to get a web app, service, website out onto the internet. It's hard enough keeping up to date with the latest Javascript framework for example!

## What would I use Netlify for?

If you want:

- Continuous Integration
- Continuous Deployment
- A new environment created with a domain for each pull request
- Domain management
- Analytics
- 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.

## But that is only for frontend projects...?

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.

## But what about Github pages?

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.

## My Netlify workflow

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 👇

![Github Workflow](https://dev-to-uploads.s3.amazonaws.com/i/7obagjdvdlqtnasvwjjz.PNG)

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.

## Closing thoughts...

My opinion on Netlify as an offering is that it has really mastered and spotted the gap in the market for developers to build apps without worrying how they would host it, integrate it, monitor it and most of all maintain it. Like I mentioned earlier it's hard enough to keep up with the latest Javascript framework let alone cloud-based DevOps. If you want to dig a bit deeper on Netlify I will leave some links below.

### Useful resources

Netlify Docs: [https://docs.netlify.com/](https://docs.netlify.com/)

Heroku Docs: [https://devcenter.heroku.com/start](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! 👇