Skip to content

Tool Usage Assessment

Purpose

The purpose of this document is to describe what tools are used in the KaaS ecosystem, in order to describe the benefits, risks and mitigating actions. The expected audience of this document is Auditors, Quality Assurance and Developers and architects when assessing risks in changes.


Terraform

Purpose:

Terraform is an infrastructure-as-code tool that lets you define cloud and on-prem resources in human-readable configuration files, that can be deployed by pipelines. The company behind Terraform, HashiCorp, partners and the Terraform community have written providers - plugins that enable interactions with Cloud Providers and SaaS solution APIs. This leads to faster implementation of infrastructure-as-code, as there are predefined and tested implementation templates ready to be adjusted with client specifications and credentials. The Confluent Provider is maintained by Confluent, and used in all the Novo Nordisk KaaS pipelines.

Benefits: - Accelerated development and implementation of pipeline automation - Repeatable, version-controlled configurations that are easier to manage and less prone to human-errors - Better baseline control, through faster verification of installed configuration by reading configuration files instead of looking in tool and logs.

Risk assessment: - Lack of maintenance in the provider will ultimately lead to deprecation and pipelines being unable to execute desired states - New skillset required for maintaining automated pipelines vs. manual configuration

Mitigating actions: - All pipeline code changes are peer reviewed and approved by Lead Architect as part of change process - Planning stage in pipelines ensures validity check of configuration before applying them and clearly outlines changes - Confluent was thoroughly assessed (see conclusion, F-00868258) and Terraform is widely used around the world and chances of failure is found to be 'Low'. - Terraform is currently used on the following Novo Nordisk projects: PASX, Tulip, Klartboard, vistex, poms, project-s, winshuttle & K8 projects.


Terragrunt

Purpose:

Terragrunt is an open-source tool developed by Gruntwork that serves as a thin wrapper on top of Terraform. Its primary goal is to reduce repetition in terraform code and simplify its structure (DRY principle - "Don't Repeat Yourself"), making it easier to manage and maintain. Terragrunt is used in the 'Application Pipeline Template' of KaaS.

Benefits: - Accelerated development and implementation of pipeline, as less custom code/scripting is required - Ability to manage Terraform configuration across multiple modules, and reuse modules across projects - Ability to manage remote states, which enables storing and sharing of state files securely across multiple environments. This helps ensuring infrastructure remains consistent and up-to-date, regardless of changes made by different team members or in different environments.

Risk assessment: - Introducing another component and dependency to pipelines adds some level of complexity

Mitigating actions: - All pipeline code changes are peer reviewed and approved by Lead Architect as part of change process - With continuous changes to Terraform features, use of Terragrunt could be deprecated over time - State files are securely stored in AWS and its access is controlled through RBAC specific to the environments.


k6

Purpose:

k6 is an open-source performance and load testing tool, that allows you to script tests in JavaScript. There is both an open-source module that you can download from GitHub and use self-managed, and a managed cloud-version hosted by Grafana Labs (the company behind k6). Self-managed k6 is used for generating payload data to the Pilot application and for Performance testing the network connectivity from CORP to KaaS. The scripts are stored with the KaaS MAP Pilot Application.

Benefits: - Automate testing efforts "shift-left", to reduce time-intensive and tedious manual testing that is error-prone - Community and examples on how to script tests in various scenarios - Reuse test scripts across changes, to ensure a uniform approach to testing - Reuse test scripts for other use-cases, to ensure faster testing of new features - Test data is reproduceable for future references.

Risk assessment: - New skillset required for testing with k6

Mitigating actions: - k6 tool package reviewed by Lead Architect to ensure that no sensitive data is transmitted or logged with the open-source - Script implementation and future changes are peer reviewed and approved by Lead Architect as part of change process - Permission setup is established for K6 tool and access is restricted to Pilot application only. In case of tool failure, Pilot application testing can be carried out manually as an alternative approach.


Linux OS on personal developer machines

Purpose:

Novo Nordisk equips new employees either with a Windows or MacOS based laptop when they join but the KaaS platform and most of its dependencies are either Linux native, Linux based or run in Linux OS containers or VMs. That creates a discrepancy between the developer setup and the live setup running on different OSs. A Linux OS is any distribution of Linux such as Ubuntu, Fedora or Mint etc.

Benefits: - Accelerated software development of pipelines, test frameworks, infrastructure and applications on the KaaS platform - The development system and live system match from an OS architecture point of view. Developers will not need to install Windows specific dependencies for developing for the KaaS platform - Simpler setup of development tools when starting fresh. All KaaS development tools can be installed and configured with standard configuration out of the box - We avoid potential quality issues arising from having a local development setup tailored for the Windows platform. That could be special local application configuration required for Windows that accidentally gets deployed in the live environment running Linux - The need for separate setups for development and live deployment is reduced

Risk assessment: - Only given as an option, not required by the team as some people are more at home on other systems - Windows security features must be applied to a Linux OS as well, including: - Encrypting the hard disk drive requiring pin/password on boot - Limit access to Novo Nordisk resources behind CORP login with MFA - Password login on startup following the Novo Nordisk password policy - Installation of anti-malware software - VPN and Zscaler configured for CORP access - Backup and restore configured on the machine - The system must be patched and kept up to date with latest security patches - A Linux OS machine poses no additional threat compared to a Windows based machine, it is actually by default more secure due to a limited attack surface as a special/uncommon setup in the company - Changing the OS from Windows to Linux on personal laptops will not have any effect on the platform itself - The major version of the OS is the only item that will be monitored

Mitigating actions: - Novo Nordisk Advanced IT Support installs and configures the machine to follow security standards. This is required to get CORP domain access. - When installing the OS disk encryption is enabled - When installing the OS backup is automatically enabled to a cloud disc or local recovery partition - When setting up the user account, the Novo Nordisk password policy is followed - Automatic system updates are enabled to always ensure that the OS and its underlying dependencies are up to date - Novo Nordisk resources are not opened through the OS, but only accessible using CORP login and MFA - The laptop is personal and only a specific person can log into it.

Please see the user guide for additional setup specific details and how to get started.