Skip to main content
Advice

Glossary of terms: Blocks edition

Danielle Mee

Campaign manager

14 July 2023

Late in 2022, we released Blocks, a new feature of Contensis. Blocks benefit developers and content editors, leaving site owners in control of releases and allowing developers to commit changes as soon as they are ready. Since the launch of Blocks, the feature has grown and evolved.

This glossary of terms will tell you everything you need to know about Blocks and industry-related DevOps terminology.

Blocks: A feature built for Developers and Content teams

For the developers amongst us, each Block contains your application or service and all the dependencies required to run it. Not only does this let you develop in any language, but it also means that your code will work the same way in your production environment as it does when you are developing locally. You can easily package and deploy code to Contensis as Blocks without leaving your IDE.

For the content editors and digital teams that work with Contensis but don’t speak code, the essential information to know is that Blocks allow site owners and distributed teams to control the release of new features to their site. Developers can focus on writing code, commit any changes and make them visible on a preview URL. Then you and your team can preview and compare changes, go live, and have the peace of mind that you can roll back at any time.

The Blocks glossary: the important terms to know about Blocks and DevOps.

There's no need for a DevOps team or for you to understand Kubernetes, container orchestration, or how to manage environments across multiple datacentres – Contensis handles that for you.

But with more of the Contensis community onboarding with Blocks, we thought we’d create a go-to glossary with all Blocks-related terminology.

1. Block

Block: A Block is a building Block of code that can represent your entire website or an individual feature yet to be released.

As developers make changes and deploy new features, they become available in the Contensis interface to test alongside your content before applying them to your live website.

Blocks are based on the industry standard container technology Docker enabling your development teams to work on your website, locally or directly on our cloud infrastructure.

2. Block push

Block push: A Block push is the resulting action of a continuous integration (CI) workflow, usually when a developer has made a change or introduces a new feature.

As a developer commits code, a CI workflow, such as GitHub actions or a GitLab pipeline, builds a Docker image and pushes it to Contensis using the Blocks API, ready for testing and releasing in the Contensis interface.

3. Block version

Block version: Each time a Block is updated by a developer committing code, a new Block version is created.

This provides a history of changes allowing a Site Owner or developer to easily roll back a feature or part of a site to an earlier time.

4. Block release

Block release: A Block release indicates that a Block version is ready for use on a production site. It is not the same as making the Block "live." A released Block can be made live later within the Contensis interface.

Usually, a Block workflow automatically releases each Block version when it is pushed using the Block Push process. However, if a developer is making complex changes involving multiple commits or merges, a Block version can be pushed without being released.

The developer can then manually mark it as released, and a site owner can decide when or if to make that Block version live.

5. Branches

Branch: Branches offer a powerful solution for software development teams to separate ongoing work while maintaining a stable and reliable codebase.

A branch represents an independent line of development within the software, enabling developers to concurrently tackle separate tasks, features, or bug fixes without directly impacting the main codebase.

6. Container

Container: Containers are self-contained environments that package applications and their dependencies together, allowing them to run consistently across different computing environments.

Containers offer flexibility and scalability, making it easier to develop and deploy applications across different environments.

7. Continuous integration

Continuous integration: Continuous Integration (CI) is a development practice that focuses on frequently and automatically integrating code changes from multiple developers into a shared repository.

It involves using automated build and testing processes to detect integration issues early on.

With CI, developers regularly commit code changes to a central repository, triggering automatic builds and tests. This practice ensures that code changes are quickly validated and merged, reducing the likelihood of conflicts and allowing for rapid feedback.

Continuous Integration promotes collaboration, quality assurance, and the delivery of stable and reliable software by catching integration problems early in the development cycle.

8. Continuous delivery and continuous deployment

Continuous delivery and continuous deployment: Continuous delivery is a software development approach that encourages frequent and automated delivery of every code change to staging and testing environments after the build stage.

This approach promotes collaboration and feedback loops between developers, testers, and stakeholders, facilitating rapid iteration and continuous improvement.

Continuous delivery requires manual intervention to deploy changes to a production website.

Continuous deployment, on the other hand, automatically releases code changes to the production environment after passing predefined tests.

This approach reduces time to market by eliminating delays between coding and delivering customer value.

Continuous delivery and continuous deployment are similar concepts. The key difference is the manual or automatic deployment to production.

9. Deploy code

Deploy code: In software development, deployment refers to the process of moving software from one controlled environment to another.

Deployment of code makes it available and operational in a production or target environment where end-users can access and interact with it.

The most common environments are development, integration, test, staging and production.

10. DevOps

DevOps: DevOps is an approach that combines software development (Dev) and IT operations (Ops) to enhance efficiency and collaboration in software creation and deployment.

It is an agile methodology that simplifies the complex process of managing an automated DevOps pipeline.

Contensis Blocks provides a separation layer that gives Site Owners visibility of the DevOps pipeline and simplifies the management of large enterprise websites.

11. Docker

Docker: Docker is an open-source software platform that allows you to build, test, and deploy applications quickly.

Docker packages software into standardised units called containers that have everything the software needs to run including libraries, system tools, code, and runtime.

Using Docker, developers can quickly create, deploy and scale applications on any machine. This provides a consistent and reproducible environment regardless of the underlying infrastructure.

12. Docker image

Docker image: A Docker image is a self-contained package that includes all the necessary software, libraries, and dependencies to run an application.

It is a lightweight and portable snapshot of a specific software configuration. Docker images are built from a set of instructions called Dockerfiles, which define the steps to create the image.

These images can be easily shared, distributed, and deployed across different environments, making application deployment and scaling more efficient. Docker images provide a consistent and reproducible environment, ensuring that the application behaves the same regardless of the host system on which it is run.

13. Environment

Environment: An environment refers to the context where software applications are written, deployed, tested and run.

Environments are categorised by their purpose within the software development lifecycle. For example,

A development environment is where code is written, tested and debugged locally.

A testing environment is to verify the performance and functionality of the code.

A staging environment is pre-production and closely resembles the production environment. This is usually used for user acceptance testing (UAT).

A production environment is a live environment where the software application is made available to the end users.

A sandbox environment is an isolated space for user experimentation, prototyping and testing features without impacting the production environment.

14. Package

Package: In software development, application software is delivered in units called packages.

A package is a structured unit of code that contains related functions, classes or modules required for a software product.

It is a way to encapsulate and distribute software components, libraries, or modules in a structured, reusable format. Making it easier to build complex systems and collaborate with others.

Packages are often used in programming languages that support modular programming, such as Node JS, .NET and Python.

Many programming languages will ship with its own package manager to install packages or dependencies from a package repository like NPM to help us expose rich functionality in the code we write.

15. Repository (repo)

Repository (repo): A repository, or repo, is a storage location where the codebase of a website or application is managed and version controlled using a version control system (VCS) such as Git.

It’s a collection of source code files that make up the software application or system, including scripts, configuration files, libraries and any other code artefacts required for the project.

The repo acts as a central digital hub for developers to store, collaborate and track changes made to a project's source code over time.

Did we miss anything? Let us know if there is more Blocks terminology that you’d like demystified.

Create better content with Contensis

Contensis is an award-winning, flexible and scalable headless content management system that stores your content in small reusable chunks – making it easy for you to manage and use across all your platforms.

The introduction of Blocks into Contensis aims to improve the management and deployment of code and enhance collaboration, control and efficiency in software development - providing DevOps best practices within the CMS.

Got a question?

Danielle Mee

Campaign manager

Advice
14 July 2023

Ready to get started?

Contensis supports modern development practices. And it works with your preferred tools – from VS Code to Git. Browse the documentation to get started.

Request a demo