Architecture Components

Diagram

Atlassian CLI

The Appfire Command Line Interface (CLI) provides the core enablers for data extraction, automation, and reporting. Architecturally, other means can also be used to provide similar capabilities or to augment the data warehouse with data and automation operations not covered by the CLI. The goal of the CLI component is to continue to expand coverage across Atlassian and other products as needed by customers to make it easier for customers to expand their coverage while minimizing the need for private scripting. See How to create and update database tables from list actions.

Extract and Load Processing

The CLI provides the capability to extract data from various servers. However, the extraction processing needs to be scheduled and run dependably according to the specific needs of users. Users need to make trade-offs between data currency and system load. The extract and load component represents the processing components necessary to deliver data to the warehouse in a repeatable and dependable manner on a schedule appropriate for the organization. 

The recommendation for this component is to follow standard DevOps practices using source control, formalized build definitions, and a reliable build tool like Bamboo or similar CI system.

For our own data warehouse, we have pre-defined build plans, scripts, and procedures based on Bamboo and utilizing Bamboo Command Line Interface (CLI) as a best practice. Using this best practice, we have run this type of environment for over two years with very dependable results.

Data Warehouse

This is the heart of the operation - the data! This represents all the information collected from the critical operational servers supporting your teams and organization. The database schema defaults to that provided by the CLI and the extraction process. The CLI allows significant opportunity for the schema to be augmented easily or even significantly changed with minimal customization cost.

DevOps Automation

Once you have a strong representation of the critical data about your operations in the database, it makes it possible to use that information to drive automation as necessary to fulfill your process and DevOps goals.

The CLI provides easy ways (like runFromSQL actions) to use this data to affect changes in your operational servers. When this is insufficient for the processing needed, it can be augmented with custom scripts and custom tools.

As a DevOps best practice of course, this automation would normally be scheduled using a CI server like Bamboo.

Reporting

A critical part of DevOps is to provide reporting to the organization on information necessary to make good decisions and keep teams informed. 

Many organizations use Confluence as the primary reporting platform and the Confluence Command Line Interface (CLI) provides extensive support to enable data from the data warehouse to be used to construct reporting pages. Other Confluence apps can also be used to enhance the reporting capabilities including:

Other reporting vehicles are also important like Slack to communicate directly to teams where they collaborate real time. CLI for Slack makes this relatively simple to get that data pushed out to teams in a timely way.

Bamboo or similar tools provide a structured way to organize and control publishing timings.

Internally, we use Bamboo plans to publish to Slack and Confluence including various team status, sales status, build status, support issue status, and other information daily and hourly in some cases to keep work flowing.

A number of pages on this site are produced using this type of automation. For example: Database Table Schema.