A/B testing, 198
access to websites through the Internet, 52
ACS (Azure Container Service), 129–130, 132–133
ACS Resource Provider, 121–134
ADD, 60
adding
content to containers, using volumes, 53–54
dependencies to microservices, 111
agents, Apache Mesos, 148
aggregation, log aggregation, 217–218
Alpine, 93
announcements, service discovery, 151
anti-corruption layer, 83
agents, 148
components, 148
diverse workloads, 150
masters, 148
Mesosphere DCOS (Data Center Operating System), 149
APIs
authentication, OpenID, 270
Batch APIs, ASP.NET, 270
HTTP error codes, 268
reliable actors API, 247
reliable services API, 249–251
schedulers, 141
application configuration changes, across different environments, 184–185
application data, logging from within containers, 222
application dependencies, project.json (ASP.NET), 257
application gateways, 121, 122, 159–161
Application Insights, 176, 227–231
application lifecycle, Azure Service Fabric, 251
application manifest, Azure Service Fabric, 241
application upgrades, Azure Service Fabric, 252–253
applications
application manifest, 241
designing
coarse-grained services, 70–72
common versioning strategy, 77
determining where to start, 70
refactoring across boundaries, 75
serialization, 78
service to service communication, 78
architects, skillsets and experience, 18
architecture
flak.io e-commerce sample, 85–86
microservices architecture, 2
creating environments, 177–179
infrastructure as code, 126–127
inside the box provisioning, 131–132
multivendor provisioning, 135–136
tracking deployments, with tags and labels, 179–181
ARM (Azure Resource Manager) templates, 36
deploying
to Azure, 134
from version control, 135
ARM templating language, 127–128
outputs, 130
variables, 129
artifact stores, 121
ASP.NET
application dependencies, project.json, 257
Batch APIs, 270
choosing Docker images, 262–263
cloud-ready environment-based configurations, 258–259
command-line driven, 260
concurrency, 269
cross-platform apps, 256
cross-platform console applications, 261–262
cross-platform data and nonrelational data, 261
cross-platform web servers, 261
dependency injection (DI), 260–261
designing,
microservices, 269
environment variables, 114–115
front-end web development practices, 263–264
.NET Core, 256
OData, 274
open source stack, 256
OpenID, 271
RAD development, Roslyn, 261
stateless APIs, 266
unification of MVC and Web API, 260
Web API, return types, 266–267
ASP.NET Core 1.0, 255
authentication
OpenID, ASP.NET, 271
automated builds, Docker images, 98–99
automation
Azure environments, 174
autoscaling, schedulers, 141
availability sets, 139
Azure Service Fabric, 237
Azure
availability sets, 139
common log format, 221
creating environments, 173
with ARM (Azure Resource Manager), 177–179
automation, 174
immutable infrastructure, 173–174
infrastructure, 176
infrastructure as code, 174–175
private versus shared, 175–176
third-party configuration and deployment tools, 181
deploying ARM (Azure Resource Manager) templates, 134
Kubernetes, 147
tracking deployments with tags and labels, 179–181
virtual machines, creating with Docker, 35–37
Azure Container Service (ACS), 129–130, 132–133
Azure Diagnostics, 222
Azure healing, schedulers, 140
Azure Portal, 36
Azure Resource Manager. See ARM (Azure Resource Manager)
Azure Resource Manager (ARM) templates, 36
Azure Service Fabric, 233, 234
application lifecycle, 251
application manifest, 241
container integration, 243–244
Linux support, 234
programming model, 244
Quorum, 237
reliable actors API, 247
reliable services, reliable services API, 249–251
resource scheduling, 240
service discovery, 244
service updates, 251
stateless services, 244–245, 245–247
testability framework, 253–254
virtual machine scale sets, 237
Bamboo, 205
Batch APIs, ASP.NET, 270
benefits of
DevOps, 22
microservices, 6
small teams, 12
best practices, microservices, 19
encapsulation, 20
monitoring, 23
best-of-breed solutions, continuous delivery tools, 201
Big Bang Integration Testing, 192
bin packing, 138
bots, 185
boundaries, refactoring across, 75
bridge network, linking containers, 65
build agents, 201
build controllers, 201
Build Job, 205
build/test host, Docker, 90
bulkheads, 24
Calico, 165
cascading failures, 25
certificates, managing, in Docker, 91–92
challenges of
manual deployments, 124
complexity, 14
scheduling, 136
changes to code, ASP.NET Core 1.0 changes, 109–110
Chaos Monkey, 199
choosing images for virtual machines, 40–41
CI (continuous integration), 171–172
circuit breakers, 24
CLAbot, 186
cloning samples, product catalog microservice, 106–107
cloud only, Docker, 91
cloud-config files, 132
cloud-ready environment-based configurations, ASP.NET, 258–259
cluster coordination, 156
cluster host environments, overview, 120
cluster management, 122
cluster resource manager, Azure Service Fabric, 235
cluster schedulers, autoscaling, 141
cluster scheduling, 138
cluster state store, 120
clusters
master nodes, 142
CMD, 60
coarse-grained services, 70–72
decomposing, 72
defining services and interfaces, 73–74
code analysis with SonarQube, 190
code samples, flak.io microservices sample code, 4
collaboration, DevOps, 170–171
command-line driven, ASP.NET, 260
commands
ADD, 60
CMD, 60
COPY, 60
ENTRYPOINT, 60
ENV, 60
EXPOSE, 60
FROM, 59
MAINTAINER, 59
ONBUILD, 60
RUN, 59
USER, 60
VOLUME, 60
WORKDIR, 60
common versioning strategy, 77
communication, service to service communication, 78
communication subsystem, Azure Service Fabric, 235
complexity, microservices, 14
concurrency, ASP.NET, 269
connecting
to Docker hosts, 105
to swarms, Docker Swarm, 144
to virtual machines
with SSH and Git Bash on Mac OS X, 46
with SSH and Git Bash on Windows, 44
connectivity issues, unable to connect to the host, Docker, 116–117
consistency, infrastructure as code, 125
console applications, cross-platform console applications (ASP.NET), 261–262
constraints, placement constraints, 242
Consul, 158
consumer-driven contract testing, service dependencies, 187–189
container events, overview, 214
container ids, deleting containers, 54
container integration, Azure Service Fabric, 243–244
container linking, 114
container logs, viewing, 63–64
container networking, 64
adding content to with volumes, 53–54
creating new, 61
deleting, 60
with container ids, 54
dependencies, 114
Docker issues, containers that won’t start, 117
images, updating and committing, 56–61
linking, 65
Docker, 114
logging application data, 222
Docker runtime metrics, 213–215
reactive security, 34
resource scheduling, 240
schedulers, 139
versus virtual machines, 30–32
continuous delivery, 171–172, 200
deploying microservices, 182–184
continuous delivery tools
best-of-breed solutions, 201
considerations when choosing, 203–204
hybrid pipelines, 202
on-premises or hosted service, 201
on-premises or hosted tools, 200
continuous deployment, 171–172
continuous innovation, microservices, 8–9
continuous integration (CI), 185
code analysis with SonarQube, 190
improving quality through pull request validation, 185–186
public third-party services, 190
testing service dependencies with consumer-driven contract testing, 187–189
COPY, 60
CoreOS, etcd, 158
correlation ID, monitoring services, 218
coupling, 74
cross-platform apps, ASP.NET, 256
cross-platform console applications, ASP.NET, 261–262
cross-platform data and nonrelational data, ASP.NET, 261
cross-platform web servers, ASP.NET, 261
demystifying deployments, 170
no blame rule, 170
custom applications, Azure Service Fabric, 242–243
data consistency, microservices, 15–16
DDD (Domain Driven Design), 6, 75
debugging Docker issues
containers that won’t start, 117
diagnosing running containers, 118
unable to connect to the host, 116–117
decomposing
coarse-grained services, 72
defining services and interfaces, 73–74
dedicated cluster nodes, 161
dedicated gateways, 161
deleting containers, 60
with container ids, 54
demystifying deployments, DevOps, 170
dependencies
adding to microservices, 111
containers, 114
schedulers, 139
dependency injection (DI), 260–261
deploying
ARM (Azure Resource Manager) templates
to Azure, 134
from version control, 135
microservices, with continuous delivery, 182–184
to staging, 195
deployments
demystifying deployments, DevOps, 170
independent deployments, microservices, 6–8
manual deployments, challenges of, 124
sharing, 157
tracking changes with tags and labels, 179–181
designing
applications
coarse-grained services, 70–72
common versioning strategy, 77
determining where to start, 70
refactoring across boundaries, 75
serialization, 78
service to service communication, 78
microservices, ASP.NET, 269
for mobile clients, ASP.NET, 270–271
developer configurations, Docker
cloud only, 91
local and cloud, 91
local development, 90
developer tools, installing, 102
development machines, installing (Docker), 37
DevOps
continuous delivery, 200
on-premises or hosted tools, 200
demystifying deployments, 170
no blame rule, 170
support, 170
testing, 192
A/B testing, 198
Docker stress testing, 195
fault tolerance testing, 198–199
integration testing, 192
load and stress testing, 193
manual/exploratory testing, 196
DI (dependency injection), 260–261
diagnosing running containers, 118
directories, creating with Docker, 54–55
discovery backend, Docker Swarm, 142
diverse workloads, Apache Mesos, 150
DNS, service discovery, 157
DNS protocol integrations, service registry, 156
Docker, XVIII
build/test host, 90
container linking, 114
creating Azure virtual machines, 35–37
developer configurations
cloud only, 91
local and cloud, 91
local development, 90
choosing with ASP.NET, 262–263
tags, 99
installing
on Azure virtual machines, 36
on development machines, 37
monitoring recommended solutions, 232
networking features, overlay networks, 163–164
product validation, 90
stress testing, 195
TLS (Transport Layer Security), 144
tracking deployments with labels, 180–181
Docker Bench, 100
Docker Engine, 101
Docker Exec, 118
Docker for Mac, 102
Docker for Windows, 102
Docker hosts, connecting to, 105
Docker issues, debugging
containers that won’t start, 117
diagnosing running containers, 118
unable to connect to the host, 116–117
Docker Kitematic, 101
Docker Machine, 101
docker pull, 50
docker pull nginx, 49
Docker Quickstart Terminal, 104–105
Docker Remote API, 213, 215–216
Docker run command, 181
docker search nginx, 49
connecting to swarms, 144
creating swarms, on Azure, 143–144
discovery backend, 142
master nodes, 142
swarm filters, 143
Docker Swarm Cluster Template, 143–144
Docker tools, installing, 101–102
Docker Trusted Registry (DTR), 100
Dockerfiles, 98
dockerhostkey, 38
dockerhostkey.pub, 38
Domain Driven Design (DDD), 6, 75
DTR (Docker Trusted Registry), 100
efficiency, scheduling, 137
elasticsearch, 105
encapsulation, microservices, 20
Enterprise Service Bus (ESB), 21
ENTRYPOINT, 60
ENV, 60
environment variables, 68
environments
application configuration changes, 184–185
Azure, 173
automation, 174
creating with ARM (Azure Resource Manager), 177–179
immutable infrastructure, 173–174
infrastructure, 176
infrastructure as code, 174–175
private versus shared, 175–176
third-party configuration and deployment tools, 181
removing, 125
updating, infrastructure as code, 124–125
ESB (Enterprise Service Bus), 21
etcd, 158
Eureka, 158
exception processing, 198
expectations, consumer-driven contract testing, 187
experience, architects, 18
exploratory testing, 196
EXPOSE, 60
expressions, templates, 128
extensibility, continuous delivery tools, 202–203
extensions, virtual machines, 37
failover manager service, Azure Service Fabric, 235
failures, cascading failures, 25
fault domains, Azure Service Fabric, 238–240
fault isolation, microservices, 12–13
fault tolerance, microservices, 23–26
fault tolerance testing, 198–199
features, service registry, 155
federation subsystem, Azure Service Fabric, 235
files
dockerhostkey, 38
dockerhostkey.pub, 38
filters, swarm filters, Docker Swarm, 143
fine-grained SOA. See microservices architecture
flak.io e-commerce sample, 83
flak.io microservices sample code, 4
frameworks
testability framework, Azure Service Fabric, 253–254
FROM, 59
front-end web development practices, ASP. NET and Visual Studio 2015, 263–264
functions, templates, 128
gateways, application gateways, 159–161
generating SSH public keys
on Mac OS X, 39
Git Bash, 37
connecting virtual machines, on Mac OS X, 46
Git command line, 102
Git Credential Manager, 102
Google, Page Speed Insights API, 190–191
Grunt, 111
Gulp, 111
HAProxy, 160
HashiCorp
Consul, 158
health checks, service registry, 156
health subsystem, Azure Service Fabric, 234–235
hierarchies, images hierarchies (Docker), 95–98
high availability
schedulers, 140
service registry, 155
horizontal scaling, 32
host machines, monitoring, 210–211
host nodes, 120
host-agnostic, 112
hosted infrastructure, continuous delivery tools, 200
hosting subsystem, Azure Service Fabric, 235
HTTP error codes, APIs, 268
hybrid pipelines, 202
hypervisor virtualization technologies, 30–31
-i (identify file parameter), 45
IaaS (Infrastructure as a Service), 119
identify file parameter (-i), 45
image registry, 121
image repositories, Docker, 48
images
choosing
ASP.NET Docker images, 262–263
tags, 99
updating and committing, 56–61
immutable infrastructure, environments (Azure), 173–174
independent deployments, microservices, 6–8
infrastructure
Azure environments, 176
hosted infrastructure, 200
immutable infrastructure, 173–174
Infrastructure as a Service. See IaaS (Infrastructure as a Service)
infrastructure as code, 123–124
ARM (Azure Resource Manager), 126–127
consistency, 125
removing, old environments, 125
test-driven infrastructure, 126
tracking changes, 125
updating environments, 124–125
innovation, continuous innovation (microservices), 8–9
inside the box provisioning, 123
ARM (Azure Resource Manager), 131–132
installing
developer tools, 102
Docker, on Azure virtual machines, 36
OSX utilities, 103
integrated solutions, continuous delivery tools, 201–202
integration
container integration, Azure Service Fabric, 243–244
continuous integration, 185
code analysis with SonarQube, 190
improving quality through pull request validation, 185–186
public third-party services, 190
testing service dependencies with consumer-driven contract testing, 187–189
microservices, 17
integration testsstress testing, 76–77
interfaces, defining for coarse-grained services, 73–74
inter-service communications, 80
isolation, scheduling, 137
javascript task runners, 111–112
Jenkins, 205
JSON-based documents, ARM templating language, 127–128
key vault, 176
kubelets, 145
Azure, 147
labels, 146
names, 147
namespaces, 147
replication controllers, 146
selectors, 146
services, 146
labels
Kubernetes, 146
languages, ARM templating language, 127–128
linked templates, 131
linking containers, 65
Docker, 114
Linux
Azure Service Fabric, 234
Windows and, 35
Linux CPU, 225
Linux diagnostics event, 223–225
Linux VirtualBox Path, 108–109
LinuxMemory, 226
ListAsync(-) method, 265
live reload, enabling, 107–108
load testing, 193
with Azure and Visual Studio, 193–194
local and cloud, Docker, 91
local development
installing Docker tools, 101–102
local Docker hosts, starting, 104–105
local Docker hosts, starting, 104–105
logging, application data, from within containers, 222
Logstash, 220
lookup API, service registry, 155
lookups, service discovery, 151
ls command, 109
Mac computers, cloning samples, 106
Mac OS X
connecting virtual machines with SSH and Git Bash, 46
generating SSH public keys, 39
MAINTAINER, 59
management services, 120
management subsystem, Azure Service Fabric, 234
manual deployments, challenges of, 124
manual testing, 196
as a service, 196
Marathon, 149
master nodes, 142
masters, Apache Mesos, 148
Mean Time to Repair (MTTR), 169
Mean Time to Resolution (MTTR), 7
Meso-DNS, 157
Mesosphere DCOS (Data Center Operating System), 149
Marathon, 149
microservices, XVII–XVIII, 2–4
benefits of, 6
small teams, 12
best practices, 19
encapsulation, 20
monitoring, 23
complexity, 14
decomposing coarse-grained services, 72–73
defining service boundaries, 6
deploying with continuous delivery, 182–184
designing, ASP.NET, 269
integration, 17
monitoring, 18
preparing for production, 110
adding dependencies, 111
javascript task runners, 111–112
optimizing source code, 111
product catalog microservice, 105
Linux VirtualBox Path, 108–109
volumes, 108
retry patterns, 26
service dependencies, 25
single responsibility principle, 5–6
skillsets for architects, 18
SLA (service level agreement), 19
small services, 5
time to live (TTL), 16
versioning, 17
microservices architecture, 2
Azure Diagnostics, 222
Docker runtime metrics, 213–215
OMS (Operations Management Suite), 231–232
recommended solutions by Docker, 232
correlation ID, 218
operational consistency, 218–219
solutions, 222
syslog drivers, 227
monoliths, 71
changing to microservices, 80–81
partitioning, 82
refactoring, 81
MTTR (Mean Time to Repair), 169
MTTR (Mean Time to Resolution), 7
multivendor provisioning, ARM (Azure Resource Manager), 135–136
names, Kubernetes, 147
namespaces, Kubernetes, 147
.NET Core
ASP.NET, 256
Netflix, Prana, 219
network congestion, microservices, 14–15
networking
container networking, 64
networks, overlay networks, 161–163
Docker networking feature, 163–164
Project Calico, 165
Weave Net, 164
NGINX, 160
no blame rule, DevOps, 170
Node Docker image, 94
nodes, master nodes, 142
noisy neighbor problem, containers, 32–34
notifications, service registry, 156
OData, 274
OMS (Operations Management Suite), 231–232
ONBUILD, 60
on-premises tools, 200
open source stack, ASP.NET, 256
OpenID, authentication (ASP.NET), 271
operational consistency, monitoring services, 218–219
Operations Management Suite (OMS), 231–232
optimizing source code, microservices, 111
Oracle VirtualBox, 101
Apache Mesos. See Apache Mesos
cluster management, 122
Docker Swarm. See Docker Swarm
discovery backend, 142
master nodes, 142
Kubernetes. See Kubernetes
master nodes, 142
schedulers. See schedulers
challenges of, 136
efficiency, 137
isolation, 137
performance, 138
scalability, 137
solutions for, 138
organizing images (Docker), with tags, 99
OSX utilities, installing, 103
outputs, ARM templating language, 130
outside the box provisioning, 123
overlay networks, 65–67, 122–123, 161–163
Docker networking feature, 163–164
Project Calico, 165
Weave Net, 164
-p (port parameter), 45
PaaS (Platform as a Service), 119
Pact, 16
consumer-driven contract testing, 189
parameters
ARM templating language, 128–129
-i (identify file parameter), 45
linked templates, 131
-p (port parameter), 45
partitioning, 82
monoliths, 82
partitions, stateless services, 245
patterns
retry patterns, microservices, 26
sidecar patterns, 219
peer gateway request routing, 161
performance
scheduling, 138
pets and cattle metaphor, 125
placement constraints, 242
Platform as a Service (PaaS), 119
port parameter (-p), 45
Prana, 219
preparing for production, microservices, 110
adding dependencies, 111
javascript task runners, 111–112
optimizing source code, 111
prioritization, 82
private environments versus shared environments, 175–176
processes versus containers, 30–32
product catalog microservice, 105
enabling, live reload, 107–108
Linux VirtualBox Path, 108–109
volumes, 108
product validation, Docker, 90
production, testing in, 196
programmable infrastructure, 123–124
programming model, Azure Service Fabric, 244
Project Calico, 165
project.json, ASP.NET, 257
inside the box provisioning, ARM (Azure Resource Manager), 131–132
multivendor provisioning, ARM (Azure Resource Manager), 135–136
proxies, routing proxies, 155
public third-party services, continuous integration, 190
pull request validation, improving quality through, 185–186
Putty client, 102
QA environments
deploying to staging, 195
testing, 192
Quay Enterprise, 100
Quorum, Azure Service Fabric, 237
RAD development, with Roslyn, ASP.NET, 261
RainforestQA, 196
random approach, 138
rating services, containers, 32–34
reactive security, 34
reallocation, schedulers, 140
refactoring, monoliths, 81
refactoring across boundaries, 75
registry, service discovery, 151
reliability subsystem, Azure Service Fabric, 235
reliable actors API, Azure Service Fabric, 247
reliable services API, Azure Service Fabric, 249–251
removing old environments, infrastructure as code, 125
replicas, stateless services, 245–246
replication
stateless services, 246
replication controllers, Kubernetes, 146
requirements, flak.io e-commerce sample, 84–85
resource scheduling, Azure Service Fabric, 240
resource utilization, microservices, 9–10
resources, ARM templating language, 129–130
REST services, ASP.NET, 264–265
RESTful APIs, ASP.NET, 267–268
retry, 24
retry patterns, microservices, 26
return types, ASP.NET Web API, 266–267
Robinson, Ian, 188
rolling updates, schedulers, 140
Roslyn, RAD development, ASP.NET, 261
routing proxies, 155
RUN, 59
runtime metrics, Docker, 213–215
scalability
scheduling, 137
service registry, 155
scaling
autoscaling, 141
virtual machines, 31
scaling out, 32
scaling up, 32
API, 141
autoscaling, 141
availability sets, 139
Azure healing, 140
bin packing, 138
constraints, 139
dependencies, 139
high availability, 140
random approach, 138
reallocation, 140
rolling updates, 140
spread approach, 138
challenges of, 136
efficiency, 137
isolation, 137
performance, 138
scalability, 137
solutions for, 138
security, reactive security, 34
security tools, Docker Bench, 101
selectors, Kubernetes, 146
serialization, 78
synchronous request/response, 78–79
service, defining for coarse-grained services, 73–74
service announcements, 152–153
service registry, 155
service boundaries, microservices, 6
service decomposition, coarse-grained services, 72
defining services and interfaces, 73–74
service dependencies
microservices, 25
testing with consumer-driven contract testing, 187–189
service discovery, 122
Azure Service Fabric, 244
Consul, 158
DNS, 157
etcd, 158
Eureka, 158
Zookeeper, 158
service discovery store, 120
Service Fabric. See Azure Service Fabric
Service Fabric Replicator, 235
service level agreements. See SLA (service level agreement)
service manifest, Azure Service Fabric, 241–242
service registry, 155
DNS protocol integrations, 156
features, 155
health checks, 156
high availability, 155
lookup API, 155
notifications, 156
scalability, 155
service announcements, 155
service to service communication, 78
service updates, Azure Service Fabric, 251
services
Kubernetes, 146
manual testing, 196
correlation ID, 218
operational consistency, 218–219
set OSX environment variables, 105
set Windows environment variables, 105
shared environments, versus private environments, 175–176
sharing
deployments, 157
sidecar patterns, 219
single responsibility principle, 5–6
SkyDNS, 157
SLA (service level agreement), microservices, 19
small services, microservices, 5
small teams, microservices, 12
smart restart, Docker Compose, 115–116
solutions, monitoring, 222
solutions for, scheduling, 138
SonarQube, code analysis, 190
Spotify, 195
spread approach, 138
SSH, connecting virtual machines, on Mac OS X, 46
SSH public keys, generating
on Mac OS X, 39
staging, deploying to, 195
starting local Docker hosts, 104–105
stateless APIs, ASP.NET, 266
stateless services, Azure Service Fabric, 244–247
STDERR, 222
STDOUT, 222
storage, 176
stress testing, 193
Docker, 195
subsystems, Azure Service Fabric, 234–236
master nodes, 142
swarm filters, Docker Swarm, 143
swarm strategies, Docker Swarm, 142–143
swarms
connecting to, Docker Swarm, 144
creating with Docker, on Azure, 143–144
synchronous request/response, 78–79
syslog drivers, 227
tags
images, Docker, 99
teams, microservices, 12
technical debt, 171
technologies
Consul, service discovery, 158
DNS, service discovery, 157
etcd, 158
Eureka, 158
Zookeeper, 158
technology diversity, microservices, 10–12
templates
ARM (Azure Resource Manager) templates, 36
deploying from version control, 135
deploying to Azure, 134
Docker Swarm Cluster Template, 143–144
expressions, 128
functions, 128
linked templates, 131
testability framework, Azure Service Fabric, 253–254
test-driven infrastructure, 126
testing
DevOps, 192
A/B testing, 198
Docker stress testing, 195
fault tolerance testing, 198–199
integration tests, 192
load and stress testing, 193
manual/exploratory testing, 196
load testing with Azure and Visual Studio, 193–194
manual testing, as a service, 196
in production, 196
service dependencies with consumer-driven contract testing, 187–189
user acceptance testing, 195
third-party configuration and deployment tools, Azure, 181
third-party services, continuous integration, 190
time to live (TTL), 16
timeouts, 24
TLS (Transport Layer Security), Docker, 144
developer tools, installing, 102
Docker Compose, 112
Docker tools, installing, 101–102
Toxiproxy, 199
tracking changes, infrastructure as code, 125
tracking deployments, with tags and labels, 179–181
Transport Layer Security (TLS), Docker, 144
transport subsystem, Azure Service Fabric, 235
TTL (time to live), 16
turns, Azure Service Fabric, 248
update domains, Azure Service Fabric, 238–240
updating
environments, infrastructure as code, 124–125
upgrades, application upgrades, Azure Service Fabric, 252–253
uptime services, ASP.NET, 273–274
USER, 60
user acceptance testing, 195
variables
ARM templating language, 129
environment variables, 68
set OSX environment variables, 105
set Windows environment variables, 105
verifying Docker installation, 47–48
version control, deploying, ARM (Azure Resource Manager) templates, 135
versioning
common versioning strategy, 77
microservices, 17
vertical scaling, 32
viewing, container logs, 63–64
virtual machine scale sets, 237
virtual machines
connecting
with SSH and Git Bash on Mac OS X, 46
with SSH and Git Bash on Windows, 44
extensions, 37
installing, Docker, 36
scaling, 31
virtual networks, 176
virtual private networks (VPNs), 176
VirtualBox, 105
Visual Studio, load testing, 193–194
Visual Studio 2015, front-end web development practices, 263–264
Visual Studio Code, 102, 112–113
Visual Studio Team Services (VSTS), 201, 205
VOLUME, 60
volumes
adding content to containers, 53–54
product catalog microservice, 108
VPNs (virtual private networks), 176
VSTS (Visual Studio Team Services), 201
Weave Net, 164
Web API, ASP.NET, return types, 266–267
web servers, cross-platform web servers, ASP.NET, 261
website performance, continuous integration, 190–191
Windows
cloning samples, 106
connecting virtual machines, with SSH and Git Bash on Windows, 44
diagnostics extension, 223
generating, SSH public keys, 37–39
Linux and, 35
Windows Server 2016 containers, 179
Windows Server Containers, 179
Windows utilities, installing, 102–103
WORKDIR, 60
workloads, Apache Mesos, 150
XML, ASP.NET, 267
Zookeeper, 158
3.139.103.204