Code Monkey home page Code Monkey logo

brodygaudel / devops Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 1.0 193 KB

E-BANK is a banking management application developed using a microservices architecture. It allows managing customer bank accounts and operations such as credit and debit. This application is composed of several microservices developed with modern technologies.

Dockerfile 1.38% Java 98.62%
cicd devops docker docker-compose java jenkins jenkins-pipeline jenkinsfile kubernetes kubernetes-deployment maven spring-boot springboot springcloud springcloud-gateway

devops's Introduction

E-BANK Application

E-BANK is a banking management application developed using a microservices architecture. It allows managing customer bank accounts and operations such as credit and debit. This application is composed of several microservices developed with modern technologies.

Microservices

  • discovery-service: Discovery service using Spring Cloud Netflix Eureka.
  • gateway-service: API Gateway using Spring Cloud Gateway.
  • customer-service: Customer management microservice.
  • account-service: Bank account management microservice, developed using CQRS and Event-Sourcing architecture with Axon Framework.

Architecture

The architecture of this application is based on microservices, which allows for scalability and easier maintenance. The account-service microservice uses CQRS (Command Query Responsibility Segregation) and Event-Sourcing to efficiently and reliably manage bank account operations.

Technologies Used

Development

  • Java
  • Spring Boot
  • Axon Framework
  • Axon Server
  • MySQL

Deployment

  • Docker
  • Kubernetes
  • Jenkins
  • Nexus
  • SonarQube
  • Maven
  • Git

Prerequisites

  • Docker: Ensure Docker is installed and running.
  • Kubernetes: A Kubernetes cluster should be configured and accessible.
  • Jenkins: Jenkins should be installed to run CI/CD pipelines.
  • Maven: Maven should be installed to build the Java projects.
  • Git: Git should be installed to clone repositories.

Installation and Deployment

Clone the Repository

git clone https://github.com/BrodyGaudel/devops.git
cd devops

Build the Services

Use Maven to build the Java services:

cd discovery-service
mvn clean install -DskipTests
cd ../gateway-service
mvn clean install -DskipTests
cd ../customer-service
mvn clean install -DskipTests
cd ../account-service
mvn clean install -DskipTests

Build Docker Images

docker build -t mounanga/discovery-service ./discovery-service
docker build -t mounanga/gateway-service ./gateway-service
docker build -t mounanga/customer-service ./customer-service
docker build -t mounanga/account-service ./account-service

Push Images to Docker Hub

Ensure your Docker credentials are configured in Jenkins.

docker push mounanga/discovery-service
docker push mounanga/gateway-service
docker push mounanga/customer-service
docker push mounanga/account-service

Deploy to Kubernetes

Deploy the services to the Kubernetes cluster:

kubectl apply -f k8s/discovery-service.yaml
kubectl apply -f k8s/gateway-service.yaml
kubectl apply -f k8s/customer-service.yaml
kubectl apply -f k8s/account-service.yaml
kubectl apply -f k8s/mysql-service.yaml
kubectl apply -f k8s/axon-server.yaml

Jenkins Pipeline

The Jenkins pipeline is defined in the Jenkinsfile and includes the following stages:

  1. CLONE: Clone the Git repository.
  2. INSTALL: Build the services with Maven.
  3. TEST: Run unit tests.
  4. PACKAGE: Package the services.
  5. IMAGE: Build Docker images.
  6. PUSH: Push Docker images to Docker Hub.
  7. DEPLOY: Deploy the services to Kubernetes.

Monitoring and Code Quality

  • SonarQube: Used for code quality analysis.
  • Nexus: Used as a repository manager for Maven dependencies.

Contributions

Contributions are welcome! Please submit a pull request for any improvements or fixes.

License

This project is licensed under the MIT License. See the LICENSE file for details.


For any questions or assistance, please open an issue on the GitHub repository.

Thank you for using E-BANK!

devops's People

Contributors

brodygaudel avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

pascarusilviu

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.