MettleCI Platform Components
The following high-level MettleCI architecture shows the key software components to be installed, and their communications between hosts.
Some points to note:
- MettleCI works with all Information Server deployment topologies, including High Availability, Grid, and Cluster environments, For clarity, this diagram shows each tier residing on its own, dedicated host.
- Application Lifecycle Management components can be co-hosted with the other tools on the MettleCI Host or located on another host (on-premise, cloud or SaaS).
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 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
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 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 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 don't expire. 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 delays.
Firewall Rules
Host | Component | Windows Service Name | External Port | Internal Port | Comment |
---|---|---|---|---|---|
MettleCI Host | MettleCI Scheduler | MettleCI Scheduler | n/a | 8081 | MettleCI Scheduler. |
MettleCI Host | MettleCI Wallboard | MettleCI Wallboard | n/a | 5000 | MettleCI Wallboard. |
MettleCI Host | CI / CD Automation Agent / Slave | As required | n/a | As required | |
MettleCI Host | DataStage Designer Client | n/a | n/a | As required | Interfacing MettleCI to Information Server via whichever port you are currently using for DataStage clients. This Designer Client is exclusively for MettleCI automated use only. Internal port is set based on customer standards, and/or as required by IBM. |
MettleCI Host | Windows Remote Desktop | Remote Desktop Services | 3389 (default) | n/a | |
DataStage Development Engine Tier | MettleCI Workbench | MettleCI Workbench | 8080 & 8081 | 8080 & 8081 | Browser-based user interface for Unit Test specification and results, Compliance invocation, and Git check in. Note that these ports are configurable. Port 8081 is required only for the exposure of MettleCI diagnostic output. |
DataStage Development Engine Tier | Data Migrators access during commissioning | SSH | 22 | n/a | |
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 |
DataStage Development Services Tier | Information Server Operations Console | As required | 9443 (default) | 9443 (default) | As supported by O/S, configured by customer, and/or required by IBM |
DataStage Development Services Tier | Information Governance Catalog REST API | As required | 9443 (default) | 9443 (default) | 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 for installation support purposes only:
- *.mettleci.com (for access to the self-service MettleCI Report Card)
- *.mettleci.io (documentation and software downloads)
- datamigrators.atlassian.net (support portal)
MettleCI itself does not access the internet.
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) | Comments |
---|---|---|---|---|---|---|
Developer Workstation | Web browser | MettleCI Host | MettleCI Scheduler (Azkaban) | HTTP(S) |
| |
Developer Workstation | Web browser | MettleCI Host | MettleCI Wallboard | HTTP(S) |
| |
Developer Workstation | Git client | ALM Host | Git service | SSH / HTTP(S) |
| Could be ignored as various Git UI's (HTTPS) provide a lot of support in this area. |
Developer Workstation | Remote Desktop Client | MettleCI Host | Remote Desktop Service | RDP |
| |
DataStage Development Engine Tier | MettleCI Workbench | ALM Host | Git service | SSH (default), HTTP(S) |
| |
MettleCI Host | MettleCI Wallboard | ALM Host | ALM software components | HTTP(S) |
| The MettleCI Wallboard needs to extract data from the work item management and CI / CD components via their REST APIs to present health metrics to users. |
MettleCI Host | MettleCI Wallboard | Information Server Services Tier | Operations Console | HTTP(S) |
| The MettleCI solution will use the ports and protocols mandated by the customer's standards (see IBM IIS documentation) for the database technology that hosts DSODB. |
MettleCI Host | 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 | 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 | MettleCI CLI Plugin (triggered via CI / CD Agent / Slave) | Information Server Services Tier | Information Governance Catalog REST API | HTTP(S) |
|
|
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
- 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 DataStage development environment
- One of the following Java Development Kits (64-bit version 1.8, latest build)
- Git: https://git-scm.com/
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
Optional IIS Components
Optionally, the MettleCI Host makes use of the following optional Information Server components:
- Optional: IBM Information Server Information Governance Catalog ('IGC') installed, configured, and available. MettleCI uses IGC to determine job lineage when generating execution schedules for MettleCI's bundled scheduling tool. You will not require IGC if you are planning on using your existing job scheduling approach for Continuous Integration (e.g. DataStage Job Sequences, Shell scripts, Control-M, etc.)
- Optional: IBM Information Server Operations Console installed, configured, and available. MettleCI uses the Operations Console API for authentication, but can be configured to utilise other authentication services if this is not available. Users are required to manually configure their email address in the MettleCI Workbench as part of a one-step registration process during their first login. This enables MettleCI to identify their subsequent activity in the Bitbucket Git repository.
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.
See IBM's page on Storing certificates for client applications.
Licenses
- If you license Information Server under a model that requires per-seat licenses please ensure that the following Information Server seat licenses are reserved for the Rapid DataStage Upgrade MettleCI platform:
- Sufficient to cover any MettleCI Consultants involved in the installation of MettleCI.
- 2 x MettleCI Server Service Accounts ('mciworkb' and 'mciagent')
- Evaluation Use: An evaluation licence for MettleCI will be granted for the duration of the evaluation.
- Commercial Use: Your purchase entitles you to 12 months of MettleCI updates and electronic support.