Introduction
This document describes the hardware, software, and network configuration that need to be in place before MettleCI can be deployed and configured in your environment.
You may also be interested in an example where some of the Atlassian components are cloud hosted.
MettleCI Platform Components
The following high-level MettleCI architecture shows the key software components to be installed and their communications between hosts.
Topology notes:
- MettleCI works with all Information Server deployment topologies including High Availability, Grid, and Clustered environments. For clarity, this diagram shows each tier residing on its own, dedicated host.
- The Atlassian components can be cloud hosted, if necessary.
Infrastructure Requirements
MettleCI Host
MettleCI requires a dedicated physical or virtual server with the following specification to act as the MettleCI Host:
- A recent model 8-Core (minimum) Intel-compatible CPU running at 2.5GHz (minimum)
- 16GB RAM (minimum)
- 250GB (minimum) available high-speed disk, allocated as follows:
- 100GB for MettleCI components
- 150GB (estimated) for your assets in Git. Increase this value if you believe your Information Server assets will occupy more space than this.
- Microsoft Windows Server 2016* Base (64-Bit) operating system.
- This should be a ‘clean’ operating system which does not contain any co-resident third party software or artefacts remaining from previous software installations.
- Ensure your Windows version is compatible with the DataStage Client Tools bundled with your Information Server version. For more information visit https://www-01.ibm.com/support/docview.wss?uid=swg27050442.
- Able to support two concurrent RDP sessions
- Provides a mechanism to easy transfer files (e.g. application installation files, log files) between the installer's computer and this host.
* Window Server 2012 is a fall-back option but comes with operating system restrictions regarding filesystem path lengths that should be discussed with your MettleCI consultant prior to delivering this infrastructure.
MettleCI Legacy Client Tier
MettleCI requires a dedicated physical or virtual server to act as the MettleCI Legacy Client Tier. This host should be provisioned with the specifications necessary to meet IBM's prescribed system requirement for a Client Tier-only installation for your specific legacy version. The following specification is normally more than adequate for this purpose:
- A recent model 8-Core (minimum) Intel-compatible CPU running at 2.5GHz (minimum)
- 8GB RAM (minimum)
- 250GB (minimum) available high-speed disk
- Microsoft Windows Server 2016* Base (64-Bit) operating system.
- This should be a ‘clean’ operating system which does not contain any co-resident third party software or artefacts remaining from previous software installations.
- Ensure your Windows version is compatible with the DataStage Client Tools bundled with your Information Server version. For more information visit https://www-01.ibm.com/support/docview.wss?uid=swg27050442.
- Able to support at least one RDP session
- Provides a mechanism to easy transfer files (e.g. application installation files, log files) between the installer's computer and this host.
* Window Server 2012 is a fall-back option but comes with operating system restrictions regarding filesystem path lengths that should be discussed with your MettleCI consultant prior to delivering this infrastructure.
MettleCI Consultant Personal Computer
The MettleCI expert performing your installation - or supporting your staff to perform the installation - will need either
- the ability to remotely access the hosts shown in the MettleCI Platform Components diagram from their company-supplied computer (running a current MacOS or Windows version) via your VPN; or
- a laptop computer provided by your organisation that allows them to remotely access the MettleCI Platform Components over a secure connection.
User Accounts
MettleCI needs the following dedicated accounts to enable installation activities as well as support on-going operation.
Note: The names given below are simply proposals for reference purposes and can be changed to meet your organisational requirements. If a customer administers its accounts via a centralised repository (e.g. Active Directory) then any accounts specified in the following list with the same name can, of course, be the same account with privileges as necessary to cover multiple roles across multiple environments and components.
MettleCI Host
- Two Windows user accounts are required for the purpose of installing and administering MettleCI-related components on this host. They must...
- ideally be named 'mciconfig1' and 'mciconfig2'
- have administrator privileges sufficient to
- run Windows tools "...as administrator"
- install software for use by other users on the host; and
- create, remove, start and stop Windows services.
- Note: The second account acts to complement the first account in case the owner of the first account becomes unavailable (e.g. sick) or we collectively choose to perform work in parallel.
- A Windows user account is required to act as a service account for executing Atlassian and MettleCI services. It must...
- ideally be named 'mciservice'
- have only sufficient privileges to run the services installed by the 'mciconfig#' accounts
MettleCI Legacy Client Tier
- A Windows user account is required for the purpose of installing and administering MettleCI-related components on this host. It must...
- Ideally be named 'mciconfig1'
Have administrator privileges sufficient to
run Windows tools "...as administrator"
install software for use by other users on the host; and
create, remove, start and stop Windows services.
- A Windows user account is required to act as a service account for executing Atlassian and MettleCI services. It must...
- ideally be named 'mciservice'
- Requires fewer privileges than the 'mciconfig1' account.
Legacy DataStage development Engine Tier
- An operating system user account and corresponding DataStage application account for in-bulk tasks (e.g. CI, CD) performed by MettleCI
- Ideally named 'mciagent'
- Accessible via SSH from both the MettleCI Legacy Client Tier and the MettleCI consultant's computer.
- Capable of accessing your DataStage Engine Tier's filesystem such that DataStage can read files and directories generated or modified by this account.
- In particular this account will make changes to the contents of your DataStage Projects directory.
- Primary group must be 'dstage' (or equivalent as configured for your DataStage platform)
- On *nix hosts, this account must be able to source the $DSHOME/.dsenv file.
- The DataStage application account must be assigned the Information Server 'Suite Administrator' role.
- An operating system user account and corresponding DataStage application account for use by MettleCI end-user functions (e.g. MettleCI Workbench)
- Ideally named 'mciworkb'
- Accessible via SSH from both the MettleCI Legacy Client Tier and the MettleCI consultant's computer.
- Primary group must be 'dstage' (or equivalent as configured for your DataStage platform)
must be able to run commands under this user (viaroot
sudo
) from within a SysVinit service.- On *nix hosts, this account must be able to source the $DSHOME/.dsenv file.
- The DataStage application account must be assigned the Information Server 'Suite Administrator' role.
Target DataStage development Engine Tier
- An operating system user account and corresponding DataStage application account for in-bulk tasks (e.g. CI, CD) performed by MettleCI
- Ideally named 'mciagent'
- Accessible via SSH from both the MettleCI Host and the MettleCI installation consultant's computer.
- Capable of accessing your DataStage Engine Tier's filesystem such that DataStage can read files and directories generated or modified by this account.
- In particular this account will make changes to the contents of your DataStage Projects directory.
- Primary group must be 'dstage' (or equivalent as configured for your DataStage platform)
- On *nix hosts, this account must be able to source the $DSHOME/.dsenv file.
- The DataStage application account must be assigned the Information Server 'Suite Administrator' role.
- An operating system user account and corresponding DataStage application account for use by MettleCI end-user functions (e.g. MettleCI Workbench)
- Ideally named 'mciworkb'
- Accessible via SSH from both the MettleCI Host and the MettleCI installation consultant's computer.
- Primary group must be 'dstage' (or equivalent as configured for your DataStage platform)
must be able to run commands under this user (viaroot
sudo
) from within a SysVinit service.- On *nix hosts, this account must be able to source the $DSHOME/.dsenv file.
- The DataStage application account must be assigned the Information Server 'Suite Administrator' role.
Password Expiry
All MettleCI-related service accounts (both application and operating system) should have passwords that either don't expire or are set to expire at the forecast end of the upgrade initiative. A change to a service account password will require updates to MettleCI configuration to re-enable the MettleCI functions that rely on that service account. Unplanned service account password changes are highly likely to cause unnecessary delay to your upgrade initiative.
Network Connections
Ports labelled [IBM] depend upon what was selected by your organisation at the point the particular Information Server component was installed. The selection of port 80 or 443 depends upon whether your organisation mandates the use of HTTP or HTTPS, respectively. To understand which ports are configured in your environment please see this FAQ entry.
Host | Component | Service Name | External Port | Internal Port | Purpose |
---|---|---|---|---|---|
MettleCI Host | Atlassian Bamboo | MettleCI Bamboo | 8085 | 8085 | Build automation server. This instance uses a suite of MettleCI Bamboo Plugins which provide MettleCI's advanced Information Server deployment and build capabilities. |
MettleCI Host | Atlassian JIRA | MettleCI JIRA | 8080 | 8080 | Work item management. |
MettleCI Host | Atlassian Bitbucket | MettleCI Bitbucket | 7990 7999 (SSH) | 7990 (HTTP) 7999 (SSH) | Git source code repository. This instance uses a single MettleCI Bitbucket Plugin which enables the visualisation of a DataStage job's canvas in Bitbucket's source code preview. |
MettleCI Host | Postgres DB | Postgres DB | n/a | 5432 | Storage service for the Atlassian tools. |
MettleCI Host | Atlassian Bamboo Local Agent | MettleCI Bamboo | n/a | 54663 | |
MettleCI Host | DataStage Designer Target Platform Client (for MettleCI automated use only) | n/a | n/a | As required | Interfacing MettleCI to Information Server via whichever port you are planning on using for your new platform's DataStage clients. Internal ports are configured as required by the customer, and/or IBM |
MettleCI Host | Windows Remote Desktop | Remote Desktop Services | 3389 (default) | n/a | |
MettleCI Legacy Client | DataStage Designer Legacy Platform Client (for MettleCI automated use only) | n/a | 8085 80 / 443 54663 | n/a | Communication between the Bamboo agent and Bamboo is initiated (outbound) from the agent and connects (inbound) to Bamboo Server on port 8085, 80, or 443, depending on whether you wish to use a reverse proxy and HTTP(S). Port 8085 is the default Bamboo port, and 54663 is the default JMS Broker Port. |
DataStage Development Engine Tier | MettleCI Workbench | MettleCI Workbench | 8080 8081 (optional) | 8080 8081 | Browser-based user interface for Unit Test specification and results, Compliance invocation, and Git check in. Note that diagnostic output is exposed on port 8081. The Workbench can be easily configured to run on different ports if required |
DataStage Development Engine Tier | Information Server processes | As required | As required | As required | As supported by O/S, configured by customer, and/or required by IBM |
DataStage Development Engine Tier | SSH server process | As required | As required | As required | As supported by O/S, configured by customer, and/or required by IBM |
DataStage Development Services Tier | Information Server processes | As required | As required | As required | As supported by O/S, configured by customer, and/or required by IBM |
Public Internet Access
Ideally, developers, testers, and any other MettleCI users should be provided with unfiltered HTTP (port 80) and HTTPS (port 443) internet access to the following domains:
- *.mettleci.com (for access to the self-service MettleCI Report Card)
- *.mettleci.io (documentation and software downloads)
- datamigrators.atlassian.net (support portal)
Component Connections
The following table describes which interactions take place between the software components listed above, and which functions those interactions support. Note that if a component or protocol isn't specified then it’s either irrelevant to MettleCI or MettleCI can re-use whatever your infrastructure dictates.
Client Host | Client Application | Server Host | Server Application | Protocol(s) | Related MettleCI Function(s) | Notes |
---|---|---|---|---|---|---|
Developer Legacy Workstation | Web browser | MettleCI Host | Atlassian suite (JIRA, Bitbucket, Bamboo) | HTTP(S) |
| |
Developer Legacy Workstation | Git client | MettleCI Host | Bitbucket Git service | SSH / HTTP(S) |
| Could be ignored as the Bitbucket UI (HTTPS) provides a lot of support in this area. |
Developer Legacy Workstation | Remote Desktop Client | MettleCI Host | Remote Desktop Service | RDP |
| |
MettleCI Host | Bamboo | MettleCI Host | Bamboo (Local Agent) | Internal |
| |
MettleCI Host | Bamboo (Local Agent) | MettleCI Host | BitBucket | SSH (default), HTTP(S) |
| |
MettleCI Host | Target Platform DataStage Client | Information Server Engine Tier | Information Server processes | Multiple |
| The MettleCI solution will use the same ports and protocols that the customer uses for its standard installation of the DataStage Client on end-user hardware. |
MettleCI Host | SSH | Information Server Engine Tier | SSH server process | SSL |
| The MettleCI solution will use the port that the customer's standards mandate for this protocol. |
MettleCI Host | Target Platform DataStage Client | Information Server Services Tier | Information Server processes | Multiple |
| The MettleCI solution will use the same ports and protocols that the customer uses for its standard installation of the DataStage Client on end-user hardware. |
MettleCI Host | Bamboo | Legacy Platform DataStage client | Bamboo (Remote Agent) | HTTP(S) |
| Communication between the Bamboo agent and Bamboo is initiated (outbound) from the agent and connects (inbound) to Bamboo Server on port 8085, 80, or 443, depending on whether you wish to use a reverse proxy and HTTP(S). Port 8085 is the default Bamboo port, and 54663 is the default JMS Broker Port. |
Software
Customer Software Requirements
The following must be installed or provided on each of the MettleCI Platform infrastructure components listed below.
MettleCI Host
- Customer to install
- Current version of Firefox, Chrome or Edge browsers
- Notepad++
- WinSCP
- PuTTY
- Customer to provide installation media (but not install)
- IBM Information Server Client (GUI and CLI tools) installation media. Client version has to be the same as the version (inc. patch level) of the Target DataStage development environment
- One of the following Java Development Kits (64-bit version 1.8, latest build)
- Git: https://git-scm.com/
MettleCI Legacy Client Tier
- Customer to install
- Current version of Firefox, Chrome or Edge browsers
- Notepad++
- IBM Information Server Client (GUI and CLI tools) aligned with the version (inc. patch level) of the Legacy DataStage development environment
- One of the following Java Development Kits (64-bit version 1.8, latest build)
- Customer to provide installation media (but not install)
- Git: https://git-scm.com/
Legacy DataStage development Engine Tier
- Customer to install
- One of the following Java Development Kits (64-bit version 1.8, latest build)
- OpenSSL. While Linux-based DataStage hosts usually have this by default, Windows-based hosts might not.
- Customer to provide
- N/A
Target DataStage development Engine Tier
- Customer to install
- One of the following Java Development Kits (64-bit version 1.8, latest build)
- OpenSSL. While Linux-based DataStage hosts usually have this by default, Windows-based hosts might not.
- Customer to provide
- N/A
Installed by MettleCI Consultant
The MettleCI consultant will provide and install the following software (or guide your personnel to do so) on the relevant MettleCI Platform infrastructure components
- Previously listed customer-provided software installation media / files
- All MettleCI components
- PostgreSQL
- Atlassian Bitbucket
- Atlassian Bamboo
- Atlassian Jira
- Atlassian Sourcetree
Security
- If you wish to configure MettleCI to use HTTPS you will need to provide a certificate. We will work with you to describe how your certificate renewal process will work with MettleCI's components.
- MettleCI Workbench uses your existing Information Server authentication scheme so users login to Workbench using their DataStage Designer credentials.
Certificate reference:
Licenses
- If you license Information Server under a model that requires per-seat licenses please ensure that at least four Information Server seat licenses are reserved for the Rapid DataStage Upgrade MettleCI platform:
- 2 x MettleCI Consultants
- 2 x MettleCI Server Service Accounts ('mciworkb' and 'mciagent')