Skip to main content

Core Orchestration

BambooDeploy.sh

Entry point for all deployments, invoked by the CI/CD platform. Handles:

  • Parsing environment parameters (platform target, version, options)
  • Git repository synchronization
  • Ansible playbook invocation with proper inventory and vault credentials
  • Uptime monitoring pause/resume via API
  • Error handling and deployment status reporting

MetricsFormatAndSend.sh

Post-deployment metrics collection script (Python). Responsibilities:

  • Parsing deployment logs for stage durations
  • Calculating per-stage timing metrics
  • Sending metrics to Graphite (port 2003 via netcat)
  • Executing Windows test suites via WinRM
  • Pushing deployment metrics to Grafana dashboards

Cloud Provider API Client

Python client wrapping the cloud provider REST API. Operations:

OperationDescription
startPower on a VM by UUID
stopGraceful shutdown
cloneCreate a copy of an existing VM
snapshotCreate a point-in-time snapshot
statusQuery VM state (running, stopped, etc.)
listEnumerate VMs with metadata

Used by Ansible playbooks to manage VM lifecycle programmatically during deployments.


Ansible Roles (Key Selection)

Infrastructure Roles

RolePurpose
elasticsearchElasticsearch cluster deployment and configuration (multi-node clusters)
redisRedis instance provisioning (multiple databases per environment)
rabbitmqRabbitMQ message queue cluster setup
haproxyLoad balancer configuration with SSL termination and backend definitions
keepalivedVRRP-based HA for HAProxy (virtual IP failover)
logstashLog processing pipeline configuration
kibanaKibana dashboard deployment
nagios-nrpeNagios remote plugin executor for health monitoring
postfixMail service configuration

Application Roles

RolePurpose
applicationCore application deployment (multi-service)
cloudmanagerManagement console deployment
servicesuiteService suite: file sharing, mail, storage, asset management, task processing, data extraction
renderingRendering services: image, video, document, audio processing
tikaApache Tika for document content extraction (Solr-based)

Monitoring & Logging Roles

RolePurpose
filebeatApplication log shipping to ELK
metricbeatPerformance metrics collection
winlogbeatWindows event log shipping
heartbeatUptime monitoring
graphite-powershellWindows metrics collection for Graphite

Platform Roles

RolePurpose
commonBase OS configuration, NTP, DNS, SELinux policies
domain-joinActive Directory domain membership for Windows/Linux
sambaCIFS/SMB file sharing
artifactoryMaven repository for build artifacts
foremanOS provisioning and inventory management

Snapshot Management

Hyper-V Integration

Snapshot operations target on-premises Hyper-V hosts for rapid environment reset:

  • Save: Capture current state before deployment
  • Restore: Reset environment to known-good state (minutes vs. hours of manual rebuild)
  • Clone: Create new environments from golden images

Hosts managed via dedicated physical Hyper-V servers.

Cloud Provider Snapshots

Cloud-side snapshot management via the Python API client:

  • VM-level snapshots for cloud-hosted environments
  • Used for QA environment reset between test runs
  • Integrated into the CI/CD deployment pipeline

Test Automation

Test Execution Flow

  1. Customer provisioning — Automated creation of test tenants with unique credentials
  2. Test data generation — Sample assets, metadata, and user accounts populated
  3. xUnit runners — C#/.NET test suites executed against the deployed environment
  4. Result collection — Test results aggregated and reported to the CI/CD platform
  5. Cleanup — Environment state preserved or reset based on test outcome

Test Environments

  • Test: Dual-instance pool with stateful assignment (prevents test collision)
  • QA (x5): Five parallel environments enabling concurrent test runs across teams

Security

Credential Management

  • Ansible Vault — Encrypted YAML files for passwords, API keys, certificates
  • Kerberos keytabs — Service account authentication for AD-joined services
  • SSL certificates — Managed via vault, deployed to HAProxy and application servers
  • WinRM HTTPS — Encrypted remote management for Windows hosts

Network Security

  • SELinux policies — Custom policies for Linux services
  • Firewall rules — Per-role iptables configuration
  • CIFS/SMB — Authenticated file sharing with AD credentials