ByteByteGo 04月05日 23:38
EP157: How to Learn Backend Development?
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文精选了WorkOS Radar的设备指纹技术,用于增强平台安全,以及后端开发的学习要点。此外,还介绍了简化的Git工作流程、虚拟化与容器化的对比,以及Netflix构建分布式计数器的方法。文章内容涵盖了技术领域的多个方面,为读者提供了有价值的见解和实践指南,帮助读者更好地理解和应用相关技术。

🛡️ WorkOS Radar利用设备指纹技术,帮助识别和阻止平台上的欺诈活动,如虚假注册和暴力破解攻击。此技术能精确检测潜在威胁,保护平台免受滥用,并符合隐私标准。

💻 后端开发涉及多个关键领域,包括后端与前端的区别、客户端-服务器架构、DNS等基础知识。此外,还需掌握编程语言(如Java、Python)、数据库(SQL、NoSQL)、API类型(REST、GraphQL)以及服务器和托管相关的知识。

🔄 简化的Git工作流程包括:将文件从工作目录“git add”到暂存区,使用“git commit”提交到本地仓库,通过“git push”推送到远程仓库。同时,使用“git pull”或“git fetch”更新本地文件,并用“git merge”合并分支。

🆚 虚拟化和容器化是两种不同的技术。虚拟化使用hypervisor创建虚拟机,每个虚拟机有独立的操作系统,提供强大的隔离性,但资源占用较高。容器化则在共享操作系统上运行隔离的应用,更轻量且高效。

🔢 Netflix构建的分布式计数器系统包含客户端API层、事件日志和TimeSeries存储、Rollup管道或聚合以及读取优化(缓存和查询处理)四个主要层。该系统通过分层设计,实现了高性能、可扩展性和最终一致性,每秒可处理75K请求,且延迟仅为个位数毫秒。

WorkOS Radar: Smarter protection with device fingerprinting (Sponsored)

WorkOS Radar leverages advanced device fingerprinting to protect your platform from fraudulent activity, including fake signups, throwaway emails, and brute-force attacks.

With WorkOS Radar, you can:

Stay ahead of evolving threats and uphold privacy standards with WorkOS Radar’s cutting-edge security solution.

Learn more today


This week’s system design refresher:


Why Everyone’s Talking About MCP?


How to Learn Backend Development?

Backend Development requires knowledge of multiple aspects. Here’s a mind map of what all things a developer should learn:

    Fundamentals
    This includes topics like backend vs frontend, client-server, DNS, etc.

    Backend Programming Languages
    Choose between one or more programming languages like Java, Python, JS, Go, Rust, and C#.

    Databases
    This includes topics like types of databases such as SQL (Postgres, MySQL, SQLite), NoSQL (MongoDB, Firebase, DynamoDB), NewSQL (CockroachDB, Spanner). Other topics include working with ORMs and Database Caching.

    APIs and Web Services
    Learn about API types (REST, GraphQL, gRPC, SOAP) and authentication techniques (like JWT, OAuth 2, API keys).

    Server and Hosting
    This involves topics like backend hosting services (AWS, Azure, GCP), Containerization using Docker & Kubernetes, and Server Setup for Nginx, Apache, etc.

    DevOps
    Learn about CI/CD Pipelines using GitHub Actions and Jenkins, IaC (Terraform, Ansible) and Monitoring with tools like Prometheus, Grafana, ELK.

Over to you: What else will you add to the list for learning backend development?


A Simplified Git Workflow

Learning Git is one of the fundamental skills for every developer out there. Here are the steps within a simple and basic Git workflow.

    Developer’s Working Directory (Untracked) to Staging Area (Index)
    The command for the same is “git add”. The files go from untracked to staged.

    Staging Area to Local Repository (Head)
    The command for this move is “git commit -m “message””. It saves changes to the local repository (HEAD), marking a version history.

    Local Repository to Remote Repository (Remote)
    The command for this move is “git push”. It uploads the committed changes to the remote repository (such as on GitHub) for collaboration.

    Remote Repository to Local Repository
    The commands “git pull” and “git fetch” help with this. “git pull” updates local files with remote changes. On the other hand, “git fetch” retrieves remote changes but does not merge them. The command “git merge” combines changes from different branches.

    Checking the Differences
    The command “git diff HEAD” shows the differences between the developer's working directory and the latest commit.

Over to you: Which other step do you follow in your Git workflow?


Virtualization vs Containerization

Virtualization creates multiple VMs on a single physical server, each with its operating system, using a hypervisor.

Containerization is a lightweight virtualization method that runs applications in isolated environments (containers) sharing the same operating system.

Let’s look at the different possibilities in more detail.

    Bare Metal: Applications run directly on the operating system. No virtualization or containerization is used. It provides high performance but lacks flexibility.

    Virtualized: Uses a hypervisor to create VMs. Each VM has its guest OS, making it heavier on resources. Provides strong isolation but adds overhead.

    Containerized: Uses a container engine instead of a hypervisor. Containers share the host operating system, making them lightweight and efficient. It is faster and more scalable than VMs.

    Containerized on Virtualized: Runs containers inside VMs. Provides both flexibility and isolation, common in hybrid cloud environments. It balances resource efficiency with security.

Over to you: Have you used VMs and Containers to deploy workloads?


How Netflix Built a Distributed Counter?

A Distributed Counter is a system where the responsibility of counting events is spread across multiple servers or nodes in a network. Netflix needs to track and measure multiple user interactions to make real-time decisions and optimize its infrastructure.

For this reason, they built a Distributed Counter Abstraction.

Netflix’s Distributed Counter Abstraction operates in four main layers, ensuring high performance, scalability, and eventual consistency.

    Client API Layer
    Users interact with the system by sending AddCount, GetCount, or ClearCount requests. The Netflix Data Gateway efficiently processes and routes these requests.

    Event Logging and TimeSeries Storage
    Events are stored in Netflix TimeSeries Abstraction for scalability. Each event is tagged with an Event ID to ensure idempotency. To avoid database contention, events are grouped into time partitions known as buckets. Data is stored in Cassandra.

    Rollup Pipeline or Aggregation
    Rollup Queues collect event changes and process them in batches. Aggregation occurs in immutable time windows, ensuring accurate rollup calculations. Data is stored in the Cassandra Rollup Store for eventual consistency.

    Read Optimization (Cache & Query Handling)
    Aggregated counter values are cached in EVCache for ultra-fast reads. If a cache value is stale, a background rollup refresh updates it. This model allows Netflix to process 75K requests per second with single-digit millisecond latency.

Reference: Netflix’s Distributed Counter Abstraction


SPONSOR US

Get your product in front of more than 1,000,000 tech professionals.

Our newsletter puts your products and services directly in front of an audience that matters - hundreds of thousands of engineering leaders and senior engineers - who have influence over significant tech decisions and big purchases.

Space Fills Up Fast - Reserve Today

Ad spots typically sell out about 4 weeks in advance. To ensure your ad reaches this influential audience, reserve your space now by emailing sponsorship@bytebytego.com.

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

WorkOS Radar 后端开发 Git 虚拟化 容器化 Netflix
相关文章