Pular para o conteúdo

Selecionar língua

Idioma atual: Português (Brasil)

System Design

Source: https://github.com/madd86/awesome-system-design at 52834671253b
License: CC0-1.0
Read the English original

This edition is an AI-assisted translation.

Awesome

Se você gostou do conteúdo 📖, ajude a dar visibilidade ao projeto com 👍| ⭐| 👏

Seleção de artigos, livros, vídeos e ferramentas sobre sistemas distribuídos e big data.

Seja para se preparar para uma entrevista ou projetar um aplicativo distribuído/orientado a microsserviços, esta lista ajudará você.

Atenção: o número de estrelas no GitHub não reflete o uso nem a popularidade de todos os itens listados.

Inspirado em Awesome-BigData

Iniciado por Gabriel Leon de Mattos

Artigos

Livros

Vídeos

Ferramentas

Bônus


  • Designing Distributed Systems: Patterns and Paradigms for Scalable, Reliable Services - [Paid 💵] - Livro que fala sobre sistemas distribuídos e também demonstra levemente alguns códigos de sua aparência.

  • Designing Data Intensive Applications - [Paid 💵] - Aprofunda-se ao explicar diversos recursos que utilizamos ao trabalhar com sistemas distribuídos, bem como como surgiu e quais problemas pretende resolver.

  • The System Design Manual - [Paid 💵] - Abrange os principais aspectos dos sistemas distribuídos, como: fundamentos de rede, a teoria que sustenta os sistemas distribuídos, padrões arquitetônicos de sistemas escaláveis, padrões de estabilidade que protegem os sistemas contra falhas e melhores práticas operacionais sobre como manter sistemas de grande escala com uma equipe pequena.

  • Building Microservices - [Free 👍] - Livro incrível que fala detalhadamente sobre como projetar arquitetura de sistema com microsserviços e inclui os tópicos mais relevantes a esse respeito.

  • Monolith to Microservices - [Free 👍] - Escrito pelo mesmo autor do livro acima, este livro abordará a migração do Monolith para Microservices, é recomendável começar pelo livro anterior.

  • Distributed Systems (3rd Edition) - [Free 👍] - Ótima visão geral e introdução detalhada aos sistemas distribuídos. Recomendado para leitores de nível intermediário.

  • Safe by Design - [Free 👍] - Ótimo livro sobre como impor a correção do código desde o design.


Uma coleção de vídeos sobre sistemas distribuídos.

  • Uma coleção das ferramentas mais usadas em sistemas distribuídos

Sistema de gerenciamento de banco de dados relacional

Seção intitulada “Sistema de gerenciamento de banco de dados relacional”
  • MariaDB - MariaDB é um fork do servidor MySQL.

  • MySQL - Banco de dados relacional amplamente utilizado.

  • PostgresSQL - Banco de dados relacional que vem ganhando popularidade.

  • SQLite - Outro banco de dados amplamente utilizado, integrado a todos os telefones celulares e à maioria dos computadores.

  • Sql Server - Banco de dados relacional amplamente utilizado.

  • Apache Ignite - [3.3k ⭐] - Cache de memória com propriedades ACID.

  • Couchbase - Inspirado no memcached, adicionando recursos como replicação e persistência.

  • Oracle Coherence - [126 ⭐] - Cache na memória de alta escalabilidade e baixa latência.

  • Memcached - [10.2k ⭐] - Um dos primeiros bancos de dados com cache na memória, de alto desempenho e multithread.

  • Redis - [44k ⭐] - Banco de dados de cache na memória amplamente utilizado com muitos recursos adicionais, como armazenamento persistente e suporte a strings, listas, conjuntos, hashses, fluxos, bitmaps, etc.

  • Apple FoundationDB - [10k ⭐] - Multimodelo (muitos tipos de dados em um único banco de dados), armazenamento de chave-valor ACID. Facilmente escalável e tolerante a falhas.

  • Cosmos DB - Serviço de banco de dados multimodelo distribuído globalmente da Microsoft. Dimensione a taxa de transferência e o armazenamento de maneira oriental e independente. APIs SQL, MongoDB, Cassandra, Tabelas, Gremlin e Spark.

  • CouchDB - [4.6k ⭐] - Banco de dados de armazenamento de documentos NoSQL compatível com ACID, fornece uma API RESTful HTTP para leitura e atualização de documentos de banco de dados.

  • MongoDB - Um dos bancos de dados ‘NoSQL’ mais populares para uso geral.

  • RethinkDB - [23.8k ⭐] - Banco de dados de armazenamento de documentos.

  • ElasticSearch - [49.9k ⭐] - Banco de dados ‘NoSQL’ amplamente popular para mecanismos de pesquisa rápidos e escalonáveis.

  • Cosmos DB - Serviço de banco de dados multimodelo distribuído globalmente da Microsoft. Dimensione a taxa de transferência e o armazenamento de maneira oriental e independente. APIs SQL, MongoDB, Cassandra, Tabelas, Gremlin e Spark.

  • Amazon DynamoDB - Banco de dados de valores-chave e documentos, de alto desempenho, escalável e seguro.

  • Google Bigtable - Banco de dados ‘NoSQL’ escalável e de alto desempenho para grandes cargas de trabalho analíticas e operacionais.

  • Cassandra - Projeto nascido no Facebook muito rápido, facilmente escalável, com opção de incluir consistência em cada operação.

  • Scylla - [4.9k ⭐] - Armazenamento de dados ‘NoSQL’ usando framework seastar, compatível com Cassandra.

  • HBase - [3.6k ⭐] - Modelado a partir do Bigtable do Google e escrito em Java. Desenvolvido como parte do projeto Apache Hadoop e executado em HDFS ou Alluxio. (Ver Hadoop Related)

  • Cosmos DB - Serviço de banco de dados multimodelo distribuído globalmente da Microsoft. Dimensione a taxa de transferência e o armazenamento de maneira oriental e independente. APIs SQL, MongoDB, Cassandra, Tabelas, Gremlin e Spark.

  • Amazon Neptune - Serviço de banco de dados gráfico rápido, confiável e totalmente gerenciado.

  • ArangoDB - [10k ⭐] - Banco de dados flexível para documentos, valores-chave, gráficos. Usa sua própria linguagem de consulta, AQL.

  • Neo4j - [7.9k ⭐] - Bom suporte para um banco de dados gráfico, compatível com ACID e flexível.

  • Cosmos DB - Serviço de banco de dados multimodelo distribuído globalmente da Microsoft. Dimensione a taxa de transferência e o armazenamento de maneira oriental e independente. APIs SQL, MongoDB, Cassandra, Tabelas, Gremlin e Spark.

  • HDFS - O Hadoop File System é uma escolha amplamente popular entre seus concorrentes de big data, fornecendo acesso de alto rendimento.

  • Lustre - Sistema de arquivos para clusters de computadores.

  • CephFS - Sistema de armazenamento unificado e distribuído.

  • GlusterFS - Sistema de arquivos NAS expansível.

  • MooseFS - Sistema de arquivos distribuído compatível com POSIX.

  • XtreemFS - Sistema de arquivos tolerante a falhas.

  • Kubernetes - Maneira altamente popular de implantar, gerenciar e dimensionar automaticamente um cluster de contêineres em servidores bare-metal ou virtuais.
  • Apache Samza - Crie aplicativos com estado que processam dados em tempo real de diversas fontes, incluindo Kafka. Modelo multiassinante fácil e barato, pode eliminar contrapressão e tem persistência confiável com baixa latência.

  • Apache Flink - Baseado no conceito de fluxos e transformações. Usa maven, lida com tarefas em lote como fluxos de dados com limites finitos. Baixa latência, alto rendimento.

  • Amazon Kinesis Streams - Serviço durável, escalável e em tempo real. Coleta gigabytes de dados por segundo de centenas de milhares de fontes, incluindo fluxos de eventos de banco de dados, fluxos de cliques de sites, transações financeiras, etc.

  • Azure Stream Analytics - Serviço de análise em tempo real projetado para cargas de trabalho de missão crítica.

  • Amazon MQ - Corretor de mensagens de código aberto da Amazon.

  • Apache ActiveMQ - É um servidor de mensagens multiprotocolo baseado em Java.

  • Apache Kafka - Corretor de mensagens amplamente popular com baixa latência para streaming de dados.

  • RabbitMQ - Leve amplamente popular corretor de mensagens escrito em erlang que também oferece suporte a vários protocolos de mensagens.

  • IronMQ - Corretor de mensagens muito rápido e altamente escalável. (não é de código aberto)

  • Apache Pulsar - Criado pelo Google, também altamente escalonável, baixa latência, replicação geográfica e multitenacidade.

  • Kestrel - Escrito em Scala e fala o protocolo memcached. Funciona como Kafka.

  • Azure Service Bus - Um corretor de mensagens de integração empresarial totalmente gerenciado.

  • SeeSaw - [5.1k ⭐] - Utilizado pelo Google, desenvolvido em Go, servidor balanceador de carga virtual baseado em Linux.

  • HAProxy - Opção amplamente popular, fornece alta disponibilidade, proxy e balanceamento de carga TCP/HTTP. Usado por Reddit, Imgur, MaxCDN, GitHub, AirBNB.

  • Zevenet - Suporta L3, L4 e L7. Fácil instalação com um repositório docker. Suporta monitoramento avançado de verificação de integridade.

  • Neutrino - Usado pelo eBay, desenvolvido com Scala e Netty. Suporta algoritmos round-robin e de menor conexão.

  • Nginx - Espere, o Nginx não é um servidor web? Sim, o código aberto oferece suporte ao nível básico de troca de conteúdo e roteamento de solicitações. A edição Plus suporta balanceamento de carga, WAF, monitoramento, etc.

  • Openresty - Nginx + Lua, combinação perfeita.

  • F5 - Opção robusta de balanceador de carga de hardware, com suporte a vários protocolos (IP, TCP, FTP, UDP, HTTP).

  • TP-Link - Alternativa mais barata que funciona como balanceador de carga.

  • Barracuda - Uma das principais opções para balanceamento de carga quando se trata de servidores internos. Principais medidas de segurança integradas, relatórios abrangentes e monitoramento do tráfego de saída para prevenção de perda de dados.

  • Amazon Elastic Load Balancing - Escolha popular para clientes Amazon, suporta funções lambda, altamente escaláveis.

  • Google Load Balancing - Escolha popular para clientes do Google, vem com recurso de escalonamento automático, muito rápido e possui CDN integrado.

  • Cloudflare Load Balancing - Balanceamento de carga escalonável da Cloudflare, recurso de failover rápido e um painel.

  • DigitalOcean Load Balancing - Se você é cliente digitalocean, esta é uma boa opção, muito barata, disponibilidade regional, escalável, fácil de implantar entre seus outros droplets.

  • Azure Load Balancing - Escolha popular para clientes do Azure da Microsoft. Suporta tráfego interno e externo, ipv6, monitoramento e o conjunto padrão de recursos de balanceamento de carga.

  • Ambari - Painel que integra a maioria das tecnologias relacionadas ao hadoop para fácil gerenciamento e execuções.
  • Sqoop - Transfira dados com eficiência entre o Hadoop e armazenamentos de dados estruturados, como bancos de dados relacionais.

  • Flume - Distribuído, altamente disponível e eficiente na coleta, agregação e movimentação de grandes quantidades de dados de log.

  • Apache Kafka - Corretor de mensagens amplamente popular com baixa latência para streaming de dados.

  • Oozie - Criar fluxos de trabalho em xml para executar trabalhos (de outros aplicativos do ecossistema hadoop) em etapas, também permite a execução paralela.
  • Hive - Consulte dados armazenados no hadoop em SQL.
  • Pig - Linguagem de script semelhante a SQL para consultar dados hadoop.
  • Tez - Resolve um problema semelhante ao Spark e MapReduce, é mais eficiente que MapReduce porque calcula a maneira mais eficiente de fazer isso.
  • Map Reduce - MapReduce, como o nome indica, mapeia dados e reduz os resultados.
  • Spark - Processamento de dados poderoso não apenas para processar dados como Tez (e MapReduce), mas também para processar fluxos de dados em tempo real, aplicar algoritmos de análise de regressão em ML e muito mais.
  • Apex - *Projeto descontinuado, é uma plataforma nativa do YARN que unifica o processamento em fluxo e em lote.
  • HBase - [3.6k ⭐] - Modelado a partir do Bigtable do Google e escrito em Java. Desenvolvido como parte do projeto Apache Hadoop.
  • YARN - ‘Yet Another Resource Negotiator’ funciona como um kernel para gerenciar recursos do computador nos clusters.
  • MESOS - Funciona como um kernel Linux gerenciando CPU, memória, armazenamento e outros recursos em todo o cluster.
  • Gin - [40.6k ⭐] - Estrutura de microsserviço extremamente rápida usando Golang e alta capacidade de rendimento.

  • Phoenix - [15.5k ⭐] - Processamento distribuído, facilmente escalável, suporte para canais e chat ao vivo. Este framework - escrito em Elixir, utiliza BEAM e Erlang, muito eficiente para sistemas de grande escala e suporta alto rendimento.

  • Express.js - [49.6k ⭐] - API de descanso node.js rápida que pode funcionar bem em muitos cenários.

  • Rails - [46.2k ⭐] - Escrito em Ruby, Rails oferece APIs rápidas do protótipo à produção de maneira eficiente.

  • Play Framework - [11.6k ⭐] - Estrutura muito rápida e de alto rendimento escrita em Scala/Java que é RESTful por padrão.

  • Flask - [51.6k ⭐] - Um microframework Python leve para prototipagem e produção rápidas.

  • FastAPI - [22.7k ⭐] - Um microframework Python leve inspirado no Flask, mas mais moderno, usando Python assíncrono.

  • Django REST - [18.4k ⭐] - Escrito em Python, Django Rest é uma API REST poderosa e flexível. A eficiência e o tempo de lançamento no mercado se assemelham ao Rails.

  • ASP.NET Core MVC - Uma estrutura avançada para criar aplicativos Web e APIs usando o padrão de design Model-View-Controller em C# ou F#. Número 6 em TechEmpower Composite Benchmarks para estruturas web.

  • Fastify - [15.4k ⭐] - Uma estrutura web Node.js altamente focada em fornecer a melhor experiência do desenvolvedor com o mínimo de sobrecarga e uma arquitetura de plugin poderosa.

HagiCode

O HagiCode é um ambiente de programação com agentes. Interações de interface ricas e práticas tornam o planejamento, a execução de agentes e o trabalho em projetos mais acessíveis e fáceis de acompanhar, criando uma experiência de desenvolvimento envolvente.

Uma experiência de desenvolvimento envolvente, com interações de interface ricas e práticas.

Acessar HagiCodeLer a documentação
  • InteligenteOs fluxos de trabalho do OpenSpec transformam a intenção em um caminho executável, da proposta ao design, às tarefas e à entrega.
  • EficienteA execução multiagente mantém pesquisa, implementação e revisão em andamento em paralelo, em vários repositórios e com os Agent CLI que você já usa.
  • InteressanteInterações de interface ricas e práticas tornam o planejamento, a execução de agentes e o trabalho em projetos mais acessíveis e fáceis de acompanhar.

Baixar para Windows

Obter na Microsoft StoreTodos os downloads

Transforme ideias em software entregue.

O HagiCode é um ambiente de programação com agentes: os fluxos de trabalho do OpenSpec planejam a mudança, a execução multiagente a realiza e o Hero Scenario torna o longo percurso visível, para transformar ideias em software entregue.

Inteligente
Os fluxos do OpenSpec transformam a intenção em um caminho da proposta à entrega.
Eficiente
A execução multiagente conduz pesquisa, implementação e revisão em paralelo.
Divertido
As interações de interface facilitam o planejamento, a execução de agentes e os projetos.

Sair do Awesome Site?

Você está prestes a visitar um site externo. Não controlamos o conteúdo nem as práticas de privacidade dele.

Destino

Continuar para o site