SaFi Bank Space : IT Operations - Technology Inventory Software

Related Ticket: SAF-1451

Name of Application

Purpose

License Type

Gradle

Gradle is a build automation tool we use for our Java and Kotlin projects. It is used to manage our dependencies, compile and package code, and perform other tasks related to building different software project.

When building a Kotlin app using GitHub Actions, Gradle can be used as the build tool to automate the process of compiling and packaging the code. This allows developers to define the build process in a single file (build.gradle) and run it automatically using GitHub Actions, without having to manually compile and package the code.

Opensource

Trivy Vulnerability Scanner

When integrated with GitHub Actions, Trivy can be used to scan container images and other software packages for vulnerabilities as part of the CI/CD pipeline. This allows developers to automatically detect and fix vulnerabilities before they are deployed to production, improving the security of the software. The scanner analyzes the package manager data and compares it with a local or online vulnerability database, providing a report of vulnerabilities and their severity.

Opensource

ArgoCD

We use ArgoCD, a GitOps tool, to automate the deployment and management of our application on a Kubernetes cluster.

Opensource

Hasicorp Vault

We use Hashicorp Vault for securely storing and managing sensitive information, such as secrets and credentials. It provides a centralized, secure storage for sensitive information and can be used to provide dynamic access controls and audit logging. Vault can be integrated with a variety of systems, such as databases, cloud infrastructure, and Kubernetes.

Hashicorp Vault Premium License

Apache Maven

We use Apache Maven for building and managing Java projects. It is a build automation tool that is widely used for Java projects and provides a standard way to manage dependencies, compile and package code, and perform other tasks related to building a software project.

Opensource

Openapi

We use OpenAPI (formerly known as Swagger) for designing, building, and documenting RESTful APIs. It provides a standard, language-agnostic interface to describe RESTful APIs, which allows for easy generation of client and server code. It also provides tools for generating documentation, testing and validation of the API.

Opensource

Sonarqube

We use SonarQube for static code analysis and quality management of software projects. It provides a wide range of metrics and checks for various programming languages, including Java, C#, and JavaScript, and can be integrated with various build and development tools like Maven, Gradle, Jenkins, and GitHub Actions. It can be used to identify code smells, bugs, and security vulnerabilities, as well as to ensure code quality and maintainability.

Opensource

Google Cloud Platform (sdks)

We use Google Cloud Platform (GCP) SDKs for interacting with GCP services and resources from a command-line interface or code. GCP SDKs provide a set of tools and libraries for various programming languages such as Java, Python, Go, C# and more, that allows developers to easily access and manage GCP resources from their local development environment or from a cloud-based infrastructure. The SDKs provide a variety of functionalities like creating, deleting, and listing resources, as well as performing more advanced tasks like running big data analysis on GCP.

Google Cloud Platform Pay-as-you-go model

Docker

We use Docker binary for creating, deploying, and running containerized applications. It provides a simple and efficient way to package and distribute software in a portable format, allowing it to run consistently across different environments.

Opensource

Confluent Kafka (plugins, sdks, connectors)

We use Confluent Kafka, which is a distributed streaming platform, for building real-time data pipelines and streaming applications. It provides a variety of plugins, SDKs, and connectors to help developers to easily interact with the platform, and to integrate it with other systems. These include connectors for integrating with popular data systems such as databases and storage systems, as well as SDKs for various programming languages such as Java, Python, and .NET.

Confluent Cloud subscription

Kotlin

We use Kotlin for developing high-performance, expressive and safe Android, web, and server-side applications. It's a modern programming language that is fully interoperable with Java, and provides a wide range of features such as null safety, extension functions, and data classes.

Opensource

Terraform Cloud

We use the paid version of Terraform Cloud for state management, which allows us to automate the provisioning and management of infrastructure by connecting to our cloud provider such as GCP and applying configuration files that describe the desired state of our infrastructure.

Hashicorp’s Terraform Cloud subscription

Helm

We use Helm, a package manager for Kubernetes, in conjunction with ArgoCD, a GitOps tool, to automate the deployment and management of our application on a Kubernetes cluster. We use Helm charts to define, install, and upgrade our application and its dependencies. ArgoCD allows us to continuously deploy our application by using Git as a single source of

Opensource

Kustomize

We use Kustomize, a tool for customizing Kubernetes manifests, in conjunction with ArgoCD, a GitOps tool, to automate the deployment and management of our application on a Kubernetes cluster. We use Kustomize to generate the final manifests for our application and ArgoCD to continuously deploy our application by using Git as a single source of truth for our configuration and syncing the desired state of our application to the cluster.

Opensource

Ably

We use Ably, a real-time messaging and data streaming platform, to handle real-time data transfer and messaging in our application.

Ably Subscription

Thought Machine Vault

We use Thought Machine Vault, a cloud-native core banking platform, to handle core banking functions such as account management, transaction processing and compliance. Vault allows us to handle large scale financial transactions, store customer information securely and perform various financial operations like debiting and crediting of accounts. We use Thought Machine Vault in conjunction with our application to provide core banking functionality and improve the user experience of our financial services.

Thought Machine Subscription

Flutter

We use Flutter, an open-source mobile app development framework, to build and design high-performance and visually attractive mobile applications for both Android and iOS platforms.

Opensource

Ruby bundle

We use Ruby Bundle, a package manager for the Ruby programming language, to manage and install dependencies for our Ruby projects. Ruby Bundle allows us to easily manage and track the versions of the libraries and gems used in our projects, and to easily update or rollback to a previous version if needed.

Opensource

Testflight

We use Testflight, a mobile app testing service, to test and distribute beta versions of our mobile applications to external testers before release. We use Testflight in conjunction with our mobile application development process to ensure that our applications are stable, user-friendly and have a better user experience before releasing them to the public.

Opensource

Temporal

We use Temporal, an open-source platform for building distributed systems, to develop and manage workflows and long-running processes in our application. Temporal allows us to easily coordinate and track the execution of tasks, handle failures and retries, and manage timeouts and deadlines.

Opensource

Tyk

We use TYK, an open-source API Gateway and management platform, to handle API traffic and security in our application. TYK allows us to manage and secure API access, handle rate limiting, caching, and analytics, and also provide developer portal and API documentation. We use TYK in conjunction with our application development process to improve the security, performance and developer experience of our APIs.

Tyk Enterprise version

Istio

We use Istio, an open-source service mesh, to manage and control the communication between the services in our application. Istio allows us to secure, route, and observe the traffic between the services, and also provides advanced features such as traffic management, circuit breaking, and observability.

Opensource

Traefik

We use Traefik, an open-source cloud-native edge router, to handle ingress traffic in our Kubernetes cluster. Traefik allows us to route external traffic to the appropriate services inside the cluster, and also provides features such as load balancing, service discovery, and SSL termination. We use Traefik in conjunction with Kubernetes to deploy it as a Kubernetes Ingress Controller, allowing us to easily configure and manage ingress traffic using Kubernetes resources and annotations. This setup allows us to improve the scalability, security and reliability of our application by handling ingress traffic in a more efficient and automated way.

Opensource

Let’s Encrypt and Cert-Manager

We use Let's Encrypt, an open-source certificate authority, in conjunction with Cert-Manager and Traefik to automatically generate and manage SSL/TLS certificates for our application. Let's Encrypt allows us to secure our application traffic by encrypting the communication between the client and the server. Cert-Manager is a Kubernetes native certificate management controller that automates the management and issuance of SSL/TLS certificates from various issuing sources, including Let's Encrypt. We use Cert-Manager to request and manage the issuance of certificates from Let's Encrypt, and Traefik as the ingress controller to handle the traffic to the applications. This setup allows us to improve the security of our application and ensure that the communication between the client and the server is encrypted and secure.

Opensource

Zerossl

We use ZeroSSL, a certificate authority, in conjunction with our application development process to automatically generate and manage SSL/TLS certificates for our application. ZeroSSL allows us to secure our application traffic by encrypting the communication between the client and the server. One of the key advantages of using ZeroSSL is that it allows us to request certificates even when we encounter rate limits with other CA's like Let's Encrypt. This setup allows us to improve the security of our application and ensure that the communication between the client and the server is encrypted and secure, even in situations where we may be rate limited by other certificate authorities.

Zerossl Subscription

Okta

We use Okta, an Identity and Access Management (IAM) platform, to handle user authentication and authorization in our application. Okta allows us to manage and secure user access to our application, handle multi-factor authentication, and provide a centralized user management platform. We use Okta in conjunction with our application development process to improve the security and user experience of our application by providing a seamless and secure way for users to access and use the application.

Okta Subscription

Cloudflare Zero Trust

We use Cloudflare's Zero Trust Network solution to improve the security of our application by implementing a zero-trust security model. The only way to access resources in our GCP network is through this Zero Trust solution, which improves overall security, compliance and user experience.

Cloudflare Subscription

Cloudflare

We use Cloudflare, a web performance and security company, to improve the performance and security of our application. Cloudflare offers a wide range of services such as Content Delivery Network (CDN), DDoS protection, and Web Application Firewall (WAF).

Cloudflare Subscription

Grafana

We use Grafana, an open-source monitoring and analytics platform, to visualize and analyze metrics and logs for our application.

Opensource

Prometheus Operator

We use Prometheus Operator, an open-source tool for managing Prometheus instances on Kubernetes, to collect and store metrics for our application running on Kubernetes.

Opensource

Thanos

We use Thanos, an open-source tool for global querying and long-term storage of Prometheus metrics, to handle the storage and querying of metrics for our application.

Opensource

Loki

We use Loki, an open-source log aggregation system, to collect, store and search logs from our application.

Opensource

Tempo

We use Tempo, an open-source distributed tracing system, to trace and analyze the performance of our application.

Opensource

Deepfence Threatmapper

We use Deepfence Threatmapper in conjunction with our Kubernetes clusters to improve the security of our application by providing visibility into the network activity within the clusters and identifying potential threats. The solution integrates with Kubernetes to automatically discover and monitor the pods, services, and nodes running in the clusters. It uses artificial intelligence and machine learning to detect and mitigate cyber threats in real-time and also provides a centralized view of the threat landscape in the Kubernetes clusters.

Opensource

Github Action

We use GitHub Actions, a workflow automation tool, to automate tasks and processes in our development workflow such as building, testing, and deploying our code.

Github Enterprise License

Kyverno

We use Kyverno, an open-source policy engine, to manage and enforce policies in our Kubernetes clusters. Kyverno allows us to define, validate and enforce policies on Kubernetes resources in real-time, and also provides features for auditing, reporting and visualization of the policy enforcement.

Opensource