Design - build - run: applied practices and principles for production-ready software development
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Indianapolis, Ind.
Wiley
2009
|
Schriftenreihe: | Wrox programmer to programmer
|
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | Includes index |
Beschreibung: | XXIX, 688 S. Ill., graph. Darst. |
ISBN: | 9780470257630 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035742643 | ||
003 | DE-604 | ||
005 | 20091118 | ||
007 | t | ||
008 | 090928s2009 ad|| |||| 00||| eng d | ||
010 | |a 2008052155 | ||
020 | |a 9780470257630 |c pbk |9 978-0-470-25763-0 | ||
035 | |a (OCoLC)232976081 | ||
035 | |a (DE-599)GBV587637846 | ||
040 | |a DE-604 |b ger |e aacr | ||
041 | 0 | |a eng | |
049 | |a DE-473 |a DE-11 | ||
050 | 0 | |a QA76.76.D47 | |
082 | 0 | |a 005.1 |2 22 | |
084 | |a ST 230 |0 (DE-625)143617: |2 rvk | ||
100 | 1 | |a Ingram, Dave |e Verfasser |4 aut | |
245 | 1 | 0 | |a Design - build - run |b applied practices and principles for production-ready software development |c Dave Ingram |
264 | 1 | |a Indianapolis, Ind. |b Wiley |c 2009 | |
300 | |a XXIX, 688 S. |b Ill., graph. Darst. | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
490 | 0 | |a Wrox programmer to programmer | |
500 | |a Includes index | ||
650 | 0 | |a Computer software / Development | |
650 | 0 | |a Systems software | |
650 | 4 | |a Computer software |x Development | |
650 | 4 | |a Systems software | |
650 | 0 | 7 | |a Software Engineering |0 (DE-588)4116521-4 |2 gnd |9 rswk-swf |
689 | 0 | 0 | |a Software Engineering |0 (DE-588)4116521-4 |D s |
689 | 0 | |5 DE-604 | |
856 | 4 | 2 | |m Digitalisierung UB Bamberg |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018602836&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-018602836 |
Datensatz im Suchindex
_version_ | 1804140655614623744 |
---|---|
adam_text | Design
-
Build
-
Run
Introduction
..........................................................................................................xxv
Part I: Production-Ready Software
Chapter
1:
Production Readiness
.................................................................3
Chapter
2:
The Quality Landscape....
.............................................................35
Chapter
3:
Preparing for Production
...........................................................79
Chapter
4:
The Ins and Outs of Construction
...............................................137
Part II: The Production Landscape
Chapter
5:
The Production Environment
.......................................................197
Chapter
6:
Activities and Environments
.......................................................229
Chapter
7:
Service Delivery and Operations
.................................................243
Chapter
8:
Monitoring and Alerts
................................................................263
Chapter
9:
Reporting and Analytics
.............................................................275
Chapter
10:
Batch
......................................................................................289
Chapter
11:
Incident Investigation
..............................................................305
Chapter
12:
Application Maintenance
.........................................................317
Part III: Case Study
Chapter
13:
Conceptual Design
...................................................................329
Chapter
14:
Planning the Architecture
........................................................395
Chapter
15:
Modeling the Application
.........................................................433
Part IV: Patterns and Practices
Chapter
16:
Designing for Batch
.................................................................469
Chapter
17:
Designing for Reporting
...........................................................501
Chapter
18:
Designing for Performance
.......................................................517
(Continues)
Contents
Introduction
xxv
Part I: Production-Ready Software
Chapter
1:
Production Readiness
_______________________________________3
What Is Production Readiness?
4
Applications Must Be Fit for Purpose
10
Environments Must Be Fit for Purpose
14
Processes and Tools Must Be Fit for Purpose
18
Users Must Be Trained
20
Why Is Production Readiness Important?
23
The Production-Readiness Process
26
The Project Management Triangle
27
Summary
31
Chapter
2:
The Quality Landscape
______________________________________
_35
The Quality Characteristics
36
Why Quality (and Scope) Matter
40
Construction Quality Echoes throughout the Project
41
Defects Affect Testing and Ongoing Development
53
Fixing Defects Quickly Can Reduce Quality
54
When Quality Drops, Sweeping Is Left
56
More Tips for Improving and Maintaining Quality
57
Quality Comes at a Price
61
Calculating the Potential Cost of Defects
61
Basic Financial Analysis
64
Estimates and Estimating
71
Summary
76
Chapter
3:
Preparing for Production
____________________________________73
Preparation Is Paramount
80
Breaking Down the Activities
82
Identifying the Constraints
83
Contents_________________________________________________
Development
Mobilization
90
Defining the Development Scope
90
Defining the Inputs
93
Defining the Process
96
Defining the Templates and Exemplars
100
Wrapping It Up
101
Build, Release, and Regular Integration Mobilization
102
Test Mobilization
105
Defect Management (and Fix) Mobilization
110
Defining Process Constraints
110
Defining the Process 111
Configuration Management Mobilization
125
Defining Process Constraints
125
Change Control Mobilization
132
Summary
133
Chapter
4:
The Ins and Outs of Construction
____________________________137
Thinking Out-of-the-Box
139
The Back of the Box
139
The Media
140
The User Guide
140
The Operations Manual
141
Considering the Design
141
Accessibility Considerations
149
Implementation Considerations
150
Support and Maintenance Considerations
152
Custom Built vs. Off-the-Shelf
152
General Design Considerations
154
The Analysis and Design Outputs
160
Scope
160
Requirements
161
Use-Case Diagrams and Use Cases
166
Navigation Maps
173
Storyboards 174
Page Layouts and Specifications
178
The Data Dictionary
180
Architecture and Application Component Specifications
182
Summary
192
XVI
_________________________________________________Contents
Part II: The Production
Landscape
Chapter
5:
The Production Environment
_________________________________197
The Big Picture
198
The Demilitarized Zone
200
The Solution Architecture Hardware Components
201
The Operations Architecture Hardware Components
202
The Hardware Topology
203
Individual Server Configuration
203
High Availability and Fault Tolerance
205
Using a Shared Storage Area
211
Network Segmentation
213
The Software Topology
214
Master-Agent Architecture
219
The Primary and Secondary Data Centers
220
The Primary Data Center
223
The Secondary Data Center
223
Active-Passive Primary and Secondary
223
Active-Active Primary and Secondary
226
Summary
227
Chapter
6:
Activities and Environments
_________________________________229
The Types of Testing
230
Acceptance Testing
231
Technical Testing
232
Functional Testing
235
Regression Testing
236
Testing in the Production Environments
238
The Primary Site Environment
238
The Secondary Site Environment
239
The Pre-Production Environment
240
Summary
241
Chapter
7:
Service Delivery and Operations
_____________________________243
The Three Levels of Live Service Support
244
The Scope of Support
246
The Role of the Operations Team
247
The Role of the Service Delivery Team
248
xvii
Contents________________________________________________
The Operations Manual
252
Planning the Architecture
254
Installation and Configuration
259
Maintenance and Administration
260
Summary
261
Chapter
8:
Monitoring and Alerts
______________________________________263
What Is Monitoring?
263
Monitoring Requirements and Rules
269
Blackout Windows
269
What Is Monitored?
270
Custom Performance Counters
272
Custom Events
272
Custom Processes
272
What Are Alerts?
273
Summary
274
Chapter
9:
Reporting and Analytics
____________________________________275
Reporting Overview
276
The Reporting Architecture
281
Technical Reporting
283
Analytics Overview
284
Summary
285
Chapter
10:
Batch
___________________________________________________289
Batch Processing
289
The Batch Window
294
The Batch Scheduler
295
Batch Jobs
296
Batch Schedules
298
Nodes and Node Groups
300
Batch for Batch Sake
301
The Batch Run Date
302
Summary
303
Chapter
11:
Incident Investigation
_____________________________________305
The Investigation Roadmap
306
Investigating the Incident
309
Re-Creating the Incident
312
xviii
_________________________________________________Contents
Verifying the Incident and the Proposed Resolution
312
Implementing the Resolution
313
Typical Incidents
313
Summary
315
Chapter
12:
Application Maintenance
__________________________________317
The Application Maintenance Team
318
Application Maintenance Functions
319
Incident Investigation and Fix-On-Fail
319
Application Enhancements and Changes
322
Release and Configuration Management
323
The Developer s Guide
324
Summary
326
Part III: Case Study
Chapter
13:
Conceptual Design
________________________________________329
The Guiding Principles
331
Online Application Walkthrough
331
The Welcome Page
335
The My Account Page
336
SB-OO1 Create New Account
337
SB-002 Activate Account
339
SB-003 Re-Request Activation Key
342
SB-004 Login
344
SB-005 Logout
345
SB-006 Reset Password
345
SB-OO7 Change Password
346
SB-008 Update Account
348
SB-009 Close Account
349
Defining the Requirements
350
Functional Requirements
350
Technical Requirements
370
Documenting the Use Cases
372
UC-001 Create New Account
372
UC-002 Activate Account
375
UC-003 Re-Request Activation Key
377
UC-004 Login
379
UC-005 Logout
381
UC-006 Reset Password
382
xix
Contents_________________________________________________
UC-007
Change
Password
384
иС-ООб
Update Account
388
UC-009 Close Account
390
Summary
392
Chapter
14:
Planning the Architecture
__________________________________395
The Conceptual
Architecture
396
The Logical Layers
397
The Production Deployment Concept
407
High-Level Transaction Flow
408
The Presentation Tier
411
The Web Service
Façade
414
The Business Processing Components
416
The Business Components
417
The Business Framework Components
422
The Batch Processes
424
The Logical Data Model and Data Access
426
Data Entities
427
Data Access
428
The Reporting Components
428
Logical Component Model
428
Summary
430
Chapter
15:
Modeling the Application
__________________________________433
Component Responsibility Modeling
434
Adding the Inputs and Outputs
439
Looking for Repeating Patterns
445
Modeling the Flows
445
Modeling the Batch Jobs
455
The Solicited E-mail Batch Jobs
455
The Account Cleanup Jobs
461
The Reporting Components
463
Summary
465
Part IV: Patterns and Practices
Chapter
16:
Designing for Batch
_______________________________________469
The Batch Architecture
470
An Execution and Control Framework
472
xx
_________________________________________________Contents
The BatchJobFactory Class
474
Batch Job Execution Flow
476
Progress Reporting
482
Controlling Processes
486
Multiple Threads and Multiple Jobs
488
Multi-Threaded Jobs
489
Multiple Jobs
492
Batch Job Parameters
495
Generic Jobs and Generic Functionality
497
Summary
499
Chapter
17:
Designing for Reporting
___________________________________501
Maintaining Meaningful Data
501
Using Lookup Tables
502
Recording Dates and Times
505
Maintaining Transaction Counts
507
Defining the Master Data Set
509
Providing an Audit Trail
509
Summary
515
Chapter
18:
Designing for Performance
_________________________________517
Tuning the Database Layer
518
Indexing Tables
518
Partitioning Tables and Data
520
Optimizing Queries
522
Caching
522
Tuning the Application Layer
523
Avoiding Unnecessary Method Calls
523
Object Recycling and Pooling
525
Application Caching
527
Performing Bulk Operations
528
Optimizing Method Processing
528
Summary
529
Chapter
19:
Designing for Resilience
___________________________________531
Human Error and User Behavior
531
Managing Configuration Changes
532
Supporting and Controlling User Behavior
533
XXI
Contents_________________________________________________
Handling
System
Failure
543
Exception Handling Should Never Be an Afterthought
544
Have an Exception Handling Strategy
548
Handle Exceptions Where You Can
550
Add Value When You Can t Handle
554
Exceptions Lead to Operational Procedures
556
Non-Stop Processing
557
Summary
558
Chapter
20:
Designing for Monitoring
__________________________________559
Performance Counters
560
Counters
—
The Good, the Bad, and the Ugly
562
Counters —What, When, and Why
563
Intermittent Counter Updates
568
Thresholds and Tolerances
569
Events and Event Logs
570
Event Types
572
Event Log Entries
—
The Good, the Bad, and the Ugly
575
Monitoring Configuration
576
Performance Counter Configuration
576
Event Configuration
577
Summary
578
Chapter
21:
Designing for Incident Investigation
_________________________579
Tracing
580
Activity-Based Tracing
588
Using Multiple Trace Files
590
Tracing Configuration
591
Investigative Tooling
593
Summary
594
Chapter
22:
Designing for Application Maintenance
______________________595
Preparing the Solution
596
Defining the Folders and Projects
596
Defining the Project Settings
598
Defining the Standards
600
XML Documentation Comments
601
Commenting Standards
603
Coding Standards and Practices
609
xxii
_________________________________________________Contents
Supporting Configurability
610
Application-Specific Configuration Settings
611
Static Page Elements
615
Validation Rules
616
Messages
617
Summary
618
Chapter
23:
Designing for Testing
______________________________________621
Developer Testing Activities
622
Examining the Factory Pattern
628
Using Stubs and Simulators
633
Summary
635
Chapter
24:
Designing for Deployment
__________________________________637
Splitting Out Test Materials
638
Separating the Components
639
Classifying the Releases
641
Summary
645
Part V: Conclusion
Chapter
25:
Review and Wrap-Up
______________________________________649
Back to the Real World
649
Application Maintenance
651
Testing
655
Onwards and Upwards
658
Index
659
xxiii
|
any_adam_object | 1 |
author | Ingram, Dave |
author_facet | Ingram, Dave |
author_role | aut |
author_sort | Ingram, Dave |
author_variant | d i di |
building | Verbundindex |
bvnumber | BV035742643 |
callnumber-first | Q - Science |
callnumber-label | QA76 |
callnumber-raw | QA76.76.D47 |
callnumber-search | QA76.76.D47 |
callnumber-sort | QA 276.76 D47 |
callnumber-subject | QA - Mathematics |
classification_rvk | ST 230 |
ctrlnum | (OCoLC)232976081 (DE-599)GBV587637846 |
dewey-full | 005.1 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1 |
dewey-search | 005.1 |
dewey-sort | 15.1 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>01556nam a2200421 c 4500</leader><controlfield tag="001">BV035742643</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20091118 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">090928s2009 ad|| |||| 00||| eng d</controlfield><datafield tag="010" ind1=" " ind2=" "><subfield code="a">2008052155</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780470257630</subfield><subfield code="c">pbk</subfield><subfield code="9">978-0-470-25763-0</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)232976081</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)GBV587637846</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield><subfield code="e">aacr</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-473</subfield><subfield code="a">DE-11</subfield></datafield><datafield tag="050" ind1=" " ind2="0"><subfield code="a">QA76.76.D47</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 230</subfield><subfield code="0">(DE-625)143617:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Ingram, Dave</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Design - build - run</subfield><subfield code="b">applied practices and principles for production-ready software development</subfield><subfield code="c">Dave Ingram</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Indianapolis, Ind.</subfield><subfield code="b">Wiley</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXIX, 688 S.</subfield><subfield code="b">Ill., graph. Darst.</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="490" ind1="0" ind2=" "><subfield code="a">Wrox programmer to programmer</subfield></datafield><datafield tag="500" ind1=" " ind2=" "><subfield code="a">Includes index</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Computer software / Development</subfield></datafield><datafield tag="650" ind1=" " ind2="0"><subfield code="a">Systems software</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer software</subfield><subfield code="x">Development</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Systems software</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Software Engineering</subfield><subfield code="0">(DE-588)4116521-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="5">DE-604</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bamberg</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018602836&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-018602836</subfield></datafield></record></collection> |
id | DE-604.BV035742643 |
illustrated | Illustrated |
indexdate | 2024-07-09T22:03:26Z |
institution | BVB |
isbn | 9780470257630 |
language | English |
lccn | 2008052155 |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-018602836 |
oclc_num | 232976081 |
open_access_boolean | |
owner | DE-473 DE-BY-UBG DE-11 |
owner_facet | DE-473 DE-BY-UBG DE-11 |
physical | XXIX, 688 S. Ill., graph. Darst. |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Wiley |
record_format | marc |
series2 | Wrox programmer to programmer |
spelling | Ingram, Dave Verfasser aut Design - build - run applied practices and principles for production-ready software development Dave Ingram Indianapolis, Ind. Wiley 2009 XXIX, 688 S. Ill., graph. Darst. txt rdacontent n rdamedia nc rdacarrier Wrox programmer to programmer Includes index Computer software / Development Systems software Computer software Development Software Engineering (DE-588)4116521-4 gnd rswk-swf Software Engineering (DE-588)4116521-4 s DE-604 Digitalisierung UB Bamberg application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018602836&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis |
spellingShingle | Ingram, Dave Design - build - run applied practices and principles for production-ready software development Computer software / Development Systems software Computer software Development Software Engineering (DE-588)4116521-4 gnd |
subject_GND | (DE-588)4116521-4 |
title | Design - build - run applied practices and principles for production-ready software development |
title_auth | Design - build - run applied practices and principles for production-ready software development |
title_exact_search | Design - build - run applied practices and principles for production-ready software development |
title_full | Design - build - run applied practices and principles for production-ready software development Dave Ingram |
title_fullStr | Design - build - run applied practices and principles for production-ready software development Dave Ingram |
title_full_unstemmed | Design - build - run applied practices and principles for production-ready software development Dave Ingram |
title_short | Design - build - run |
title_sort | design build run applied practices and principles for production ready software development |
title_sub | applied practices and principles for production-ready software development |
topic | Computer software / Development Systems software Computer software Development Software Engineering (DE-588)4116521-4 gnd |
topic_facet | Computer software / Development Systems software Computer software Development Software Engineering |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=018602836&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT ingramdave designbuildrunappliedpracticesandprinciplesforproductionreadysoftwaredevelopment |