Engineering Flashcards
Container
A discrete environment set up within an operating system in which one or more applications may be run, typically assigned only those resources necessary for the application to function correctly. It’s very useful because it allows to assemble in one “package” the application, its configuration files, and its dependencies, making it easier to share with others and re-run elsewhere.
CLI
Command line interface. The terminal. CLI tools typically do not have a graphical interface and only run on the command line. Many Seqera tools are CLI tools, e.g. tw, nextflow, MultiQC, etc.
DataOps
DataOps is a set of practices, processes and technologies that combines an integrated and process-oriented perspective on data with automation and methods from agile software engineering to improve quality, speed, and collaboration and promote a culture of continuous improvement in the area of data analytics
Deploy
Software deployment is all of the activities that make a software system available for use. The general deployment process consists of several interrelated activities with possible transitions between them. These activities can occur on the producer side or on the consumer side or both.
DevOps
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims to shorten the systems development life cycle and provide continuous delivery with high software quality.
DSL
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. Nextflow is a DSL built on top of Groovy. Its first version is now known as DSL1 and the current version is DSL2 (newer versions of Nextflow only support DSL2).
Epic
It can be synonymous with a new product . It describes the context, the problem, and a high-level view of a prospected solution for a feature. It is composed of multiple user stories in the tower-backlog project board. The difference with the feature is that a feature could be considered an iteration over an epic. For example:
> Epic: Tower Secrets
Feature: Tower Secrets Aws (Iteration 1)
Feature: Tower Secrets Aws (Iteration 2)
Frontend Development
Frontend development refers to that area of web development that focuses on what the users see on their end. It involves transforming the code built by backend developers into a graphical interface, making sure that the data is presented in an easy-to-read and -understand format.
HPC
High-Performance Computing refers to the use of advanced computer systems and architectures to perform complex computational tasks at much higher speeds and capabilities than traditional computing setups. HPC systems are designed to process and analyze massive amounts of data and perform complex calculations in fields such as scientific research, engineering simulations, weather forecasting, financial modeling, and more.
MLOps
MLOps or ML Ops is a set of practices that aims to deploy and maintain machine learning models in production reliably and efficiently. The word is a compound of “machine learning” and the continuous development practice of DevOps in the software field.
Pipeline
A pipeline, also known as a data pipeline, is a set of data processing elements connected in series, where the output of one element is the input of the next one. The elements of a pipeline are often executed in parallel or in time-sliced fashion. In Nextflow/Seqera specifically, we tend to differentiate between a pipeline and a workflow (they’re usually used interchangeably), where a pipeline is a pre-configured workflow that can be used by all users in a workspace. It is composed of a workflow repository, launch parameters, and a compute environment.
Project Groundswell
The internal name for the Tower resource optimization tool
Python, Groovy, Java, Shell Script, Java Script
These are different general purpose programming languages. They allow developers to write software.
Tech feature
A container for all the development tasks that compose a feature (both coming from the engineering roadmap or the product roadmap). It must contain:
- A Tech PRD (Product requirements document) document link
- The figma design link
- PRD link
- The name of the feature branch (named after the tech feature issue id), for example:
feature_2022_custom_run_name
User Cases
“Acceptance test” that describes the interaction and behaviours of the user with the system and the outcomes of such interactions.
The aim is to replace the guideline for testing for such big features and will help the QA team to test happy path and edge cases as well as to write e2e (end to end) tests.