Skip to main content
Version: 5.16.0

Structsure Architecture

Introduction

Structsure's architecture is meticulously crafted to cater to modern software development needs, spanning from cloud infrastructure and orchestration with Kubernetes to seamless application management. This deep dive aims to unpack the layers and components that constitute the Structsure platform.

Cloud & Infrastructure Layer

Cloud Integration

  • Terraform: As an Infrastructure as Code (IaC) tool, Terraform provisions and manages infrastructure on many cloud platforms, but predominantly AWS.
  • Cloud Platforms: Structsure is designed to be cloud-agnostic, with native support for major cloud service providers, such as AWS, GCP, and Azure. This ensures scalability, resilience, and flexibility in deployment and management.

Kubernetes Orchestration

Kubernetes acts as the heart of the Structsure platform, providing a container orchestration solution that manages, scales, and automates container deployments.

  • Multiple Clusters: Structsure employs multiple Kubernetes clusters to segregate the Developer Collaboration Environment from Deploy Targets. This separation ensures optimized resource allocation and workflow management.
  • Service Mesh with Istio: Istio enhances the capabilities of Kubernetes by providing a comprehensive service mesh solution. It manages service-to-service communication, ensuring load balancing, fault tolerance, and more.
  • Security & Compliance: With tools like OPA Gatekeeper or Kyverno, Kubernetes clusters enforce policies and maintain security standards across deployments.

Application Layer

The application layer integrates various tools and services, ensuring a holistic development, deployment, and monitoring experience.

Developer Collaboration Environment

  • Collaborative Tools: Integrations with GitLab for code repositories, Jira for issue tracking, Confluence for documentation, and Mattermost for team chat
  • Continuous Integration (CI) & Automation: Incorporates GitLab Runner for CI and the Structsure Console for organizational automation
  • Security & Authentication: Centralized authentication and security via Keycloak

Deploy Target

  • Argo CD: Manages Continuous Deployment for applications, ensuring they transition smoothly through various phases
  • AuthService: Integrates as an OpenID Connect (OIDC) client, facilitating secure access management

Core Components

Beneath both the Developer Collaboration Environment and Deploy Target, the Structsure Core manages essential backend operations, ensuring consistent performance, security, and efficiency across the board.

  • Monitoring, Logging, & Tracing: Tools, such as Grafana, Kiali, Promtail, and either Jaeger or Tempo, offer real-time insights and diagnostics.
  • Runtime Security: Solutions, including Twistlock or Neuvector, secure containers during runtime, safeguarding against threats.
  • Certificate Management: (Optional component) Dynamically issue and manage certificates to simplify operations.

Diagrams

The following basic diagrams display how all the pieces come together.

Intra-Cluster Relationships

The diagram below shows the relationship of a Deploy Target Cluster with the Collab Cluster. Administrators are responsible for the lifecycle of the Collab Cluster and the Deploy Target Cluster. Developers utilize the Collab Cluster to develop Mission Applications that get deployed on the Deploy Target Cluster. End users access the Mission Applications that are hosted on the Deploy Target.

Structsure Deploy Target Relationships

Deploy Target Operational View

The diagram below shows a more in-depth look into how a Deploy Target operates. Administrators manage the lifecycle of the Deploy Target and are responsible for making sure the components of Big Bang are updated and running. Mission Application Developers use Argo CD to deploy the applications from the Collab Cluster onto the Deploy Target Clusters.

Structsure Deploy Target Containers

Deploy Target View

The diagram below shows the deployment of a Deploy Target by an Administrator. An Administrator will be responsible for the lifecycle of the Deploy Target so that Mission Application Developers are able to deploy their applications onto the Deploy Target Cluster.

Structsure Deploy Target Context

Conclusion

Structsure's architecture embodies the principles of modern software development: modular design, scalability, security, and resilience. By orchestrating components across the cloud, Kubernetes, and application layers, Structsure delivers a unified platform tailored for end-to-end software development and deployment.