Index
A
- Accelerate (Forsgren, Humble, and Kim), Rapid Feedback Reduces Context Switching, Loose Coupling, No One-Size Fits All: How to Choose a Branching Strategy, Continuous Delivery Capabilities, Measuring Continuous Delivery
- acceptance testing, Acceptance Testing-Bringing It All Together, How Much Testing Is Enough?
- acceptance tests, Acceptance tests, Turtles All the Way Down
- admin processes, Designing Cloud-Native “Twelve-Factor” Applications
- agile
- Agile Testing (Crispin and Gregory), What to Test? Introducing Agile Testing Quadrants
- Airbrake, Airbrake
- alerting, Alerting
- alerts, Site Reliability Engineering
- all-at-once deployment, All-at-once deployment, Which deployment type should I choose?
- Amazon API Gateway, Testing AWS Lambda Event Handling
- Amazon ECS (Elastic Container Service), The CLI example: Amazon ECS-Creating tasks, deploying services
- Amazon machine images (AMIs), Packaging for the Cloud, Additional Tools for Creating Machine Images
- Amazon Web Services (AWS), Opportunities and Costs of the Cloud, Deployment Platforms and Architecture
- AWS CLI, installing and configuring, Installing and configuring the CLI
- AWS Lambda, Function as a Service: The Emergence of “Serverless”
- AWS VM images, Packaging for the Cloud
- chaos testing, Cloud chaos
- CloudWatch, Collection and Storage
- handling secrets via Parameter Store, Handling Secrets
- running services locally with LocalStack, Smoke Testing with SAM Local
- using AWS Lambda and SAM Local, FaaS: AWS Lamba and SAM Local-Summary
- X-Ray distributed tracing solution, Java Tracing: OpenZipkin, Spring Sleuth, and OpenCensus
- Aminator, Additional Tools for Creating Machine Images
- AMQP protocol, Contract testing at the protocol layer
- Ansible, Continuously Delivering into the Cloud, Continuously Delivering Containers, Working with Infrastructure as Code, Cooking Configuration: Baking or Frying Machines
- Ant, Ant-Releasing and publishing
- Apache Ant (see Ant)
- Apache Avro, Contract testing at the serialization layer
- Apache Benchmark (see Benchmark, testing performance with)
- Apache JMeter (see JMeter)
- Apache Kafka (see Kafka)
- Apache Log4j 2 (see Log4j 2)
- Apache Maven (see Maven)
- API simulation and service virtualization, Pattern #2: Service Virtualization and API Simulation-Capturing and simulating a request with Hoverfly
- APIs
- application performance management, Java Tracing: OpenZipkin, Spring Sleuth, and OpenCensus
- application servers, Traditional Platform Components
- applications, observing, What to Observe: Application, Network, and Machine
- architectural quality, Architectural Quality-Performance and Load Testing
- architecture
- as the stuff that's hard to change, Architecture: “The Stuff That’s Hard to Change”
- best practices for API-driven applications, Best Practices for API-Driven Applications-Good APIs Assist Continuous Testing and Delivery
- contemporary, effects on typical CD build pipeline, Changes with Contemporary Architectures
- deployment platforms and, Deployment Platforms and Architecture-Design and Continually Test for Failure
- diagramming and modeling, Architecture: “The Stuff That’s Hard to Change”
- for business agility, Architecture for Business Agility-Complexity and Cost of Change
- fundamentals of good architecture, Designing Architecture for Continuous Delivery-Architecture for Business Agility
- move toward small services, The Move Toward Small Services-Functions, Lambdas, and Nanoservices
- resources for further learning, Fundamentals of Good Architecture
- ugly architecture, fixing or not fixing, Ugly Architecture: To Fix, or Not to Fix-The application is a “framework tapestry” and contains (too) many application frameworks or middleware
- Artifactory Gradle plugin, Releasing and publishing
- assertions, more expressive, writing, Unit Testing
- atomic top, Diagnostic Tooling: top, ps, netstat, and iostat
- automation, items to automate in releases, Automatic, Repeatable, and Reliable Releases
- Avro, Contract testing at the serialization layer
- awk, Searching and Manipulating Text: grep, awk, and sed
- AWS Lambda (FaaS), Function-as-a-Service/Serverless Functions-CI/CD and FaaS
- "AWS Security Best Practices" whitepaper, Cloud security
- Azure, Opportunities and Costs of the Cloud, Deployment Platforms and Architecture
- Azure App Service, Functionality Provided by a Platform
- Azure Functions, Function as a Service: The Emergence of “Serverless”, Challenges of FaaS
- Azure Monitor, Collection and Storage
- Azure Pipelines, Container Platform Components
- Azure Service Bus, Looking Inside the Cloud
- Azure Storage Blobs, Looking Inside the Cloud
- chaos testing, Cloud chaos
- cloud best practices, Looking Inside the Cloud
- cloud platforms, Continuously Delivering into the Cloud
- public and hybrid cloud offerings, Cloud (IaaS) Platform
- shared responsibility model, Cloud security
- zipkin-azure distributed tracing solution, Java Tracing: OpenZipkin, Spring Sleuth, and OpenCensus
B
- backend as a service (BaaS), Functions, Lambdas, and Nanoservices
- backing services, treating as attached resources, Designing Cloud-Native “Twelve-Factor” Applications
- bad practices and common antipatterns, Bad Practices and Common Antipatterns
- baked-in configuration, “Baked-In” Configuration
- baking VM images, Cooking Configuration: Baking or Frying Machines
- Bash shell, Linux, Bash, and Basic CLI Commands
- Bazel build tool, Bazel, Pants, and Buck, Choosing a Build Tool
- behavior-driven development (BDD), Acceptance Testing, Continuously Deliver Value (Your Highest Priority)
- Benchmark, testing performance with, Basic Performance Testing with Apache Benchmark-Basic Performance Testing with Apache Benchmark
- big-bang fix, avoiding, Each end user/customer has separate codebase and database
- binary flags, Feature Flags
- binary logs, Forms of Logging
- blue/green deployment, Blue/green deployment-Canary deployment, Which deployment type should I choose?, A generic strategy
- BOM (bill of materials) in Maven, Building Spring Boot Uber JARs
- bootstrapping continuous delivery, Bootstrapping Continuous Delivery-Bootstrapping Continuous Delivery
- Boxfuse, Additional Tools for Creating Machine Images
- Buck build tool, Bazel, Pants, and Buck, Choosing a Build Tool
- bugs, FindBugs code analyzer, FindBugs: Static analyzer for bugs
- build pipeline
- build servers, Jenkins
- (see also Jenkins)
- other than Jenkins, Jenkins
- build tools, Challenges with Local Development
- building Java applications, Building Java Applications-Summary, Build on Solid Technical Foundations
- automating the build, Automating the Build-Java Build Tooling Overview
- breakdown of build process, Breaking Down the Build Process
- build tooling overview, Java Build Tooling Overview-Make
- Ant, Ant-Releasing and publishing
- Bazel, Pants, and Buck, Bazel, Pants, and Buck
- Gradle, Gradle-Bazel, Pants, and Buck
- Make, Make
- Maven, Maven-Releasing and publishing
- other JVM build tools, SBT and Leiningen, Other JVM Build Tools: SBT and Leiningen
- choosing a build tool, Choosing a Build Tool
- builds
- automating, Automating Builds-Getting Your Team Onboard
- build, release, run in cloud-native Twelve-Factor apps, Designing Cloud-Native “Twelve-Factor” Applications
- codifying best practice with Maven Enforcer, Automation: PMD, Checkstyle, and FindBugs
- facilitation by good architecture, Coupling, Cohesion, and Continuous Delivery
- keeping the build fast, Keep the Build Fast
- managing broken builds, “Stop the Line!”: Managing Broken Builds
- testing in automated build pipeline, Putting It All Together Within the Pipeline
- burstable infrastructure, Cloud Challenges
- business agility, architecture for, Architecture for Business Agility-Complexity and Cost of Change
- business competitive advantage from rapid feedback, Rapid Feedback Reduces Context Switching
- business speed and agility, need for, Need for Business Speed and Stability
- business value, Codifying the Definition of “Done”
- business-readable DSLs, End-to-End Testing
C
- canary deployment, Canary deployment, Which deployment type should I choose?
- canary testing, future of, Canary deployment
- capabilities (architecture), Loose Coupling
- cat command, Viewing and Editing Text
- category flags, Feature Flags
- CD (see continuous delivery)
- cd command, Navigating directories
- centralized version control systems, Centralized Versus Distributed Version-Control Systems
- change fail percentage, Measuring Continuous Delivery
- chaos engineering, Chaos Testing
- Chaos Monkey, Causing Chaos in Production (Bring in the Monkeys)
- chaos testing, Design and Continually Test for Failure, Chaos Testing-How Much NFR Testing Is Enough?
- chaotic domain, Chaotic
- Checkstyle, Checksyle: coding standard enforcement
- Chef, Cooking Configuration: Baking or Frying Machines
- chgrp command, Working with groups
- Chicago School for sociable unit testing, Solitary Unit Testing
- CI (see continuous integration)
- Clair from CoreOS, Container security
- classes, analysis in ArchUnit, ArchUnit: Unit-Testing Architecture-Generate Design-Quality Metrics with JDepend
- classpath, Breaking Down the Build Process
- cloud (IaaS) platforms, Cloud (IaaS) Platform-Continuously Delivering into the Cloud
- cloud computing, Deployment Platforms and Architecture
- and serverless model, Functions, Lambdas, and Nanoservices
- chaos in the cloud, Cloud chaos
- cloud platform security, Cloud security
- cloud-based IDEs, Pattern #3: Production-in-a-Box
- designing apps and continually testing for failure, Design and Continually Test for Failure
- designing cloud-native Twelve Factor Applications, Designing Cloud-Native “Twelve-Factor” Applications-Designing Cloud-Native “Twelve-Factor” Applications
- logging in the cloud, Logging Best Practices
- metric and log collection tooling, Collection and Storage
- opportunities and costs of, Opportunities and Costs of the Cloud
- packaging applications for the cloud, Packaging for the Cloud-Additional Tools for Creating Machine Images
- Cloud Foundry, Deployment Platforms and Architecture, Platform as a Service, Benefits of PaaS
- A Cloud Guru learning platform, Cloud security
- CloudBees Docker Build and Publish plugin, Installing the plugin
- CloudBees Jenkins X, The plugin example: Kubernetes
- clusters
- Codahale Metrics library, Dropwizard Metrics
- code quality, Code Quality
- code quality analysis, Continuous integration
- code reviews, Code Reviews-Reviewing Pull Requests
- code-level security verification, Code-Level Security Verification-Dependency Verification
- codebase
- coding standard enforcement with Checkstyle, Checksyle: coding standard enforcement
- cohesion, high, High Cohesion
- collectd, collectd
- collection and storage, Collection and Storage-Elastic-Logstash-Kibana
- command-line interface (CLI)
- commits to distributed version control system, Commit
- Common Vulnerabilities and Exposures (CVEs), Dependency Verification
- comparison testing, Making build instances work like a user device
- complex domain, Complex
- complexity
- complicated domain, Complicated
- component testing, Component Testing-In-Process Versus Out-Of-Process, How Much Testing Is Enough?
- component tests, Turtles All the Way Down
- compute instances
- concurrency, scaling out via process model in cloud-native Twelve-Factor apps, Designing Cloud-Native “Twelve-Factor” Applications
- conditionals in Bash shell scripting, Conditionals
- configuration
- configuration management
- consumer-driven contracts, Consumer-Driven Contracts-Contract testing at the serialization layer
- container images, Container Images: Increasing Portability (and Complexity)
- container infrastructure as a service (CIaaS), Container Platform Components
- container scheduler/ochestrator, Container Platform Components
- container-as-a-service (CaaS), Deployment Platforms and Architecture
- containers, Containers (Docker)-Continuously Delivering Containers, Containers: Kubernetes, minikube, and Telepresence-Pattern #4: Environment Leasing
- benefits of, Container Benefits
- building, Building Containers-Fabricating Docker Images with fabric8
- building Java applications and container images, Building Java Applications and Container Images-Deploying into Kubernetes
- building remaining microservice applications and containers, Building the Remaining Applications
- challenges in, Container Challenges
- chaos testing, Container (and Kubernetes) chaos
- container platform components, Container Platform Components
- continuous delivery with applications deployed to, Continuously Delivering Containers
- creating a container image, Creating a Container Image-Building and publishing
- deploying entire Shopfront Java application in Kubernetes, Deploying the Entire Java Application in Kubernetes
- deploying into Kubernetes, Deploying into Kubernetes-Deploying into Kubernetes
- Docker Java Shop sample app, Introducing the “Docker Java Shop” Sample App
- impact of container technology on Java continuous delivery pipeline, Impact of Container Technology
- Linux diagnostic tools unfriendly to, Diagnostic Tooling: top, ps, netstat, and iostat
- managing operational complexity of, Building Containers
- orchestration and scheduling platforms, Container Images: Increasing Portability (and Complexity)
- rapidly evolving container technology, Container Challenges
- security issues, Container security
- simple smoke test in minikube, Simple Smoke Test
- Testcontainers, Component Testing
- versus Docker, Containers (Docker)
- content, versioning via Content-Type header, Version the content
- context (in Kubernetes), Preparing the configuration files
- context mapping, Codifying the Definition of “Done”, Modularity Redux: Embracing Small Services
- continuous delivery (CD)
- about, Setting the Scene
- building on solid technical foundations, Build on Solid Technical Foundations
- challenges implementing with traditional infrastructure, Challenges with Traditional Infrastructure Platforms
- CI/CD in serverless model, CI/CD and FaaS
- continuously delivering value, Continuously Deliver Value (Your Highest Priority)
- essential development process, Essential Development Processes
- expanding in an organization, Expand Continuous Delivery in an Organization
- good APIs assisting in, Good APIs Assist Continuous Testing and Delivery
- impacts of building Java-based microservices, Modularity Redux: Embracing Small Services, Microservices: SOA Meets Domain-Driven Design
- impacts of coupling and cohesion on, Coupling, Cohesion, and Continuous Delivery
- impacts of requirements of modern Java applications, Impact on Continuous Delivery
- impct of deployment platforms on, Impact of Platforms on Continuous Delivery
- implementing chaos testing in CD build pipeline development, Design and Continually Test for Failure
- in container applications, Continuously Delivering Containers
- in platform as a service (PaaS) environments, CI/CD and PaaS
- increasing shared responsibility of software, Increase Shared Responsibility of Software
- into cloud (IaaS) platforms, Continuously Delivering into the Cloud
- introducing on traditional infrastructure platforms, CI/CD on Traditional Infrastructure Platforms
- migrating to, Migrating to Continuous Delivery-Summary
- bad practices and common antipatterns, Additional Guidance and Tips
- best practices for adopting continuous delivery, Start Small, Experiment, Learn, Share, and Repeat
- bootstrapping continuous delivery, Bootstrapping Continuous Delivery-Bootstrapping Continuous Delivery
- continuous delivery capabilities, Continuous Delivery Capabilities
- increasing adoption and leading change, Increase Adoption: Leading Change
- incremental, hard problems, and pilot project, The application is a “framework tapestry” and contains (too) many application frameworks or middleware
- measuring continuous delivery, Measuring Continuous Delivery
- picking a migration project, Picking Your Migration Project
- situational awareness, Situational Awareness-All Models Are Wrong, Some Are Useful
- ugly architecture, fixing or not fixing, Ugly Architecture: To Fix, or Not to Fix
- observability and, Observability and Continuous Delivery-Designing Systems for Observability
- on Kubernetes, Continuous Delivery on Kubernetes
- promoting fast feedback and experimentattion, Promote Fast Feedback and Experimentation
- starting from where you are, Start from Where You Are
- Continuous Delivery (Humble and Farley), Setting the Scene
- continuous delivery services
- continuous deployment, Production
- continuous improvement, Continuous Improvement
- continuous integration (CI), Core Build Pipeline Stages, Continuous integration, Continuous Integration: The First Steps in Creating a Build Pipeline-Summary, Build on Solid Technical Foundations
- continuous testing, Continuous Testing, How Much Testing Is Enough?
- contract tests (see consumer-driven contracts)
- cost (expected) for API in service-level agreements, Rise of the API Economy
- countermeasures for threats, Determine countermeasures and mitigation
- counters, Type of Metrics
- coupling, loose, Loose Coupling
- cp command, Creating and manipulating files
- craftsperson, becoming, Requirements of Modern Java Applications
- cross-functional requirements, Why Test Nonfunctional Requirements?
- (see also nonfunctional requirements)
- curl command, curl-curl
- Cynefin framework, Situational Awareness
D
- data flow diagrams, Decompose the application
- data, bad data causing flaky tests, Data
- databases
- changing, Changing Databases-Communicating via stored procedures: turning the database into just another service
- deployments database, transactions and data constraints in, Bringing down a single instance
- each cutomer with a separate database, Each end user/customer has separate codebase and database
- excluding from component testing, Embedded Data Stores
- Featue Flags DB in Extended Java Shop app (example), Introducing the Extended Java Shop Application
- for recording servers, applications, and instances, Working with Unmanaged Clusters
- in traditional infrastructure platforms, Traditional Platform Components
- running in embedded or in-process/memory mode, Pattern #1: Profiles, Mocks, and Stubs
- working with, in continuous delivery, Deploying Applications
- DBDeploy, Managing database deployments
- Debian Maven plugin, Building RPMs and DEBs OS Packages
- Debian Software Package files (DEB files), Packaging for the Cloud
- debugging
- dependencies
- dependency hell, Build Dependencies
- deploying applications, Deploying and Releasing from the Pipeline, Deploying Applications-Communicating via stored procedures: turning the database into just another service, Build on Solid Technical Foundations
- deployment, Deploying Applications
- (see also deploying applications)
- continuous, Production
- deployment frequency, Measuring Continuous Delivery
- deployment scripts as code, Working with Unmanaged Clusters
- facilitation by good architecture, Coupling, Cohesion, and Continuous Delivery
- in traditional infrastructure platforms, Challenges with Traditional Infrastructure Platforms
- managing in unmanaged clusters, Working with Unmanaged Clusters
- of changes in monolithic applications, Differing change cadence: Independent deployability
- packaging applications for (see packaging applications)
- separating from releases, Separating Deployment and Release
- deployment platforms, Deployment Platforms, Infrastructure, and Continuous Delivery of Java Apps-Functionality Provided by a Platform
- deployments, Core Concepts of Kubernetes
- design
- desired number of instances, Deployment Strategies
- developers
- development
- development and operations (see DevOps)
- development/production parity, Designing Cloud-Native “Twelve-Factor” Applications
- DevOps, Development and Operations, Build on Solid Technical Foundations
- The DevOps Handbook, No One-Size Fits All: How to Choose a Branching Strategy, Picking Your Migration Project
- diagnostic tools (Linux), Diagnostic Tooling: top, ps, netstat, and iostat-Diagnostic Tooling: top, ps, netstat, and iostat
- dig utility, Diagnostic Tooling: top, ps, netstat, and iostat
- disorder domain, Disorder
- disposability in cloud-native Twelve-Factor apps, Designing Cloud-Native “Twelve-Factor” Applications
- distributed tracing, Java Tracing: OpenZipkin, Spring Sleuth, and OpenCensus
- distributed version control systems, Commit, Centralized Versus Distributed Version-Control Systems
- Docker, Containers (Docker)-Continuously Delivering Containers
- Docker Build and Publish plugin, Installing the plugin
- Docker Compose, Pattern #3: Production-in-a-Box
- Docker Java Shop sample app, Introducing the “Docker Java Shop” Sample App
- Docker Maven plugin, Fabricating Docker Images with fabric8
- Docker Swarm, Container Platform Components
- docker top, Diagnostic Tooling: top, ps, netstat, and iostat
- Dockerfiles, Creating Container Images with Docker, Building and publishing
- domain modeling, Codifying the Definition of “Done”
- domain-driven design (DDD), Microservices: SOA Meets Domain-Driven Design
- done, codifying definition of, Codifying the Definition of “Done”
- DREAD threat-risk ranking model, Determine and rank threats
- Dropwizard
- DVCS (see distributed version control systems)
E
- EAR (Enterprise Application Archive) files, WARs and EARs: The Era of Application Server Dominance
- Eclipse MicroProfile, Metrics
- editors, Viewing and Editing Text
- Elasticsearch, Elastic-Logstash-Kibana
- embedded data stores, Embedded Data Stores
- embedded databases and middleware, running, Pattern #1: Profiles, Mocks, and Stubs
- encapsulation, Loose Coupling
- end-to-end testing, End-to-End Testing, How Much Testing Is Enough?
- end-to-end tests, Turtles All the Way Down
- Enterprise Application Archive (EAR) files, WARs and EARs: The Era of Application Server Dominance
- environment leasing, Pattern #4: Environment Leasing
- ephemeral nature of the cloud, Cloud Challenges
- errors
- EU's General Data Protection Regulation (GDPR), Logging Best Practices
- event storming, Codifying the Definition of “Done”
- event-driven model, FaaS/serverless, FaaS Concepts
- exception tracking, Exception Tracking-Exception Tracking
- execute permission, Users and permissions
- Expand and Contract, Multiple-Phase Upgrades
- experimentation, Promote Fast Feedback and Experimentation
- Extended Java Shop sample application, Introducing the Extended Java Shop Application-Introducing the Extended Java Shop Application
- external dependencies, External Dependencies
- external interactions, verifying in integration testing, Verifying External Interactions
- externalized configuration, Externalized Configuration
- eXtreme Programming (XP), Local development, Why Continuous Integration?
F
- FaaS (see functions as a service)
- fabric8, fabricating Docker images with, Fabricating Docker Images with fabric8
- failures
- false positives from code-quality automation tools, Automation: PMD, Checkstyle, and FindBugs
- fat JARs, Executable Fat JARs: Emergence of Twelve-Factor Apps
- fault tolerance, testing, Testing Fault Tolerance
- feature branching, Feature Branching
- feature flags, Feature Flags
- Featue Flags service in Extended Java Shop app, avoiding versioning in, Avoid versioning
- feedback
- feedback loops from tests, Building the Right Feedback Loop
- filesystem
- Find Security Bugs plugin, Code-Level Security Verification-Dependency Verification
- FindBugs, FindBugs: Static analyzer for bugs
- Flyway, Managing database deployments
- focused integration testing, Integration Testing
- Fongo, Embedded Data Stores
- for loop in Bash shell scripting, Loops
- framework tapestry, application as, The application is a “framework tapestry” and contains (too) many application frameworks or middleware
- frying VM images, Cooking Configuration: Baking or Frying Machines
- full cycle developers, Shared Responsibility, Metrics, and Observability
- functional testing, Functional Testing: Correctness and Acceptance-Summary, Continuously Deliver Value (Your Highest Priority)
- acceptance testing, Acceptance Testing-Consumer-Driven Contracts
- building the right feedback loop, Building the Right Feedback Loop
- component testing, Component Testing-In-Process Versus Out-Of-Process
- consumer-driven contracts, Consumer-Driven Contracts-Contract testing at the serialization layer
- continuous testing, Continuous Testing
- dealing with flaky tests, Dealing with Flaky Tests-If Nothing Else Works
- deciding how much testing is enough, How Much Testing Is Enough?-How Much Testing Is Enough?
- deciding what to test, Agile testing quadrants, What to Test? Introducing Agile Testing Quadrants
- how testing supports applications, Turtles All the Way Down
- integration testing, Integration Testing-Testing Fault Tolerance
- outside-in vs. inside-out, Testing Outside-In Versus Testing Inside-Out-Inside-Out
- putting it all together within the pipeline, Putting It All Together Within the Pipeline
- synthetic transactions, Synthetic Transactions
- unit testing, Unit Testing-Dealing with Flaky Tests
- functions as a service (FaaS), Function as a Service: The Emergence of “Serverless”, Functions, Lambdas, and Nanoservices
G
- Gatling, load testing with, Load Testing with Gatling-Load Testing with Gatling
- gauges, Type of Metrics
- GAV coordinates of dependencies, Build Dependencies
- gclouds tool, Telepresence: Working Remotely, Locally
- Gerritt (code review tool), Reviewing Pull Requests
- Git, Git Primer-Working Effectively with DVCS
- git flow toolset, Gitflow
- Gitflow
- Given/When/Then steps in BDD interactions, Defining steps
- GNU Make (see Make)
- goals, determining, Codifying the Definition of “Done”, Codifying the Definition of “Done”
- Google App Engine, Platform as a Service
- Google Cloud Platform (GCP), Deployment Platforms and Architecture
- Google Compute Engine (GCE), Cloud chaos
- Google Jib, Fabricating Docker Images with fabric8
- Gradle, Gradle-Bazel, Pants, and Buck
- gradle-release plugin, Releasing and publishing
- graphical representation of deployment strategies, Deployment Strategies
- Gremlin (chaos testing tool), Causing Chaos in Production (Bring in the Monkeys)
- grep utiiity, Searching and Manipulating Text: grep, awk, and sed
- groups (Linux), Working with groups
H
- H2, Embedded Data Stores
- HashiCorp's Terraform, Continuously Delivering into the Cloud, Continuously Delivering Containers, Working with Infrastructure as Code
- head command, Viewing and Editing Text
- health checks, It All Starts (and Ends) with Health Checks-Consulting health-check endpoints
- help (Linux), Users and permissions
- Heroku, Designing Cloud-Native “Twelve-Factor” Applications
- (see also Twelve-Factor App)
- high coupling and dependency management, Build Dependencies
- histograms, Type of Metrics
- home directory, Navigating directories
- Hoverfly, Stubbing or Virtualizing Third-Party Services
- HtmlUnit, Making build instances work like a user device
- HTTP calls and JSON manipulation, HTTP Calls and JSON Manipulation-jq
- curl command, curl-curl
- manipulating JSON with jq utility, jq
- HTTP status codes
- HTTPie, HTTPie-HTTPie
- Hub tool for Git and GitHub, Hub: An Essential Tool for Git and GitHub
- hybrid cloud, Cloud (IaaS) Platform
- hypervisors, Installing Vagrant
I
- IaaS (see infrastructure as a service)
- IAM (Identity and Access Management), Cloud security
- IBM Bluemix, Benefits of PaaS
- IDEs (integrated development environments), Challenges with Local Development
- immutable infrastructure, Benefits of the Cloud
- improvement, continuous, Continuous Improvement
- in-memory message queues, In-Memory Message Queues
- in-process vs. out-of-proccess component testing, In-Process Versus Out-Of-Process, Testing Outside-In Versus Testing Inside-Out
- Independent Systems Architecture Principles, Designing Cloud-Native “Twelve-Factor” Applications
- INFO logging level, Forms of Logging
- infrastructure
- infrastructure as a service (IaaS)
- infrastructure as code (IaC)
- inside-out testing, Inside-Out
- (see also outside-in vs. inside-out testing)
- instances (EC2), Amazon ECS concepts
- integrated development environments (IDEs), Challenges with Local Development
- integration testing, Integration Testing-Testing Fault Tolerance
- internal resources or interfaces, creating, Creating Internal Resources/Interfaces
- iostat utility, Diagnostic Tooling: top, ps, netstat, and iostat
J
- JAR (Java Archive) files, WARs and EARs: The Era of Application Server Dominance
- Java
- java (command-line utility), Breaking Down the Build Process
- java -jar command, Building a JAR: Step-by-Step
- Java Development Kit (see JDK)
- Java development, evolution of, Evolution of Java Development-Summary
- Java Runtime Environment (see JRE)
- Java Shop application, extended (example), Introducing the Extended Java Shop Application-Introducing the Extended Java Shop Application
- Java Virtual Machines (see JVMs)
- javac, Breaking Down the Build Process
- JAVA_HOME environment variable, Installation, Installation
- JBehave, Defining steps
- jclouds toolkit, Additional Tools for Creating Machine Images
- JDepend, generating design-quality metrics with, Generate Design-Quality Metrics with JDepend-Performance and Load Testing
- JDK, Designing Cloud-Native “Twelve-Factor” Applications, Installation, Installation, Challenges with Local Development, Automation: PMD, Checkstyle, and FindBugs, Container security
- Jenkins, Jenkins-Jenkins
- JGit-Flow Maven plugin, Releasing and publishing
- JHades utility, Building WAR Files
- JMeter, Load Testing with Gatling
- JMock, Unit Testing
- JRE (Java Runtime Environment), Container Challenges, Container security
- JSON
- JUnit, Unit Testing, ArchUnit: Unit-Testing Architecture
- just-in-time (JIT) configuration, Designing Cloud-Native “Twelve-Factor” Applications
- JVMs (Java Virtual Machines), Designing Cloud-Native “Twelve-Factor” Applications, Cloud Challenges, Container Challenges, Breaking Down the Build Process, External Dependencies
K
- Kafka, In-Memory Message Queues
- key management in cloud platforms, Cloud security
- Kibana, Elastic-Logstash-Kibana
- kubeconfig file, Preparing the configuration files
- kubectl get pods command, Deploying the Entire Java Application in Kubernetes
- kubectl get svc command, Deploying into Kubernetes
- Kubernetes, Container Platform Components, Kubernetes-Continuous Delivery on Kubernetes, Containers: Kubernetes, minikube, and Telepresence-Pattern #4: Environment Leasing
- Amazon ECS and, The CLI example: Amazon ECS
- benefits of, Benefits of Kubernetes
- challenges in, Kubernetes Challenges
- chaos testing, Container (and Kubernetes) chaos
- clarifying some concepts, Preparing the configuration files
- combining with Amazon EC2, The CLI example: Amazon ECS
- connecting local service to remote cluster using Telepresence, Telepresence: Working Remotely, Locally-Pattern #4: Environment Leasing
- continuous delivery on, Continuous Delivery on Kubernetes
- core concepts, Core Concepts of Kubernetes
- creating service definitions for, Creating service definitions
- deploying a container into, Deploying into Kubernetes-Deploying into Kubernetes
- deploying container image to, automatic step for, Preparing the configuration files
- deploying entire Shopfront Java application in, Deploying the Entire Java Application in Kubernetes
- deploying to production cluster using a plugin, The plugin example: Kubernetes
- handling secrets, Handling Secrets
- health checks, Consulting health-check endpoints
- Helm packaging for, Creating the deployment job
- installing Kubernetes CD Jenkins plugin, Installing the plugin
- possibly evolving into a PaaS, Kubernetes Challenges
- registering credentials in Jenkins, Registering Kubernetes credentials
- serverless platform running on top of, Challenges of FaaS
- strategy section, adding to service definition, Deployment Strategies
- viewing deployed Java application using minikube, Viewing the Deployed Application
L
- labels (Docker), Creating Container Images with Docker
- labels (Kubernetes), Core Concepts of Kubernetes
- language-specific issues (in code reviews), Language-specific issues
- launch coordination checklists, Why Test Nonfunctional Requirements?
- Launch4j, Additional OS Package Build Tools (with Windows Support)
- lead time, Measuring Continuous Delivery
- Leading Change (Kotter), Increase Adoption: Leading Change
- less command, Viewing and Editing Text
- levels of logging, Forms of Logging, Logging Best Practices
- Linux
- users, permissions, and groups
- Linux, Bash, and CLI commands, Linux, Bash, and Basic CLI Commands-HTTP Calls and JSON Manipulation
- diagnostic tooling, top, ps, netstat, and iostat, Diagnostic Tooling: top, ps, netstat, and iostat-HTTP Calls and JSON Manipulation
- often no undo on CLI, Creating and manipulating files
- package managers, Diagnostic Tooling: top, ps, netstat, and iostat
- redirects, pipes, and filters, Joining Everything Together: Redirects, Pipes, and Filters
- searching and manipulating text with grep, awk, and sed, Searching and Manipulating Text: grep, awk, and sed
- users, permissions, and groups, Users, Permissions, and Groups-Working with groups
- viewing and editing text, Viewing and Editing Text-Viewing and Editing Text
- working with the filesystem, Working with the Filesystem-Creating and manipulating files
- load testing, Performance and Load Testing
- local development, Local development, Working Locally (Like It Was Production)
- LocalStack, running AWS services locally, Smoke Testing with SAM Local
- Log4j
- configuring to report exceptions to Airbrake service, Airbrake
- Log4j 2, Log4j 2
- Logback, Building a JAR: Step-by-Step
- logging, Site Reliability Engineering, Why Observe?, How to Observe: Monitoring, Logging, and Tracing, Logging-Logging Best Practices
- best practices, Logging Best Practices
- collection and storage of logging data with ELK stack, Elastic-Logstash-Kibana
- commercial log collection tooling, Collection and Storage
- following log file generation in real time, Viewing and Editing Text
- forms of, Forms of Logging
- guarding against over-logging, Forms of Logging
- Log4j 2, Log4j 2
- rsyslog, rsyslog
- SLF4J, SLF4J
- treating logs as event streams, Designing Cloud-Native “Twelve-Factor” Applications
- warning against inventing your own logger, Forms of Logging
- Logstash, Elastic-Logstash-Kibana
- London School for solitary unit testing, Solitary Unit Testing
- loops in Bash shell scripting, Loops
- loose coupling and dependency management, Build Dependencies
- loosely coupled systems, Loose Coupling
- ls command, Navigating directories
- lzPack build tool, Additional OS Package Build Tools (with Windows Support)
M
- machine images
- maintenance, Observing and maintenance
- MAJOR, MINOR, and PATCH versions, Semantic Versioning (semver)
- Make, Make
- man and help (Linux), Users and permissions
- manifests (JAR), Building a JAR: Step-by-Step
- Mapped Diagnostic Context (MDC), SLF4J
- maturity models, Measuring Continuous Delivery
- Maven, Maven-Releasing and publishing
- build example, Build example
- including ArchUnit in pom.xml, ArchUnit: Unit-Testing Architecture
- Including findbugs-maven-plugin with findsecbugs-plugin in a project, Code-Level Security Verification
- including JDepend in pom.xml, Generate Design-Quality Metrics with JDepend
- including Log4j 2, Log4j 2
- installation, Installation
- JGit-Flow plugin, Releasing and publishing
- packaging a project into a JAR file, Building a JAR: Step-by-Step-Building a JAR: Step-by-Step
- Parent project object model (POM), Build Dependencies
- profiles to use when running automated tests via, Pattern #1: Profiles, Mocks, and Stubs
- project pom.xml including dependencies with known vulnerabilities, Dependency Verification
- pros and cons as build tool choice, Choosing a Build Tool
- releasing and publishing build artifacts, Releasing and publishing
- specifying dependency version with, Build Dependencies
- Maven Assembly plugin, Building a Fat Executable “Uber” JAR
- Maven Checkstyle plugin, Checksyle: coding standard enforcement
- Maven Debian plugin, Building RPMs and DEBs OS Packages
- Maven Dependency Check plugin, Dependency Verification
- Maven Docker Compose plugin, Bringing It All Together
- Maven Docker plugin, Fabricating Docker Images with fabric8
- Maven Enforcer plugin, Automation: PMD, Checkstyle, and FindBugs
- Maven FindBugs plugin, FindBugs: Static analyzer for bugs
- Maven Jar plugin, Building a Fat Executable “Uber” JAR
- Maven PMD plugin, PMD: static code analyzer
- Maven Release plugin, Releasing and publishing
- Maven RPM pluging, Building RPMs and DEBs OS Packages-Building RPMs and DEBs OS Packages
- Maven Shade plugin, Maven Shade Plugin-Building Spring Boot Uber JARs, Skinny JARs—Deciding Not to Build Fat JARs, AWS Lambda Scaffolding
- Maven SlimFast plugin, Skinny JARs—Deciding Not to Build Fat JARs
- Maven Spring Boot plugin
- Maven WAR plugin, Building WAR Files
- maximum number of instances, Deployment Strategies
- mean time to restore (MTTR), Measuring Continuous Delivery
- Measuring Continuous Delivery (Smith), Measuring Continuous Delivery
- mechanical sympathy, Cultivating Mechanical Sympathy
- mediated APIs, Rise of the API Economy
- merging code regularly, Merge Code Regularly
- message contracts, Message Contracts-Contract testing at the serialization layer
- message queues, in-memory, In-Memory Message Queues
- messaging middleware, WARs and EARs: The Era of Application Server Dominance
- metadata
- meters, Type of Metrics
- method calls, stubbing, Stubbing method calls
- method signatures
- metrics, Shared Responsibility, Metrics, and Observability, Metrics-Best Practices with Metrics, Increase Shared Responsibility of Software
- alerts for, Alerting
- best practices with, Best Practices with Metrics
- capturing for architectural qualities, Bad Architecture Limits Business Velocity
- commercial metric collection tooling, Collection and Storage
- defining metrics of success, Start Small, Experiment, Learn, Share, and Repeat
- Dropwizard Metrics library, Dropwizard Metrics
- easier access to in good APIs, Good APIs Assist Continuous Testing and Delivery
- limiting factor in metrics tools, Elastic-Logstash-Kibana
- metric collection tooling
- Micrometer, Micrometer
- Spring Boot Actuator, Spring Boot Actuator
- types of, Type of Metrics
- Micrometer, Micrometer
- microservices, Modularity Redux: Embracing Small Services
- Microsoft Azure (see Azure)
- Microsoft DREAD threat-risk ranking model, Determine and rank threats
- middleware
- migrations
- minikube
- minimum in-service deployment, Minimum in-service deployment, Which deployment type should I choose?
- minimum number of health instances, Deployment Strategies
- mitigation of threats, Determine countermeasures and mitigation
- mkdir command, Creating and manipulating files
- mocking and stubbing, Mocking, Stubbing, and Service Virtualization-Stubbing method calls
- in good APIs, Good APIs Assist Continuous Testing and Delivery
- mocking dependencies in unit testing, Unit Testing
- mocking frameworks for Java, Solitary Unit Testing
- mocking with Mockito, Mocking with Mockito-Stubbing method calls
- profiles, mocks, and stubs, Pattern #1: Profiles, Mocks, and Stubs-Mocking with Mockito
- stub and mock test doubles, Test Doubles
- stubbing or virtualizing third-party services, Stubbing or Virtualizing Third-Party Services
- watching out for mock complexity, Stubbing method calls
- Mockito, Unit Testing
- modularization, Modularity Redux: Embracing Small Services
- monitoring, Why Observe?, How to Observe: Monitoring, Logging, and Tracing
- Monkeyless Chaos, FaaS/Serverless chaos
- monolithic applications
- Mountebank, Pattern #2: Service Virtualization and API Simulation
- multimodule projects, automating build, Multimodule Projects
- multiple-phase upgrades, Multiple-Phase Upgrades
- mv command, Creating and manipulating files
N
- namespaces (Kubernetes), Preparing the configuration files
- Netflix Chaos Monkey, Chaos Testing, Causing Chaos in Production (Bring in the Monkeys)
- Netflix Hystrix library, Creating Internal Resources/Interfaces
- Netflix Simian Army, Causing Chaos in Production (Bring in the Monkeys)
- Netflix, full cycle developers, Shared Responsibility, Metrics, and Observability
- netstat utility, Diagnostic Tooling: top, ps, netstat, and iostat
- network access control lists (NACLs), Cloud security
- networks
- newgrp command, Working with groups
- nondeterministic events, Nondeterministic Events
- nonfunctional requirements
- for APIs, Rise of the API Economy
- testing, What to Test? Introducing Agile Testing Quadrants, System-Quality Attributes Testing: Validating Nonfunctional Requirements-Summary, Continuously Deliver Value (Your Highest Priority)
- architectural quality, Architectural Quality-Performance and Load Testing
- chaos testing, Chaos Testing-How Much NFR Testing Is Enough?
- code quality, Code Quality
- determining how much testing, How Much NFR Testing Is Enough?
- performance and load testing, Performance and Load Testing-Load Testing with Gatling
- reasons for testing, Why Test Nonfunctional Requirements?
- security, vulnerabilities, and threats, Security, Vulnerabilities, and Threats-Determine countermeasures and mitigation
- validation of, Acceptance tests
- nonfunctional requirements (APIs), Rise of the API Economy
- NoSQL databases, Changing Databases
- nslookup utility, Diagnostic Tooling: top, ps, netstat, and iostat
- Nullsoft Scriptable Install System (NSIS), Additional OS Package Build Tools (with Windows Support)
O
- observability, Shared Responsibility, Metrics, and Observability, Observability: Monitoring, Logging, and Tracing-Summary, Bootstrapping Continuous Delivery, Increase Shared Responsibility of Software
- and continuous delivery, Observability and Continuous Delivery-Designing Systems for Observability
- alerting, Alerting
- how to observe, monitoring, logging, and tracing, How to Observe: Monitoring, Logging, and Tracing
- observing application, network, and machine, What to Observe: Application, Network, and Machine
- reasons for observing, Why Observe?
- collection and storage of metric and logging data, Collection and Storage-Elastic-Logstash-Kibana
- designing systems for, Designing Systems for Observability
- exception tracking, Exception Tracking-System-Monitoring Tooling
- facilitation by good architecture, Coupling, Cohesion, and Continuous Delivery
- logging, Logging-Logging Best Practices
- metrics, Metrics-Best Practices with Metrics
- monitoring and, Why Observe?
- request tracing, Request Tracing-Recommended Practices for Tracing
- system-monitoring tooling, System-Monitoring Tooling-Sensu
- visualization, Visualization-Visualization for Developers
- observe, orient, decide, and act (OODA) loop, Start Small, Experiment, Learn, Share, and Repeat
- observing and maintenance, Observing and maintenance
- OpenCensus, Java Tracing: OpenZipkin, Spring Sleuth, and OpenCensus
- OpenJDK 8 JRE, Building Java Applications and Container Images
- OpenZipkin, Java Tracing: OpenZipkin, Spring Sleuth, and OpenCensus
- operating systems, Automation: PMD, Checkstyle, and FindBugs
- operational requirements, What to Test? Introducing Agile Testing Quadrants
- (see also nonfunctional requirements)
- operations, Development and Operations
- OS-level virtualization (containers), Container Platform Components
- out-of-process component testing, In-Process Versus Out-Of-Process
- outside-in vs. inside-out testing, Testing Outside-In Versus Testing Inside-Out-Inside-Out
- OWASP Application Threat modeling website, Next Steps: Threat Modeling
- OWASP Maven Dependency Check plugin, Dependency Verification
P
- package managers, Viewing and Editing Text, Diagnostic Tooling: top, ps, netstat, and iostat
- packaging applications, Packaging Applications for Deployment-Summary, Build on Solid Technical Foundations
- Packer, Creating Machine Images for Multiple Clouds with Packer-Creating Machine Images for Multiple Clouds with Packer, Additional Tools for Creating Machine Images
- pagers, Viewing and Editing Text
- pair programming, Code Reviews
- Pants build tool, Bazel, Pants, and Buck, Choosing a Build Tool
- parent build descriptor, Build Dependencies
- passwd command, Users and permissions
- performance
- personally identifiable information (PII), Logging Best Practices
- ping utility, Diagnostic Tooling: top, ps, netstat, and iostat
- Ping-Pong TDD, Unit Testing
- pipes, Joining Everything Together: Redirects, Pipes, and Filters
- plan-do-check-act (PDCA), Start Small, Experiment, Learn, Share, and Repeat
- platform as a service (PaaS), Deployment Platforms and Architecture, Platform as a Service-CI/CD and PaaS
- platform leasing pattern, Pattern #4: Environment Leasing
- platform-as-a-service (PaaS), Deployment Platforms and Architecture
- plugins (build tooling), Plugins
- PMD (static code analyzer), PMD: static code analyzer
- pods (Kubernetes), Core Concepts of Kubernetes
- POM (project object model) in Maven, Building Spring Boot Uber JARs
- port binding, Designing Cloud-Native “Twelve-Factor” Applications
- PowerfulSeal, Container (and Kubernetes) chaos
- PowerMock, Unit Testing
- preemptible instances, Telepresence: Working Remotely, Locally
- preproduction, causing chaos in, Causing Chaos in Preproduction
- private cloud, Cloud (IaaS) Platform
- processes
- product-search service, Pattern #1: Profiles, Mocks, and Stubs
- production
- Production Readiness Reviews (PRRs), Site Reliability Engineering
- production-in-a-box, Pattern #3: Production-in-a-Box
- production-ready checklists, Why Test Nonfunctional Requirements?
- profiles, Pattern #1: Profiles, Mocks, and Stubs, “Baked-In” Configuration
- Prometheus, Prometheus
- proxies, specifying with HTTPie, HTTPie
- ps command, Diagnostic Tooling: top, ps, netstat, and iostat
- public cloud, Cloud (IaaS) Platform
- pull requests, reviewing, Reviewing Pull Requests
- Puppet, Continuously Delivering into the Cloud, Cooking Configuration: Baking or Frying Machines
- pwd command, Navigating directories
R
- reactive functions, Challenges of FaaS
- read permission, Users and permissions
- Red Hat
- redirects, Joining Everything Together: Redirects, Pipes, and Filters
- regular expressions (regex), Searching and Manipulating Text: grep, awk, and sed
- releasable artifacts, Deploying Applications
- release engineering, Release Engineering
- release Gradle plugin, Releasing and publishing
- Release It! (Nygard), Design and Continually Test for Failure
- Release Maven plugin, Releasing and publishing
- releases
- releasing functionality, Releasing Functionality-Deprecating old APIs, Build on Solid Technical Foundations
- replication controllers, Deploying into Kubernetes
- repositories
- request tracing, Request Tracing-Recommended Practices for Tracing
- Resilience as a Continuous Delivery Enabler blog post, Bootstrapping Continuous Delivery
- resilience testing, human side of, Chaos Testing
- resources, unavailable, causing flaky tests, Resource That Is Not Available Yet
- responsibility, shared, Shared Responsibility, Metrics, and Observability
- responsiveness, Need for Business Speed and Stability
- RestAssured library, In-Process Versus Out-Of-Process
- RESTful API contracts, RESTful API Contracts-Interaction first, contract second
- RESTful APIs
- rm command, Creating and manipulating files
- robustness
- rolling deployment, Rolling deployment, Which deployment type should I choose?, A generic strategy
- routing
- RPM packages, building, Building RPMs and DEBs OS Packages-Building RPMs and DEBs OS Packages
- rsyslog, rsyslog
- runtimes
S
- SaaS-based API offerings, Best Practices for API-Driven Applications
- SaltStack, Cooking Configuration: Baking or Frying Machines
- SAM (Serverless Application Model), FaaS: AWS Lamba and SAM Local
- SBT (Simple Build Tool), Other JVM Build Tools: SBT and Leiningen
- scalability
- scmversion-gradle-plugin, Releasing and publishing
- scope progression, Turtles All the Way Down
- scripting, Basic Scripting-Summary
- secrets, handling, Handling Secrets
- security, Security, Vulnerabilities, and Threats-Determine countermeasures and mitigation
- sed, Searching and Manipulating Text: grep, awk, and sed
- Selenium WebDriver, Mimicking user action, Bringing It All Together
- self-contained systems (SCS), Designing Cloud-Native “Twelve-Factor” Applications
- semantic versioning, Build Dependencies, Releasing and Publishing Artifacts, Semantic Versioning (semver)-Semantic Versioning (semver)
- semver (see semantic versioning)
- sensitive data, not logging, Logging Best Practices
- Sensu, Sensu
- SerenityBDD, Defining steps, Bringing It All Together
- serverless
- Serverless Application Model (SAM), FaaS: AWS Lamba and SAM Local
- serverless model, Function as a Service: The Emergence of “Serverless”, Functions, Lambdas, and Nanoservices
- (see also functions as a service)
- account-wide limits, Challenges of FaaS
- AWS Lambda and SAM Local, FaaS: AWS Lamba and SAM Local-Summary
- benefits of, FaaS Benefits
- chaos testing in serverless platforms, FaaS/Serverless chaos
- CI/CD and, CI/CD and FaaS
- exploring deploy and release for, Introducing the Extended Java Shop Application
- FaaS/serverless concepts, FaaS Concepts
- going serverless with ECS Fargate, The CLI example: Amazon ECS
- security issues for serverless platforms, FaaS/Serverless security
- understanding serverless Java runtime, Challenges of FaaS
- service meshes, Releasing Functionality
- service virtualization, Designing Cloud-Native “Twelve-Factor” Applications, Pattern #2: Service Virtualization and API Simulation-Capturing and simulating a request with Hoverfly
- service-level agreements (SLAs), Rise of the API Economy
- service-oriented architecture (SOA), WARs and EARs: The Era of Application Server Dominance
- services
- creating in Amazon ECS, Creating tasks, deploying services
- creating Kubernetes service definitions, Creating service definitions
- deploying in Amazon ECS, Creating tasks, deploying services
- in Amazon ECS, Amazon ECS concepts
- in cloud (IaaS) platforms, Looking Inside the Cloud
- in container platforms, Container Platform Components
- in Kubernetes, Core Concepts of Kubernetes
- in PaaS environments, Peeking Inside a PaaS
- move toward small services, The Move Toward Small Services-Functions, Lambdas, and Nanoservices
- third-party, stubbing or virtualizing, Stubbing or Virtualizing Third-Party Services
- turning the database into just another service, Communicating via stored procedures: turning the database into just another service
- Shade plugin (see Maven Shade plugin)
- shadow IT, APIs consumed as, Rise of the API Economy
- shared responsibility, Shared Responsibility, Metrics, and Observability, Why Test Nonfunctional Requirements?, Cloud security
- shifting left, Automatic, Repeatable, and Reliable Releases
- Simian Army, Chaos Testing, Causing Chaos in Production (Bring in the Monkeys)
- simple domain, Simple
- single responsibility principle, Microservices: SOA Meets Domain-Driven Design
- single target deployment, Single target deployment, Which deployment type should I choose?
- site reliability engineering (SRE), Site Reliability Engineering-Release Engineering, Build on Solid Technical Foundations
- situational awareness, Situational Awareness-All Models Are Wrong, Some Are Useful, Start from Where You Are
- SLF4J (Simple Logging Facade for Java), SLF4J, Logging Best Practices
- support for Mapped Diagnostic Context, SLF4J
- SlimFast Maven plugin, Skinny JARs—Deciding Not to Build Fat JARs
- smart throttles, Feature Flags
- sociable unit testing, Sociable Unit Testing
- Software Architecture for Developers (Brown), Architecture: “The Stuff That’s Hard to Change”
- software configuration management (SCM), Managing Configuration and Secrets
- (see also configuration; configuration management)
- solitary unit testing, Solitary Unit Testing
- spans, Traces, Spans, and Baggage
- Spock testing framework, Unit Testing
- SpotBugs, FindBugs: Static analyzer for bugs
- Spotify docker-maven-plugin, Fabricating Docker Images with fabric8
- Spring Boot Actuator, Spring Boot Actuator
- Spring Boot Maven plugin
- Spring Cloud Sleuth, Java Tracing: OpenZipkin, Spring Sleuth, and OpenCensus
- stability and speed, need for, Need for Business Speed and Stability
- staging, Staging
- startup and shutdown, fast and graceful, Designing Cloud-Native “Twelve-Factor” Applications
- stateless processes, Designing Cloud-Native “Twelve-Factor” Applications
- sticky parameters, Avoid versioning
- storage
- strace utility, Diagnostic Tooling: top, ps, netstat, and iostat
- STRIDE threat categorization, Determine and rank threats
- structured logging, Forms of Logging
- stubbing (see mocking and stubbing)
- Stubby4j, Pattern #2: Service Virtualization and API Simulation
- sudo command, Understanding sudo—superuser do
- sudoers file, Understanding sudo—superuser do
- synthetic transactions, Synthetic Transactions
- sysdig utility, Diagnostic Tooling: top, ps, netstat, and iostat
- syslog, logging to, rsyslog
- system quality attributes, validation of, Acceptance tests
- system-monitoring tooling, System-Monitoring Tooling-Sensu
- system-quality attributes, Why Test Nonfunctional Requirements?
- (see also nonfunctional requirements)
- system-quality attributes testing (see nonfunctional requirements, testing)
- systemd-cgtop utility, Diagnostic Tooling: top, ps, netstat, and iostat
T
- tail command, Viewing and Editing Text
- task definitions (Amazon ECS), Amazon ECS concepts
- tasks (Amazon ECS), Amazon ECS concepts
- tcpdump utility, Diagnostic Tooling: top, ps, netstat, and iostat
- Telepresence, Telepresence: Working Remotely, Locally-Pattern #4: Environment Leasing
- Terraform (see HashiCorp's Terraform)
- test doubles, Test Doubles
- test-driven development (TDD), Why Continuous Integration?, What to Test? Introducing Agile Testing Quadrants, Interaction first, contract second, Unit Testing
- testing
- API-based applications, Build APIs “Outside-In”
- building the right feedback loop, Building the Right Feedback Loop
- continually testing for failure in cloud platforms, Design and Continually Test for Failure
- dealing with flaky tests, Dealing with Flaky Tests-If Nothing Else Works
- deciding how much is enough, How Much Testing Is Enough?-How Much Testing Is Enough?
- deciding what to test, Agile testing quadrants, What to Test? Introducing Agile Testing Quadrants
- facilitation offered by good architecture, Coupling, Cohesion, and Continuous Delivery
- functional (see functional testing)
- identifying test types in build tools, Putting It All Together Within the Pipeline
- nonfunctional requrements, System-Quality Attributes Testing: Validating Nonfunctional Requirements-Summary, Continuously Deliver Value (Your Highest Priority)
- architectural quality, Architectural Quality-Performance and Load Testing
- chaos testing, Chaos Testing-How Much NFR Testing Is Enough?
- code quality, Code Quality
- determining how much testing, How Much NFR Testing Is Enough?
- performance and load testing, Performance and Load Testing-Load Testing with Gatling
- reasons for testing, Why Test Nonfunctional Requirements?
- security, vulnerabilities, and threats, Security, Vulnerabilities, and Threats-Determine countermeasures and mitigation
- not ignoring failing tests in continuous integration, Don’t @Ignore Tests
- of serverless applications, Challenges of FaaS
- outside-in vs. inside-out, Testing Outside-In Versus Testing Inside-Out-Inside-Out
- reasons for testing software, Why Test Software?
- resources for further learning, Functional Testing: Correctness and Acceptance
- TestNG, Unit Testing
- text
- text editors, Viewing and Editing Text
- threat modeling, Next Steps: Threat Modeling-Determine countermeasures and mitigation
- throttle flags, Feature Flags
- tickets, Site Reliability Engineering
- timers, Type of Metrics
- top command, Diagnostic Tooling: top, ps, netstat, and iostat
- touch command, Creating and manipulating files
- tracert utility, Diagnostic Tooling: top, ps, netstat, and iostat
- tracing, Why Observe?, How to Observe: Monitoring, Logging, and Tracing
- traditional infrastructure, Traditional Infrastructure Platforms
- (see also infrastructure)
- trunk-based development, Trunk-based Development
- turtles all the way down, Turtles All the Way Down-Turtles All the Way Down
- Twelve-Factor App, Executable Fat JARs: Emergence of Twelve-Factor Apps
U
- understandability of code, Understandability
- unit testing, Unit Testing-Dealing with Flaky Tests, How Much Testing Is Enough?
- unit tests, Turtles All the Way Down
- upgrades, multiple phase, Multiple-Phase Upgrades
- user acceptance tests, User acceptance tests
- user story mapping, Codifying the Definition of “Done”
- useradd command, Users and permissions
- users, Users, Permissions, and Groups-Working with groups
V
- Vagrant, VMs: Vagrant and Packer-Creating a Vagrantfile
- VCR/Betamax, Pattern #2: Service Virtualization and API Simulation
- Veewee, Additional Tools for Creating Machine Images
- verifying interactions
- version control, Bootstrapping Continuous Delivery
- version control systems (distributed), commits to, Commit
- version lock, Build Dependencies
- versioning
- Versions Maven plugin, Releasing and publishing
- vi and vim editors, Viewing and Editing Text
- virtual private cloud (VPC) networking, Cloud security
- virtual users, Basic Performance Testing with Apache Benchmark
- virtualized hardware, Cloud (IaaS) Platform
- virtualized services, Test Doubles
- visual regression and comparison testing, Making build instances work like a user device
- visualization, Visualization-Visualization for Developers
- VM hypervisors, Installing Vagrant
- vulnerabilities
W
- WAR (Web Archive) files, WARs and EARs: The Era of Application Server Dominance
- WebJars, packaging client-side JavaScript libraries as, External Dependencies
- Windows
- WireMock, Pattern #2: Service Virtualization and API Simulation, Stubbing or Virtualizing Third-Party Services
- working locally, Working Locally (Like It Was Production)-Summary, Build on Solid Technical Foundations
- challenges with local development, Challenges with Local Development
- mocking, stubbing, and service virtualization, Mocking, Stubbing, and Service Virtualization-Capturing and simulating a request with Hoverfly
- serverless, AWS Lambda and SAM Local, FaaS: AWS Lamba and SAM Local-Summary
- virtual machines, creating with Vagrant and Packer, VMs: Vagrant and Packer-Pattern #3: Production-in-a-Box
- with Docker containers and Kubernetes, Containers: Kubernetes, minikube, and Telepresence-Pattern #4: Environment Leasing
- worth-based development, FaaS Benefits
- write permission, Users and permissions