SlideShare a Scribd company logo
1 of 37
Download to read offline
Victor Szoltysek - Feb 8th / 2024
AWS, OpenAI API, and GitHub Actions Unleashed!
Simplified DevOps Bliss
DevOps was meant to streamline our workflow, yet here we
are, navigating a labyrinth of complexity. Tools and processes,
meant to liberate, have become chains.
Devops is a mess
It's time to break free and find the simplicity DevOps was
supposed to offer.
Embrace a new paradigm for operational excellence
• Speed: Prioritize actions that yield quick wins and fast feedback
loops
• Simplicity: Choose the simplest effective solution to avoid
unnecessary complexity
• Self-Serve: Empower teams to manage their own processes and
tools
Redefining DevOps: Speed, Simplicity, Self-Serve
#1 - Version your artifacts
• No More “is Feature X in this deploy?” , or “What version is
deployed?”
• Major / Minor (hot fix) / Build Number (i.e
GITHUB_BUILD_NUMBER)
• Include in file name, REST endpoint, directly in Index.html
• Include - version, GitHash tag, and branch
What the Hell is in This Binary?
plugins {
id 'org.springframework.boot' version '2.3.1.RELEASE'
id 'io.spring.dependency-management' version '1.0.9.RELEASE'
id "com.gorylenko.gradle-git-properties" version "2.2.2"
id 'java'
}
version = "1.0.${System.env.BUILD_NUMBER ?: System.env.GITHUB_RUN_NUMBER ?: '0-
SNAPSHOT'}"
springBoot {
buildInfo()
}
GRADLE CODE
#2 - Use GitHub Actions (or similar)
• CI script becomes part of application SCM
• CI shouldn’t be this hard - you don’t need a DevOps Team
• No more Waiting on Build agents
• No agent management required (including need to. keep build
version tools up-to-date)
Stop Using Jenkins: Embrace Modern CI/CD
name: Java CI with Gradle
on:
push:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
- name: Build with Gradle
run: ./gradlew
GITHUB ACTIONS YML FILE
#3 - Keep CI Logic in Application Repos Instead
• Eases testing and maintenance of CI scripts
• Ensure CI and local environment parity
• Simplifies the process of updating and debugging CI/CD pipelines
You Don't Need Complicated Pipelines!
#4 - Build Once, Deploy anywhere
• Don’t rebuild the app on deploy (i.e. deploy the source code) — note
the LeftPad NPM Package Issue
• Use a single artifact for all environments with dependencies
• Use Maven or Gradle Wrappers (no more build script version
issues)
• Build the artifact once - Every build is a release candidate
Every Build a Release Candidate
#5 - Keep builds green with proactive notifications
• Implement automated blame and notification systems (mS teams
messages)
• Foster a culture of immediate response to broken builds
• Allow rollback if build isn’t getting fixed (~ 15 minutes)
Who Broke the Build?
#6 - Use modern communication tools for alerts
• Use Incoming webhooks for alerts with Slack and MS Teams
(super easy to setup)
• Connect JIRA, GitHub, Service Now, and PagerDuty for issue
tracking
• Use SMS (via AWS SNS) for urgent issue notifications
Emails Are the Worst Notifications
SUPER EASY WEBHOOK CREATION
curl -s -d "payload={"text":"Test Message"}"
INSERT_YOUR_WEB_HOOK_URL_HERE
WEBHOOK CALL EXAMPLE
#7 - Automate your Deploy in Your Build Script
• Keep deployment logic in version control
• Embed deployment steps into build scripts ( Use plugins, don’t reinvent the wheel)
• Automate deployment On Commits (No more tedious deployment plans)
• Auto Notify on Successful Deploys - No more “Is it deployed yet?”
• Integrate Automatic Database Scheme versioning (i.e. liquid base)
• Correlate Stories to Deploys - no more “Is feature X in Prod Yet?”
Where’s the Deploy Button?
#8 - Use PaaS instead
• Skip Docker, Kubernetes and Terraform unless absolutely necessary
• Deploy into Amazon Beanstalk (or similar PaaS) for simplicity
• Rely on platform services for operational tasks
• Minimize the “undifferentiated Heavy Lifting” and “Resume Driven Development”
• Infrastructure should be fully self-healing (App crashes , JVM Failures, etC)
— add health check endpoints and config if needed
Containers are overkill majority of time
plugins {
id "fi.evident.beanstalk" version "0.3.2"
}
beanstalk {
profile = ‘my-profile'
s3Endpoint = "s3-eu-west-1.amazonaws.com"
beanstalkEndpoint = "elasticbeanstalk.eu-west-1.amazonaws.com"
deployments {
dev {
file = app.jar
application = 'my-app'
environment = 'my-app-staging'
}
}
}
GRADLE BEANSTALK DEPLOY PLUGIN EXAMPLE
Deploy by running gr
a
dle deploy<deployment-n
a
me>, i.e. gr
a
dle deployDev
#9 - Proactively monitor and respond to application health
• Alert on Error Level Exceptions and action on them immediately
• Alert via webhooks for quick issue notification (can be done via Logback.xml)
• Notify directly to Developers as errors Happen
• Also Alert on known critical Failures (Communication failures, SQL Failures,
ETC) — you can alert directly to responsible teams (including via SMS!!)
• Implement a 'fix it or forget it' policy to ensure errors are either resolved or
reclassified
Catch Failures Before They Catch You
<springProperty scope="context" name=“APP_NAME"
source="vcap.application.name" defaultValue="local_app"/>
<springProperty scope="context" name="APP_SPACE"
source="vcap.application.space_name" defaultValue="${HOSTNAME}"/>
<appender name="SLACK" class="com.github.maricn.logback.SlackAppender">
<webhookUri>${SLACK_INCOMING_WEB_HOOK}</webhookUri>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern>
</layout>
<username>${APP_NAME}@${APP_SPACE}</username>
<iconEmoji>:rage:</iconEmoji>
</appender>
<appender name="ASYNC_SLACK" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="SLACK" />
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
LOGBACK.XML EXAMPLE
(ERROR-LEVEL LOG MESSAGES DIRECTLY TO SLACK)
• Implement Unknown exception Handling on the browsers Side
• Makes sure to Track User-Agent
• Log Back issues to Backend
• You’d be surprised how many users use out-of-date browsers that
snap your latest SPA’s
#10 - Proactively Monitor and Fix Front-End Issues
Ensuring Your Web Pages Always Load
<script>
window.onerror = function(message, url, lineno, colno, error) {
$.post({
url: 'logging/client-error',
contentType: 'text/plain',
data: 'Source:' + url + ':' + lineno + ' Error:' +
message + ' UserAgent:’ + navigator.userAgent
});
}
</script>
JAVASCRIPT CODE (QUICK AND DIRTY WEB LOGGING)
#11 - Automate code quality with static analysis
• Agreed on and enforce coding standards (Doesn’t matter which
ones)
• Allow developers to focus on functionality, not formatting
• Eliminates petty disputes over coding conventions
Stop Nitpicking About Coding Styles
#12 - Adopt trunk-based development and WIP commits
• Encourage Daily commits (to mainline) to minimize conflicts
• Use feature toggles to manage incomplete features in production
(implicit initially)
• Reduces the fingers-crossed fear of pressing the ‘use-mine’ merge
option
No More Merge Conflicts and Regressions
#13 - Allow direct commits for efficiency and agility
• Trust developers to commit directly to trunk
• Foster a culture of responsibility and peer review through pairing
or targeted PRs
• Speeds up minor updates, like fixing a typo in the README.md
Stop Waiting for PRs
#14 - Implement blue-green deployments for zero downtime
• Ensure seamless user experience during updates
• Reduce risk by having a readily available (and fast) rollback option
• no more outage windows - deploys can be done during business
hours
• Note the need for Stateless Applications (which also make scaling
easier)
No More Outage Windows
Live Traffic
Old Deploy
Live Users
Live Traffic
Old Deploy
Live Users
New Deploy
New version Pushed and tested
Live Traffic
Old Deploy
Live Users
New Deploy
#15 - Optimize Logging for Actionable Insights
• Stop logging to local files – Use centralized logging
• Use structured (key-value pair) logging instead of unstructured
• Add trace-ids for logging between processes (spring Cloud Sleuth)
• Focus on logging actionable information (not exiting / entering methods)
• Aim to log strategically rather than voluminously (Focus on exceptions)
• Consider Metrics instead of Logging (especially for high Volume - metrics scale
linearly)
I Have No Idea Where to Look for Errors
#16 - Leverage AI for faster problem resolution - or Just for having fun!
• Integrate OpenAI with webhooks and AWS Lambda for rapid problem analysis
• Automate preliminary PR reviews with AI to catch issues before human review
• Send error messages to AI for first opinions — like a virtual rubber duck for
debugging
• Leverages AI to provide quick solutions or code suggestions, streamlining the
troubleshooting process
Use AI to Speed Up Troubleshooting
curl -X POST https://api.openai.com/v1/engines/gpt-4/
completions 
-H "Content-Type: application/json" 
-H "Authorization: Bearer YOUR_API_KEY" 
-d '{"prompt": "Tell me an Agile software development
joke.", "max_tokens": 50}'
OPENAI API CALL EXAMPLE
GitHub MS Teams
OpenAI API
Webhook Event
- PR
- Build Failure
- Deploy
- Etc ..
Webhook Notification
- enriched data
AI API
Call
AI API
response
AWS Lambda
ANALYZE THE FOLLOWING CODE DIFF SUBMITTED AS A PR REQUEST FOR A JAVA PROJECT AND PROVIDE
FEEDBACK.
1) DETERMINE IF THE PR IS WARRANTED BASED ON THE CHANGES ( FOR SMALL AND LOW RISK CHANGES LIKE README
UPDATES, TEXT CHANGES, COLOUR CHANGES, ETC .. I DON’T CARE ABOUT PRS).
2) IDENTIFY ANY ERRORS
3) OFFER RECOMMENDATIONS FOR IMPROVEMENT.
<APPENDED PR CODE DIFF>
OpenAI PR Aid - Prompt
GIVEN THE FOLLOWING USER STORIES, GENERATE A SUMMARY FOR RELEASE NOTES, IDENTIFY THE SYSTEMS
AFFECTED BY THESE CHANGES, AND OUTLINE THE KEY AREAS OF FOCUS FOR QA TESTING.
1. GENERATE CONCISE RELEASE NOTES SUMMARIZING THE NEW FEATURES, IMPROVEMENTS, AND BUG FIXES INCLUDED
IN THIS RELEASE BASED ON THE PROVIDED USER STORIES.
2. IDENTIFY WHICH SYSTEMS OR COMPONENTS ARE AFFECTED BY THE CHANGES IN THESE USER STORIES.
3. OUTLINE THE KEY AREAS OF FOCUS FOR QA TESTING, INCLUDING SPECIFIC FUNCTIONALITIES THAT NEED
THOROUGH TESTING, POTENTIAL REGRESSION AREAS, AND NEW FEATURES THAT REQUIRE VALIDATION.
<APPENDED PR CODE DIFF>
Release Note Generation - Prompt
GIVEN AN SQL ERROR CAUSING APPLICATION OUTAGES, CREATE A PASSIVE-AGGRESSIVE MESSAGE
DIRECTED AT THE DBA TEAM, REQUESTING THEIR ATTENTION TO RESOLVE THE ISSUE.
THE ACTUAL SQL ERROR WILL BE APPENDED TO THIS MESSAGE.
CRAFT THE MESSAGE TO IMPLY THE NECESSITY OF DBA INTERVENTION, ASSUMING THE ISSUE IS
IDENTIFIED AS STEMMING FROM THE DATABASE SIDE RATHER THAN DEVELOPMENT.
HOWEVER, PROCEED WITH CREATING THE MESSAGE ONLY IF IT'S CLEAR THAT THE ERROR ORIGINATES
FROM A DATABASE ADMINISTRATION OVERSIGHT OR MISTAKE.
Passive aggressive Fix you stuff Message - Prompt
END; QUESTIONS ?
victor_szoltysek@mac.com

More Related Content

Similar to Simplified DevOps Bliss -with OpenAI API

Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOpsEklove Mohan
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Lean IT Consulting
 
Dev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - TorontoDev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - TorontoAmazon Web Services
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryMikhail Prudnikov
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSAmazon Web Services
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitMarco Ferrigno
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps ParadigmNaLUG
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterAmazon Web Services
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaAmazon Web Services
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Emerson Eduardo Rodrigues Von Staffen
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsAmazon Web Services
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoAmazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesAmazon Web Services
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionSteve Hogg
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...Ludovic Piot
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...Srijan Technologies
 

Similar to Simplified DevOps Bliss -with OpenAI API (20)

Getting to Walk with DevOps
Getting to Walk with DevOpsGetting to Walk with DevOps
Getting to Walk with DevOps
 
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
Continuos Integration and Delivery: from Zero to Hero with TeamCity, Docker a...
 
Dev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - TorontoDev ops on aws deep dive on continuous delivery - Toronto
Dev ops on aws deep dive on continuous delivery - Toronto
 
DevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous DeliveryDevOps On AWS - Deep Dive on Continuous Delivery
DevOps On AWS - Deep Dive on Continuous Delivery
 
Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkitThe DevOps paradigm - the evolution of IT professionals and opensource toolkit
The DevOps paradigm - the evolution of IT professionals and opensource toolkit
 
The DevOps Paradigm
The DevOps ParadigmThe DevOps Paradigm
The DevOps Paradigm
 
SRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver FasterSRV312 DevOps on AWS: Building Systems to Deliver Faster
SRV312 DevOps on AWS: Building Systems to Deliver Faster
 
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh VariaCloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
Cloud-powered Continuous Integration and Deployment architectures - Jinesh Varia
 
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
Devops continuousintegration and deployment onaws puttingmoneybackintoyourmis...
 
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...
 
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer ToolsDevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
DevOps on AWS: Accelerating Software Delivery with the AWS Developer Tools
 
DevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San FranciscoDevOps on AWS: DevOps Day San Francisco
DevOps on AWS: DevOps Day San Francisco
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
DevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and ProcessesDevOps at Amazon: A Look at Our Tools and Processes
DevOps at Amazon: A Look at Our Tools and Processes
 
Serverless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From ProductionServerless - DevOps Lessons Learned From Production
Serverless - DevOps Lessons Learned From Production
 
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
[Capitole du Libre] #serverless -  mettez-le en oeuvre dans votre entreprise...
 
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
[Srijan Wednesday Webinars] How to Build a Cloud Native Platform for Enterpri...
 
Developer Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdfDeveloper Tools at AWS 2018.pdf
Developer Tools at AWS 2018.pdf
 

More from VictorSzoltysek

From SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid DeploymentsFrom SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid DeploymentsVictorSzoltysek
 
The Future of JVM Languages
The Future of JVM Languages The Future of JVM Languages
The Future of JVM Languages VictorSzoltysek
 
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...VictorSzoltysek
 
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...VictorSzoltysek
 
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...VictorSzoltysek
 
Real-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused TipsReal-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused TipsVictorSzoltysek
 
Victor's Awesome Retro Deck
Victor's Awesome Retro DeckVictor's Awesome Retro Deck
Victor's Awesome Retro DeckVictorSzoltysek
 
Software Development in Internet Memes
Software Development in Internet MemesSoftware Development in Internet Memes
Software Development in Internet MemesVictorSzoltysek
 
Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020VictorSzoltysek
 
Making your RDBMS fast!
Making your RDBMS fast! Making your RDBMS fast!
Making your RDBMS fast! VictorSzoltysek
 
SQL Tips + Tricks for Developers
SQL Tips + Tricks for DevelopersSQL Tips + Tricks for Developers
SQL Tips + Tricks for DevelopersVictorSzoltysek
 
Less is more the 7 wastes of lean software development
Less is more   the 7 wastes of lean software developmentLess is more   the 7 wastes of lean software development
Less is more the 7 wastes of lean software developmentVictorSzoltysek
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversiesVictorSzoltysek
 
The Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languagesThe Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languagesVictorSzoltysek
 
Client Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future ReplacementClient Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future ReplacementVictorSzoltysek
 
Improving velocity through abstraction
Improving velocity through abstractionImproving velocity through abstraction
Improving velocity through abstractionVictorSzoltysek
 

More from VictorSzoltysek (16)

From SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid DeploymentsFrom SpaceX Launch Pads to Rapid Deployments
From SpaceX Launch Pads to Rapid Deployments
 
The Future of JVM Languages
The Future of JVM Languages The Future of JVM Languages
The Future of JVM Languages
 
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
Driving Process Improvements - A Guided Approach to Running Effective Retrosp...
 
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...Spaceships, Pull Requests and Feature Branching  - A Principles-Based approac...
Spaceships, Pull Requests and Feature Branching - A Principles-Based approac...
 
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
 
Real-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused TipsReal-World Application Observability - 11 Practical Developer Focused Tips
Real-World Application Observability - 11 Practical Developer Focused Tips
 
Victor's Awesome Retro Deck
Victor's Awesome Retro DeckVictor's Awesome Retro Deck
Victor's Awesome Retro Deck
 
Software Development in Internet Memes
Software Development in Internet MemesSoftware Development in Internet Memes
Software Development in Internet Memes
 
Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020Big Bangs, Monorails and Microservices - Feb 2020
Big Bangs, Monorails and Microservices - Feb 2020
 
Making your RDBMS fast!
Making your RDBMS fast! Making your RDBMS fast!
Making your RDBMS fast!
 
SQL Tips + Tricks for Developers
SQL Tips + Tricks for DevelopersSQL Tips + Tricks for Developers
SQL Tips + Tricks for Developers
 
Less is more the 7 wastes of lean software development
Less is more   the 7 wastes of lean software developmentLess is more   the 7 wastes of lean software development
Less is more the 7 wastes of lean software development
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversies
 
The Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languagesThe Future of Java - and a look at the evolution of programming languages
The Future of Java - and a look at the evolution of programming languages
 
Client Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future ReplacementClient Technical Analysis of Legacy Software and Future Replacement
Client Technical Analysis of Legacy Software and Future Replacement
 
Improving velocity through abstraction
Improving velocity through abstractionImproving velocity through abstraction
Improving velocity through abstraction
 

Recently uploaded

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfngoud9212
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

Bluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdfBluetooth Controlled Car with Arduino.pdf
Bluetooth Controlled Car with Arduino.pdf
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Simplified DevOps Bliss -with OpenAI API

  • 1. Victor Szoltysek - Feb 8th / 2024 AWS, OpenAI API, and GitHub Actions Unleashed! Simplified DevOps Bliss
  • 2. DevOps was meant to streamline our workflow, yet here we are, navigating a labyrinth of complexity. Tools and processes, meant to liberate, have become chains. Devops is a mess It's time to break free and find the simplicity DevOps was supposed to offer.
  • 3. Embrace a new paradigm for operational excellence • Speed: Prioritize actions that yield quick wins and fast feedback loops • Simplicity: Choose the simplest effective solution to avoid unnecessary complexity • Self-Serve: Empower teams to manage their own processes and tools Redefining DevOps: Speed, Simplicity, Self-Serve
  • 4. #1 - Version your artifacts • No More “is Feature X in this deploy?” , or “What version is deployed?” • Major / Minor (hot fix) / Build Number (i.e GITHUB_BUILD_NUMBER) • Include in file name, REST endpoint, directly in Index.html • Include - version, GitHash tag, and branch What the Hell is in This Binary?
  • 5.
  • 6. plugins { id 'org.springframework.boot' version '2.3.1.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id "com.gorylenko.gradle-git-properties" version "2.2.2" id 'java' } version = "1.0.${System.env.BUILD_NUMBER ?: System.env.GITHUB_RUN_NUMBER ?: '0- SNAPSHOT'}" springBoot { buildInfo() } GRADLE CODE
  • 7. #2 - Use GitHub Actions (or similar) • CI script becomes part of application SCM • CI shouldn’t be this hard - you don’t need a DevOps Team • No more Waiting on Build agents • No agent management required (including need to. keep build version tools up-to-date) Stop Using Jenkins: Embrace Modern CI/CD
  • 8. name: Java CI with Gradle on: push: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Set up JDK 11 uses: actions/setup-java@v3 with: java-version: '11' distribution: 'adopt' - name: Build with Gradle run: ./gradlew GITHUB ACTIONS YML FILE
  • 9. #3 - Keep CI Logic in Application Repos Instead • Eases testing and maintenance of CI scripts • Ensure CI and local environment parity • Simplifies the process of updating and debugging CI/CD pipelines You Don't Need Complicated Pipelines!
  • 10. #4 - Build Once, Deploy anywhere • Don’t rebuild the app on deploy (i.e. deploy the source code) — note the LeftPad NPM Package Issue • Use a single artifact for all environments with dependencies • Use Maven or Gradle Wrappers (no more build script version issues) • Build the artifact once - Every build is a release candidate Every Build a Release Candidate
  • 11. #5 - Keep builds green with proactive notifications • Implement automated blame and notification systems (mS teams messages) • Foster a culture of immediate response to broken builds • Allow rollback if build isn’t getting fixed (~ 15 minutes) Who Broke the Build?
  • 12. #6 - Use modern communication tools for alerts • Use Incoming webhooks for alerts with Slack and MS Teams (super easy to setup) • Connect JIRA, GitHub, Service Now, and PagerDuty for issue tracking • Use SMS (via AWS SNS) for urgent issue notifications Emails Are the Worst Notifications
  • 13. SUPER EASY WEBHOOK CREATION
  • 14. curl -s -d "payload={"text":"Test Message"}" INSERT_YOUR_WEB_HOOK_URL_HERE WEBHOOK CALL EXAMPLE
  • 15.
  • 16. #7 - Automate your Deploy in Your Build Script • Keep deployment logic in version control • Embed deployment steps into build scripts ( Use plugins, don’t reinvent the wheel) • Automate deployment On Commits (No more tedious deployment plans) • Auto Notify on Successful Deploys - No more “Is it deployed yet?” • Integrate Automatic Database Scheme versioning (i.e. liquid base) • Correlate Stories to Deploys - no more “Is feature X in Prod Yet?” Where’s the Deploy Button?
  • 17. #8 - Use PaaS instead • Skip Docker, Kubernetes and Terraform unless absolutely necessary • Deploy into Amazon Beanstalk (or similar PaaS) for simplicity • Rely on platform services for operational tasks • Minimize the “undifferentiated Heavy Lifting” and “Resume Driven Development” • Infrastructure should be fully self-healing (App crashes , JVM Failures, etC) — add health check endpoints and config if needed Containers are overkill majority of time
  • 18. plugins { id "fi.evident.beanstalk" version "0.3.2" } beanstalk { profile = ‘my-profile' s3Endpoint = "s3-eu-west-1.amazonaws.com" beanstalkEndpoint = "elasticbeanstalk.eu-west-1.amazonaws.com" deployments { dev { file = app.jar application = 'my-app' environment = 'my-app-staging' } } } GRADLE BEANSTALK DEPLOY PLUGIN EXAMPLE Deploy by running gr a dle deploy<deployment-n a me>, i.e. gr a dle deployDev
  • 19. #9 - Proactively monitor and respond to application health • Alert on Error Level Exceptions and action on them immediately • Alert via webhooks for quick issue notification (can be done via Logback.xml) • Notify directly to Developers as errors Happen • Also Alert on known critical Failures (Communication failures, SQL Failures, ETC) — you can alert directly to responsible teams (including via SMS!!) • Implement a 'fix it or forget it' policy to ensure errors are either resolved or reclassified Catch Failures Before They Catch You
  • 20. <springProperty scope="context" name=“APP_NAME" source="vcap.application.name" defaultValue="local_app"/> <springProperty scope="context" name="APP_SPACE" source="vcap.application.space_name" defaultValue="${HOSTNAME}"/> <appender name="SLACK" class="com.github.maricn.logback.SlackAppender"> <webhookUri>${SLACK_INCOMING_WEB_HOOK}</webhookUri> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>%-4relative [%thread] %-5level %class - %msg%n</pattern> </layout> <username>${APP_NAME}@${APP_SPACE}</username> <iconEmoji>:rage:</iconEmoji> </appender> <appender name="ASYNC_SLACK" class="ch.qos.logback.classic.AsyncAppender"> <appender-ref ref="SLACK" /> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> </appender> LOGBACK.XML EXAMPLE (ERROR-LEVEL LOG MESSAGES DIRECTLY TO SLACK)
  • 21. • Implement Unknown exception Handling on the browsers Side • Makes sure to Track User-Agent • Log Back issues to Backend • You’d be surprised how many users use out-of-date browsers that snap your latest SPA’s #10 - Proactively Monitor and Fix Front-End Issues Ensuring Your Web Pages Always Load
  • 22. <script> window.onerror = function(message, url, lineno, colno, error) { $.post({ url: 'logging/client-error', contentType: 'text/plain', data: 'Source:' + url + ':' + lineno + ' Error:' + message + ' UserAgent:’ + navigator.userAgent }); } </script> JAVASCRIPT CODE (QUICK AND DIRTY WEB LOGGING)
  • 23. #11 - Automate code quality with static analysis • Agreed on and enforce coding standards (Doesn’t matter which ones) • Allow developers to focus on functionality, not formatting • Eliminates petty disputes over coding conventions Stop Nitpicking About Coding Styles
  • 24. #12 - Adopt trunk-based development and WIP commits • Encourage Daily commits (to mainline) to minimize conflicts • Use feature toggles to manage incomplete features in production (implicit initially) • Reduces the fingers-crossed fear of pressing the ‘use-mine’ merge option No More Merge Conflicts and Regressions
  • 25. #13 - Allow direct commits for efficiency and agility • Trust developers to commit directly to trunk • Foster a culture of responsibility and peer review through pairing or targeted PRs • Speeds up minor updates, like fixing a typo in the README.md Stop Waiting for PRs
  • 26. #14 - Implement blue-green deployments for zero downtime • Ensure seamless user experience during updates • Reduce risk by having a readily available (and fast) rollback option • no more outage windows - deploys can be done during business hours • Note the need for Stateless Applications (which also make scaling easier) No More Outage Windows
  • 28. Live Traffic Old Deploy Live Users New Deploy New version Pushed and tested
  • 29. Live Traffic Old Deploy Live Users New Deploy
  • 30. #15 - Optimize Logging for Actionable Insights • Stop logging to local files – Use centralized logging • Use structured (key-value pair) logging instead of unstructured • Add trace-ids for logging between processes (spring Cloud Sleuth) • Focus on logging actionable information (not exiting / entering methods) • Aim to log strategically rather than voluminously (Focus on exceptions) • Consider Metrics instead of Logging (especially for high Volume - metrics scale linearly) I Have No Idea Where to Look for Errors
  • 31. #16 - Leverage AI for faster problem resolution - or Just for having fun! • Integrate OpenAI with webhooks and AWS Lambda for rapid problem analysis • Automate preliminary PR reviews with AI to catch issues before human review • Send error messages to AI for first opinions — like a virtual rubber duck for debugging • Leverages AI to provide quick solutions or code suggestions, streamlining the troubleshooting process Use AI to Speed Up Troubleshooting
  • 32. curl -X POST https://api.openai.com/v1/engines/gpt-4/ completions -H "Content-Type: application/json" -H "Authorization: Bearer YOUR_API_KEY" -d '{"prompt": "Tell me an Agile software development joke.", "max_tokens": 50}' OPENAI API CALL EXAMPLE
  • 33. GitHub MS Teams OpenAI API Webhook Event - PR - Build Failure - Deploy - Etc .. Webhook Notification - enriched data AI API Call AI API response AWS Lambda
  • 34. ANALYZE THE FOLLOWING CODE DIFF SUBMITTED AS A PR REQUEST FOR A JAVA PROJECT AND PROVIDE FEEDBACK. 1) DETERMINE IF THE PR IS WARRANTED BASED ON THE CHANGES ( FOR SMALL AND LOW RISK CHANGES LIKE README UPDATES, TEXT CHANGES, COLOUR CHANGES, ETC .. I DON’T CARE ABOUT PRS). 2) IDENTIFY ANY ERRORS 3) OFFER RECOMMENDATIONS FOR IMPROVEMENT. <APPENDED PR CODE DIFF> OpenAI PR Aid - Prompt
  • 35. GIVEN THE FOLLOWING USER STORIES, GENERATE A SUMMARY FOR RELEASE NOTES, IDENTIFY THE SYSTEMS AFFECTED BY THESE CHANGES, AND OUTLINE THE KEY AREAS OF FOCUS FOR QA TESTING. 1. GENERATE CONCISE RELEASE NOTES SUMMARIZING THE NEW FEATURES, IMPROVEMENTS, AND BUG FIXES INCLUDED IN THIS RELEASE BASED ON THE PROVIDED USER STORIES. 2. IDENTIFY WHICH SYSTEMS OR COMPONENTS ARE AFFECTED BY THE CHANGES IN THESE USER STORIES. 3. OUTLINE THE KEY AREAS OF FOCUS FOR QA TESTING, INCLUDING SPECIFIC FUNCTIONALITIES THAT NEED THOROUGH TESTING, POTENTIAL REGRESSION AREAS, AND NEW FEATURES THAT REQUIRE VALIDATION. <APPENDED PR CODE DIFF> Release Note Generation - Prompt
  • 36. GIVEN AN SQL ERROR CAUSING APPLICATION OUTAGES, CREATE A PASSIVE-AGGRESSIVE MESSAGE DIRECTED AT THE DBA TEAM, REQUESTING THEIR ATTENTION TO RESOLVE THE ISSUE. THE ACTUAL SQL ERROR WILL BE APPENDED TO THIS MESSAGE. CRAFT THE MESSAGE TO IMPLY THE NECESSITY OF DBA INTERVENTION, ASSUMING THE ISSUE IS IDENTIFIED AS STEMMING FROM THE DATABASE SIDE RATHER THAN DEVELOPMENT. HOWEVER, PROCEED WITH CREATING THE MESSAGE ONLY IF IT'S CLEAR THAT THE ERROR ORIGINATES FROM A DATABASE ADMINISTRATION OVERSIGHT OR MISTAKE. Passive aggressive Fix you stuff Message - Prompt