continuous_delivery_by_jez_humble_and_david_farley_index

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

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, Awesome CI/CD, CI/CD GitHub, CI/CD Topics. (navbar_cicd - see also navbar_devops, navbar_iac, navbar_gitops)


© 1994 - 2024 Cloud Monk Losang Jinpa or Fair Use. Disclaimers

SYI LU SENG E MU CHYWE YE. NAN. WEI LA YE. WEI LA YE. SA WA HE.


continuous_delivery_by_jez_humble_and_david_farley_index.txt · Last modified: 2024/04/28 03:40 (external edit)