Skip to content

Instantly share code, notes, and snippets.

View tonyjoanes's full-sized avatar
😏
LLM Learning

Tony Joanes tonyjoanes

😏
LLM Learning
View GitHub Profile

Roadmap for DevOps Maturity

Current Challenges

DevOps engineers assigned to multiple squads, leading to divided focus.

Legacy pipelines still in use; need to upgrade to YAML and standardize.

Permissions issues causing delays and inefficiencies.

Absolutely, Tony. Here's a rational breakdown of your architecture options in a comparison table that weighs reliability, complexity, and infrastructure overhead:


🧮 Blob Processing & Encryption Flow Options

Option Trigger Type Infra Overhead Reliability Metadata Flexibility Ease of Scaling Notes
Classic Blob Trigger Polling Low ❌ Risk of missed events ✅ Fetchable from blob 🚧 Limited Simple to implement but not recommended for production workloads
Event Grid → Azure Function Push via Event Grid Moderate ✅ Highly reliable ✅ Included in event or fetchab
flowchart TD
  A[SQL/Blob Storage Source] --> B[ADF Pipeline: Copy Data activity]
  B --> C[Azure Blob Storage: Raw CSV file]
  C --> D[ADF Pipeline: Custom Activity (PGPEncryptor.exe)]
  D --> E[Azure Batch Pool VM: Runs PGPEncryptor with inputs]
  E --> F[PGPEncryptor: Reads CSV, Public Key, Encrypts with Bouncy Castle]
  F --> G[Azure Blob Storage: Encrypted CSV file (.pgp)]
  G --> H[ADF Pipeline: Next Activity (e.g., Copy to SFTP/Salesforce)]
using System.Text;
using Azure.Storage.Blobs;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
using Org.BouncyCastle.Bcpg;
using Org.BouncyCastle.Bcpg.OpenPgp;
using Org.BouncyCastle.Security;
namespace EncryptBlobFunction;
@tonyjoanes
tonyjoanes / 10xExcellenceAnalysisPrompt.md
Last active January 13, 2025 11:08
10X Excellence Analysis Template

You are tasked with analyzing a situation and providing exceptional, 10x solutions using a specific framework. Your goal is to go above and beyond standard approaches, identifying opportunities for differentiation and lasting advantages through exceptional effort.

Here's the situation you'll be analyzing:

<primary_challenge> {{PRIMARY_CHALLENGE}} </primary_challenge>

<current_industry_approach> {{CURRENT_INDUSTRY_APPROACH}}

@tonyjoanes
tonyjoanes / AngularJS_Services.js
Created October 21, 2019 11:23
AngularJS Services
(function () {
'use strict';
var serviceId = 'myService';
angular.module('app', serviceId);
myService.$inject = ['dependencyOne', 'dependencyTwo'];
function myService(
@tonyjoanes
tonyjoanes / angularjs_controllers3.js
Created October 18, 2019 14:12
AngularJS Controllers function declaration at the top
(function () {
'use strict';
var MyController = function (dependencyOne, dependecyTwo) {
var vm = this;
vm.data = {
greetingMessage: 'Hello I am some data from the controller',
clickHandler: dependecyOne.click
}
@tonyjoanes
tonyjoanes / angularjs_controllers2.js
Last active October 18, 2019 14:14
AngularJS Controllers using $inject
(function () {
'use strict';
angular
.module('app')
.controller('MyController', MyController);
MyController.$inject = ['dependencyOne', 'dependecyTwo'];
function MyController(
(function () {
'use strict';
// Define the dependencies within an array and have a
// separate clean function for the controller code
angular
.module('app')
.controller('MyController'[
'dependecyOne',
'dependecyTwo',
// working d. bodnar 12-21-2017
/*
static const uint8_t D0 = 16;
static const uint8_t D1 = 5;
static const uint8_t D2 = 4;
static const uint8_t D3 = 0;
static const uint8_t D4 = 2;
static const uint8_t D5 = 14;
static const uint8_t D6 = 12;