Key Terms and Industry Jargon
Key Terms and Industry Jargon
Build Server
A build server is an application that is used in both the testing and deployment of software. Popular build servers can be both SaaS or open source. Here are a few popular options:
- Jenkins: Open source build server that can run anywhere including AWS, GCP, Azure a docker container or on your laptop.
- CircleCI: A SaaS build service that integrates with popular git hosting providers like Github.
Microservice
A lightweight loosely coupled service. It can be as small as a function.
FaaS (Function as a Service)
A type of cloud computing that facilitates functions that respond to events.
AWS Lambda
A serverless compute platform by AWS that has FaaS capability.
Cloud-Native applications
Cloud-Native applications are services that utilize the unique capabilities of the cloud, like serverless.
SQS Queue
A distributed messaging queue built by Amazon with near-infinite reads and writes.
Serverless
Serverless is a technique of building applications based on functions and events.
Moore’s Law
The perception that for some time the number of transistors on a microchip doubles every two years.
AWS Cloud9
AWS Cloud9 cloud-based development environment running in AWS. It has special hooks for developing serverless applications.
Python Virtual Environment
A python virtual environment is created by isolating a python interpreter to a directory and installing packages in that directory. The python interpreter can perform this action via python -m venv yournewenv
.
Container
A container is a set of processes that are isolated from the rest of the operating system. They are often megabytes in size.
Virtual Machine
A virtual machine is the emulation of a physical operating system. The can be Gigabytes in size.
Docker Format Container
There are several formats for containers. An emerging form is Docker, which involves the definition of a Dockerfile.
pip
The pip
tool installs Python packages.
pylint
The pylint
tool checks the Python source code for syntax errors.
black
The black
tool formats the text of Python source code automatically.
pytest
The pytest
tool is a framework for running tests on Python source code.
IPython
The ipython
interpreter is an interactive terminal for Python. It is the core of the Jupyter notebook.
Makefile
A Makefile
is a file that contains a set of directives used to build software. Most Unix and Linux operating systems have built-in support for this file format.
CircleCI
A popular SaaS (Software as a Service) build systems used in DevOps workflows.
Docker
Docker is a company that creates container technology, including an execution engine, collaboration platform via DockerHub and a container format called Dockerfile.
Amazon ECR
Amazon ECR is a container registry that stores Docker format containers.
Swagger
A swagger tool is an open-source framework that simplifies the creation of API documentation.
Data Engineering
Data Engineering is the process of automating the flow of data.
Ports
A port is a network communication endpoint. An example of a port is a web service running on port 80 via the protocol HTTP.
JSON
JSON stands for JavaScript Object Notation, and it is a lightweight, human-readable data format used heavily in web services.
Kubernetes
Kubernetes is an open-source system for automating the operations of containerized applications. Google created it and open-sourced in 2014.
Amazon EKS
Amazon EKS is a managed Kubernetes service created by Amazon.
Google GKE
Google GKE is a managed Kubernetes service created by Google.
Azure Kubernetes Service AKS
Azure Kubernetes Service is a managed Kubernetes service created by Google.
YAML
YAML is a human-readable serialization format often used in configuration systems. It is easily portable to JSON format.
Kubernetes Pods
A Kubernetes pod is a group of one or more containers.
Kubernetes Containers
A Kubernetes container is a Docker image that deploys into a Kubernetes cluster.
Kubernetes Clusters
A Kubernetes cluster is a deployment of Kubernetes that contains the entire ecosystem of Kubernetes components, including nodes, pods, the API, and containers.
Prometheus
Prometheus is an open-source monitoring system with an efficient time-series database.
Logging
Logging is a process of creating messages about the running state of a software application.
Autoscaling
Autoscaling is the process of scaling load up or down automatically based on how many resources the nodes are using.
Alerts
Alerts are health metrics that have actions associated with them. An example would be an alert that sends a text message to a software engineering when a web service returns multiple error status codes.
Operationalization
The process of making an application ready for production deployment. These actions could include monitoring, load-testing, setting up alerts, and load-testing.
Metrics
Metrics are the creation of KPIs (Key Performance Indicators) for a software application. An example of a parameter is the percentage of CPU used by a server.
Disaster recovery
Disaster recovery is the process of designing a software system to recover despite a disaster. This process could include archiving data to another location.
Migrate
Migrate is the ability to move an application from one environment to another.
Continuous Integration
Continuous Integration is the process of automatically testing software upon check in to the source control system.
Continuous Delivery
Continuous Delivery is the process of delivering tested software automatically to any environment.
Load Testing
Load testing is the process of verifying the scale characteristics of a software system.
Locust
Locust is a load-testing framework that accepts Python formatted load test scenarios.