Continuous Delivery By Jez Humble And David Farley Index (CloudMonk.io)
Continuous Delivery by Jez Humble and David Farley Index
Return to Continuous Delivery by Jez Humble and David Farley, CI/CD, CI/CD Bibliography - CI/CD People, CI/CD, CI/CD and DevOps - CI/CD and SRE - Cloud Native and CI/CD - CI/CD and Microservices - Serverless CI/CD, CI/CD Security - CI/CD and DevSecOps, Functional Programming and CI/CD, CI/CD Concurrency, CI/CD and Data Science - CI/CD and Databases, CI/CD and Machine Learning, CI/CD Courses, CI/CD Glossary, Awesome CI/CD, CI/CD GitHub, CI/CD Topics
Fair Use Source: B003YMNVC0 (CDHumbFarl 2010)
" (CDHumbFarl 2010)
Index
A
A/B testing, 264
Aardvarks, 218
Absolute paths in build scripts, 164
Abstraction layer
for acceptance tests, 198–204
for database access, 335
for testing against UI, 88, 201
in branch by abstraction, 349
Acceptance criteria
and nonfunctional requirements, 227–228
and test data, 336
as executable specifications, 195–198
for acceptance tests, 85, 89
for automated tests, 93
for change management, 441
for organizational change, 420
managing, 197
round-tripping, 200
Acceptance test stage
and test data, 339–341
as part of deployment pipeline, 110
workflow of, 187
Acceptance tests
against UI, 88
and analysis, 190
and asynchronicity, 200, 207–210
and cloud computing, 220–222, 313
and external systems, 210
and team size, 214
and test doubles, 210–212
and the delivery process, 99–101
and the deployment pipeline, 213–218
and timeouts, 207–210
and virtualization, 310
application [[driver layer, 198–204
as part of:
CI, 61
commit stage, 120
integration pipeline, 362
automating, 86–88, 136
back [[doors in, 206
definition of, 85
deployment pipeline gate of, 122–126
encapsulating, 206–207
failing, 124
fr[[agility of, 88, 125, 200, 205
functional, 124
isolation in, 205, 220
layering, 191
maintainability]] of, 190–192
manual, 86, 189
parallel executing, 199, 220, 336
performance of, 218–222
record-and-playback for, 191, 197
reliability of, 200, 219
running on development machines, 62, 190
screen recording for, 136, 213–214
shared resources for, 219–220
test data managing in, 336, 339–341
testing against UI, 192–193
turning into capacity tests, 238
UI coupling, 125, 192, 201
use cases for, 86
validating, 192
value proposition for, 188–193, 351
vs. unit test]]s, 188
who owns them, 125, 215
window driver pattern of, 201–204
Access control, 284, 438–439
for infrastructure, 285–286
AccuRev, 385, 399, 403
ActiveDirectory]], 290
ActiveRecord migrations, 328
Actor model, 359
Adapting agile processes, 427
Adaptive tests, 336, 338
Agile development, 427
frequent releases in, 131
refactorings in, 330
showcases during, 90
AgileDox, 201
Albacore, 151
Alerts, 281–282
Algorithms and application performance, 230
Alternate path, 86
Amazon, 316
Amazon EC2, 221, 261, 312
Amazon Web Services]] (AWS), 261, 312–315
Analysis, 193–195
and acceptance tests, 190
and incremental development, 349
and nonfunctional requirements, 226–228
Analysts, 193
Ant, 147–148
AntHill Pro, 58, 126, 255, 373
Antipatterns
deploying after development, 7–9
deploying software manually, 5–7
long-lived branches, 411
manual configuration management, 9–10
of nonfunctional requirements, 230
solved by the deployment pipeline, 105
Apache, 320
API (Application Programming Interface), 340, 357, 367, 369
Application configuration
and testing, 46
management of, 39
Application [[driver, 191
Application [[driver pattern, 198–204
Application lifecycle
and the release strategy, 250
phases of, 421–429
Application servers, 296
Approval process, 112, 250, 254, 267, 285, 437
APT repository, 294
Aptitude, 294
Arch, 396
Architecture
and components, 346
and Conway’s Law, 360
and nonfunctional requirements, 105, 226–228
as part of inception, 423
Archiving
as a requirement of operations, 282
as part of the release strategy, 251
Artifact repository
and deployment, 256
and pipelining dependencies, 366
and the deployment pipeline, 175–177, 374–375
auditing, 373
implementing in a shared filesystem, 375
managing, 373–375
organization-specific, 355
purging, 175
vs. version control, 166
Artifactory, 111, 355, 361, 373, 375
Artifacts, 111
Assemblies
and dependency management, 353
and labels, 374
and traceability, 166
Asynchrony
and acceptance testing, 200, 207–210
and capacity testing, 239
and unit testing]], 180
ATAM (Architectural Tradeoff]] Analysis Method), 227
Atomic commits, 383–384
Atomic tests, 205, 337
Auditing
and acceptance criteria, 198
and data archiving, 282
and deployment, 273
and distributed version control, 396
and environment management, 129
and locking down infrastructure, 286
and poor tools, 300
and rebuilding binaries, 114
and the deployment pipeline, 418
as a nonfunctional requirement, 227
as a requirement of IT operations, 280–281
as part of:
delivery, 429
release strategy, 251
management of, 436–441
of artifact repositories, 373
of infrastructure changes, 287
of manual processes, 6
Automated tests
and continuous deployment, 266
and runtime configuration, 348
and stream-based version control, 403
as part of project initiation, 430
as pre[[requisite for:
CI, 59–60
merging, 390
quality, 434
failing, commenting]] out, 70
for infrastructure, 323
See also Acceptance tests, Capacity tests, Unit test]]s
Automation
as a principle of continuous delivery, 25
benefits of, 5–7
effect on feedback, 14
for risk reducing, 418
importance of, 12
of database initialization, 326–327
of database [[migration, 327–331, 340
of deployment, 152–153
vs. documentation, 287, 437–438
Autonomic infrastructure, 278, 292, 301
Availability, 91, 314, 423
Azure, 313, 317
B
Back [[doors in acceptance tests, 206
Backing out
planning, 129, 251, 441
ways of, 131–132
Backlogs
defect, 99–101
requirement, 425
as part of:
release plan, 251
service continuity planning, 282
network, 302
Backwards compatibility, 371
Ball of mud, 351, 359
Baseline
and version control, 166
and virtualization, 305
environments, 51, 155
Bash, 282
Batch processing]], 167
Bazaar, 396
Bcfg2, 291
Behavior-driven development, 195, 204, 323
Behavior-driven monitoring]], 322–323
Bench, 243
Beta testing, 90
Big, visible displays. See Dash[[boards
BigTable, 315
Binaries
and packaging, 154
and pessimistic locking, 387
and version control, 35, 373
building, 438
only once, 113–115
definition of, 134
environment-specific, 115
in CVS, 383
managing, 373–375
re-creatability from version control, 33, 175, 354, 363, 373
separating out configuration from, 50
shared filesystem for, 166
Binary file]] formats, 300
BitBucket, 394
BitKeeper, 386, 395
BizTalk, 311
BladeLogic, 161, 287, 289, 291, 296
Blue-green deployments, 261–262, 301, 332–333
BMC, 156, 161, 289, 291, 318
Boot[[strapping]] problem, 372
Bottlenecks, 106, 138
Boundary]] value analysis, 86
Branch by abstraction, 334–335, 349–351, 360, 415
Branches
integrating, 389
maintenance, 389
release, 389
Branching]]
and CI, 59, 390–393
branch by feature, 36, 81, 349, 405, 410–412
branch by team, 412–415
branch for release, 346, 367
deferred, 390
definition of, 388–393
early, 390
environmental, 388
functional, 388
in CVS, 383
in Subversion, 384
organizational, 388
physical, 388
policies of, 389
procedural, 388
reasons of, 381
Brittle tests, 125, 191
BSD ([[Berkeley [[Software Distribution]])]], 355
BSD ports, 294
Bug queue. See Backlogs, defect
Build
and components, 360
and test targets, 166–167
automating as pre[[requisite for CI, 57
broken:
and checking in, 66
going home when, 68–69
responsibility for fixing, 70–71, 174
reverting, 69
continuous, 65
failing for slow tests, 73
optimizing, 361
promoting, 108
scheduling, 65, 118–119, 127
tools for, 145
triggering]], 369–370
Build grid, 111, 185
Build ladder, 372
Build lights, 63
Build master, 174
Build pipeline, 110
Build quality in, 26–27, 83
BuildForge, 58
Buildr, 151
Bulkhead pattern, 98
Business analysts. See Analysts
Business case, 422
Business governance. See Governance
Business intelligence, 317
Business sponsor, 422
Business value
and analysis, 193
and nonfunctional requirements, 226
protecting by acceptance tests, 189
C
C / C++
building with Make and SCons, 147
compiling, 146
C#, 282
CA, 318
CAB (Change Advisory Board), 280, 440
Canary releasing, 235, 262–265
and continuous deployment, 267
and database [[migration, 333
Capacity
and cloud computing, 314
as a cause of project failure, 431
definition of, 225
designing for, 230
measuring, 232–234
planning, 251, 317, 423
Capacity testing
and canary releasing, 264
and cloud computing, 313
and virtualization, 310
as part of a testing strategy, 91
automating, 238–244
environment for, 234–237
extrapolating, 234
in the deployment pipeline, 112, 244–246
interaction templates in, 241–244
measurement]]s for, 232–234
of distributed system]]s, 240
performance of, 238
scenarios in, 238
simulations for, 239
test data managing in, 341–342
thresholds in, 238
through a service layer, 239
through the API, 239
through the UI, 240–241
warm-up periods in, 245
Capistrano, 162
Cautious optimism, 370–371
CCTV (Closed-circuit tele[[vision), 273
CfEngine, 51, 53, 155, 161, 284, 287, 291
Change management, 9, 53–54, 280, 287, 421, 429, 436–437, 440–441
Change request, 440
Changeset. See Revision
Check point, 394
Checking in
and duration of commit tests, 185
frequency, 435
on a broken build, 66
CheckStyle, 74, 158
Chef, 291
Cherry picking, 394, 409, 414
Chicken-counting, 254
CIM (Common Information Model), 319
CIMA (Chartered Institute of Management Accountants), 417
Circuit Breaker]] pattern, 98, 211
Circular dependencies, 371–373
Classloader, 354
ClearCase, 385–386, 399, 404, 409
Cloud computing
and architecture, 313, 315
and compliance, 314
and nonfunctional requirements, 314
and performance, 314
and security, 313
and service-[[level agreements, 314
and vendor lock-in, 315
criticisms of, 316–317
definition of, 312
for acceptance tests, 220–222
infrastructure in the Cloud, 313–314
platforms in the Cloud, 314–315
CMS (configuration management system), 290
Cobbler, 289
Code [[analysis, 120, 135
Code [[coverage]], 135, 172
Code duplication, 121
Code freeze, 408
Code [[style, 121
Collaboration
ad-hoc, 8
and acceptance tests, 99, 190
and distributed version control, 395
and the deployment pipeline, 107
as a goal of:
components, 346
version control, 32, 381
between teams involved in delivery, 18, 434, 434, 436
in siloed organizations, 439
COM (Component Object Model), 353
Commercial, off-the-shelf software. See COTS
Commit messages, 37–38
Commit stage
and incremental development, 347
and test data, 338–339
as part of:
CI, 61
deployment pipeline, 110, 120–122
scripting, 152
workflow, 169
Commit tests
characteristics of, 14
failing, 73, 171
principles and practices of, 177–185
running before checking in, 66–67
speed of, 60–62, 73, 435
test data managing in, 338–339
See also Unit test]]s
Compatibility testing, 342
Compilation
as part of commit stage, 120
incremental, 146
optimizing, 146
static, 353
warnings, 74
Compliance
and cloud computing, 314
and continuous delivery, 267
and library management, 160
and organizational maturity, 420
as a goal of version control, 31
managing, 436–441
Component tests, 89
and CI, 60
Components
and deployment, 156
and project structure, 160
and the deployment pipeline, 360–361
configuration management of, 39, 356–360, 363
creating, 356–360
definition of, 345
dependency management of, 39, 375
for branch by release, 409
vs. libraries, 352
Concordion, 85, 191, 196
Configuration management
and deployment, 154
and deployment scripting, 155
and emergency fixes, 266
and infrastructure, 283–287, 290–295
and service asset, 421
as part of release strategy, 250
bad, 435–436
definition of, 31
for deployment time, 42
importance of, 18–20
manual configuration management antipattern, 9–10
maturity model of, 419–421
migrating, 129
of binaries, 373
of databases, 328–329
of environments, 277, 288, 308
of middleware, 295–300
of servers, 288–295
of software, 39
of virtual environment]]s, 305–307
promoting, 257
runtime, 42, 348, 351
version control practices for. See Version control practices
Configuration management system. See CMS
Conformance, 417
Consistency, 290
Console output, 171
Consolidation
providing CI as a central service, 76
through virtualization, 304
Contextual enquiry, 90
Continuous deployment, 126, 266–270, 279, 440
Continuous improvement, 15, 28–29, 441
Continuous integation pipeline, 110
Continuous integration]] (CI)
and branching]], 36, 390–393, 410, 414
and database scripting, 326–327
and mainline development, 405
and test data management, 339
as a centralized service, 75–76
as part of project initiation, 424, 430
as pre[[requisite for quality, 427
bad, 435
basic practices of, 57–59
definition of, 55
essential practices of, 66–71
feedback mechanisms in, 63–65
managing environments in, 289
with stream-based version control, 403–404
ControlTier, 161
Conway’s Law, 359
Co[[ordinates in Maven, 375
Corporate governance. See Governance
Cost-benefit analysis, 420
COTS (Commercial, off-the-shelf software), 284, 295, 307
Coupling
analysis of, 121, 135, 139, 174
and loosely coupled architecture, 315
and mainline development, 392
database [[migrations to application changes, 329, 333–334
external systems to acceptance tests, 211
in capacity tests, 242
tests to data, 336
UI to acceptance tests, 125, 192, 201
within the release process, 261, 325
CPAN (Comprehensive Perl Archive Network), 155
Crash reports, 267–270
Crontab, 294
Crosscutting concerns, 227
Cross-functional requirements, 226
Cross-functional teams, 105, 358
Cross-functional tests. See Nonfunctional tests
CruiseControl family, 58, 127
Cucumber, 85–86, 191, 196, 200, 323
Cucumber-Nagios, 323
Customer, 422
CVS (Concurrent Versions System), 32, 382–383, 409
Cycle time
and canary releasing, 263
and compliance, 437
and emergency fixes, 266
and organizational maturity, 419
for changes to infrastructure, 287, 441
importance of, 11, 138
measuring, 137
Cyclomatic complexity]], 121, 135, 139, 174
D
DAG (directed [[acyclic graph]]), 363, 400
Darcs (Darcs Advanced Revision Control System), 396
Darwin Ports, 294
Dash[[boards
and CI, 82
for operations, 320–322
for tracking delivery status, 429, 440
importance of, 16
Data
and rollback, 259
archiving in production, 282, 343
in acceptance tests, 204
lifecycle of, 325
Data [[center automation tools, 284
Data [[center management, 290–295
Data [[migration, 118, 129, 262, 264
as part of testing, 257
as part of the release plan, 252
Data structures
and application performance, 230
and tests, 184
Database administrators, 326, 329
Databases
and orchestration, 329–331, 333
and test atomicity]], 205
and unit testing]], 179–180, 335–336
for middleware configuration, 299
forward and backward compatibility]] of, 334
incremental changing, 327–331
initializing, 326–327
in-[[memory, 154
migrating, 327–334
monitoring]], 318
normalization and de[[normalization, 331
primary key]]s in, 329
refactoring, 334, 341
referential constraint]]s, 329
rolling back]], 328, 331–334
rolling forward, 328
schemas in, 327
temporary table]]s in, 329, 332
transaction record-and-playback in, 332
upgrading, 261
versioning, 328–329
DbDeploy, 328, 331, 344
DbDeploy.NET, 328
DbDiff, 328
Dbmigrate, 328
Deadlock]], 136
Debian, 154, 283–284, 353
Declarative deployment tools, 161
Declarative infrastructure management, 290
Declarative programming]], 147–148 See also Ant, Make
Defects
and the release strategy, 251
as a symptom of poor CI, 435
critical, 131, 265–266, 409
in backlogs, 99–101
measuring, 138
re[[producing, 247
zero, 100
Deming cycle, 28, 420, 440
Deming, W. Edwards, 27, 83
Dependencies
analyzing with Maven, 378
and integration, 370
and traceability, 363
between branches, 391
build time, 352
circular, 371–373
down[[stream, 364
fluid, 370
guarded]], 370
in build tool s, 146
in software, 351–356
in the project plan, 348
managing with Maven, 375–378
refactoring, 377
runtime, 352
static, 370
transitive]], 355
up[[stream, 364
Dependency graphs
keeping shallow, 371
managing, 355, 363–373
modeling with the deployment pipeline, 365–369
Dependency hell, 352–354, 365
Dependency injection
and branch by abstraction, 351
and faking time, 184
and Maven, 149
and unit testing]], 179–180
Dependency management, 38–39, 149, 353
and trust, 369
between applications and infrastructure, 285
Dependency networks and build tool s, 144
Deployment
and components, 357
and idempotence, 155–156
automating, 152–153
blue-green. See Blue-green deployment
definition of, 25
deploy everything from scratch, 156
deploy everything together, 156
fail fast, 272–273
failures of, 117
incremental implementation of, 156–157
late deployment antipattern, 7–9
logging, 270–271
managing, 421
manual, 5–7, 116, 165
orchestrating, 161
planning and implementing, 253–254
scripting, 160–164
scripting upgrades, 153
smoke-testing, 117, 163
testing through automation, 130, 153
to remote machines, 161
use the same process for every environment, 22, 115–117, 153–154, 253, 279, 283, 286, 308, 438
validating environments, 155
Deployment pipeline
acceptance test stage, 213–218
and artifact repositories, 374–375
and branch for release, 409
and capacity tests, 244–246
and compliance, 437
and components, 360–361, 361–363
and continuous deployment, 267
and databases, 326
and dependency graphs, 365–369
and emergency fixes, 266
and governance, 418, 442
and integration tests, 212
and mainline development, 405
and test data, 338–343
and version control, 404, 416
and virtualization, 304, 307–310
and VM templates, 309
as part of project initiation, 430
definition of, 106–113
evolution of, 136–137
failing, 119–120
implementing, 133–137
in siloed organizations, 439
origin of term, 122
scripting, 152
Deployment production line, 110
Deployment tests, 89, 216–218, 285
Develop and release, 425–428
Development environments
and acceptance tests, 125
and deployment scripts, 154
and test data, 343
configuration management of, 33, 50, 289
managing as part of development, 62
Device drivers for GUI testing, 202
DevOps, 28
and agile infrastructure, 279
creating the deployment process, 270
ownership]] of the build system, 174
See also Operations
DHCP (Dynamic Host Configuration Protocol]]), 285, 289
Diagnostics, 139
Diamond dependencies, 354, 365
Directed [[acyclic graph]]. See DAG
Directory services, 300
Disaster re[[covery]], 250, 282
Discipline
and acceptance tests, 214
and CI, 57
and incremental development, 349, 392, 426, 434
Disk [[images, 305
Displays. See Dash[[boards
Distributed development
and CI, 75–78
and pipelining components, 360
and version control, 78
communication in, 75
Distributed teams, 143
Distributed version control, 79–81, 393–399, 411, 414
DLL (Dynamic-Link Library), 352, 356
DLL [[hell, 352
DNS, 300
DNS zone files, 285
Documentation
and self-documenting infrastructure, 292
as a requirement of IT operations, 280–281
as part of:
compliance and auditing, 437
release plan, 252
generating from acceptance tests, 86
vs. automation, 287, 437–438
Domain language, 198
Domain-[[driven design, 152
Domain-specific languages (DSLs)
build tool s for, 144–151
definition of, 198
in acceptance testing, 198–204
See also Puppet
Don’t [[repeat yourself]], 358
Done
and acceptance tests, 85
and testing, 101
definition of, 27–28
signoff as part of project lifecycle, 426, 434
Downtime, 260, 436
Dpkg, 294
Dummy objects, 92
See also Test doubles
Duplication, 139
Dynamic linking, 357
Dynamic view]]s, 403
E
EARs, 159
EasyMock, 181
EC2, 221
Eclipse, 350
Efficiency, 419
Eggs, 155
ElectricCommander, 58
Ellison, Larry, 316
Embedded software, 256, 277
Emergency fixes, 265–266
Encapsulation
and components, 358
and mainline development, 392
and monolithic systems, 345
and unit testing]], 180
in acceptance tests, 206–207
End-to-end testing
acceptance tests, 205
capacity tests, 241
Enterprise governance. See Governance
Environments
as part of release strategy, 250
baselines, 51, 155
capacity testing, 234–237, 258
definition of, 277
managing, 49–54, 130, 277, 288–295, 308
production-like, 107, 117, 129, 254, 308
pro[[visioning]], 288–290
re-creatability from version control, 33
shared, 258
staging, 258–259, 330
systems integration testing (SIT), 330
Equivalence partitioning, 86
Escape, 44, 47, 257
Estimates, 428
Eucalyptus, 312, 316
Event-[[driven systems
and components, 359
capacity testing, 241
Executable specifications, 195–198, 246, 339, 342
Exploratory testing, 87, 90, 128, 255, 343
External systems
and acceptance tests, 125, 210
and integration testing, 96–98
and logging, 320
and the release strategy, 250
configuration of, 50
upgrading, 261
Externals (SVN), 384
Extrapolation in capacity testing, 234
Extreme programming, 26, 266
and CI, 55, 71
F
Fabric, 162
Façade pattern, 351
Facter, 291
Fail fast
commit stage, 171
deployments, 272–273
Failover, as part of the release strategy, 251
Fake objects, 92
Feature branches. See Version control practices
Feature crews, 411
Feedback
and automated acceptance tests, 86
and canary releasing, 263
and dependency management, 369–370
and metrics, 137–140
and monitoring]], 317
and the integration pipeline, 362
as part of project lifecycle, 426
created by deployment pipeline, 106
importance of, 12–16
during commit stage, 120
improving through virtualization, 310
when modeling dependencies, 365
when pipelining components, 360
Filesystem Hierarchy Standard, 165
Filesystem, shared for storing binaries, 166
FindBugs, 74, 158
Firefighting, 286
Firewalls
and cloud computing, 313
and integration testing, 96
configuration of, 118, 284, 300
Fit, 201
Fit for purpose, 421, 426, 442
Fit for use, 421, 427
FitNesse, 191, 196, 201
Flapjack, 318
Flex, 192
Force.com, 314
Forensic tools, 301
Forking. See Version control practices
Forward compatibility, 334
Fr[[agility. See Acceptance tests
Func, 162
Functional tests. See Acceptance tests
FxCop, 74
G
Gantt, 151
Gantt charts, 280
Garbage collection, 247
Gate. See Approval process
GAV, 375
Gems, 155
Gentoo, 353
Git, 32, 79–81, 374, 393, 396, 403
GitHub, 79, 394, 411
Given, when, then, 86, 195, 336
Global assembly cache, 353
Global optimization, 138
Gmail, 313
Go, 58, 113, 126, 255, 373
Go/no-go, 423
Google App Engine, 314–315, 317
Google Code, 394
Governance
business, 417
corporate, 417
enterprise, 417
good, 442
GPG (GNU Privacy Guard), 294
GPL (General Public License), 355
Gradle, 151
Greenfield projects, 92–94
Guard tests, 245
GUI (Graphical user interface)
and acceptance tests, 192–193
for deployment, 165
layering, 192
See also UI
Gump, 371
H
H2, 336
Handle, 301
Happy path, 85, 87–88, 94
Hardening, 284
Hardware
and capacity testing, 236
virtualization for standardization, 304
Hashing]], 114, 166, 175, 373, 438
Hawthorne effect, 137
Hibernate, 159
Hiding functionality, 347–349
High [[availability
and business continuity planning, 282
and multihomed servers, 302
as part of the release strategy, 251
HIPAA, 314, 436
Hot deployment. See Zero-downtime releases
HP (Hewlett-Packard]]), 156, 291, 318
HP Operations Center, 287, 296
Hudson, 58, 63, 127, 289
Hyperactive builds, 370
Hyper-V, 290
I
IANA (Internet Assigned Numbers Authority), 320
IBM, 156, 291, 303, 316, 318
IDE (Integrated Development Environment]]), 57, 143, 160
Idempotence
and deployment tools, 161
and infrastructure management, 290–291, 295
of application [[deployment, 155–156
Identification, 422
IIS (Internet Information Services), 299
Impact, 430
Inception, 283, 422–424
Incremental compilation, 146
Incremental delivery, 331, 346–351, 418, 420, 442
Incremental development, 36, 326, 346–351, 367, 405–406, 425, 434
Informed pessimism, 371
Infrastructure
as part of project initiation, 424
auditability of, 287
definition of, 277
evolution of, 317
managing, 283–287
testing changes in, 287
Infrastructure in the Cloud, 313–314
Initiation, 424–425
In-[[memory database, 154, 180, 336
Installers, 51
InstallShield, 118
Instant messenger, 75
Integrated Development Environment]]. See IDE
Integration
and acceptance tests, 210
and databases, 329
and dependencies, 369–370
and infrastructure management, 301
Integration phase, 55, 348, 405, 426, 435
Integration pipeline, 361–363
Integration team, 358
Integration tests, 96–98
Intention]]al programming, 198
Interaction templates, 241–244, 342
Intermittent failures
in acceptance tests, 200, 207
in capacity tests, 233, 245
Interoperability, 316
Inventory, 391, 418
Inversion of control]]. See Dependency injection
INVEST principles, 93, 190
IPMI (Intelligent Platform Management Interface), 288, 318
ISO 9001, 437
Isolation in acceptance tests, 205, 220
Issue, 431
Iteration one, 253
Iteration zero, 134
Iterative delivery, 442
and analysis, 193–195
Iterative development, 425
ITIL (Information Technology Infrastructure Library), 421–422
Ivy, 150, 154, 160, 166, 355, 375
J
J2EE (Java 2 Platform, Enterprise Edition]]), 359
JARs, 159, 356, 374
Java
building with Ant, 147
classloader in, 354
components in, 345
database [[migration in, 328
naming [[conventions in, 158
project structure in, 157–160
runtime dependencies in, 354
Javac, 146
JavaDB, 336
Javadoc, 149
JBehave, 85, 191, 196
JDepend, 74
Jikes, 146
JMeter, 243
JMock, 181
JMX, 319
JRuby, 151
Jumpstart, 284, 289
Just-in-time compiler, 146
K
Kaizen. See Continuous improvement
Kanban, 411
Kick-off meetings, 194
Kickstart, 284, 289
Knuth, Donald]], 228
L
Label, 374
Large [[teams
and mainline development, 392, 405
branch by team, 412
branch for release, 409
collaboration through components in, 346
See also Team size
Law of Demeter, 345, 358, 406
Layers
in acceptance tests, 190
in software, 359
LCFG, 291
LDAP (Lightweight Directory Access Protocol), 44, 291
Lean
and project management]], 427
as a principle of continuous delivery, 27
influence on this book, 16
the cost of not delivering continuously]], 418
Legacy system]]s, 95–96, 306
Libraries
configuration management of, 38–39, 354–356, 363
definition of, 352
dependency management of, 375
managing as part of development, 62
Licensing
as part of the release plan, 252
of middleware, 300
Lifecycle, 421–429
Likelihood, 430
Lines of code, 137
Linux, 154, 310, 395
Live-live releases. See Blue-green deployments
Living build, 110
Load testing, 231
Locking. See Version control practices
Logging
and infrastructure management, 301
and the release strategy, 250
as a requirement of operations team, 281
importance of, 436
of deployment, 270–271
of infrastructure changes, 287
LOM (Lights Out Management), 288, 318
Longevity]] tests, 231, 238
Lsof, 301
M
Mac OS, 310
Mainline development, 35–37, 59, 346–351, 392, 405–408
Maintainability]]
and mainline development, 406
and quality, 434
of acceptance tests, 190–192
of capacity tests, 240
Maintenance
as part of release strategy, 250, 409
of the build system, 174
Make, 144, 146–147
Makefile, 146
Managed devices, 319
Management information base, 320
Manifests
and traceability, 166
of hardware, 271
Manual testing, 110, 126, 189, 223, 343
Marathon, 243
Marick, Brian, 84
Marimba, 155
Marionette Collective, 161, 291
Marketing, 252
Maturity model, 419–421
Maven, 38, 148–150, 154, 157, 160, 166, 355, 375–378
analyzing dependencies with, 378
compared to Buildr, 151
co[[ordinates in, 375
repository of, 375
snapshots in, 377
subprojects in, 158
Maven Standard Directory Layout, 157
McCarthy, John, 312
Mean time]] between failures. See MTBF
Mean time]] to repair. See MTTR
Measurement]], 264, 420
Memory leak]]s, 247
Mercurial, 32, 79–81, 374, 393, 396, 398, 403
Merge conflicts, 386, 390, 415
Merge team, 407
Merging
definition of, 389–390
in branch by feature, 349, 410
in branch by team, 413
in ClearCase, 404
in stream-based systems, 402
in the integration phase, 406
tracking, 385
with distributed version control, 399
with optimistic]] locking, 386
Message queue]]s
as an API, 357
capacity testing, 241
configuration management of, 296
Metabase, 299
Metrics, 106, 172, 287, 441
as part of deployment pipeline, 137–140
Microsoft, 316, 359
Middleware
and application [[deployment, 155
configuration management of, 295–300
managing, 130, 284
monitoring]], 318
Mitigation, 430
Mocha, 181
Mockito]], 181
Mocks, 92, 178
See also Test doubles
Monitoring]]
and business intelligence, 317
applications, 318
as part of the release strategy, 250
importance of, 436
infrastructure and environments, 317–323
middleware, 318
network for, 302
operating systems, 318
requirements for, 281–282
user behavior, 318
Monolithic architecture, 345, 357
Monotone, 396
MSBuild, 148
MTBF (mean time]] between failures), 280, 286, 440
MTTR (mean time]] to repair), 278, 280, 286, 440
Multihomed systems, 301–303
Mythical hero, 108
N
Nabaztag, 63
Nagios, 257, 281, 301, 318, 321
Nant, 148
NDepend, 74
.NET
acceptance tests in, 197
and dependency hell, 353
database [[migration in, 328
project structure in, 157–160
tips and tricks for, 167
Network boot, 289
Network management system, 319
Networks
administration of, 302
and nonfunctional requirements, 229
configuration management of, 300
topology of, 118
virtual, 311
Nexus, 111, 166, 175, 355, 361, 373, 375
NICs (Network Interface Cards), 302
Nightly build, 65, 127
NMock, 181
Nonfunctional requirements
analysis of, 226–228
and acceptance criteria, 227–228
and cloud computing, 314
and the deployment pipeline, 136
logging, 320
managing, 226–228, 436
release strategy as a source of, 251
trade-off]]s for, 227
virtualization for testing, 305
Nonfunctional tests
definition of, 91
in the deployment pipeline, 128
NoSQL, 326
Notification
and CI, 63–65
as part of monitoring]], 317
N-tier architecture
and components, 359
and deployment, 155
smoke-testing, 164
O
Object-[[oriented design, 350
Open source, 143
and distributed version control, 81
and Maven, 375
OpenNMS, 281, 301, 318
Operating systems
configuration of, 118
monitoring]], 318
Operations, 105, 279–283, 428–429
See also DevOps
Operations Center, 291
Operations Manager, 281, 301, 318
Opport[[unity]] cost, 300
Optimistic]] locking, 386–387
Oracle, 154, 320
Orchestration, 257–258, 329–331, 333
Organizational change, 419
OSGi, 350, 354–356
Out-of-band management, 288, 318
Overdesign, 228
P
Packaging, 296
and configuration, 41
as part of:
deployment pipeline, 135, 283
integration, 361
tools for, 154–155
Panopticode, 139
Passwords. See Security
Patches, 251
Patterns and nonfunctional requirements, 230
PCI DSS]], 314, 436
Peak demand, 244
Perforce, 385
Performance
and governance, 417
definition of, 225
of acceptance tests, 218–222
tuning, 247
Perl, 155, 283, 356
Pessimistic locking, 386–387
Pilot projects, 428
Plan, do, check, act. See Deming cycle
Platforms in the Cloud, 314–315
POM, 375
Postfix, 293
Potemkin village, 351
PowerBuilder, 271
PowerShell, 162, 282, 299
Preconditions in acceptance tests, 206
Predictability, 419
Premature optimization, 228
Preseed, 284, 289
Pretested commit, 37, 67, 120, 171
Pricing, 252
Primary key]]s, 329
Prioritization
as part of project lifecycle, 427
of defects, 101
of nonfunctional requirements, 226
of requirements, 422
Process boundaries]]
and acceptance tests, 206
and nonfunctional requirements, 229
Process modeling, 133
Procurement, 283
Product owner, 422
Production environment]]s
and uncontrolled changes, 273
logging in to, 160
Production readiness, 346–351, 426
Production sizing, 251
Production-like environments, 107, 117, 129, 308
characteristics of, 254
Productivity]], 50, 82, 173
Product-oriented build tool s, 145
Profiling tools, 231
Profitability, 419
Project horizon, 423
Project manager]]s, 428
Project structure for JVM and .NET projects, 157–160
Promiscuous integration, 81
Promotion, 46, 254–257, 402, 406
Proof-of-concept, 420
Pro[[visioning]], 288, 290–295, 303
Psake, 151
PsExec, 162
Pull system, 17, 106, 255
Pulse, 58
Puppet, 51, 53, 118, 155–156, 161, 284, 287–288, 290–296, 300, 306, 323
Push-button deployment, 17, 112, 126, 135, 157, 255, 315
PVCS (Polytron Version Control System), 386
PXE (Preboot eXecution Environment), 288–290
Python, 147, 155, 283
Q
Quality, 12, 62, 418, 422, 434–435
attributes of, 227
Quality analysts. See Testers
Quantifiers, 376
R
Race condition, 136
RAID, 374
Rake, 150, 150–151
rBuilder, 305
RCS (Revision Control System), 32, 382
RDBMS (Relational Database]] Management System), 314, 326
Rebasing, 394, 414
Record-and-playback
for acceptance testing, 191, 197
for capacity testing, 239, 241
of database transactions, 332
Re[[covery]] point]] objective, 282
Re[[covery]] time]] objective, 282
Redeployment as a way of backing out, 132, 259–260
RedHat Linux, 154, 284
Refactoring
acceptance tests, 192, 218–219
and branch by abstraction, 350
and branch by team, 415
and CI, 72
and mainline development, 406
and version control, 36
as part of project lifecycle, 426
as pre[[requisite for quality, 427
enabled]] by regression test]]s, 87
Referential constraint]]s, 329
Regression bugs
and continuous delivery, 349
as a symptom of poor application quality, 434
caused by uncontrolled changes, 265
on legacy system]]s, 96
Regression test]]s, 87, 124, 128, 189
Relative paths in build scripts, 164
Release
as part of deployment pipeline, 110
automating, 129
maintenance of, 409
managing, 107, 419–421
modeling the process of, 254–257
zero-downtime, 260–261
Release branches. See Version control practices
Release candidate
and acceptance test gate, 124
and manual test stages, 127
definition of, 22–24
lifecycle of, 132
Release plan, 129, 251–252, 281, 283, 423
Release strategy, 250–252, 423, 430
Remediation, 441
Remote installation, 288
Repeatability]], 354
Reporting status, 429
Repository pattern, 335
Reproduceability, 373
Requirements
of the operations team, 279–283
release strategy as a source of, 251
Resilience, 316
Resources condition, 136
Responsibility
for deployment, 271
for fixing the build, 70–71, 174
of developers to understand operations, 281
Rest, 197
Retrospectives, 16
as part of:
continuous improvement, 28, 420, 441
risk management, 431
to enable collaboration, 440
Revenue, 264, 316–317
Reverse proxy, 271
Reverse-engineering, 299
Reverting, 435
when the build is broken, 69
Revision control. See Version control
Revision, of binaries, 166
Rhino, 181
Risk
and canary releasing, 263
and issue log, 423
and nonfunctional requirements, 225
and organizational maturity, 420
management of, 417, 429–432, 442
of deployment, 278
of development, 430–431
of releases, 4–11, 279
reducing:
through continuous delivery, 279
through continuous deployment, 267
through retrospectives, 431
through virtualization, 303
Roles, 424
Roll back
and artifacts, 373
and legacy system]]s, 252
automating, 10
frequent, and poor configuration management, 436
of databases, 328, 331–334
reducing risk of releasing with, 109
strategies of, 132, 259–265
vs. emergency fixes, 266
Roll forward of databases, 328
Rolling builds, 65
Root cause analysis, 433
R[[outers, 263
and blue-green deployments, 261
configuration management of, 300
rPath, 305
RPM, 294, 299
RSA, 273
Rsync, 156, 162
Ruby, 155, 283
Ruby Gems, 355
Ruby on Rails, 328, 354
RubyGems, 38, 151, 294
Runtime optimization, 245
S
Sad path, 88
Sahi, 134, 197
Sales]]Force, 313
SAN, 374
Sarbanes-Oxley. See SOX
Scalability testing, 231
Scaling
for capacity testing, 236
through cloud computing, 313
SCCS (Source Code Control System), 32, 382
Scenarios, in capacity testing, 238
SCons, 147
Scp, 162
Screen recording, 136, 213–214
Scripting and the deployment pipeline, 152
Scrum, 422, 427
Seams, 350
Security
and cloud computing, 313
and configuration management, 43
and monitoring]], 322
and network routing, 303
as a nonfunctional requirement, 423
as part of a testing strategy, 91
holes in, 131
of infrastructure, 285–286
Selenium, 197
Selenium Grid, 221, 310
Selenium Remoting, 221
Self-service deployments, 112, 255
Senior responsible owner, 422
Service asset and configuration management, 421
Service continuity planning, 282
Service design, 421
Service disruptions, 286
Service operation, 421
Service packs, 290
Service testing and validation, 421
Service transition, 421
Service-[[level agreements. See SLA
Service‐oriented architectures
and databases, 329
and deployment, 156, 258
and environments, 278
capacity testing, 239, 241
promoting, 257
SETI@Home, 313
Severity, 430
Sevice continuity planning, 423
Shadow domains. See Blue-green deployments
Shared filesystems as artifact repositories, 375
Shared [[library, 352
Shared resources, 261
Shared understanding, 423
Shared-no[[thing architectures, 264, 313
Showcases, 128, 426
as a form of manual testing, 90
as a risk mitigation strategy, 433
Shuttle]]worth, Mark, 394
Side-by-side deployment, 262
Silos
and components, 358
and deployment, 8
development and operations, 279
managing delivery, 439–440
Simian, 74
S[[implicity]] and nonfunctional requirements, 229
Simulation for capacity testing, 239
Skype, 75
SLA (service-[[level agreements), 128, 251, 280, 314, 331
Slow tests
failing the build, 73
unit test]]s and test doubles, 89
Smoke tests
and behavior-driven monitoring]], 323
and infrastructure management, 301
and legacy system]]s, 95
and orchestration, 258
as part of:
acceptance test suite, 217
integration pipeline, 361
release plan, 251
for blue-green deployments, 261
for deployment, 273
for deployment scripts, 167, 255
SMTP (Simple Mail Transfer Protocol), 285, 300
Snapshots
in Maven, 377
of virtual machines, 305
SNMP (Simple Network Management Protocol]]), 302, 319
Software Engineering]] Institute, 227
Solaris, 284
Source control. See Version control
SOX (Sarbanes-Oxley), 280, 436
Specifications. See Acceptance criteria
Spies, 92
See also Test doubles
Spikes, 382, 425
Splunk, 318
SqlLite, 336
Ssh, 162, 302
Stability, 230, 369
Stabilization phase, 347
Stabilizing the patient, 129, 286
Staging environment, 258–259, 290
Stakeholders, 422
Stallman, Richard, 316
StarTeam, 386, 409
State
in acceptance tests, 204–206
in middleware, 298–299
in unit test]]s, 179, 183
Static [[analysis, 331
Static compilation, 353
Static linking, 357
Static views, 403
Stop the line, 119–120
Stored procedures, 334
Stories
and acceptance criteria, 195
and acceptance tests, 85, 99, 188, 193
and components, 358
and defects, 101
and legacy system]]s, 95
and nonfunctional requirements, 227–228
and throughput, 138
INVEST, 93
Strategy pattern, 351
Streaming video, 315
Stubs, 92, 178
for developing capacity tests, 244
See also Test doubles
Subversion, 32, 383–385, 397
Sun, 294, 359
Sunk cost, 300, 349
Support
and data archiving, 282
as part of:
release plan, 252
release strategy, 251
reducing cost, 419
SuSE Linux, 154
Sweeping it under the rug, 351
Symbolic link]]s, 260, 269, 271, 294
Sysinternals]], 301
System Center Configuration Manager, 291, 296
System characteristics, 226
System of record, 381, 418
T
Tagging
and releases, 409
in ClearCase, 404
in CVS, 383
in Subversion, 384
See also Version control practices
Tarantino, 328
Task-oriented build tool s, 145
TC3, 314
TCP/IP, 300
Tcpdump, 301
TCPView, 301
Team Foundation Server, 386
Team size
and acceptance testing, 214
and components, 357
does continuous delivery scale?, 16
using a build master, 174
See also Large [[teams
TeamCity, 58
Technical debt, 330, 406
Templates, 305, 309–310
Temporary table]]s, 329, 332
Test automation pyramid, 178
Test coverage]], 87, 121, 174, 435
Test data
and database dumps, 340, 343
application reference data, 340, 343
de[[coupling from tests, 336
functional partitioning, 337
in acceptance tests, 339–341
in capacity tests, 243, 341–342
in commit tests, 338–339
managing, 334–338
test reference, 340, 343
test-specific, 340
Test doubles, 89, 91, 178
and acceptance tests, 210–212
and unit test]]s, 180–183, 335
speed of, 89
Test performance
and databases, 335–336
faking time for, 184
increasing through virtualization, 305, 310
Test sequencing, 336
Test-[[driven development]], 71, 178, 427
See also Behavior-driven development
Testers, 193
Testing quadrant diagram, 84, 178
Testing strategies
as part of inception, 423
greenfield projects, 92–94
importance of, 434
legacy system]]s, 95–96
midproject, 94–95
Tests, 105
adaptive, 336, 338
failing, 308
isolation of, 336–337
manual, 126, 128, 138, 189, 223, 343
sequencing, 336
setup and tear down, 337, 340
types of, 84
See also Automated tests, Manual testing
TFTP (Trivial File [[Transfer Protocol), 289
Theory of Constraint]]s, 138
Thread pools, 318
Threading
and application performance, 230
catching problems with acceptance tests, 189
Thresholds in capacity tests, 238
Throughput, 225, 231
Time in unit test]]s, 184
Time-boxed iterations, 428
Timeouts and acceptance testing, 207–210
Tivoli, 287, 291, 318
TODOs, 74
Toolchain]]
and testing environments, 254
and the deployment pipeline, 114
version controlling, 34, 355
Torvalds, Linus, 385, 395
Touch screen, 204
Traceability
and artifact repository, 373
and dependencies, 363
and the deployment pipeline, 114
and the integration pipeline, 362
from binaries to version control, 165–166, 418
managing and enforcing, 438–439
when pipelining components, 360, 366
Trade-off]]s for nonfunctional requirements, 227
Traffic lights, 172, 322
Transactions for managing test state, 337
Trunk. See Mainline development
Trust and dependency management, 369
Tuple, 43
Turing completeness, 198
Twist, 85–86, 191, 196
Two-phase authentication, 273
U
Ubiquitous language, 125
Ubuntu, 154, 353, 394
UI (User Interface)
and capacity testing, 240–241
and unit testing]], 178–179
See also GUI
Uncontrolled changes, 20, 265, 273, 288, 290, 306
Undeployable software, 105, 391
Union filesystem, 400
Unit test]]s, 89
and asynchrony, 180
and CI, 60
and databases, 179–180, 335–336
and dependency injection, 179
and state, 183
and test doubles, 180–183
and UI, 178–179
as part of commit stage, 120
automating, 135
faking time for, 184
principles and practices of, 177–185
speed of, 89, 177
vs. acceptance tests, 188
See also Commit tests
Upgrading, 261
and deployment scripting, 153
and user-installed software, 267–270
as part of:
release plan, 252
release strategy, 251
Usability
and nonfunctional requirements, 228
testing, 87, 90, 128, 255
Use cases and acceptance tests, 86
User acceptance testing, 86, 135
and test data, 343
in the deployment pipeline, 112
User-installed software
and acceptance testing, 125
and canary releasing, 264
and continuous delivery, 267–270
and deployment automation, 129
crash reports, 267–270
testing using virtualization, 310
upgrading, 267–270
Utility, 421
Utility computing, 312, 316
V
Value creation, 417, 419, 442
Value stream, 106–113, 133, 254, 420
Velocity, 139, 431, 433
Vendor lock-in, 315, 317
Version control
and middleware configuration, 296, 298, 301
as a principle of continuous delivery, 25–26
as part of project initiation, 424
as pre[[requisite for CI, 56–57
definition of, 32
distributed. See Distributed version control
for database scripts, 327
for libraries, 38, 354
stream-based, 388, 399–404
Version control practices
branching]]. See Branching]]
control everything, 33–35
forking, 81
importance of regular check-ins for, 36, 59, 405
locking, 383
mainline. See Mainline development
merging. See Merging
stream-based development, 405
Views, 334, 403
Virtualization
and blue-green deployments, 262
and deployment scripting, 155
and orchestration, 258
and pro[[visioning]] servers, 303
and the deployment pipeline, 304, 307–310
baselines, 53, 305
definition of, 303
for acceptance tests, 217, 220
for creating testing environments, 254
for environment management, 118
for infrastructure consolidation, 304
for managing legacy system]]s, 306
for speeding up tests, 305, 310
for testing nonfunctional requirements, 305
for testing user-installed software, 310
managing virtual environment]]s, 305–307
of networks, 311
reducing risk of delivery through, 303
Snapshot, 305
templates for, 305
Visibility, 4, 113, 362
Visual Basic, 271, 345
Visual SourceSafe, 386
Visualizations, 140, 366
Vnc2swf, 136, 213
W
Walking skeleton, 134
Warm-up period, 245, 259, 261, 272
Warranty, 421
WARs, 159
Waste, 105, 391
Web server]]s, 296
Web service]]s
as an API, 357
capacity testing, 241
WebDriver, 134, 197
WebLogic, 320
WebSphere]], 153
White, 197
Whole team, 124
and acceptance tests, 125
and delivery, 28
and deployment, 271
and the commit stage, 172
Wikipedia, 313
Window driver pattern, 201–204
Windows, 154, 310, 352
Windows Deployment Services, 288–290
Windows Preinstallation Environment, 290
Wireshark, 301
WiX, 283
Word[[Press, 313
Workflow
and distributed version control, 396
and the deployment pipeline, 111
of acceptance testing stage, 187
Working software, 56, 425
Works of art, 49, 288–289, 306
Works on my machine syndrome, 116
Workspace management, 62
WPKG, 291
Wsadmin, 153
X
Xcopy deployment, 353
XDoclet, 158
XML (Extensible Markup Language]]), 43, 147, 297
XUnit, 135, 191, 200
Y
YAGNI (You ain’t gonna need it!), 245
YAML, 43
Yum, 294
IBM Z
Zenoss, 318
Zero defects, 100
Zero-downtime releases, 260–261, 331–334
zone files, 300
Fair Use Sources
Fair Use Sources:
* ddg>Continuous Delivery by Jez Humble and David Farley on DuckDuckGo
* B003YMNVC0 (CDHumbFarl 2010)
CI/CD: Continuous, Continuous Integration / Continuous Delivery, Continuous Deployment. Key Book: Continuous Delivery - Reliable Software Releases through Build, Test, and Deployment Automation
Introduction to Continuous Delivery, Configuration Management, Continuous Integration, The Deployment Pipeline, Automated Testing, Quality Assurance in Continuous Delivery, Managing Data in Continuous Delivery, Version Control for Everything, Build and Deployment Scripting, Environments on Demand, The Role of QA, Decoupling Deployment from Release, Managing Infrastructure and Environments, Monitoring and Feedback Loops, Implementing Continuous Delivery, Cultural and Organizational Change, Scaling Continuous Delivery, Advanced Continuous Delivery Practices, CI/CD Case Studies, CI/CD Conclusion
Continuous Delivery, Automation, Software Development, Build, Test, Deployment, Continuous Integration, Automated Testing, Deployment Pipeline, Configuration Management, Version Control, Quality Assurance, Infrastructure as Code, Monitoring, Feedback Loops, Cultural Change, Organizational Change, DevOps, Build Scripts, Deployment Scripts, Unit Testing, Integration Testing, Acceptance Testing, Performance Testing, Security Testing, Code Quality, Code Review, Feature Toggles, Branching Strategies, Merge Conflicts, Build Tools, CI/CD Tools, Virtualization, Containerization, Docker, Cloud Computing, AWS, Azure, Google Cloud Platform, Microservices, Database Management, Schema Evolution, Data Migration, Environment Management, Production Environment, Staging Environment, Development Environment, Load Balancing, Rollback Strategies, Zero Downtime Deployment, Scalability, Reliability, High Availability, Risk Management, Change Management, Release Management, User Acceptance Testing, Feature Branching, Mainline Development, Trunk-Based Development, Artifact Repository, Log Management, Incident Management, Post-mortem Analysis, Compliance, Regulatory Requirements, Software Licensing, Open Source Software, Third-party Dependencies, Build Optimization, Test Automation Frameworks, Scripting Languages, System Administration, Networking, Data Storage, Encryption, Authentication, Authorization, API Design, Service-Oriented Architecture, Legacy Systems, Technical Debt, Documentation, User Documentation, Developer Documentation, Operational Documentation.
Continuous Integration, Continuous Deployment, Continuous Delivery, Jenkins, GitLab CI/CD, GitHub Actions, CircleCI, Travis CI, Bamboo, TeamCity, Azure DevOps, CodePipeline, CodeBuild, CodeDeploy, Spinnaker, IBM UrbanCode Deploy, Argo CD, Tekton Pipelines, JFrog Artifactory, SonarQube, Docker in CI/CD, Kubernetes in CI/CD, Infrastructure as Code, Configuration Management Tools, Automated Testing in CI/CD, Deployment Strategies, Monitoring and Logging in CI/CD, Security in CI/CD, Microservices and CI/CD, CI/CD for Machine Learning, GitOps, Artifact Repository Management, Build Automation, Test Automation, Deployment Automation, Pipeline as Code, Environment Management, Feature Flag Management, Canary Releases, Blue/Green Deployments, Rollback Strategies, Load Testing in CI/CD, Performance Testing in CI/CD, Integration Testing in CI/CD, Service Virtualization, Secrets Management in CI/CD, Cloud-Native CI/CD, DevSecOps, Version Control Systems, Code Review Practices, CI/CD Metrics and KPIs, Container Orchestration in CI/CD, Serverless Deployments in CI/CD, Compliance in CI/CD, UI Testing in CI/CD, Mobile CI/CD, CDN Integration in CI/CD, Database Changes in CI/CD
Software Release Lifecycle, Software Development Lifecycle, Continuous Integration vs. Continuous Delivery vs. Continuous Deployment, Continuous X, CI/CD Tools, Continuous Improvement, DevOps, DevSecOps, Automation: Pipelines, Automation over Documentation, Artifact Repository, Build Automation - Automated Build - Build Pipeline, Build Server, Test Automation - Automated Testing, Change Management, Configuration Management, Deployment Pipeline; Delivery Ecosystem, Scripting (Build Scripting, Deployment Scripting), Version Control (Git, GitHub, GitHub Alternatives), CI/CD and Serverless - CI/CD and SRE - Cloud Native and CI/CD - CI/CD for Microservices - CI/CD Security - CI/CD and DevSecOps, CI/CD for Data Science - CI/CD and Databases, CI/CD for Machine Learning, CI/CD Bibliography (Continuous Delivery by Jez Humble and David Farley), CI/CD Courses, CI/CD Glossary - Glossaire de CI/CD - French, Awesome CI/CD, CI/CD GitHub, CI/CD Topics. (navbar_cicd - see also navbar_devops, navbar_iac, navbar_gitops)
----
Cloud Monk is Retired (impermanence |for now). Buddha with you. Copyright | © Beginningless Time - Present Moment - Three Times: The Buddhas or Fair Use. Disclaimers
SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.
----