Author: Ashraful

  • Technical Design Doc: Sample

    Here is a template of technical design doc that I use. Introduction This technical design document outlines the architecture, components, algorithms, and technologies used in building this system. Project Context Term Details Notes Problem Statement: Existing feature vendor shutting down Shutting down by …. Goals & Objectives: Develop inhouse services for this feature Non-Goals: Identify…

  • Host WordPress as a static site

    Turn WordPress into a static site generator and host securely like Jamstack in a top cloud provider for free or at a very affordable cost. Step 1: Install WordPress locally using your favorite method. I like localwp. I would recommend keeping local files and databases in Git or iCloud/gdrive since we are not going to…

  • Docker desktop alternative for mac

    If you are part of an organization with 250 employees or revenue of $10M, the free usage of ‘Docker Desktop’ is no longer available. While developers don’t necessarily require a graphical user interface (UI) for working with Docker, having an alternative to run Docker containers is essential. Thankfully, there are several macOS-friendly alternatives to consider.…

  • Add any metrics to Prometheus with Golang

    Here are some types of metrics we can add to Prometheus Counter Gauge Histogram Summary Here is a golang example to add any metrics to Prometheus for Grafana dashboard

  • Version control database schema using Flyway

    Many ORM framework like Django, Laravel comes with a nice database migration tool which let us update database schema in ease, also changes in database schema can be version controlled in the git repo. But if I’m not using any of such frameworks then how can I version control my database schema and use database…

  • Production-ready Docker file for Golang app

    An example of a production-ready multi-stage Docker file for any Golang project. The first stage will build a binary file with the Golang Alpine image. In the second stage, the binary file will be copied from the previous image(golang-alpine) to a new image created from Alpine. So the final image size is small (~5mb alpine…

  • Things to consider when creating new service in Microservices

    Things to consider when creating new service in Microservices

    How RESTful services in Microservices architecture can be more efficient. Here is the list of the things I would consider while planning for a new API service. Each RESTful service should have a wellโ€‘defined boundary. Individual services should be simple, faster to develop, and easier to understand and maintain.

  • Calling APIs from Javascript/Node.js

    Calling APIs from Javascript/Node.js

    This is one of the most common things nowadays developers are doing more than before. Raise of Microservices based architecture and distributed software development needs more inter-service communication i.e more codes for API consuming stuff, sometimes more than actual business logic. It is good that business logic coding is now less redundant. Consuming API with…

  • Docker Logging with Elasticsearch Fluentd Kibana(EFK) Stack

    Docker Logging with Elasticsearch Fluentd Kibana(EFK) Stack

    In the world of containerization, Docker has emerged as a popular choice for packaging and deploying applications. However, effectively managing and analyzing logs generated by Docker containers can be a challenging task. That’s where the power of the Elasticsearch Fluentd Kibana (EFK) stack comes in. By combining these three robust technologies, Docker logging becomes a…

  • Docker Security Checklist

    Docker Security Checklist

    Use official images. Restrict network/links within containers. Make sure docker daemon REST api is off, and then use traditional UNIX permission checks to Limit access to the control socket. Limit docker daemon permission on host. Run as non-root. Add an extra layer of safety by enabling AppArmor, SELinux, GRSEC, or your fav hardening solution.