Skip to main content

TrustedLogin SaaS Server Setup

The TrustedLogin application is powered by Laravel and run on a Dockerized, high-availability, Kubernetes cluster.

The application handles account management, profiles, and billing. But most important, it receives and processes requests from the Client SDK and TrustedLogin Connector plugin.

What software powers TrustedLogin?

SoftwareURLDescription
Helmhttps://helm.sh/Kubernetes deployment
Dockerhttps://www.docker.com/Container management
Kuberneteshttps://kubernetes.io/Container orchestration
Traefikhttps://traefik.io/Load balancing & reverse proxy
Jetstack Cert Managerhttps://github.com/jetstack/cert-managerKubernetes certificate management
Laravelhttps://laravel.com/Web application framework
Laravel Sparkhttps://spark.laravel.com/Billing & portal
Laravel Duskhttps://dusk.laravel.com/Acceptance tests
Guzzlehttps://packagist.org/packages/kozz/laravel-guzzle-providerHTTP client
Hashicorp Vaulthttps://www.vaultproject.io/Key management
Elasticsearchhttps://www.elastic.co/products/elasticsearchLog search
Kibanahttps://www.elastic.co/products/kibanaLog analysis
Velerohttps://velero.ioBackup
MySQLhttps://www.mysql.com/Database
Datadoghttps://www.datadoghq.com/Log aggregation
Redishttps://redis.io/Caching
Prometheushttps://prometheus.io/Metrics & alerting

Additional information

Helm

The TrustedLogin Kubernetes deployment is structured using Helm.

Kubernetes

The application is hosted on managed DigitalOcean Kubernetes ("DOKS").

Traefik

Traefik acts as a reverse-proxy load balancer.

  • Redirects requests from http to https
  • To restrict access based on IP addresses
  • Routes traffic various services within Kubernetes account to url requested

Hashicorp Vault

TrustedLogin uses Vault as a key management system. It is configured with three fallback nodes to provide high-availability. Vault is configured to be auto-unsealing.

Velero

Velero backs up the Kubernetes deployment every six hours to Digital Ocean Spaces. We maintain backups for 3 days (72 hours).

Laravel Spark

The eCommerce and public-facing UI are powered by Laravel Spark.

MySQL

The Laravel Spark database uses Digital Ocean Managed MySQL with High Availability. Account, profile, and and Stripe billing metadata are stored in MySQL.

Elasticsearch

Logs stripped of PII are added to Elasticsearch for later analysis. See Elasticsearch documentation for more information.

Redis

Laravel uses redis as a caching mechanism for temporary data storage to speed up the process of performing database queries and getting feedback, which will, in turn, reduce the amount of time spent pulling up data. Our applicaiton relies on Digital Ocean fully managed redis instance in high availability mode.