Background

Ara is a tool designed to automate email notifications for clients, primarily used to send billing reminders before the due date. The tool was developed using Java for the backend, Next.js for the frontend, MySQL as the primary database, RabbitMQ for messaging, and MongoDB for specific data storage requirements.

Role and Responsibilities

In this project, I worked as a DevOps Engineer, with responsibilities that included:

  • Ensuring smooth development processes through CI/CD principles.
  • Preparing infrastructure before developers started coding.
  • Setting up the staging environment for QA testing.
  • Configuring the production environment for deployment.

DevOps Process

I ensured that development adhered to DevOps principles. The process included:

  1. Code Integration: When developers pushed their code, it was automatically sent to the GitLab repository.
  2. CI/CD Pipeline: GitLab CI executed automated pipelines for continuous integration and deployment.
  3. Containerization: The builds were stored in Docker Hub, and Docker containers were used to deploy and run the application.
  4. Monitoring and Alerting: I implemented monitoring using Grafana and Prometheus, with alert systems integrated into WhatsApp and Telegram for real-time notifications.

Collaboration

The development process for Ara involved close collaboration across multiple teams, including:

Quality Assurance (QA): Tested the application in staging environments to ensure functionality and reliability.

Technical Leads: Created and managed tasks for developers through Jira.

Developers: Worked on the implementation of features based on the tickets.

Dokumentasi

Frontend

Container Process

CI/CD Script