Packages or Containers?

Packages or Containers?

 10 Oct 2022 -  Giulio Vian

In a previous article I considered the principle that DevOps collects from Lean, namely the importance of minimizing the size of releases. In Lean we talk about small batches, which for software means reducing as much as possible the amount of changes present in a release. With some simple examples I hope to have demonstrated the advantages that are derived from them and how automation is a consequence of minimizing the weight of our releases.

Read more… ( ~5 Min.)
Architecture, what is it?

Architecture, what is it?

 07 Oct 2022 -  Giulio Vian

Definitions are important and when I hear using the term architecture to refer to classes and programming patterns within a program, I find myself uneasy. It’s probably a problem of mine, so I looked at literature and what they say: not an exciting landscape. Martin Fowler in Software Architecture Guide (martinfowler.com)   mentions two definitions: ** the shared understanding that the expert developers have of the system design **

Read more… ( ~3 Min.)
Is DevOps no more than automation?

Is DevOps no more than automation?

 16 Sep 2022 -  Giulio Vian

One big misconception about DevOps is that it is just automation, no other purposes. Nothing is more wrong. Automation is a mean to a very different goal. The purpose of DevOps is to optimize and maximize the value delivered to users through the IT chain of work. To maximize value, we need to reduce the size of our releases. Each release has less features, but we release more frequently. More frequent releases are less efficient if we manage them manually.

Read more… ( ~3 Min.)
Automate? Always!

Automate? Always!

 16 Sep 2022 -  Giulio Vian

Some years ago I gave a talk, titled “Automate? Always!”, to stimulate a discussion about automation in software engineering. Today, I am putting the argument in writing to reach a bigger audience. Please note: in this post I refer to any automation in software development lifecycle: spanning from editor macros to deployment scripts (I confess my preference for the latter as you will perceive). Please bear with me because this will be a bit longer than other posts, although there is more to say that can fit a single article.

Read more… ( ~6 Min.)

Top 10 Pipeline mistakes

 23 May 2020 -  Giulio Vian

Introduction to the Top 10 Pipeline mistakes series

Read more… ( ~2 Min.)
Blog updated: Hugo & GitHub Actions

Blog updated: Hugo & GitHub Actions

 25 Apr 2020 -  Giulio Vian

I wrote a while ago about Automating Hugo to publish a blog. In that post, I used Azure Pipelines (well, they had a different name at that time). Today, after three years, I revised the solution and I am amazed by Hugo   progress. Many of my customisations and hacks I implemented are gone: Hugo batteries included philosophy is a true thing. In addition to using the most recent version – 0.

Read more… ( ~2 Min.)
Using GitVersion in GitHub Actions beta

Using GitVersion in GitHub Actions beta

 23 Sep 2019 -  Giulio Vian

I was lucky to enter the GitHub Actions beta program so I wondered about the best way to test it. Finally, I decided to port Aggregator CLI   build scripts to GitHub Actions. A critical step of those scripts is to run GitVersion   to generate the version for Aggregator. GitVersion, in the words of its authors, “looks at your git history and works out the semantic version of the commit being built.

Read more… ( ~5 Min.)
Meta-pipelines - Part 5 - Automating the Host Environment

Meta-pipelines - Part 5 - Automating the Host Environment

 20 Sep 2019 -  Giulio Vian

Looking back at the previous parts of this series, we have been able to manually setup two hosts, a Windows one and a Linux one, and a simple pipeline to automatically deploy new Azure DevOps/TFS Agents in Docker containers on such hosts and even update them. In this post we will look how to provision the hosts themselves. For this purpose we will use Terraform and invoke it from Azure Pipelines so we can automate host creation in Azure.

Read more… ( ~7 Min.)
Meta-pipelines - Part 4 - Deploy and Run

Meta-pipelines - Part 4 - Deploy and Run

 13 Sep 2019 -  Giulio Vian

In the previous instalment we built custom Docker images for Azure Pipelines/TFS Agents. In this post, we will explore the lifecycle of Docker containers running such images. Container Deploy Pipeline This pipeline is more complex than the previous requiring 4 actions: checking if the agent (rectius the container running the agent) is running If so, stop and remove the container Pulling the image from the selected Docker Registry Starting the container with the proper parameters.

Read more… ( ~5 Min.)
Meta-pipelines - Part 3 - Build and Registry

Meta-pipelines - Part 3 - Build and Registry

 06 Sep 2019 -  Giulio Vian

In the previous instalments we examined a possible Dockerfile for an Azure Pipelines/TFS Agent. In this post, we will explore the pipeline that can automatically build such custom agent images. Docker Registry To automate properly we need a Docker Registry where storing the Docker images we build. There are many advantages in using a registry, in our scenario it enables: pulling an image version built years ago distribution of images to multiple hosts caching locally base images, allowing air gap builds For the purpose of this series we will use Azure Container Registry (ACR for short), but there are many options; for example I used successfully ProGet   .

Read more… ( ~3 Min.)