Index

A

A/B testing, 198

access to websites through the Internet, 52

ACS (Azure Container Service), 129130, 132133

ACS Resource Provider, 121134

ADD, 60

adding

content to containers, using volumes, 5354

dependencies to microservices, 111

agents, Apache Mesos, 148

aggregation, log aggregation, 217218

Alpine, 93

announcements, service discovery, 151

anti-corruption layer, 83

Apache Mesos, 147148

agents, 148

components, 148

diverse workloads, 150

frameworks, 148149

masters, 148

Mesosphere DCOS (Data Center Operating System), 149

service discovery, 150152

API Gateway, 159161

APIs

authentication, OpenID, 270

Batch APIs, ASP.NET, 270

HTTP error codes, 268

reliable actors API, 247

reliable services API, 249251

RESTful APIs, 267268

schedulers, 141

application configuration changes, across different environments, 184185

application data, logging from within containers, 222

application dependencies, project.json (ASP.NET), 257

application gateways, 121, 122, 159161

Application Insights, 176, 227231

application lifecycle, Azure Service Fabric, 251

application manifest, Azure Service Fabric, 241

application upgrades, Azure Service Fabric, 252253

applications

Azure Service Fabric, 240241

application manifest, 241

custom applications, 242243

service manifest, 241242

decomposing, 7475

considerations for, 8687

designing

bounded context, 7576

coarse-grained services, 7072

common versioning strategy, 77

data collection, 8183

determining where to start, 70

refactoring across boundaries, 75

serialization, 78

service design, 7677

service to service communication, 78

architects, skillsets and experience, 18

architecture

flak.io e-commerce sample, 8586

microservices architecture, 2

ARM (Azure Resource Manager)

creating environments, 177179

infrastructure as code, 126127

inside the box provisioning, 131132

multivendor provisioning, 135136

tracking deployments, with tags and labels, 179181

ARM (Azure Resource Manager) templates, 36

deploying

to Azure, 134

from version control, 135

ARM templating language, 127128

outputs, 130

parameters, 128129

resources, 129130

variables, 129

artifact stores, 121

ASP.NET

application dependencies, project.json, 257

Async, 265266

Batch APIs, 270

choosing Docker images, 262263

cloud-ready environment-based configurations, 258259

command-line driven, 260

concurrency, 269

cross-platform apps, 256

cross-platform console applications, 261262

cross-platform data and nonrelational data, 261

cross-platform web servers, 261

dependency injection (DI), 260261

designing,

microservices, 269

for mobile clients, 270271

environment variables, 114115

front-end web development practices, 263264

.NET Core, 256

NuGet, 257258

OData, 274

open source stack, 256

OpenID, 271

RAD development, Roslyn, 261

REST services, 264265

RESTful APIs, 267268

stateless APIs, 266

Swagger, 272273

unification of MVC and Web API, 260

uptime services, 273274

Web API, return types, 266267

ASP.NET Core 1.0, 255

changes, 109110

Async, ASP.NET, 265266

asynchronous messaging, 7980

authentication

Docker, 9192

OpenID, ASP.NET, 271

automated builds, Docker images, 9899

automation

Azure environments, 174

microservices, 2223

autonomous services, 45

autoscaling, schedulers, 141

availability sets, 139

Azure Service Fabric, 237

Azure

availability sets, 139

common log format, 221

containers, 3435

creating environments, 173

with ARM (Azure Resource Manager), 177179

automation, 174

immutable infrastructure, 173174

infrastructure, 176

infrastructure as code, 174175

private versus shared, 175176

third-party configuration and deployment tools, 181

deploying ARM (Azure Resource Manager) templates, 134

deployment models, 4244

Kubernetes, 147

load testing, 193194

swarms, creating, 143144

tracking deployments with tags and labels, 179181

virtual machines, creating with Docker, 3537

Azure Container Service (ACS), 129130, 132133

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 upgrades, 252253

applications, 240241

application manifest, 241

custom applications, 242243

service manifest, 241242

cluster management, 236237

container integration, 243244

fault domains, 238240

Linux support, 234

programming model, 244

Quorum, 237

reliable actors API, 247

reliable services, reliable services API, 249251

resource scheduling, 240

service discovery, 244

service updates, 251

stateless services, 244245, 245247

subsystems, 234236

testability framework, 253254

update domains, 238240

virtual machine scale sets, 237

B

Bamboo, 205

base images, Docker, 9295

Batch APIs, ASP.NET, 270

benefits of

DevOps, 22

microservices, 6

continuous innovation, 89

fault isolation, 1213

independent deployments, 68

resource utilization, 910

scaling, 910

small teams, 12

technology diversity, 1012

best practices, microservices, 19

automation, 2223

Conway’s Law, 2021

DevOps, 2122

encapsulation, 20

fault tolerance, 2326

monitoring, 23

best-of-breed solutions, continuous delivery tools, 201

Big Bang Integration Testing, 192

bin packing, 138

bots, 185

boundaries, refactoring across, 75

bounded context, 7576

bridge network, linking containers, 65

build agents, 201

build controllers, 201

Build Job, 205

build/test host, Docker, 90

bulkheads, 24

C

Calico, 165

canary testing, 196197

cascading failures, 25

certificates, managing, in Docker, 9192

challenges of

manual deployments, 124

microservices, 1314

complexity, 14

data consistency, 1516

network congestion, 1415

scheduling, 136

changes to code, ASP.NET Core 1.0 changes, 109110

Chaos Monkey, 199

choosing images for virtual machines, 4041

Chronos, 149150

CI (continuous integration), 171172

circuit breakers, 24

CLAbot, 186

cloning samples, product catalog microservice, 106107

cloud only, Docker, 91

cloud-config files, 132

cloud-ready environment-based configurations, ASP.NET, 258259

cluster coordination, 156

cluster host environments, overview, 120

cluster management, 122

Azure Service Fabric, 236237

cluster resource manager, Azure Service Fabric, 235

cluster schedulers, autoscaling, 141

cluster scheduling, 138

cluster state store, 120

clusters

application gateways, 159161

Docker Swarm, 141142

Swarm cluster, 141142

master nodes, 142

CMD, 60

coarse-grained services, 7072

decomposing, 72

defining services and interfaces, 7374

microservices, 7273

code analysis with SonarQube, 190

code samples, flak.io microservices sample code, 4

coded UI testing, 192193

cohesion, 7475

collaboration, DevOps, 170171

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

committing images, 5661

common log format, 219221

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, 116117

consistency, infrastructure as code, 125

console applications, cross-platform console applications (ASP.NET), 261262

constraints, placement constraints, 242

Consul, 158

consumer-driven contract testing, service dependencies, 187189

container events, overview, 214

container ids, deleting containers, 54

container integration, Azure Service Fabric, 243244

container linking, 114

container logs, viewing, 6364

container networking, 64

containers, 2930

adding content to with volumes, 5354

Azure, 3435

creating new, 61

deleting, 60

with container ids, 54

dependencies, 114

Docker, 30, 3435

Docker issues, containers that won’t start, 117

enabling live reload, 107108

images, updating and committing, 5661

linking, 65

Docker, 114

logging application data, 222

monitoring, 212213, 216

Docker Remote API, 215216

Docker runtime metrics, 213215

noisy neighbor problem, 3234

versus processes, 3032

reactive security, 34

resource scheduling, 240

schedulers, 139

versus virtual machines, 3032

continuous delivery, 171172, 200

deploying microservices, 182184

continuous delivery tools

best-of-breed solutions, 201

considerations when choosing, 203204

extensibility, 202203

hybrid pipelines, 202

on-premises or hosted service, 201

on-premises or hosted tools, 200

continuous deployment, 171172

continuous innovation, microservices, 89

continuous integration (CI), 185

code analysis with SonarQube, 190

improving quality through pull request validation, 185186

public third-party services, 190

testing service dependencies with consumer-driven contract testing, 187189

unit testing, 186187

website performance, 190191

Conway’s Law, 2021

COPY, 60

CoreOS, etcd, 158

correlation ID, monitoring services, 218

coupling, 74

cross-platform apps, ASP.NET, 256

cross-platform console applications, ASP.NET, 261262

cross-platform data and nonrelational data, ASP.NET, 261

cross-platform web servers, ASP.NET, 261

culture, DevOps, 170171

collaboration, 170171

demystifying deployments, 170

no blame rule, 170

custom applications, Azure Service Fabric, 242243

D

data collection, 8183

data consistency, microservices, 1516

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, 116117

decomposing

applications, 7475

considerations for, 8687

coarse-grained services, 72

defining services and interfaces, 7374

microservices, 7273

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), 260261

deploying

ARM (Azure Resource Manager) templates

to Azure, 134

from version control, 135

microservices, with continuous delivery, 182184

to staging, 195

deployment models, 4244

deployments

demystifying deployments, DevOps, 170

independent deployments, microservices, 68

manual deployments, challenges of, 124

sharing, 157

tracking changes with tags and labels, 179181

designing

applications

bounded context, 7576

coarse-grained services, 7072

common versioning strategy, 77

data collection, 8183

determining where to start, 70

refactoring across boundaries, 75

serialization, 78

service design, 7677

service to service communication, 78

microservices, ASP.NET, 269

for mobile clients, ASP.NET, 270271

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

culture, 170171

collaboration, 170171

demystifying deployments, 170

no blame rule, 170

support, 170

Dockerizing, 181182

microservices, 2122

overview, 167168, 169

testing, 192

A/B testing, 198

canary testing, 196197

coded UI testing, 192193

Docker stress testing, 195

fault tolerance testing, 198199

integration testing, 192

load and stress testing, 193

manual/exploratory testing, 196

resiliency testing, 198199

DI (dependency injection), 260261

diagnosing running containers, 118

directories, creating with Docker, 5455

discovery backend, Docker Swarm, 142

diverse workloads, Apache Mesos, 150

DNS, service discovery, 157

DNS protocol integrations, service registry, 156

Docker, XVIII

authentication, 9192

build/test host, 90

container linking, 114

containers, 30, 3435

creating Azure virtual machines, 3537

developer configurations

cloud only, 91

local and cloud, 91

local development, 90

directories, creating, 5455

images, 4950

automated builds, 9899

building a hierarchy, 9598

choosing base images, 9295

choosing with ASP.NET, 262263

sharing, 99100

tags, 99

installing

on Azure virtual machines, 36

on development machines, 37

local development, 89, 103

settings, 103104

monitoring recommended solutions, 232

networking features, overlay networks, 163164

product validation, 90

runtime metrics, 213215

stress testing, 195

TLS (Transport Layer Security), 144

tracking deployments with labels, 180181

verifying installation, 4748

Docker Bench, 100

Docker Cloud, 206207

Docker Compose, 102, 112

smart restart, 115116

Docker Engine, 101

Docker Exec, 118

Docker for Mac, 102

Docker for Windows, 102

Docker hosts, connecting to, 105

Docker Hub, 48, 9394

images, 9495

Docker issues, debugging

containers that won’t start, 117

diagnosing running containers, 118

unable to connect to the host, 116117

Docker Kitematic, 101

docker logs, viewing, 6364

Docker Machine, 101

docker ps, 5052

docker pull, 50

docker pull nginx, 49

Docker Quickstart Terminal, 104105

Docker Remote API, 213, 215216

docker run, 5052

Docker run command, 181

docker search nginx, 49

Docker Swarm, 141142

connecting to swarms, 144

creating swarms, on Azure, 143144

discovery backend, 142

master nodes, 142

strategies, 142143

swarm filters, 143

Docker Swarm Cluster Template, 143144

Docker tools, installing, 101102

Docker Trusted Registry (DTR), 100

Dockerfiles, 98

building images, 5960

dockerhostkey, 38

dockerhostkey.pub, 38

Dockerizing, 181182

Domain Driven Design (DDD), 6, 75

DTR (Docker Trusted Registry), 100

E

efficiency, scheduling, 137

elasticsearch, 105

encapsulation, microservices, 20

Enterprise Service Bus (ESB), 21

ENTRYPOINT, 60

ENV, 60

environment variables, 68

ASP.NET, 114115

environments

application configuration changes, 184185

Azure, 173

automation, 174

creating with ARM (Azure Resource Manager), 177179

immutable infrastructure, 173174

infrastructure, 176

infrastructure as code, 174175

private versus shared, 175176

third-party configuration and deployment tools, 181

removing, 125

updating, infrastructure as code, 124125

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, 202203

extensions, virtual machines, 37

F

failover manager service, Azure Service Fabric, 235

failures, cascading failures, 25

fault domains, Azure Service Fabric, 238240

fault isolation, microservices, 1213

fault tolerance, microservices, 2326

fault tolerance testing, 198199

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

architecture overview, 8586

requirements, 8485

flak.io microservices sample code, 4

Flannel, 164165

format of logs, 219221

frameworks

Apache Mesos, 148149

testability framework, Azure Service Fabric, 253254

FROM, 59

front-end web development practices, ASP. NET and Visual Studio 2015, 263264

functions, templates, 128

G

Gatekeeper, 196197

gateways, application gateways, 159161

generating SSH public keys

on Mac OS X, 39

on Windows, 3739

Git Bash, 37

connecting virtual machines, on Mac OS X, 46

Git command line, 102

Git Credential Manager, 102

Google, Page Speed Insights API, 190191

Grunt, 111

phantomas task, 190191

Gulp, 111

H

HAProxy, 160

HashiCorp

Consul, 158

Terraform, 135136

health checks, service registry, 156

health subsystem, Azure Service Fabric, 234235

hierarchies, images hierarchies (Docker), 9598

high availability

schedulers, 140

service registry, 155

horizontal scaling, 32

host machines, monitoring, 210211

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, 3031

I

-i (identify file parameter), 45

IaaS (Infrastructure as a Service), 119

identify file parameter (-i), 45

image layering, 6163

image registry, 121

image repositories, Docker, 48

images

choosing

ASP.NET Docker images, 262263

for virtual machines, 4041

Docker, 4950

automated builds, 9899

building a hierarchy, 9598

choosing base images, 9295

sharing, 99100

tags, 99

managing, 100101

updating and committing, 5661

immutable infrastructure, environments (Azure), 173174

independent deployments, microservices, 68

Information blade, 4041

infrastructure

Azure environments, 176

hosted infrastructure, 200

immutable infrastructure, 173174

Infrastructure as a Service. See IaaS (Infrastructure as a Service)

infrastructure as code, 123124

ARM (Azure Resource Manager), 126127

Azure, 174175

consistency, 125

removing, old environments, 125

test-driven infrastructure, 126

tracking changes, 125

updating environments, 124125

innovation, continuous innovation (microservices), 89

inside the box provisioning, 123

ARM (Azure Resource Manager), 131132

installing

developer tools, 102

Docker, on Azure virtual machines, 36

Docker tools, 101102

OSX utilities, 103

Windows utilities, 102103

integrated solutions, continuous delivery tools, 201202

integration

container integration, Azure Service Fabric, 243244

continuous integration, 185

code analysis with SonarQube, 190

improving quality through pull request validation, 185186

public third-party services, 190

testing service dependencies with consumer-driven contract testing, 187189

unit testing, 186187

website performance, 190191

microservices, 17

integration testsstress testing, 7677

interfaces, defining for coarse-grained services, 7374

inter-service communications, 80

isolation, scheduling, 137

J

javascript task runners, 111112

Jenkins, 205

JSON, parameters, 128129

JSON-based documents, ARM templating language, 127128

K

Kanban Tool, 202203

key vault, 176

kubelets, 145

Kubernetes, 144145

Azure, 147

components, 145, 147

labels, 146

names, 147

namespaces, 147

pods, 145146

replication controllers, 146

selectors, 146

services, 146

volumes, 146147

L

labels

Kubernetes, 146

tracking deployments, 179181

Docker, 180181

languages, ARM templating language, 127128

layering, images, 6163

linked templates, 131

linking containers, 65

Docker, 114

Linux

Azure Service Fabric, 234

Windows and, 35

Linux CPU, 225

Linux diagnostics event, 223225

Linux VirtualBox Path, 108109

LinuxDisk, 225226

LinuxMemory, 226

ListAsync(-) method, 265

live reload, enabling, 107108

load balancers, 153, 160, 176

load testing, 193

with Azure and Visual Studio, 193194

local and cloud, Docker, 91

local development

Docker, 89, 90, 103

settings, 103104

installing Docker tools, 101102

local Docker hosts, starting, 104105

settings, 103104

local Docker hosts, starting, 104105

log aggregation, 217218

logging, application data, from within containers, 222

logs

common log format, 219221

considerations for, 221222

Logstash, 220

lookup API, service registry, 155

lookups, service discovery, 151

ls command, 109

M

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

managing images, 100101

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

Chronos, 149150

Marathon, 149

microservices, XVIIXVIII, 24

autonomous services, 45

benefits of, 6

continuous innovation, 89

fault isolation, 1213

independent deployments, 68

resource utilization, 910

scaling, 910

small teams, 12

technology diversity, 1012

best practices, 19

automation, 2223

Conway’s Law, 2021

DevOps, 2122

encapsulation, 20

fault tolerance, 2326

monitoring, 23

challenges of, 1314

complexity, 14

data consistency, 1516

network congestion, 1415

changing monoliths to, 8081

cross-grained services, 7072

decomposing coarse-grained services, 7273

defining service boundaries, 6

deploying with continuous delivery, 182184

designing, ASP.NET, 269

integration, 17

monitoring, 18

preparing for production, 110

adding dependencies, 111

javascript task runners, 111112

optimizing source code, 111

product catalog microservice, 105

cloning samples, 106107

enabling live reload, 107108

Linux VirtualBox Path, 108109

volumes, 108

retry patterns, 26

routing, 1718

service dependencies, 25

service discovery, 1718

single responsibility principle, 56

skillsets for architects, 18

SLA (service level agreement), 19

small services, 5

testing, 1617, 112

time to live (TTL), 16

versioning, 17

microservices architecture, 2

monitoring, 209210

Application Insights, 227231

Azure Diagnostics, 222

containers, 212213, 216

Docker Remote API, 215216

Docker runtime metrics, 213215

host machines, 210211

microservices, 18, 23

OMS (Operations Management Suite), 231232

recommended solutions by Docker, 232

services, 216217

common log format, 219221

correlation ID, 218

log aggregation, 217218

operational consistency, 218219

solutions, 222

syslog drivers, 227

monoliths, 71

changing to microservices, 8081

partitioning, 82

refactoring, 81

MTTR (Mean Time to Repair), 169

MTTR (Mean Time to Resolution), 7

multivendor provisioning, ARM (Azure Resource Manager), 135136

N

names, Kubernetes, 147

namespaces, Kubernetes, 147

.NET Core

ASP.NET, 256

support, 256257

Netflix, Prana, 219

network congestion, microservices, 1415

networking

container networking, 64

overlay networks, 6567

networks, overlay networks, 161163

Docker networking feature, 163164

Flannel, 164165

Project Calico, 165

Weave Net, 164

NGINX, 160

Docker, images, 4950

no blame rule, DevOps, 170

Node Docker image, 94

nodes, master nodes, 142

noisy neighbor problem, containers, 3234

notifications, service registry, 156

NuGet, 109110

ASP.NET, 257258

O

OData, 274

OMS (Operations Management Suite), 231232

ONBUILD, 60

on-premises tools, 200

open source stack, ASP.NET, 256

OpenID, authentication (ASP.NET), 271

operational consistency, monitoring services, 218219

Operations Management Suite (OMS), 231232

optimizing source code, microservices, 111

Oracle VirtualBox, 101

orchestration, 121122

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

provisioning, 121, 123

schedulers. See schedulers

scheduling, 122, 136

challenges of, 136

efficiency, 137

isolation, 137

performance, 138

scalability, 137

solutions for, 138

service discovery, 150152

service lookup, 153155

service registration, 152153

organizing images (Docker), with tags, 99

OSX utilities, installing, 103

outputs, ARM templating language, 130

outside the box provisioning, 123

overlay networks, 6567, 122123, 161163

Docker networking feature, 163164

Flannel, 164165

Project Calico, 165

Weave Net, 164

P

-p (port parameter), 45

PaaS (Platform as a Service), 119

Pact, 16

consumer-driven contract testing, 189

PageSpeed task, 190191

parameters

ARM templating language, 128129

-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

website performance, 190191

pets and cattle metaphor, 125

phantomas Grunt task, 190191

placement constraints, 242

Platform as a Service (PaaS), 119

pods, Kubernetes, 145146

port parameter (-p), 45

Prana, 219

preparing for production, microservices, 110

adding dependencies, 111

javascript task runners, 111112

optimizing source code, 111

prioritization, 82

private environments versus shared environments, 175176

processes versus containers, 3032

product catalog microservice, 105

cloning samples, 106107

enabling, live reload, 107108

Linux VirtualBox Path, 108109

volumes, 108

product validation, Docker, 90

production, testing in, 196

programmable infrastructure, 123124

programming model, Azure Service Fabric, 244

Project Calico, 165

project.json, ASP.NET, 257

provisioning, 121122, 123

inside the box provisioning, ARM (Azure Resource Manager), 131132

multivendor provisioning, ARM (Azure Resource Manager), 135136

proxies, routing proxies, 155

public third-party services, continuous integration, 190

pull request validation, improving quality through, 185186

Putty client, 102

Q

QA environments

deploying to staging, 195

testing, 192

Quay Enterprise, 100

Quorum, Azure Service Fabric, 237

R

RAD development, with Roslyn, ASP.NET, 261

RainforestQA, 196

random approach, 138

rating services, containers, 3234

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, 249251

removing old environments, infrastructure as code, 125

replicas, stateless services, 245246

replication

schedulers, 139140

stateless services, 246

replication controllers, Kubernetes, 146

requirements, flak.io e-commerce sample, 8485

resiliency testing, 198199

resource scheduling, Azure Service Fabric, 240

resource utilization, microservices, 910

resources, ARM templating language, 129130

REST services, ASP.NET, 264265

RESTful APIs, ASP.NET, 267268

retry, 24

retry patterns, microservices, 26

return types, ASP.NET Web API, 266267

Robinson, Ian, 188

rolling updates, schedulers, 140

Roslyn, RAD development, ASP.NET, 261

routing, microservices, 1718

routing proxies, 155

RUN, 59

runtime metrics, Docker, 213215

S

scalability

scheduling, 137

service registry, 155

scaling

autoscaling, 141

microservices, 910

virtual machines, 31

scaling out, 32

scaling up, 32

schedulers

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

replication, 139140

rolling updates, 140

spread approach, 138

scheduling, 122, 136

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

Selenium, 192193

serialization, 78

asynchronous messaging, 7980

synchronous request/response, 7879

service, defining for coarse-grained services, 7374

service announcements, 152153

service registry, 155

service boundaries, microservices, 6

service decomposition, coarse-grained services, 72

defining services and interfaces, 7374

microservices, 7273

service dependencies

microservices, 25

testing with consumer-driven contract testing, 187189

service design, 7677

service discovery, 122

Apache Mesos, 150152

Azure Service Fabric, 244

Consul, 158

DNS, 157

etcd, 158

Eureka, 158

microservices, 1718

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 lookup, 153155

service manifest, Azure Service Fabric, 241242

service registration, 152153

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

monitoring, 216217

common log format, 219221

correlation ID, 218

log aggregation, 217218

operational consistency, 218219

set OSX environment variables, 105

set Windows environment variables, 105

shared environments, versus private environments, 175176

sharing

deployments, 157

images (Docker), 99100

sidecar patterns, 219

single responsibility principle, 56

SkyDNS, 157

SLA (service level agreement), microservices, 19

Slack, 202203

small services, microservices, 5

small teams, microservices, 12

smart restart, Docker Compose, 115116

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

on Windows, 3739

staging, deploying to, 195

starting local Docker hosts, 104105

stateless APIs, ASP.NET, 266

stateless services, Azure Service Fabric, 244247

STDERR, 222

STDOUT, 222

storage, 176

stress testing, 193

Docker, 195

subsystems, Azure Service Fabric, 234236

support, .NET Core, 256257

Swagger, 264265

ASP.NET, 272273

Swarm cluster, 141142

master nodes, 142

swarm filters, Docker Swarm, 143

swarm strategies, Docker Swarm, 142143

swarms

connecting to, Docker Swarm, 144

creating with Docker, on Azure, 143144

synchronous request/response, 7879

syslog drivers, 227

T

tags

images, Docker, 99

tracking deployments, 179181

teams, microservices, 12

technical debt, 171

technologies

application gateways, 159161

Consul, service discovery, 158

DNS, service discovery, 157

etcd, 158

Eureka, 158

Zookeeper, 158

technology diversity, microservices, 1012

templates

ARM (Azure Resource Manager) templates, 36

deploying from version control, 135

deploying to Azure, 134

Docker Swarm Cluster Template, 143144

expressions, 128

functions, 128

linked templates, 131

Terraform, 135136

testability framework, Azure Service Fabric, 253254

test-driven infrastructure, 126

testing

DevOps, 192

A/B testing, 198

canary testing, 196197

coded UI testing, 192193

Docker stress testing, 195

fault tolerance testing, 198199

integration tests, 192

load and stress testing, 193

manual/exploratory testing, 196

resiliency testing, 198199

integration tests, 7677

load testing with Azure and Visual Studio, 193194

manual testing, as a service, 196

microservices, 1617, 112

in production, 196

service dependencies with consumer-driven contract testing, 187189

unit testing, 186187

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

tools

developer tools, installing, 102

Docker Compose, 112

Docker tools, installing, 101102

Toxiproxy, 199

tracking changes, infrastructure as code, 125

tracking deployments, with tags and labels, 179181

Transport Layer Security (TLS), Docker, 144

transport subsystem, Azure Service Fabric, 235

tribal knowledge, 170171

TTL (time to live), 16

turns, Azure Service Fabric, 248

Tutum, 206207

U

unit testing, 186187

update domains, Azure Service Fabric, 238240

updating

environments, infrastructure as code, 124125

images, 5661

upgrades, application upgrades, Azure Service Fabric, 252253

uptime services, ASP.NET, 273274

USER, 60

user acceptance testing, 195

UserVoice, 202203

V

variables

ARM templating language, 129

environment variables, 68

ASP.NET and, 114115

set OSX environment variables, 105

set Windows environment variables, 105

verifying Docker installation, 4748

version control, deploying, ARM (Azure Resource Manager) templates, 135

versioning

common versioning strategy, 77

microservices, 17

vertical scaling, 32

viewing, container logs, 6364

virtual machine scale sets, 237

virtual machines

choosing images, 4041

connecting

with SSH and Git Bash on Mac OS X, 46

with SSH and Git Bash on Windows, 44

versus containers, 3032

creating with Docker, 3537

extensions, 37

installing, Docker, 36

scaling, 31

virtual networks, 176

virtual private networks (VPNs), 176

VirtualBox, 105

Visual Studio, load testing, 193194

Visual Studio 2015, front-end web development practices, 263264

Visual Studio Code, 102, 112113

Visual Studio Team Services (VSTS), 201, 205

VOLUME, 60

volumes

adding content to containers, 5354

Kubernetes, 146147

product catalog microservice, 108

VPNs (virtual private networks), 176

VSTS (Visual Studio Team Services), 201

W

Weave Net, 164

Web API, ASP.NET, return types, 266267

web servers, cross-platform web servers, ASP.NET, 261

website performance, continuous integration, 190191

Windows

cloning samples, 106

connecting virtual machines, with SSH and Git Bash on Windows, 44

diagnostics extension, 223

generating, SSH public keys, 3739

Linux and, 35

Windows Server 2016 containers, 179

Windows Server Containers, 179

Windows utilities, installing, 102103

WORKDIR, 60

workloads, Apache Mesos, 150

X-Y

XML, ASP.NET, 267

Z

Zookeeper, 158

Zuul, 196197

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.139.103.204