Welcome, Developers

Dion Beetson
December 16, 2021
Welcome, Developers

The team at MNF would like to welcome you to our new Developer website, hosting all the information you will need regarding the products and services we have available.

On top of that, we will also be maintaining a blog which will contain plenty of information and guidance around the technologies we use and how you can also use them.

Why do we need such a website when we have a wiki containing similar information? Good question. The wiki is more for internal MNF communication. The MNF Developer website is like a hub for all the information you would need as a customer of MNF to access our products and services. The blog is where you can read up on any tips and tricks on the technologies we use which might help your company, too.

And so, I give you the MNF Developer project.

The MNF Developer website was created using Jamstack technologies - JavaScript, APIs, and Markup. What is Jamstack and why should you use it can all be found on the Jamstack website. Basically, we chose to use Jamstack because it fits in with our current tech stack of using Javascript frameworks, predominately React, for our front end development and it is also easily scalable, which fits in with our AWS hosting.

When developing locally, the project can be cloned from our Git repo, create a new branch and set up in any environment quickly using Docker. First you need to build the containers using docker-compose build --no-cache then you can start the containers with docker-compose up. I like to use the "--no-cache" option to make sure I am building something clean, especially if I make any changes to config files.

Once you're ready to release the changes to the world, you can push your branch to the remote Git repo project and create a Merge Request. Your changes will be reviewed by a peer before approval is given for you to merge your branch and start the deployment process. We use Terraform to manage our AWS deployments to ensure all of the proper tags are in place and everything is in order. For this project, there is an S3 bucket for the front end, an EC2 instance in a Docker container in ECS for the CMS and a MySQL database in RDS.

The pipeline has the option to prepare, build, plan and apply the ECS and RDS instance in either non prod or prod and upload the front end files to the S3 bucket in non prod. These options are manually selected and run in sequence to ensure the process is completed in order.

When a change is made in the CMS, a webhook exists which re-deploys the front end to the S3 bucket with the updated content and APIs. During this process, there is no downtime to the website so you won't even be able to tell we are running a deployment. Yay CI / CD pipelines!

With this project now complete, apart from any minor fixes we feel like making, we can use this project structure to create other websites across the business and know that we have the expertise to create content and support the system. Happy developing!

Share the love with your network
About the Author
Dion Beetson

Dion is the Head of Engineering at MNF, based out of Sydney. His leadership style focuses on providing context, not control, so teams can better understand the problem and then own decision making at the team level. He enjoys his coffee - a piccolo 1/2 sugar is his daily order.