SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Alexander Nemsadze
Software Developer
Typical Development Life Cycle
Conception
Initiation
Analysis/Req.Def.
Design
Development
Integ. Testing / QA
Deployment
Maintenance
Quality of Life
Quality of Life
 Release 1.0 is the beginning of your
software’s life, not the end of the
project.
 Your quality of life after Release 1.0
depends on choices you make long before
that vital milestone.
Quality of life degraded, what now?
Get fired!
Gain experience, learn lessons!
Stay happy
• Frequent server restarts
• Professional users
• Favorite browser
• No concurrent load on server
• Emulated integration points
• No financial risk in case of
malfunction
• Server is up for months
• All kind of users
• Different browsers (at least that you
have promised to support)
• Real load
• Real integration with external
services
• Negative financial impact
• No assumptions that something
won’t happen, if there is a tiny
chance it will definitely happen
Environment differences
Design Production-Ready System
 Choosing an appropriate technology
 Performance and capacity analysis
 Development team culture
 Architectural decisions
 Effective stress tests
 Deployment checklist
 Monitoring and effective incident investigation
Choosing an appropriate technology
 Investigate
 Evaluate
 Use cases
 Documentation
 Community
 Stability
 Tooling
 Storage
 Experience of your team, learning curve
 Use force
 Your early decisions make the biggest impact on the
eventual shape of your system.
 The earliest decisions you make can be the hardest
ones to reverse later.
Performance and capacity analysis
 Define capacity against system specificity
 Capacity can be maximum concurrent active sessions,
in case of public web site, until allowable response
time is not exceeded.
 Or it can be maximum transactions throughput in case
of financial transactions processing system.
 Any other thing or combination
 Memory usage analyses
 Horizontal scalability
 Hardware topology
 Maybe use some cloud vendor, that offers elastic
capacity service
 Server responsibilities
Development team culture
 Team members must understand and respect methodology
of project management, whether it’s agile, extreme or
whatever
 Note every detail
 Respect coding quality standard
 Unit tests are mandatory
 Integration test are desired for critical modules
 Don’t resolve an issue hoping that someone will test it for
you
 Worst and most annoying is returning back to issue that you
declared as resolved
 Make code reviews of each others code
 Refactor as many times as it is needed for your own
satisfaction looking at your own code.
 Log effectively
 Ask for advice, if you are not sure that you make it right
Architectural decisions
 Gather use cases and constraints before thinking
solution
 There are no straightforward rules or patterns
for success. All of this templates together with
experience just help to make correct decisions
 Do not confuse architecture with tools and
frameworks
 Design domain model from the performance and
reporting requirements point of view
 Rethink and refactor before it’s too late
 Avoid radical decisions when the milestone is
nearing
 Think pragmatic
Effective stress tests
 Try to build realistic environment
 Compose scenario of real world usage
 Simulate exceptional situations
 Analyze chains of failure
 Analyze increased memory usage impacts
 Analyze overall performance impacts
 Simulate integration points malfunctioning
Deployment checklist
 Make sure production parameters are set
correctly
 Check memory usage configuration
 Check database connection pool size
 Check thread pools configuration
 Check timeouts configuration
 Check logging configuration
 Check security configurations
 Other server configurations
Monitoring and effective incident investigation
Use monitoring tools and permanently analyze logs.
If you noted some suspected behavior, don’t
hesitate to react, before it will burst the overall
system.
After incident happened don’t immediately destroy
facts that would help you to investigate the issue.
If something happened once it will definitely
repeat.
Alexander Nemsadze
Software Developer

Weitere ähnliche Inhalte

Was ist angesagt?

What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)Michael Diamant
 
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015Fastly
 
Ready, set, go! - Anna Royzman
Ready, set, go! - Anna RoyzmanReady, set, go! - Anna Royzman
Ready, set, go! - Anna RoyzmanQA or the Highway
 
Performance Testing And Beyond
Performance Testing And BeyondPerformance Testing And Beyond
Performance Testing And BeyondPeter Brown
 
Penetration Testing; A customers perspective
Penetration Testing; A customers perspectivePenetration Testing; A customers perspective
Penetration Testing; A customers perspectivePhil Huggins FBCS CITP
 
Architectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy BarcelonaArchitectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy BarcelonaAsh Winter
 
Positivityofnegative
PositivityofnegativePositivityofnegative
Positivityofnegativepramodkg
 
What is Regression Testing? | Edureka
What is Regression Testing? | EdurekaWhat is Regression Testing? | Edureka
What is Regression Testing? | EdurekaEdureka!
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Developmentadrianmitev
 
Implementing a testing strategy
Implementing a testing strategyImplementing a testing strategy
Implementing a testing strategyDaniel Giraldo
 
TGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga ŻądłoTGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga ŻądłoTrójmiejska Grupa Testerska
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration TestingJohan Hoberg
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principlesDonato Di Pierro
 
Getting started with performance testing
Getting started with performance testingGetting started with performance testing
Getting started with performance testingTestplant
 
Software Testing Principles and  Techniques
Software Testing Principles and  Techniques Software Testing Principles and  Techniques
Software Testing Principles and  Techniques suresh ramanujam
 
Seven testing principles
Seven testing principlesSeven testing principles
Seven testing principlesVaibhav Dash
 
Resource#2
Resource#2Resource#2
Resource#2testerul
 

Was ist angesagt? (19)

What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)What to Expect When You're Expecting (to Own Production)
What to Expect When You're Expecting (to Own Production)
 
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
The Fallacy of Fast - Ines Sombra at Fastly Altitude 2015
 
Ready, set, go! - Anna Royzman
Ready, set, go! - Anna RoyzmanReady, set, go! - Anna Royzman
Ready, set, go! - Anna Royzman
 
Optimizing Java
Optimizing JavaOptimizing Java
Optimizing Java
 
Performance Testing And Beyond
Performance Testing And BeyondPerformance Testing And Beyond
Performance Testing And Beyond
 
Penetration Testing; A customers perspective
Penetration Testing; A customers perspectivePenetration Testing; A customers perspective
Penetration Testing; A customers perspective
 
Architectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy BarcelonaArchitectural Testability Workshop for Test Academy Barcelona
Architectural Testability Workshop for Test Academy Barcelona
 
Positivityofnegative
PositivityofnegativePositivityofnegative
Positivityofnegative
 
Hello
HelloHello
Hello
 
What is Regression Testing? | Edureka
What is Regression Testing? | EdurekaWhat is Regression Testing? | Edureka
What is Regression Testing? | Edureka
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Implementing a testing strategy
Implementing a testing strategyImplementing a testing strategy
Implementing a testing strategy
 
TGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga ŻądłoTGT#9 - Lessons learned in software testing - Olga Żądło
TGT#9 - Lessons learned in software testing - Olga Żądło
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
 
Software testing principles
Software testing principlesSoftware testing principles
Software testing principles
 
Getting started with performance testing
Getting started with performance testingGetting started with performance testing
Getting started with performance testing
 
Software Testing Principles and  Techniques
Software Testing Principles and  Techniques Software Testing Principles and  Techniques
Software Testing Principles and  Techniques
 
Seven testing principles
Seven testing principlesSeven testing principles
Seven testing principles
 
Resource#2
Resource#2Resource#2
Resource#2
 

Andere mochten auch

იოსებ ძმანაშვილი - The Web APIs
იოსებ ძმანაშვილი - The Web APIsიოსებ ძმანაშვილი - The Web APIs
იოსებ ძმანაშვილი - The Web APIsunihack
 
შოთა გიორგობიანი It's all about having fun
შოთა გიორგობიანი   It's all about having funშოთა გიორგობიანი   It's all about having fun
შოთა გიორგობიანი It's all about having fununihack
 
როგორ ვერ გავხდი $მილიონერი$
როგორ ვერ გავხდი $მილიონერი$როგორ ვერ გავხდი $მილიონერი$
როგორ ვერ გავხდი $მილიონერი$unihack
 
იოსებ ძმანაშვილი Node.js
იოსებ ძმანაშვილი   Node.jsიოსებ ძმანაშვილი   Node.js
იოსებ ძმანაშვილი Node.jsunihack
 
Hack@macs 2014 test driven development & pair programing
Hack@macs 2014 test driven development & pair programingHack@macs 2014 test driven development & pair programing
Hack@macs 2014 test driven development & pair programingunihack
 
შოთა გიორგობიანი - More than Code
შოთა გიორგობიანი - More than Codeშოთა გიორგობიანი - More than Code
შოთა გიორგობიანი - More than Codeunihack
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 

Andere mochten auch (7)

იოსებ ძმანაშვილი - The Web APIs
იოსებ ძმანაშვილი - The Web APIsიოსებ ძმანაშვილი - The Web APIs
იოსებ ძმანაშვილი - The Web APIs
 
შოთა გიორგობიანი It's all about having fun
შოთა გიორგობიანი   It's all about having funშოთა გიორგობიანი   It's all about having fun
შოთა გიორგობიანი It's all about having fun
 
როგორ ვერ გავხდი $მილიონერი$
როგორ ვერ გავხდი $მილიონერი$როგორ ვერ გავხდი $მილიონერი$
როგორ ვერ გავხდი $მილიონერი$
 
იოსებ ძმანაშვილი Node.js
იოსებ ძმანაშვილი   Node.jsიოსებ ძმანაშვილი   Node.js
იოსებ ძმანაშვილი Node.js
 
Hack@macs 2014 test driven development & pair programing
Hack@macs 2014 test driven development & pair programingHack@macs 2014 test driven development & pair programing
Hack@macs 2014 test driven development & pair programing
 
შოთა გიორგობიანი - More than Code
შოთა გიორგობიანი - More than Codeშოთა გიორგობიანი - More than Code
შოთა გიორგობიანი - More than Code
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 

Ähnlich wie ალექსანდრე ნემსაძე - Release it

How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopJim Plush
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test AutomationSauce Labs
 
Resilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and ScaleResilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and ScaleJason Chan
 
Best Practices for Applications Performance Testing
Best Practices for Applications Performance TestingBest Practices for Applications Performance Testing
Best Practices for Applications Performance TestingBhaskara Reddy Sannapureddy
 
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...agilemaine
 
Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014snoonan
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous deliveryMasas Dani
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionSteven Mak
 
Best practice adoption (and lack there of)
Best practice adoption (and lack there of)Best practice adoption (and lack there of)
Best practice adoption (and lack there of)John Pape
 
Incorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessIncorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessMichael Vax
 
Testing In Software Engineering
Testing In Software EngineeringTesting In Software Engineering
Testing In Software Engineeringkiansahafi
 
DevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsDevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsMicrosoft Developer Norway
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for youAmbientia
 
extreme Programming
extreme Programmingextreme Programming
extreme ProgrammingBilal Shah
 
Sean carter dan_deans
Sean carter dan_deansSean carter dan_deans
Sean carter dan_deansNASAPMC
 
Effective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentEffective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentRaj Indugula
 

Ähnlich wie ალექსანდრე ნემსაძე - Release it (20)

Heuristics of performance testing
Heuristics of performance testingHeuristics of performance testing
Heuristics of performance testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
How to run an Enterprise PHP Shop
How to run an Enterprise PHP ShopHow to run an Enterprise PHP Shop
How to run an Enterprise PHP Shop
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
Resilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and ScaleResilience and Compliance at Speed and Scale
Resilience and Compliance at Speed and Scale
 
Best Practices for Applications Performance Testing
Best Practices for Applications Performance TestingBest Practices for Applications Performance Testing
Best Practices for Applications Performance Testing
 
software lecture
software lecturesoftware lecture
software lecture
 
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
Continuous Delivery and Continuous Agile by Andy Singleton - Agile Maine Day...
 
Introduction to Software Engineering
Introduction to Software EngineeringIntroduction to Software Engineering
Introduction to Software Engineering
 
Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Essential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile AdoptionEssential practices and thinking tools for Agile Adoption
Essential practices and thinking tools for Agile Adoption
 
Best practice adoption (and lack there of)
Best practice adoption (and lack there of)Best practice adoption (and lack there of)
Best practice adoption (and lack there of)
 
Incorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development ProcessIncorporating Performance Testing in Agile Development Process
Incorporating Performance Testing in Agile Development Process
 
Testing In Software Engineering
Testing In Software EngineeringTesting In Software Engineering
Testing In Software Engineering
 
DevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operationsDevOps Roadshow - removing barriers between development and operations
DevOps Roadshow - removing barriers between development and operations
 
Making software development processes to work for you
Making software development processes to work for youMaking software development processes to work for you
Making software development processes to work for you
 
extreme Programming
extreme Programmingextreme Programming
extreme Programming
 
Sean carter dan_deans
Sean carter dan_deansSean carter dan_deans
Sean carter dan_deans
 
Effective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile EnvironmentEffective Testing Practices in an Agile Environment
Effective Testing Practices in an Agile Environment
 

Kürzlich hochgeladen

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
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
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
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
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
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
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
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)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
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
 
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
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
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...
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

ალექსანდრე ნემსაძე - Release it

  • 2.
  • 3. Typical Development Life Cycle Conception Initiation Analysis/Req.Def. Design Development Integ. Testing / QA Deployment Maintenance
  • 5. Quality of Life  Release 1.0 is the beginning of your software’s life, not the end of the project.  Your quality of life after Release 1.0 depends on choices you make long before that vital milestone.
  • 6. Quality of life degraded, what now? Get fired! Gain experience, learn lessons!
  • 8. • Frequent server restarts • Professional users • Favorite browser • No concurrent load on server • Emulated integration points • No financial risk in case of malfunction • Server is up for months • All kind of users • Different browsers (at least that you have promised to support) • Real load • Real integration with external services • Negative financial impact • No assumptions that something won’t happen, if there is a tiny chance it will definitely happen Environment differences
  • 9. Design Production-Ready System  Choosing an appropriate technology  Performance and capacity analysis  Development team culture  Architectural decisions  Effective stress tests  Deployment checklist  Monitoring and effective incident investigation
  • 10. Choosing an appropriate technology  Investigate  Evaluate  Use cases  Documentation  Community  Stability  Tooling  Storage  Experience of your team, learning curve  Use force  Your early decisions make the biggest impact on the eventual shape of your system.  The earliest decisions you make can be the hardest ones to reverse later.
  • 11. Performance and capacity analysis  Define capacity against system specificity  Capacity can be maximum concurrent active sessions, in case of public web site, until allowable response time is not exceeded.  Or it can be maximum transactions throughput in case of financial transactions processing system.  Any other thing or combination  Memory usage analyses  Horizontal scalability  Hardware topology  Maybe use some cloud vendor, that offers elastic capacity service  Server responsibilities
  • 12. Development team culture  Team members must understand and respect methodology of project management, whether it’s agile, extreme or whatever  Note every detail  Respect coding quality standard  Unit tests are mandatory  Integration test are desired for critical modules  Don’t resolve an issue hoping that someone will test it for you  Worst and most annoying is returning back to issue that you declared as resolved  Make code reviews of each others code  Refactor as many times as it is needed for your own satisfaction looking at your own code.  Log effectively  Ask for advice, if you are not sure that you make it right
  • 13. Architectural decisions  Gather use cases and constraints before thinking solution  There are no straightforward rules or patterns for success. All of this templates together with experience just help to make correct decisions  Do not confuse architecture with tools and frameworks  Design domain model from the performance and reporting requirements point of view  Rethink and refactor before it’s too late  Avoid radical decisions when the milestone is nearing  Think pragmatic
  • 14. Effective stress tests  Try to build realistic environment  Compose scenario of real world usage  Simulate exceptional situations  Analyze chains of failure  Analyze increased memory usage impacts  Analyze overall performance impacts  Simulate integration points malfunctioning
  • 15. Deployment checklist  Make sure production parameters are set correctly  Check memory usage configuration  Check database connection pool size  Check thread pools configuration  Check timeouts configuration  Check logging configuration  Check security configurations  Other server configurations
  • 16. Monitoring and effective incident investigation Use monitoring tools and permanently analyze logs. If you noted some suspected behavior, don’t hesitate to react, before it will burst the overall system. After incident happened don’t immediately destroy facts that would help you to investigate the issue. If something happened once it will definitely repeat.