shortcuts:
TOC
NanoTwitter
search:
The Rise of Devops
Modern Software Engineering Flow
Developers: work on local computers
Source Code Management: often on a remote service (Github)
Rapid deployment: multiple deployments per day
Continuous integration: As soon as code is checked in it is merged
Automated Testing: Unit, Integration and all kinds of tests
Deployment: Staging
History of System Adminstration (or Operations)
Old models:
development
quality assurance (test())
operations
New release every 6-12 months
Stage 1: blurring line between dev and qa
test driven development
test automation
developers responsibility
New release every 1-6 months
Stage 2: blurring line between dev qa and ops
Devops: New discipline that straddles or merges development and operations
Continuous integration and deployment
Feature switches
Cloud
What’s a release?
Keys:
coordination between development and operations
focus on business value
pervasive automation
blurred lines
Key responsibility is to keep service running
Reliability (uptime)
Scalability (number of users or transactions)
Flexibility (rapid iteration)
Cost (Cloud services)
How come now?
Scale in terms of servers and services
Geographic decentralization of servers
Automation is absolutely required
Automation is done with code (programming)
Software Engineering that is crucial although user never sees it
What is Devops
Infrastructure management is automated as much as possible
CI (Continuous integration) very typical
All about automating all infrastructure operations
Eliminate (minimize) manual shell commands to configure, deploy, etc
Follows software engineering practices
Source code control
Testing
Code Reviews
Building and using tools
Everything is “programmed” (scripts)
Provisioning a server
De-provisioning a server
Updating software for an individual service
Rollback of anything
Backups and recovery
Switching between data centers
Monitoring and management
Using SSH is a sign of incomplete automation
Intro
Cosi105 - Scalability 2022 Syllabus
List of lectures
nanoTwitter
Homeworks
Lectures
Web Apps + Sinatra
Welcome
What is Scalability?
Cosi166 Quick Bullets
Intro to Sinatra
Sinatra and Twitter
NanoTwitter introduced
nano Twitter
Starting to think about scaling
Scaling at Hubspot
Service Oriented Architecture
Deploying to the Cloud
Scalable Service design
Scalability, continued
Testing in the world of SOA
Scaling Patterns
Testing Scalability
Tuning for Scale
Logging
Caching
Database Tuning 1
Database Tuning 2
Concurrency 1
Concurrency 2
Queueing
SOA + µservices
Software Engineering
Scalability Runoff 1
Last class!
Background
Technical Presentations
Misc Links and Resources