Summary of "Highload 0. Введение"
Course overview
Goal: teach you to think like an architect — not to train on specific tools or one-off configurations.
- Duration and format
- Introductory high-load systems architecture course, 6 months.
- Weekly morning sessions, regular homework (client questionnaires, project scoping), group chat for coordination, hands-on tasks and reviews.
- Main practical activity: team projects and an exam where teams present and justify architectures.
- Focus and learning objectives
- Emphasis on architectural thinking, principles and trade-offs rather than on particular stacks.
- Combines theory (≈20 architectural patterns) with practical design exercises and iteration.
- Target audience
- Aspiring techies, backend developers, team leads, architects, technical directors.
- Also useful for project/product managers who need a deeper technical understanding.
Instructor background
- Instructor: Oleg Bunin — entrepreneur and former web / high-load systems developer.
- Relevant experience: projects for major Russian sites (sports.ru, RIA Novosti), Olympic projects, and early consulting for Pavel Durov.
- Also organizes developer conferences.
High-level teaching approach
- Emphasis on principles, trade-offs and architectural thinking rather than brand-new tools.
- Architects must understand internal server, network and cloud behavior and be able to choose tools according to constraints.
- Practical cycle:
- Learn patterns.
- Apply them to a concrete project (example: a tourist social network).
- Break and redesign the system.
- Present and justify the solutions.
Key technical concepts and topics covered
- System decomposition and component selection
- Splitting functionality (storage, streams, media, metadata, etc.).
- Choosing tooling per component.
- Data storage patterns
- Handling large volumes and binary data (images, videos).
- Sharding strategies and metadata placement.
- Incremental migration strategies (e.g., write new data to new servers vs move old data).
- Archival vs deletion decisions.
- Scaling and load distribution
- Load balancing and horizontal scaling limits.
- When and why to split services.
- Cloud limitations — cloud is not a panacea; understand internal constraints.
- Networking fundamentals
- DNS resolution, IP addressing, packetization, network cards, OS network stack.
- Ports (80/443) and the 7-layer OSI model as a base mental model.
- Web server and request processing
- Connection handling and multithreaded servers.
- Handing requests to application logic (CGI vs persistent processes).
- Buffering vs streaming responses and implications for latency and resources.
- Backend performance and bottlenecks
- Database call latency and imbalance between layers.
- Monitoring and detecting slow components.
- Caching and cache invalidation
- OS-level caching, HTTP caching headers, CDN/edge caches.
- Asset versioning strategies (query strings vs file renaming) to force updates.
- Frontend behavior
- Roles of HTML/CSS/JS; browser parsing and asset loading limits (concurrent connections).
- JavaScript-driven dynamic updates: AJAX, long-polling, streams, WebSockets.
- Segmented video streaming (small chunk delivery).
- Security and robustness
- How buffering and response strategies affect DoS resistance.
- Monitoring and consideration of network intermediaries (caches, filters).
- Designing for censorship resistance and handling national filtering (e.g., Roskomnadzor / SORM).
- Tools and diagnostics
- Browser developer tools (network inspector).
- Traceroute / path analysis to inspect routing and intermediate caches.
- OSI model references.
Project management and product considerations
- Importance of scoping
- Compile detailed questionnaires for clients to collect product requirements, access patterns and non-functional needs.
- Trade-offs
- Translate product wishes into realistic implementation plans, balancing desires and feasibility.
- Storage lifecycle decisions
- What to store, archive or delete depends on access patterns (e.g., news feed vs personal posts) and affects architecture.
Course exercises and evaluation
- Practical design assignments, examples:
- Image storage sharding.
- Feed architecture.
- Censorship-resistant delivery.
- Team exam
- Given a project, teams design an architecture and must explain trade-offs and rationale (no single correct answer).
- Iteration and critique
- Frequent iteration, critique and guided redesign to build architectural thinking.
Career guidance
- Typical career path: individual contributor → team lead → architect → technical director.
- Architects focus on systems and processes; they are in high demand and well-paid.
- The course aims to prepare engineers to move into architectural roles.
References and recommended tools
- OSI 7-layer model (one-page summary on Wikipedia).
- Browser developer tools (Network tab).
- Traceroute / path analysis utilities.
- Practical guides on caching and asset versioning.
Main speaker / sources
- Oleg Bunin — course instructor, entrepreneur and high-load systems practitioner (experience with sports.ru, RIA Novosti and early consulting for Pavel Durov).
Category
Technology
Share this summary
Is the summary off?
If you think the summary is inaccurate, you can reprocess it with the latest model.
Preparing reprocess...