Devops Toolchain of the website
This is how this website is made. I have a DevOps approach with a continuous integration & continuous development (CICD) toolchain. The cornerstone of my methodology is AWS coupled with Github .
Here is a summarized visualization:
DevOps pillars
I’m following each pillar of the DevOps toolchain :
- Plan: : Trello & Github README.md
- Code: Visual Studio Code
- Build: Ruby & Jekyll
- Test: Testing locally firt with jekyll webserver and therefore online through a private dev environment by pushing on the dev branch of the github repository.
- Release & Deploy: Releasing by merging dev branch into master branch. The commit & push on the repository triggers the build on the AWS Platform . With this process, I have 0 downtimes. Ever. And that, that is satisfying.
- Operate: Through AWS Cloudwatch IF needed.
- Monitor: With Google Analytics .
In detail:
IDE
I’m using Visual Studio Code as an integrated development environment on W10.
Framework & Language
I’m using Ruby language with Jekyll framework as a Static Site Generator (SSG). I’m first building, deploying & running in local with Jekyll. Jekyll is building the website dynamically as the code change.
Organization
I use Trello as a Kanban board in order to have a visual system for managing work as it moves through.
Source code management
I’m using a private repository of Github with the GitFlow workflow. Not public because I have unfinished works that I don’t want you to be spoiled.
Cloud platform
I firstly wanted to go with Terraform and building an infrastructure as code for Amazon Web Services (AWS). But why would I bother myself when I could use AWS as a Saas (Software as a service) by using AWS Amplify. AWS Amplify is simplyfing the use of the following AWS Services by combining them : (Found by analyzing the IAM Policy of the CLI)
- AWS s3
- AWS Lambda
- AWS Route53
- AWS Cloudfront
- AWS AppSync
- AWS API Gateway
- AWS CloudFormation
- AWS Cognito
- AWS DynamoDB
Analytics & Feedbacks
I use google analytics coupled with HeatMap plugin. I ask for feedbacks online and from friends.