Nabel Sawiris Nabel Sawiris

CI/CD Must Haves for 2026

For 2026, CI/CD pipelines must evolve into intelligent, secure, and highly scalable systems that integrate AI, multi-cloud resilience, and compliance automation. The focus is no longer just speed—it’s about adaptability, reliability, and governance at scale.

CI/CD Must-Haves for 2026

1. AI Driven Pipelines

  • Self-healing workflows that detect and fix failures automatically.

  • Predictive analytics to anticipate bottlenecks and optimize build/test cycles.

  • Intelligent test selection to reduce redundant runs and accelerate delivery.

2. Multi-Cloud & Distributed System Support

  • Pipelines must handle repository sprawl and multi-cloud deployments without slowing down.

  • Built-in orchestration for hybrid environments (AWS, Azure, GCP, on-prem).

  • Automated scaling to manage distributed microservices.

3. DevSecOps by Default

  • Shift-left security: automated vulnerability scanning integrated early in the pipeline.

  • Compliance-as-code to meet emerging AI regulations and data privacy laws.

  • Immutable deployments and containerized environments for secure, reproducible builds.

4. Pipeline as Code

  • Declarative, version-controlled pipelines that are modular and reusable.

  • Infrastructure as Code (IaC) tightly coupled with CI/CD for consistent environments.

  • GitOps workflows to ensure traceability and rollback capabilities.

5. Advanced Observability & Monitoring

  • Real-time monitoring with AI-assisted anomaly detection.

  • End-to-end visibility across builds, tests, deployments, and production.

  • Automated feedback loops to continuously improve pipeline efficiency.

6. Compliance & Governance Automation

  • Automated audit trails for every deployment.

  • Policy enforcement baked into pipelines (e.g., license checks, data residency).

  • Alignment with emerging AI laws and regulations expected in 2026.

7. Developer Experience Enhancements

  • Faster feedback cycles with trunk-based development and feature flags.

  • Seamless integration with collaboration tools (Slack, Teams, GitHub).

  • Reduced cognitive load via simplified, intelligent dashboards.

Summary Table

Must-Have Why It Matters in 2026
AI-driven pipelines Self-healing, predictive optimization
Multi-cloud resilience Handles distributed systems & sprawl
DevSecOps integration Security & compliance at scale
Pipeline as Code Modular, traceable, reproducible
Advanced observability Real-time anomaly detection
Compliance automation Meets AI/data privacy laws
Developer experience Faster, simpler, more reliable

Conclusion


Bottom line: In 2026, CI/CD is no longer just about automation—it’s about intelligence, resilience, and compliance. Teams that embrace AI-driven workflows, multi-cloud orchestration, and governance automation will be positioned to deliver faster, safer, and more reliable software.

Read More
Nabel Sawiris Nabel Sawiris

Terraform from AI’s Perspective

Terraform Easy but not Complete

I asked copilot to Write me a terraform how to: and it produced the following code. I’m impressed but at the same time know it’s just a basic implementation. If you need help with something more geared toward your company reach out and I will be happy to help.

🌍 What is Terraform? Terraform is an Infrastructure as Code (IaC) tool that lets you define cloud resources (servers, networks, databases, etc.) in declarative configuration files. You can then provision, update, and destroy them consistently across providers like AWS, Azure, GCP, and more.

🛠 Step 1: Install Terraform

  • Go to Terraform downloads
  • Install for your OS (Windows, macOS, Linux).
  • Verify installation:
terraform -v

📂 Step 2: Create a Project Directory

mkdir terraform-demo
cd terraform-demo

📜 Step 3: Write Your First Configuration Example: Provision an AWS EC2 instance.

  • Provider block (tells Terraform which cloud to use):
provider "aws" {
  region = "us-west-2"
}
  • Resource block (defines infrastructure):
resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0" # Amazon Linux 2 AMI
  instance_type = "t2.micro"

  tags = {
    Name = "TerraformDemo"
  }
}

Save this as main.tf.

▶️ Step 4: Initialize Terraform

terraform init
  • Downloads provider plugins (AWS in this case).

🔍 Step 5: Preview the Plan

terraform plan
  • Shows what Terraform will create, change, or destroy.

🚀 Step 6: Apply the Configuration

terraform apply
  • Type yes when prompted.
  • Terraform provisions the EC2 instance.

🧹 Step 7: Destroy Resources When you’re done:

terraform destroy

📌 Best Practices

  • Use variables: Store values like AMI IDs in variables.tf.
  • Use state files carefully: Terraform keeps track of resources in terraform.tfstate.
  • Version control: Keep configs in Git.
  • Modules: Reuse code for repeatable infrastructure patterns.

Ok now what? The results assume you know a bit about terraform. You can spend many hours back and forth with AI to try to figure out what’s next. The reality is, none of this is specific to your business or processes.

If you need assistance with figuring out what’s next, reach out and let’s talk.

Read More
python, images, resize Nabel Sawiris python, images, resize Nabel Sawiris

How to Resize Images without Paying!

I was trying to resize my logo for this site, and it was surprisingly hard to find a good solution. Since I am a developer I just quickly wrote the following script which I thought other people might like:

NASpire LLC - IT Services Blog Image

I was trying to resize my logo for this site, and it was surprisingly hard to find a good solution. Since I am a developer I just quickly wrote the following script which I thought other people might like:

# Resize images
import cv2

source_path = 'C:\\savedLocation\\imageName.png'  # Replace with your image path
dest_path = 'C:\\savedLocation\\imageName-Small.png'  # Replace with your desired output path

resizeX = int(175)
resizeY = int(175)

img = cv2.imread(source_path, cv2.IMREAD_UNCHANGED)

# Resize images
if img is not None:
    processed_image = cv2.resize(img, (resizeX, resizeY)) #for img in images]  # Adjust dimensions as needed
    print("Images resized successfully.")

print(processed_image)
cv2.imwrite(dest_path, processed_image)

All you have to do is replace the following with your information.

  • source_path

  • dest_path

  • resizeX

  • resizeY

If you have any questions feel free just drop it in the comments. I would be happy to help

Read More