DevOps A-Z:
Terms and Concepts
Lansing DevOps Meetup
April 2nd, 2019
Brendon Thiede
- DevOps Engineer at the Michigan Supreme Court
- Continuous Learner
- Maximizing Impact
Important Rules:
- Term has to be said by Brendon or appear on a slide
- 5 terms in a row, diagonally, horizontally, or vertically
- You can only win once
- Winners get to pick prizes in order of win
- You have to say "BINGO" to be acknowledged as a winner
The Anti-Jargonist Oath
I, (state your name), do hereby solemnly swear to never use buzzwords, slang, or jargon with the intent to belittle, baffle, or hoodwink my fellow human beings.
DevOps is the union of people, process, and products to
enable continuous delivery of value to our end users.
- Donovan Brown
DevOps is Not:
- A role
- Getting rid of Operations, QA, and/or Security
- A methodology
- Prescriptive
Where does DevOps come from?
Agile
- Extreme Programming (XP)
- Scrum
- Kanban
- others
Development team focused
Lean
- Value Stream Mapping
- Identify bottlenecks
- Reduce inventory
- Optimize for throughput
- "Shift left"
Security
- Threat Modeling
- Static Analysis
- Dynamic Scans/Web Application Scanning
Continuous Integration
- Source control (for everything...)
- Common build server (Azure Pipelines, GitHub Actions, Jenkins...)
- Every push triggers a "build"
- Unit tests
- Package - ONLY ONCE!
- Static Analysis (SonarQube, linters, etc.)
Infrastructure as Code
- Creates/configures infrastructure
- Declarative
- Imperative
- Idempotent
- Environment variables???
Configuration Management
- AKA Desired State Configuration (DSC)
- Runs on existing infrastructure
- Declarative
- Imperative
- Idempotent
- Environment variables???
https://blogs.msdn.microsoft.com/azuresecurity/2016/04/18/what-does-shared-responsibility-in-the-cloud-mean/
Cloud Scale-Cost Model
- Scale up/down, scale in/out
- Serverless/Consumption: Functions as a Service
- OpEx vs CapEx
- Workload types: bursty, stateless, batch
Containers
- Microservices
- Orchestration
- Scheduling
- Fan-out/fan-in
Distributed Systems are Hard...
Brendon's Microservices Formula
if (service.independentScale == BENEFICIAL &&
service.independentDeployment == REQUIRED &&
service.interopSpeed == NEGOTIABLE) {
you.makeMicroservice();
} else {
you.goWithWhatYouKnow();
}
Networking
- Service mesh
- Sidecar
- Service discovery
Load Balancer
- Layer 4 - Faster, but limited info (port and protocol)
- Layer 7 - Application awareness (HTTP, etc)
- Persistent
- Round-robin
Routing
- DNS - A record, CNAME
- Reverse proxy
- Virtual network (VNET)/Hybrid network
- Subnet - CIDR notation
- Zero trust network
- White listing
- Black listing
- Circuit breaker pattern
- Chaos engineering
- Fault injection
Ephemeral Services
- Cattle vs Pets
- Idempotent deployment
So What About Persistence?
Databases
- NoSQL
- CAP Theorem
- Eventually consistent
- Horizontally scalable
- Polyglot persistence
Event Driven Architecture
- Message queues
- Event loops
- Triggers
- Webhooks
Continuous Delivery
- Build triggered deployment
- Feature toggle
- Gated deployment
- Canary deployment
- Blue/Green deployment
- Self healing
- Instrumentation - telemetry
- A/B testing
Special Bonus Words!
- IoT
- Intelligent edge
- Blockchain
- Big data
Further Reading
- https://12factor.net/
- https://martinfowler.com/articles/microservices.html
- https://blogs.msdn.microsoft.com/azuresecurity/2016/04/18/what-does-shared-responsibility-in-the-cloud-mean/