本周系统设计复习:

  • 什么是数据管道?为什么如此流行?
  • 从初级到高级开发者的 11 个步骤
  • 8 个必知 Docker 概念
  • 典型微服务架构是什么样的?
  • 10 大最流行开源数据库

从初级到高级的 11 个步骤

1. 协作工具

软件开发是社交活动。学会使用协作工具如 Jira、Confluence、Slack、MS Teams、Zoom 等。

2. 编程语言

选择并精通一到两种编程语言。从选项如 Java、Python、JavaScript、C#、Go 等中选择。

3. API 开发

学习 API 开发方法的来龙去脉,如 REST、GraphQL 和 gRPC。

4. Web 服务器和托管

了解 Web 服务器以及云平台如 AWS、Azure、GCP 和 Kubernetes。

5. 认证和测试

学习如何用认证技术如 JWT、OAuth2 等保护你的应用。此外,掌握测试技术如 TDD、E2E 测试和性能测试。

6. 数据库

学会使用关系型(Postgres、MySQL 和 SQLite)和非关系型数据库(MongoDB、Cassandra 和 Redis)。

7. CI/CD

选择工具如 GitHub Actions、Jenkins 或 CircleCI 学习持续集成和持续交付。

8. 数据结构和算法

掌握 DSA 基础,主题如 Big O 表示法、排序、树和图。

9. 系统设计

学习系统设计概念,如网络、缓存、CDN、微服务、消息、负载均衡、复制、分布式系统等。

10. 设计模式

掌握设计模式的应用,如依赖注入、工厂、代理、观察者和外观。

11. AI 工具

为未来-proof 你的职业生涯,学会利用 AI 工具如 GitHub Copilot、ChatGPT、Langchain 和提示工程。

8 个必知 Docker 概念

下图显示了 Docker 的核心概念。

  1. Dockerfile:包含构建 Docker 镜像的指令,通过指定基础镜像、依赖和运行命令。

  2. Docker 镜像:轻量级、独立包,包括运行你的应用所需的一切(代码、库和依赖)。镜像从 Dockerfile 构建,可以版本化。

  3. Docker 容器:Docker 镜像的运行实例。容器彼此隔离并与主机系统隔离,为运行你的应用提供安全和可重现的环境。

  4. Docker 注册表:存储和分发 Docker 镜像的集中仓库。例如,Docker Hub 是默认公共注册表,但你也可以设置私有注册表。

  5. Docker 卷:一种持久化容器生成数据的方式。卷在容器的文件系统之外,可以在多个容器之间共享。

  6. Docker Compose:用于定义和运行多容器 Docker 应用的工具,使管理整个栈变得容易。

  7. Docker 网络:用于实现容器之间和主机系统的通信。自定义网络可以隔离容器或启用选择性通信。

  8. Docker CLI:与 Docker 交互的主要方式,提供构建镜像、运行容器、管理卷和执行其他操作的命令。

典型微服务架构

下图显示了典型微服务架构。

核心组件

  1. 负载均衡器:在多个后端服务之间分发传入流量。

  2. CDN(内容分发网络):CDN 是一组地理分布的服务器,持有静态内容以更快速交付。客户端首先在 CDN 中查找内容,然后进展到后端服务。

  3. API 网关:处理传入请求并将它们路由到相关服务。它与身份提供商和服务发现对话。

  4. 身份提供商:处理用户的认证和授权。

  5. 服务注册和发现:微服务注册和发现发生在此组件中,API 网关在此组件中查找相关服务以对话。

  6. 管理:此组件负责监控服务。

  7. 微服务:微服务在不同领域设计和部署。每个领域有自己的数据库。

10 大最流行开源数据库

此列表基于采用率、行业影响力和开发者社区中数据库的普遍意识等因素。

  1. MySQL
  2. PostgreSQL
  3. MariaDB
  4. Apache Cassandra
  5. Neo4j
  6. SQLite
  7. CockroachDB
  8. Redis
  9. MongoDB
  10. Couchbase

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP116: 11 steps to go from Junior to Senior Developer

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。