Dev-Ops is a methodology aimed to speed-up application development and release aimed at promoting

  • fast development methodologies – Development teams
  • fast quality assurance methodologies – QA teams
  • fast deployment methodologies – System Operators teams
  • iteration and continuous feedback – Project Management teams

The aim is to achieve a faster time to market.

DevOps inherits Agile methods such as SCRUM Project Management, but it is more focused on the tools necessary to achieve the goal. It is also possible to involve the Security delegating some rights to the other teams: this approach is called DevSecOps.

These tools Devops brings with it were previously confined into the development field only, such as Source Code Management tools like GIT, branching models such as GitFlow, Continuous Integration and Continuous Delivery tools such as Jenkins or Drone, schedulers such ad dKron, scanners for code quality and compliance such as SonarQube.

This means that professional of every fields, even system engineers and administrators, should have an understanding of these tools and models.

On Apple Macs with Silicon processors, UTM is one of the best free virtualization options available, offering solid performance for ARM-based virtual machines.

As we saw in the Vagrant - installing and operationg post, Vagrant provides a convenient way for automating the setup, configuration, and management of virtual machines, enabling reproducible and consistent development environments.

Sadly, when dealing with Vagrant, there are only a few prebuilt Vagrant boxes supporting the UTM provider, which limits its out-of-the-box usability. Create ARM64 VagrantBox for Oracle Linux on UTM arch64 from Scratch shows how to create an aarch64 Oracle Linux 10 Vagrant box supporting the UTM ARM provider, making it easier to deploy and manage Linux VMs on Apple Silicon.

Read more >

The Python Smtplib Tutorial - howto send HTML EMAIL with Python is explains how to send HTML emails using SMTP, including auth, SMTP with TLS and SMTPS.

After introducing Python smtplib, the post provides an hands-on example showing how to add HTML email notification to an existing scirpt. The provided code supports every kind of SMTP connection - SMTP, SMTP with startTLS and SMTPS.

This post completes the trilogy we started with the JINJA2 With Python Tutorial JINJA Ansible HowTo and  Python Argparse Tutorial - Argparse HowTo posts.

Read more >

JINJA2 is a powerful yet easy to use templating engine that enables easily generating documents on the fly blending one or more objects with a template.

Since the syntax is heavily inspired by Django and Python, JINJA2 is not only commonly used inside Python scripts: it is very often exploited by Ansible, for example when generating configuration files on the fly.

In "JINJA2 With Python Tutorial JINJA Ansible Howto" post we will learn all the must know about JINJA2, and experiment with it by writing a real-life JINJA2 template file, rendering it by merging it with a JSON document using a custom Python script and an Ansible playbook.

Read more >

When using Kubernetes, it is mandatory to collect performance metrics so as to be able to plot them into meaningful graphs (a must-have during troubleshooting), visualize alerts in dashboards and get email notification of critical events. The best practice is to deploy Prometheus, Grafana and Alertmanager.

In the "Kubernetes Prometheus And Grafana With kube-prometheus-stack" post we see how to easily deploy and setup these three amazing components to setup a full featured alerting and performance monitoring solution.

The post also shows how to deploy additional Grafana Dashboards and how to deploy custom Prometheus rules to trigger application specific alerts.

Read more >

Rancher is a complete software stack for managing multiple Kubernetes clusters either on a public cloud or on premises. With the first stable release issued in 2016, it has slowly improved its feature set and become more and more popular. Currently it is probably the best option for managing Kubernetes clusters.

In the "Rancher Tutorial - Rancher Howto Install On Oracle Linux 9" post we see it in action learning how to to quickly deploy and install it on a Oracle Linux 9 platform, so to be able to immediately start playing with it and learning how this amazing tool can really simplify your life when dealing with Kubernetes.

Read more >

Interacting with Git using Python is a very common use case in the DevOps field: very often it is necessary to checkout application’s or scripts along with their configuration or even just checkout versioned configurations. Although more rare, it is sometimes necessary to update the checked out contents and push the committed version back to the “origin” remote repository. In the "Git With Python HowTo GitPython Tutorial And PyGit2 Tutorial" post we play with the two most commonly used Python libraries used to interconnect to Git: gitpython and pygit2.