Hi, I'm Al-waleed Shihadeh
Platform engineering leader with 15+ years building and running cloud-native production systems. I help organizations improve availability, security and reliability, control cloud cost, and adopt AI through secure infrastructure, gateways and integrations.
Projects
Gems, FluentD plugins and a GitHub Action I maintain. Each one has full docs.
GitHub Action
Ruby gems
Deep Health Check
A Rack health check middleware that verifies the services an app depends on.
Read the docs βPrometheusDelayedJob Metrics
Expose Prometheus metrics for Delayed Jobs.
Read the docs βRailsIRBTracker
Track and correlate every command run in the IRB console, with LDAP authentication.
Read the docs βMessagingRabbitMQ Client
A RabbitMQ client for Ruby applications.
Read the docs βSwarmSwarm Orca
Capistrano recipes to deploy services and Rails applications to a Docker Swarm cluster.
Read the docs βFluentD plugins
Docker Metadata
Attach Docker Swarm service and container names to FluentD messages.
Read the docs βFluentDEmpty Keys
Filter out and remove empty keys from FluentD messages.
Read the docs βFluentDKey-Value Parser
Parse key-value formatted FluentD events and extract their attributes.
Read the docs βFluentDRecord Splitter
Split a single FluentD event into multiple records.
Read the docs βBlog posts
Articles on Medium, grouped by topic. Search or filter to find something.
5 Risks That Should Be Avoided in Software Projects
Read on Medium βSoftware EngineeringAutomating Release cycle activities
Read on Medium βSoftware EngineeringAutomate Unit Tests Coverage Reports and Dependency Updates for Your Repositories.
Read on Medium βSoftware EngineeringTips for Implementing a Software Release Process
Read on Medium βSoftware EngineeringAvoid Production Incidents by Considering Production Conditions During Development
Read on Medium βSoftware EngineeringImprove Code Quality and Git History with Automation tools
Read on Medium βSoftware EngineeringHow to Add Badges to a GitHub Repository
Read on Medium βSoftware EngineeringHow to Use Environment Variables with RSpec Unit Tests
Read on Medium βSoftware EngineeringBuild a Health Check Rack Middleware
Read on Medium βKubernetesHow to Migrate From Docker Compose to Kubernetes
Read on Medium βKubernetesResource Limits on Kubernetes
Read on Medium βKubernetesHelm Chart Wait for All Dependencies Before Starting Kubernetes Pods
Read on Medium βDocker SwarmSix Tips For Running Swarm Cluster in Production
Read on Medium βDocker SwarmPortainer Review
Read on Medium βDocker SwarmHow to Limit Resources for Docker Swarm Services
Read on Medium βDocker SwarmZero Downtime Deployments With Docker Swarm
Read on Medium βDocker SwarmHow to Deploy Portus and Docker Registry in Swarm
Read on Medium βDocker SwarmOrchestrating a Rails Docker Deployment in Swarm
Read on Medium βTraefikTraefik 2 High Available Mode
Read on Medium βTraefikPrevent DDoS Attacks with Traefik 2
Read on Medium βTraefikIntegrate Traefik 2.1 Reverse Proxy with Docker Swarm Services
Read on Medium βTraefikMonitoring Traefik With Grafana
Read on Medium βTraefikTraefik 2 and Open Tracing
Read on Medium βApplication Logs & Centralized loggingParse Ruby on Rails logs with FluentD
Read on Medium βApplication Logs & Centralized loggingCentralize Your Docker Logging With FluentD
Read on Medium βApplication Logs & Centralized loggingHow to Correlate Rails Requests to Database Logs
Read on Medium βApplication Logs & Centralized loggingCentralize Your Docker Logging With Syslog
Read on Medium βApplication Logs & Centralized loggingCollect and Store Rails Console Logs
Read on Medium βApplication Logs & Centralized loggingRuby on Rails Single Line Logging
Read on Medium βApplication Logs & Centralized loggingSeven Tips For Using Fluentd For Logs Collection
Read on Medium βMonitoringMonitor Delayed Jobs with Prometheus and Grafana 2
Read on Medium βMonitoringMonitor Delayed Jobs with Prometheus and Grafana 1
Read on Medium βContainers and OrchestratorsFive Use Cases For Docker Entry Points
Read on Medium βContainers and OrchestratorsCache and Serve Rails Static Assets With Nginx Reverse Proxy
Read on Medium βContainers and OrchestratorsThree Methods to Share Rails Assets With Nginx
Read on Medium βContainers and OrchestratorsHow to Detect Vulnerabilities in Docker Images
Read on Medium βContainers and OrchestratorsDockerizing Rails Applications Part 3: CI/CD Integration
Read on Medium βContainers and OrchestratorsDockerizing Rails Applications Part 2: Automation
Read on Medium βContainers and OrchestratorsDockerizing Rails Applications Part 1: Writing the Dockerfile
Read on Medium βContainers and OrchestratorsAutomate Docker Registry Cleanup
Read on Medium βContainers and OrchestratorsHow to Build Docker Base Images for Rails
Read on Medium βDevOps Tools & TricksBuild GitHub Actions Using Docker Containers
Read on Medium βDevOps Tools & TricksBuild a Blog With GitHub and MkDocs
Read on Medium βDevOps Tools & Tricks5 Tips for Hosting Your Own Jenkins Instance
Read on Medium βDevOps Tools & TricksHow to Minimize the Costs of Running AWS EC2 Instances Using Terraform
Read on Medium βDevOps Tools & TricksBuild an OpenLDAP Docker Image Thatβs Populated With Users
Read on Medium βDevOps Tools & TricksCreate SonarQube Jenkins webhook
Read on Medium βDevOps Tools & TricksHow to Add Github Webhooks to a Jenkins Pipeline
Read on Medium βDevOps Tools & TricksImprove Your Productivity Using Git and Bash Aliases
Read on Medium βDevOps Tools & TricksHost a Secure Private Gem Server With LDAP Authentication and Authorization
Read on Medium βNo articles match your search.
Looking for the documentation?
Installation guides, configuration examples and usage notes for every gem and the GitHub Action.