DevOps Flashcards
Jenkins
Builds and tests code
Plugins for integration with version control systems and support for different languages
Cloud Operations Suite (includes) (6)
Cloud Monitoring (GCP and AWS) Cloud Logging Error Reporting Cloud Debugger Cloud Trace Cloud Profiler
SDLC 7 steps
Analysis Design Development Testing Deployment Documentation Maintenance
Puppet and Chef
Configure software on servers
Cloud Build
Build, test, deploy software
Create - image containers stored in Artifact Registry
Deploy - services to VMs, K8 clusters, serverless, Firebase
Scan - images for known vulnerabilities
Binary Authorization - verify trusted containers run
Chaos Engineering
Introducing random failures to system to understand consequences and identify unanticipated failure modes
4 components of business continuity plan
Disaster plan
Business Impact Analysis
Recovery plan
RTO
HTTP error:
400
Bad request - server can’t understand request due to invalid syntax
HTTP error:
401
Request not authenticated
HTTP error:
403
Permission denied
HTTP error:
404
Resource not found; invalid endpoint
HTTP error:
500
Internal server error
HTTP Error:
501
Method not implemented by the API
HTTP Error:
503
Server unavailable
HTTP Error:
429
Too many requests
RPC APIs
APIs oriented around functions implemented using sockets
Designed for high efficiency
API Keys
Authenticates users of API functions
String of alphanumeric characters that identify an app or device to a service
Fuzzing
Testing framework - subject program to semi-random inputs for extended period of time
Used to find bugs and security vulnerabilities that may only show up at runtime
Uses tools called fuzzers
CLI tools included with GCP SDK install
gcloud
gsutil
bq
Bigtable CLI
cbt
Pub/Sub Emulator CLI
pubsub emulator
Where Cloud Logging can export logs (2)
How long logs retained
Cloud Storage
BQ
30 days
Prometheus
Monitoring tool that collects metrics data from targets by scrapping HTTP endpoints of target services
Continuous Delivery
Releasing code soon after code passes tests
Continuous Delivery - deployment strategies (4)
Complete deployment - monolith
Rolling deployment
Canary deployment
Blue/Green deployment
Continuous Integration
Incorporating new code into established code base soon after written
Continuously integrate new code into production using automated tools
RPC APIs
APIs oriented around functions implemented using sockets for high efficiency
Data driven testing
Uses structured data sets for testing
For each condition defined or set of inputs, tests function for expected output values
Good for testing APIs or functions from command line
Modularity Driven Testing
Small scripts to test limited functionality
Combined to test higher level abstractions
Keyword Driven Testing
Tests sequence of steps to execute
Good for manual testing and UI
Model based testing
Simulation program used to generate test data
Uses several methods to simulate system being tested
Test driven development
Requirements mapped to tests
Once code is tested, integrated into baseline of code
JUnit
Unit test tool for code written in Java
Fuzzing
Automated testing tool that subjects a program to semi-random inputs for extended period to find bugs and security vulnerabilities that may only turn up at runtime
gsutil CLI utility
Recommended method for moving data from on prem
Supports parallel loading of chunks
Continuous Delivery deployment strategies (4)
Complete
Rolling
Canary
Blue/Green
Continuous Integration - automation tools (3)
Version control / repo
Test
Build
Circuit Breaker pattern
Use object to monitor results of a function or service call
If number of errors surpasses threshold, service stops making requests
Slowly increase requests while monitoring errors
Artifact Registry
Next gen Container Registry
Store, manage packages and Docker container images
Integrates with Cloud Build and other GCP CI/CD tools
Cloud Build
CI/CD service that continuously takes source code, builds, tests, and deploys
Turns source code into build artifacts
Cloud Source Repository
Hosted, private Git repo for version control and collaboration
Cloud Deploy
Creates delivery pipeline for apps via “releases” which define target environments and sequence to deploy to targets
Port 3306
MySQL
Port 22
SSH
Port 7
ICMP ping
Port 3389
RDP
Port 25
SMTP
Port 443
HTTPS
Port 21
FTP
HTTP 429
Too many requests
HTTP 301
URL of resource changed
New URL given in response
HTTP 408
Request time out
Cloud Tasks
Creates tasks outside of main app workflow to be processed async
Scheduling, rate controls, deduplication