O documento discute estratégias para desenvolver aplicações web escaláveis com PHP. Ele aborda otimizações que podem ser feitas nos servidores web, no MySQL, no PHP e no frontend para melhorar a performance e capacidade. Algumas técnicas mencionadas incluem usar servidores dedicados para conteúdo estático, sharding de dados, cache, e dividir a carga entre múltiplos servidores. O documento também fornece exemplos de arquiteturas escaláveis e lições aprendidas com casos reais.
Desenvolvendo aplicações Web escaláveiselliando dias
Este documento resume uma apresentação sobre desenvolvimento de aplicações web escaláveis. Aborda tópicos como terminologia, camadas, servidores web, bancos de dados, PHP, cache, métricas, ferramentas, arquitetura e lições aprendidas para lidar com crescimento rápido.
Este artigo fornece instruções para uma instalação mais enxuta do Slackware Linux, instalando apenas pacotes essenciais e sugerindo desabilitar serviços desnecessários. Ele explica como selecionar pacotes específicos durante a instalação e configurar serviços de inicialização, e fornece dicas para adicionar pacotes usando o DVD de instalação ou o gerenciador de pacotes slackpkg.
1. Opennebula é uma solução open-source para virtualização de data centers que permite construir e gerenciar nuvens e data centers virtualizados de forma simples, rica e flexível.
2. O documento descreve as características, interfaces, componentes e hipervisores suportados pelo Opennebula.
3. É apresentada uma comparação entre o Opennebula e outras soluções de nuvem, destacando suas arquiteturas, clientes e recursos suportados.
O documento descreve os métodos e procedimentos para instalação e configuração do OpenNebula, incluindo a instalação nos nós front-end e de hospedagem, compartilhamento de armazenamento, configuração de serviços e criação de máquinas virtuais.
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
1) O documento discute como criar infraestrutura de sites para receber milhões de usuários de forma escalável e altamente disponível.
2) Problemas como ponto único de falha no DNS, desempenho do banco de dados, tamanho de arquivos e consultas externas são abordados.
3) A solução proposta inclui balanceamento de carga, replicação, cache, sistemas de arquivos distribuídos e alta disponibilidade em vários níveis.
Esta palestra demonstra alguns elementos relacionados à alta disponibilidade com PostgreSQL. São discutidos assuntos como redundância, replicação e utilitários de gerenciamento de ambientes de contingência: log shipping, WAL, streaming replication e outros.
Espero que seja útil, faça uma boa leitura e qualquer dúvida contate-me!
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
O documento discute o uso de Azure Functions com Java, abordando como lidar com desafios de desempenho e memória ao processar grandes volumes de dados. É explicado como dividir arquivos em lotes menores, usar bibliotecas eficientes e evitar frameworks que consomem muita memória podem ajudar a resolver esses problemas. Também são apresentadas vantagens como fácil integração entre serviços da Azure e fluxos de trabalho simples de desenvolvimento e streaming.
ENIC/UFPB 2009. Arquitetura de Segurança Baseada em Security Paterns Para o O...ufpb
Slides apresentados no Encontro Nacional de Iniciação Científica 2009 - UFPB.
Aborda as atividades realizadas durante a pesquisa e implantação do projeto Arquitetura de Segurança Baseada em Security Patterns Para o OpenCTI.
Desenvolvendo aplicações Web escaláveiselliando dias
Este documento resume uma apresentação sobre desenvolvimento de aplicações web escaláveis. Aborda tópicos como terminologia, camadas, servidores web, bancos de dados, PHP, cache, métricas, ferramentas, arquitetura e lições aprendidas para lidar com crescimento rápido.
Este artigo fornece instruções para uma instalação mais enxuta do Slackware Linux, instalando apenas pacotes essenciais e sugerindo desabilitar serviços desnecessários. Ele explica como selecionar pacotes específicos durante a instalação e configurar serviços de inicialização, e fornece dicas para adicionar pacotes usando o DVD de instalação ou o gerenciador de pacotes slackpkg.
1. Opennebula é uma solução open-source para virtualização de data centers que permite construir e gerenciar nuvens e data centers virtualizados de forma simples, rica e flexível.
2. O documento descreve as características, interfaces, componentes e hipervisores suportados pelo Opennebula.
3. É apresentada uma comparação entre o Opennebula e outras soluções de nuvem, destacando suas arquiteturas, clientes e recursos suportados.
O documento descreve os métodos e procedimentos para instalação e configuração do OpenNebula, incluindo a instalação nos nós front-end e de hospedagem, compartilhamento de armazenamento, configuração de serviços e criação de máquinas virtuais.
Como criar infraestrutura de sites para receber milhões de usuários?Marcelo Dieder
1) O documento discute como criar infraestrutura de sites para receber milhões de usuários de forma escalável e altamente disponível.
2) Problemas como ponto único de falha no DNS, desempenho do banco de dados, tamanho de arquivos e consultas externas são abordados.
3) A solução proposta inclui balanceamento de carga, replicação, cache, sistemas de arquivos distribuídos e alta disponibilidade em vários níveis.
Esta palestra demonstra alguns elementos relacionados à alta disponibilidade com PostgreSQL. São discutidos assuntos como redundância, replicação e utilitários de gerenciamento de ambientes de contingência: log shipping, WAL, streaming replication e outros.
Espero que seja útil, faça uma boa leitura e qualquer dúvida contate-me!
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
O documento discute o uso de Azure Functions com Java, abordando como lidar com desafios de desempenho e memória ao processar grandes volumes de dados. É explicado como dividir arquivos em lotes menores, usar bibliotecas eficientes e evitar frameworks que consomem muita memória podem ajudar a resolver esses problemas. Também são apresentadas vantagens como fácil integração entre serviços da Azure e fluxos de trabalho simples de desenvolvimento e streaming.
ENIC/UFPB 2009. Arquitetura de Segurança Baseada em Security Paterns Para o O...ufpb
Slides apresentados no Encontro Nacional de Iniciação Científica 2009 - UFPB.
Aborda as atividades realizadas durante a pesquisa e implantação do projeto Arquitetura de Segurança Baseada em Security Patterns Para o OpenCTI.
O documento descreve o servidor Samba, que permite compartilhamento de arquivos entre sistemas Windows e Unix. Ele implementa os protocolos SMB/CIFS para permitir acesso a recursos Unix como se fossem compartilhamentos Windows. É configurado no arquivo smb.conf, dividido em configurações globais e de compartilhamentos.
O documento descreve a configuração de um servidor PDC Samba em um sistema CentOS, incluindo a instalação de pacotes necessários como Samba, Squid e SARG. Os principais pontos abordados são a criação de usuários e grupos, compartilhamentos, configuração do smb.conf e mapeamento de grupos.
Ao infinito e além com PHP memcached e GearmanElton Minetto
São apresentados o Gearman e o Memcached. O Gearman é um framework genérico para gerenciar filas de tarefas de forma que possam ser executadas em paralelo, com balanceamento de carga e acessíveis a múltiplas linguagens de programação. O Memcached é um sistema distribuído e de alta performance para fazer cache de objetos em memória RAM. São de extrema utilidade em sites e aplicativos com grande carga de processamento e necessidades de escalabilidade.
O documento discute a automação e gerenciamento de servidores com a ferramenta Puppet. Ele descreve os requisitos para gerenciar grandes quantidades de máquinas e minimizar repetições de tarefas. O Puppet é apresentado como uma boa alternativa por permitir gerenciar atividades repetitivas de forma centralizada e padronizada em diferentes sistemas operacionais.
O documento descreve o que é um cluster e como funciona, definindo-o como um sistema onde dois ou mais computadores trabalham juntos como se fossem um único computador, dividindo tarefas de processamento. Explica que cada computador de um cluster é chamado de nó e que eles precisam ser interconectados em rede. Apresenta também diferentes tipos de clusters, como clusters de servidores, Network Load Balancing e Beowulf.
Este documento descreve a configuração de um cluster de alta disponibilidade em sistemas Linux utilizando as ferramentas DRBD, Heartbeat e Mon. O documento discute conceitos de cluster e alta disponibilidade, apresenta as ferramentas utilizadas e descreve um estudo de caso configurando um servidor Samba com alta disponibilidade. O resumo destaca que o objetivo é criar um ambiente com redundância à falhas de forma transparente aos usuários utilizando estas ferramentas gratuitas e de código aberto para Linux.
O documento descreve a configuração de alta disponibilidade utilizando o Pacemaker e o DRBD. O Pacemaker é usado para implementar failover de serviços como Apache e IP virtual entre dois nós, enquanto o DRBD replica o armazenamento entre os nós para prover alta disponibilidade dos dados.
1) O documento discute programação concorrente e como ela se relaciona com programação orientada a objetos. 2) É apresentado um roteiro para o curso de programação concorrente, abordando concorrência, objetos e concorrência, e padrões de projeto. 3) Construtores de execução concorrente como threads, processos e tarefas são comparados considerando autonomia, compartilhamento, agendamento e comunicação.
Uma introdução a Resiliência em Sistemas Distribuídos bem como o uso de padrões e políticas de resiliência com o Polly.
Código fonte e animações em:
https://github.com/maiconcp/polly-meetup
Apresentação realizada no evento:
https://www.meetup.com/pt-BR/qualyteam/events/258072791/
Cluster de banco de dados e replicação. Discute três tipos de clusters de banco de dados (shared all, shared disc, shared nothing) e quatro tipos de replicação (síncrona, assíncrona, multimaster, master/slave). Também descreve ferramentas de replicação como pgpool-II, Slony-I e Postgres-R.
O documento explica como o kernel Linux fornece serviços para aplicativos através de chamadas de sistema, gerencia hardware e permite a troca de módulos. O kernel cria uma "máquina virtual" abstraindo o hardware real e fornece informações sobre o sistema no diretório /proc. Parâmetros no /proc/sys podem ser usados para melhorar o desempenho.
Palestra realizada no 1° Seminário de Inovações Tecnológicas em Cluster e Grid no Governo Federal em dezembro de 2005 sobre técnicas de replicação no PostgreSQL
1) O artigo descreve o Memcached, um sistema de cache distribuído de alta performance projetado para acelerar aplicações web dinâmicas ao armazenar objetos e dados com frequência acessados em memória RAM.
2) O Memcached foi criado por Brad Fitzpatrick para melhorar o desempenho do LiveJournal ao armazenar objetos da página de forma separada e distribuída em vários servidores, evitando acessos lentos ao banco de dados.
3) O artigo explica como configurar e usar o Memcached, incluindo
- O documento é uma apostila sobre HTML e CSS criada em agosto de 2008. Ela ensina os conceitos básicos de HTML, CSS e também dá dicas sobre design web e o uso do Photoshop e Dreamweaver. Inclui exemplos ilustrados com fotos e exercícios prontos para o leitor praticar.
Breve discussão do 2o meetup do PHPBA sobre a motivação para o surgimento dos micro e nano frameworks. Para que eles servem, como e quando utilizá-los e um estudo de caso sobre o uso do Slim para integrar com outros sistemas.
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...Cristofer Sousa
O documento discute o framework Bootstrap e design responsivo para aplicações web. Aborda conceitos como grids, media queries, prototipação e ferramentas como Bootstrap, jQuery e outras bibliotecas front-end. Explica a importância do design responsivo e mobile first para se adaptar a diferentes dispositivos.
O documento apresenta uma introdução ao framework Bootstrap, descrevendo sua origem no Twitter e evolução. Explica como o Bootstrap facilita o desenvolvimento web, tornando os sites responsivos e compatíveis entre navegadores através de um conjunto de ferramentas e padrões. Finalmente, demonstra algumas funcionalidades do Bootstrap de forma prática.
MVC Frameworks for building PHP Web ApplicationsVforce Infotech
Hello and welcome to VForce Infotech Training on MVC Frameworks for Building PHP Web Applications. In this course we are going to look at PHP, and specifically we are going to look into some of the main frameworks that you can use to develop PHP applications. We are going to look at some of the patterns, most specifically the Model/View/ Controller pattern, which is at the root of every one of these frameworks. And then we are going to dive in and take a look at the Zend framework. We are going to also look at the SymFony framework. We will look at the lightweight CodeIgniter framework. And lastly will look at CakePHP. This course was designed to introduce you to some of the more popular PHP frameworks.
Hopefully you can choose what might be right for you and your project. I'll show you how to get started in each of them and you can take it from there. So let's get started.
Desenvolvido pela equipe do Twitter, o Bootstrap é um framework front-end de código aberto (opensource). Em palavras simples, é um conjunto de ferramentas criadas para facilitar o desenvolvimento de sites e sistemas web.
Compatível com HTML5 e CSS3, o framework possibilita a criação de layouts responsivos e o uso de gris, permitindo que seu conteúdo seja organizado em até 12 colunas e que comporte-se de maneira diferente para cada resolução.
Como qualquer outra ferramenta, possui suas vantagens e desvantagens. É importante conhecer e entender suas funcionalidades para saber os momentos certos de utilizá-lo.
Post completo: http://thiagonasc.com/geral/desenvolvendo-com-bootstrap-3-um-framework-front-end-que-vale-a-pena
O documento apresenta o framework Bootstrap, explicando como ele pode facilitar o desenvolvimento ágil de sites. Apresenta os principais recursos como grids, formulários e tabelas responsivas. Fornece instruções passo a passo de como configurar um projeto com Bootstrap, incluindo links para a documentação oficial.
O documento discute os padrões arquitetônicos MVC, JavaBeans e DAO. MVC separa uma aplicação em três partes - Model, View e Controller. JavaBeans são componentes reutilizáveis que seguem convenções como ter getters/setters. DAO é um padrão para acesso a dados que encapsula operações CRUD em interfaces genéricas.
O documento descreve o servidor Samba, que permite compartilhamento de arquivos entre sistemas Windows e Unix. Ele implementa os protocolos SMB/CIFS para permitir acesso a recursos Unix como se fossem compartilhamentos Windows. É configurado no arquivo smb.conf, dividido em configurações globais e de compartilhamentos.
O documento descreve a configuração de um servidor PDC Samba em um sistema CentOS, incluindo a instalação de pacotes necessários como Samba, Squid e SARG. Os principais pontos abordados são a criação de usuários e grupos, compartilhamentos, configuração do smb.conf e mapeamento de grupos.
Ao infinito e além com PHP memcached e GearmanElton Minetto
São apresentados o Gearman e o Memcached. O Gearman é um framework genérico para gerenciar filas de tarefas de forma que possam ser executadas em paralelo, com balanceamento de carga e acessíveis a múltiplas linguagens de programação. O Memcached é um sistema distribuído e de alta performance para fazer cache de objetos em memória RAM. São de extrema utilidade em sites e aplicativos com grande carga de processamento e necessidades de escalabilidade.
O documento discute a automação e gerenciamento de servidores com a ferramenta Puppet. Ele descreve os requisitos para gerenciar grandes quantidades de máquinas e minimizar repetições de tarefas. O Puppet é apresentado como uma boa alternativa por permitir gerenciar atividades repetitivas de forma centralizada e padronizada em diferentes sistemas operacionais.
O documento descreve o que é um cluster e como funciona, definindo-o como um sistema onde dois ou mais computadores trabalham juntos como se fossem um único computador, dividindo tarefas de processamento. Explica que cada computador de um cluster é chamado de nó e que eles precisam ser interconectados em rede. Apresenta também diferentes tipos de clusters, como clusters de servidores, Network Load Balancing e Beowulf.
Este documento descreve a configuração de um cluster de alta disponibilidade em sistemas Linux utilizando as ferramentas DRBD, Heartbeat e Mon. O documento discute conceitos de cluster e alta disponibilidade, apresenta as ferramentas utilizadas e descreve um estudo de caso configurando um servidor Samba com alta disponibilidade. O resumo destaca que o objetivo é criar um ambiente com redundância à falhas de forma transparente aos usuários utilizando estas ferramentas gratuitas e de código aberto para Linux.
O documento descreve a configuração de alta disponibilidade utilizando o Pacemaker e o DRBD. O Pacemaker é usado para implementar failover de serviços como Apache e IP virtual entre dois nós, enquanto o DRBD replica o armazenamento entre os nós para prover alta disponibilidade dos dados.
1) O documento discute programação concorrente e como ela se relaciona com programação orientada a objetos. 2) É apresentado um roteiro para o curso de programação concorrente, abordando concorrência, objetos e concorrência, e padrões de projeto. 3) Construtores de execução concorrente como threads, processos e tarefas são comparados considerando autonomia, compartilhamento, agendamento e comunicação.
Uma introdução a Resiliência em Sistemas Distribuídos bem como o uso de padrões e políticas de resiliência com o Polly.
Código fonte e animações em:
https://github.com/maiconcp/polly-meetup
Apresentação realizada no evento:
https://www.meetup.com/pt-BR/qualyteam/events/258072791/
Cluster de banco de dados e replicação. Discute três tipos de clusters de banco de dados (shared all, shared disc, shared nothing) e quatro tipos de replicação (síncrona, assíncrona, multimaster, master/slave). Também descreve ferramentas de replicação como pgpool-II, Slony-I e Postgres-R.
O documento explica como o kernel Linux fornece serviços para aplicativos através de chamadas de sistema, gerencia hardware e permite a troca de módulos. O kernel cria uma "máquina virtual" abstraindo o hardware real e fornece informações sobre o sistema no diretório /proc. Parâmetros no /proc/sys podem ser usados para melhorar o desempenho.
Palestra realizada no 1° Seminário de Inovações Tecnológicas em Cluster e Grid no Governo Federal em dezembro de 2005 sobre técnicas de replicação no PostgreSQL
1) O artigo descreve o Memcached, um sistema de cache distribuído de alta performance projetado para acelerar aplicações web dinâmicas ao armazenar objetos e dados com frequência acessados em memória RAM.
2) O Memcached foi criado por Brad Fitzpatrick para melhorar o desempenho do LiveJournal ao armazenar objetos da página de forma separada e distribuída em vários servidores, evitando acessos lentos ao banco de dados.
3) O artigo explica como configurar e usar o Memcached, incluindo
- O documento é uma apostila sobre HTML e CSS criada em agosto de 2008. Ela ensina os conceitos básicos de HTML, CSS e também dá dicas sobre design web e o uso do Photoshop e Dreamweaver. Inclui exemplos ilustrados com fotos e exercícios prontos para o leitor praticar.
Breve discussão do 2o meetup do PHPBA sobre a motivação para o surgimento dos micro e nano frameworks. Para que eles servem, como e quando utilizá-los e um estudo de caso sobre o uso do Slim para integrar com outros sistemas.
Bootstrap desenvolvendo e customizando interfaces para web, introduzindo aos ...Cristofer Sousa
O documento discute o framework Bootstrap e design responsivo para aplicações web. Aborda conceitos como grids, media queries, prototipação e ferramentas como Bootstrap, jQuery e outras bibliotecas front-end. Explica a importância do design responsivo e mobile first para se adaptar a diferentes dispositivos.
O documento apresenta uma introdução ao framework Bootstrap, descrevendo sua origem no Twitter e evolução. Explica como o Bootstrap facilita o desenvolvimento web, tornando os sites responsivos e compatíveis entre navegadores através de um conjunto de ferramentas e padrões. Finalmente, demonstra algumas funcionalidades do Bootstrap de forma prática.
MVC Frameworks for building PHP Web ApplicationsVforce Infotech
Hello and welcome to VForce Infotech Training on MVC Frameworks for Building PHP Web Applications. In this course we are going to look at PHP, and specifically we are going to look into some of the main frameworks that you can use to develop PHP applications. We are going to look at some of the patterns, most specifically the Model/View/ Controller pattern, which is at the root of every one of these frameworks. And then we are going to dive in and take a look at the Zend framework. We are going to also look at the SymFony framework. We will look at the lightweight CodeIgniter framework. And lastly will look at CakePHP. This course was designed to introduce you to some of the more popular PHP frameworks.
Hopefully you can choose what might be right for you and your project. I'll show you how to get started in each of them and you can take it from there. So let's get started.
Desenvolvido pela equipe do Twitter, o Bootstrap é um framework front-end de código aberto (opensource). Em palavras simples, é um conjunto de ferramentas criadas para facilitar o desenvolvimento de sites e sistemas web.
Compatível com HTML5 e CSS3, o framework possibilita a criação de layouts responsivos e o uso de gris, permitindo que seu conteúdo seja organizado em até 12 colunas e que comporte-se de maneira diferente para cada resolução.
Como qualquer outra ferramenta, possui suas vantagens e desvantagens. É importante conhecer e entender suas funcionalidades para saber os momentos certos de utilizá-lo.
Post completo: http://thiagonasc.com/geral/desenvolvendo-com-bootstrap-3-um-framework-front-end-que-vale-a-pena
O documento apresenta o framework Bootstrap, explicando como ele pode facilitar o desenvolvimento ágil de sites. Apresenta os principais recursos como grids, formulários e tabelas responsivas. Fornece instruções passo a passo de como configurar um projeto com Bootstrap, incluindo links para a documentação oficial.
O documento discute os padrões arquitetônicos MVC, JavaBeans e DAO. MVC separa uma aplicação em três partes - Model, View e Controller. JavaBeans são componentes reutilizáveis que seguem convenções como ter getters/setters. DAO é um padrão para acesso a dados que encapsula operações CRUD em interfaces genéricas.
The document discusses the Model-View-Controller (MVC) pattern, which separates an application into three main components: the model, the view, and the controller. The model manages the application's data logic and rules. The view displays the data to the user. The controller handles input and converts it to commands for the model and view. An example PHP MVC application is provided to illustrate how the components work together. Benefits of MVC include flexibility, testability, and separation of concerns between the three components.
O documento discute o padrão MVC com JSP e Servlets, separando as funcionalidades em três camadas: Model, View e Controller. Apresenta também um mini-tutorial sobre como implementar este padrão em um sistema simples de sugestão de cervejas.
Desenvolvimento em Três Camadas com PHP, MVC e AjaxAlmir Neto
O documento apresenta um roteiro para um treinamento sobre desenvolvimento web em três camadas usando PHP, MVC e AJAX. Aborda conceitos como orientação a objetos, MVC, camadas, estrutura de diretórios, AJAX e bibliotecas JavaScript. O objetivo é ensinar boas práticas de programação para desenvolvimento de aplicações web dinâmicas e escaláveis.
PHP Jedi - Boas Práticas e Alta PerformanceFelipe Ribeiro
O documento fornece diretrizes sobre boas práticas de programação PHP, como estruturação do código em camadas, uso de padrões de codificação, reuso de componentes, tratamento de erros, desempenho e escalabilidade. Recomenda frameworks, bibliotecas como PEAR e cuidados com nomeação, comentários e complexidade do código.
O documento discute a integração contínua em PHP usando Jenkins. Ele descreve como ferramentas como PHPUnit, PHP CodeSniffer e phpcpd podem ser usadas com Jenkins para automatizar testes, análise de código e geração de relatórios.
Este documento apresenta uma palestra sobre desenvolvimento de aplicações web escaláveis. Apresenta conceitos como performance, capacidade e escalabilidade. Discutem técnicas para otimizar os servidores web, banco de dados MySQL, PHP, cache, bibliotecas JavaScript e imagens. Apresenta métricas e ferramentas de monitoramento. Discutem arquiteturas escaláveis com balanceadores de carga, cache servers e sharding de dados.
1) Muitos aplicativos de software precisarão ser modificados para aproveitar processadores multicore, dividindo tarefas em threads para serem executadas simultaneamente.
2) Há diferentes abordagens para programação multithread como segmentação explícita e métodos dirigidos pelo compilador como OpenMP.
3) Desenvolvedores precisarão testar aplicações multithread para evitar bugs como condições de corrida e otimizar o desempenho aproveitando todos os núcleos da CPU.
Otimização de infra estrutura para hospedagem de websitesFabiano Weimar
O documento fornece dicas para otimizar a infraestrutura de hospedagem de websites para melhorar o desempenho. Ele discute a importância de medir o desempenho, ferramentas como Apache Benchmark e Siege, e técnicas como cache compartilhado, uso de CDN e configuração de cabeçalhos HTTP apropriados.
Desenvolva Sistemas Embutidos com Software Livre - Carlos A. M. dos Santos e ...Tchelinux
O documento discute o desenvolvimento de sistemas embutidos com software livre. Apresenta definições de sistemas embutidos, máquinas virtuais e emuladores. Também fornece dicas sobre como programar, compilar, otimizar desempenho, reduzir espaço e testar sistemas embutidos.
O documento fornece uma introdução sobre um treinamento de performance e tuning em ambientes Linux. Ele descreve os objetivos do treinamento de coletar, analisar e implementar técnicas para melhorar o desempenho de sistemas Linux físicos, virtuais ou na nuvem. Também lista os pré-requisitos, conteúdo, ferramentas de análise e duração do treinamento.
Este documento discute três tópicos principais: 1) Uma introdução ao MySQL e suas vantagens para aplicações web escaláveis; 2) Métricas e ferramentas importantes para avaliar o desempenho do MySQL; 3) Técnicas para melhorar a performance do MySQL, incluindo otimização de consultas SQL e configuração do arquivo my.cnf.
Palestra realizada em abril de 2009 no FLISOL de Aracaju/Sergipe. O tema foi o framework orientado a objetos em PHP chamado Symfony.
Algumas de suas features:
- utiliza a arquitetura MVC (Model View Controller), isto é, separação das camadas de apresentação, controle e modelo.
- utiliza bastantes componentes independentes como o Doctrine e Propel (ORM), YML (arquivos de configuração) e outros. Que podem ser adotados em outros projetos que não utilizam o Symfony.
- possui geração automática de CRUD (create, retrieve, update, delete)
- possui uma documentação e comunidade muito grandes.
- geração automática de telas de administração
- ambiente de desenvolvimento com debug
- ambiente de teste
- integração com sincronizador de arquivos (para atualização do projeto na produção)
- separação de configuração para ambientes de teste, desenvolvimento e produção.
- e muito mais...
O documento discute técnicas para otimizar o desempenho de websites desenvolvidos em PHP. Ele aborda ajustes que podem ser feitos no servidor web e no banco de dados para melhorar a performance, como utilização de módulos do Apache, configuração do MySQL e uso de cache. Além disso, apresenta técnicas de profiling em PHP para identificar gargalos e otimizações como compactação de arquivos e static assets.
O documento fornece dicas sobre boas práticas de programação PHP para obter alta performance e escalabilidade. Em três frases ou menos, resume-se:
Divida a aplicação em camadas, use frameworks para padronização e reuso de código, e otimize o banco de dados e cache para melhorar a performance e capacidade de suportar alto tráfego.
Caio Cutrim é um entusiasta de Node.js e programador full-stack. Ele teve seu primeiro contato com programação web em 2007 e é auto-didata em informática e músico. O documento discute os problemas das arquiteturas bloqueantes em linguagens como Python, Java e PHP, e como Node.js resolve isso usando I/O não-bloqueante e event loop.
O documento descreve conceitos de arquitetura paralela e computação paralela, incluindo modelos como SISD, SIMD, MISD e MIMD. Também discute aplicações como processadores vetoriais, multiprocessadores simétricos e máquinas maciçamente paralelas. Finalmente, aborda software para processamento paralelo e os três principais tipos: Swar, SMP e clusters Beowulf.
Oficina "A aplicação do ICA-AtoM na descrição e difusão arquivística - Instal...Dhion C. Hedlund
1) O documento apresenta uma oficina sobre a instalação, configuração e funcionalidades do software ICA-AtoM para descrição arquivística.
2) A oficina ensinará a instalar, configurar e utilizar as funcionalidades básicas do ICA-AtoM, como inserir descrições nos níveis previstos e anexar documentos digitais.
3) O ICA-AtoM permite implementar um sistema de descrição arquivística online de baixo custo que pode atingir milhões de
Memcached - Uma alternativa de cache para arquiteturas de alta escalabilidade Felipe Bergamaschi
Memcached é um serviço de cache de alto desempenho e distribuído que armazena dados na memória para acelerar aplicações dinâmicas e aliviar a carga sobre bancos de dados. Ele funciona como um armazenamento simples de chave-valor e expira itens automaticamente para liberar memória. Memcached é leve, rápido e escalável, tornando-o uma opção popular para cache em arquiteturas de alta performance.
1) O documento discute como usar as ferramentas PHP, Memcached e Gearman para distribuir processamento e armazenamento em cache para melhorar escalabilidade e desempenho de aplicações.
2) Memcached é usado para armazenar objetos em memória RAM compartilhada para acelerar acessos frequentes e aliviar bancos de dados.
3) Gearman distribui tarefas assíncronas entre servidores para processamento paralelo e balanceamento de carga.
O Amazon EC2 oferece vários tipos de instâncias para atender de maneira otimizada os cenários de uso. Nesta sessão, iremos mostrar as principais funcionalidades, detalhar as características de algumas famílias, apresentar as melhores práticas e compartilhar dicas para extrair o máximo de desempenho das suas instâncias.
Amazon EC2 oferece uma ampla seleção de tipos de instâncias para suportar diversos casos de uso. Nesta sessão, entregaremos uma visão geral da plataforma de instâncias do Amazon EC2, das características mais importantes da plataforma e do conceito de gerações de instâncias. Nos aprofundamos nas escolhas da geração atual para as diferentes famílias de instâncias, incluindo as famílias de Propósito Geral (General Purpose), as otimizadas para Computação, Otimizadas para Armazenamento, Otimizadas para Memória e as familias com Computação Acelerada (GPU e FPGA). Também detalharemos as melhores práticas e compartilhamos dicas de desempenho para obter o máximo de suas instâncias do Amazon EC2.
https://aws.amazon.com/pt/ec2/
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
O documento discute técnicas e recursos para desenvolvimento web em grandes escalas. Apresenta 14 regras para melhorar o desempenho do front-end e demonstra exemplos de CDN, cache, Ajax, aplicações em tempo real e outras ferramentas como Node.js. Também fornece dicas sobre configurações do IIS e bibliotecas de código aberto.
Este documento apresenta um mini-curso introdutório sobre programação em CUDA. Ele introduz conceitos fundamentais como:
1) A arquitetura de GPUs e como elas se tornaram poderosas processadoras paralelas;
2) O que é CUDA e como ele permite programação em GPUs usando extensões da linguagem C;
3) A hierarquia de memória e modelo de execução em CUDA.
O documento também apresenta exemplos simples de programação em CUDA, como soma de vetores e multiplicação de matrizes, e discute aplicações ade
Com o uso cada vez maior de serviços de armazenamento em nuvem, a necessidade em migrar, replicar ou sincronizar arquivos armazenados localmente para serviços de armazenamento remoto pode se tornar uma tarefa árdua para administradores de sistemas que muitas vezes não dispõem de soluções adequadas para atender necessidades específicas de uma organização. Esta proposta pretende abordar algorítmos, técnicas de otimização em linguagem de programação e boas práticas em configurações de infraestrutura de servidores para ganhos em desempenho na transferência de arquivos e diretórios entre servidores e serviços de armazenamento em nuvem. Para comprovar os resultados, a proposta utilizará de um estudo de caso real para uma empresa no segmento B2B, comprovando eficiência em ganhos de desempenho e abrindo discussões para soluções técnicas em cenários diversos
Semelhante a Desenvolvendo aplicações Web escaláveis com PHP (20)
Go e Microserviços - Nascidos um para o outroElton Minetto
Nesta palestra apresento uma introdução à linguagem Go, com suas características, vantagens e porque ela se tornou uma das mais usadas para o desenvolvimento de projetos baseados na arquitetura de microserviços .
O documento contrasta as características de um programador versus um desenvolvedor de software, e fornece dicas sobre como se tornar um desenvolvedor. Um programador escreve código rápido e bagunçado, enquanto um desenvolvedor escreve código limpo e estruturado, testa seu trabalho, e coopera em equipe. Para se tornar um desenvolvedor, o documento recomenda usar padrões de código, automatizar tarefas, testar código, e ser um bom membro da equipe.
Gerenciando uma startup no Github ProjectsElton Minetto
O documento descreve como uma startup está usando o Github Projects para gerenciar projetos entre equipes de marketing, produto, desenvolvimento, finanças e vendas. Cada equipe criou um projeto no Github para refletir seu fluxo de trabalho e tarefas são vinculadas a histórias de usuário para fornecer visibilidade entre times. Isso melhorou a comunicação, integração e organização, embora existam desafios de treinamento e funcionalidade.
A Clean Architecture divide o código em 4 camadas: Entidades, Use Cases, Controller e Frameworks & Drivers. Isso permite que o código seja independente de frameworks, testável, e independente da interface do usuário e banco de dados. O documento fornece exemplos de como implementar essa arquitetura em Go e PHP.
O documento discute os benefícios de usar Go para funções serverless e frameworks para desenvolvimento serverless como Serverless Framework, AWS, Up e OpenFaas. Ele explica como configurar e implantar funções serverless em Go usando esses frameworks e discute quando cada um é mais adequado dependendo dos requisitos do projeto.
O documento descreve o que é JAMstack, uma nova abordagem para criar sites e aplicativos que oferece melhor desempenho, segurança e experiência de desenvolvimento. JAMstack usa JavaScript, APIs e marcação estática para fornecer conteúdo dinâmico com melhor desempenho e segurança ao usar arquiteturas sem servidor. Exemplos de ferramentas e casos de uso da JAMstack são fornecidos.
O documento descreve os princípios da arquitetura limpa em Go, dividindo o código em 4 camadas: entidades, casos de uso, controladores e frameworks/drivers. A arquitetura promove independência de frameworks, teste, interface gráfica e bancos de dados, além de permitir testes por camada.
O documento discute as diferenças entre programadores e desenvolvedores de software. Programadores tendem a escrever código rápido e bagunçado, enquanto desenvolvedores escrevem código limpo e legível, aprendem constantemente e trabalham em equipe. Para se tornar um desenvolvedor, deve-se usar padrões, testar o código, automatizar tarefas e ser um bom membro da equipe.
O documento descreve os princípios da Clean Architecture em PHP, que divide o código em 4 camadas (Entidades, Use Cases, Controller e Framework & Driver) para torná-lo independente de frameworks, bancos de dados e interfaces. Ele fornece um exemplo completo no GitHub para demonstrar como implementar essa arquitetura em um projeto PHP.
Clean Architecture promove a independência entre as camadas de uma aplicação, dividindo-a em Entidades, Casos de Uso, Controller e Frameworks & Drivers. Isso permite que cada camada seja testada e desenvolvida isoladamente. A arquitetura é demonstrada em Go com pacotes para Entidades, Interface, Serviço, Repositórios e API, permitindo testes por camada.
O documento fornece dicas para desenvolvedores começarem e se desenvolverem em suas carreiras. Recomenda fazer curso superior, aprender inglês e outras áreas, praticar constantemente, participar de eventos, manter portfólio e networking, e ter uma carreira ao invés de apenas um emprego.
This document discusses how to build an effective product roadmap. It explains that a roadmap should have a clear product vision and deliver innovation through frequent, incremental releases. Roadmaps can be feature-oriented, mapping features onto a timeline, or goal-oriented, focusing on meeting goals like acquiring users or generating revenue. Data-driven roadmaps choose metrics like product usage, customer retention, or monthly recurring revenue. The RICE method prioritizes efforts based on their reach, impact, confidence, and effort. Finally, the roadmap informs the product backlog for agile development using metrics like throughput, lead time, and cycle time.
This document outlines the key aspects of a software development project including the what, why, and how. It discusses the product, API-first design, microservices architecture, and clean code practices. The tech stack involves Go, React, GRPC, and containers deployed using CI/CD pipelines to AWS. Project management follows Kanban and uses GitHub issues and project boards. Metrics are tracked but not specified. Contact details are provided for further information.
Uma empresa está modernizando um projeto legado de 5 anos usando APIs, containers Docker e ferramentas como Zend Expressive e AWS. Eles criaram uma API pública, migraram o código para PHP 7 rodando em containers e lançaram um primeiro aplicativo externo. Aprenderam que testes, containers e middlewares aceleram o processo, mas integração com filas é complexa. Seus próximos passos incluem lançar um portal para desenvolvedores.
Os 12 fatores são uma lista de boas práticas que projetos e times podem aplicar para rodar seus aplicativos na núvem Nesta palestra vou apresentar cada um dos fatores, suas vantagens e como aplicá-los em projetos PHP
This document discusses an approach to building APIs using Go without frameworks. It recommends using the Go standard library along with small external packages for validation, routing, middleware, and SQL. The project structure separates code into packages for the API handler, middleware, user service implementation, and other files like configuration and documentation. Links are provided to the sample project and articles on developing APIs in Go using middlewares and API Blueprint.
O documento fornece dicas para começar no mercado de trabalho, incluindo aprender inglês e outras áreas, praticar constantemente, participar de eventos e grupos de usuários, manter uma rede de contatos e não se apegar a uma única tecnologia.
Este documento fornece três lições sobre começar um negócio de tecnologia: comece pequeno, planeje para o futuro crescimento, e projete uma arquitetura flexível que possa se adaptar ao crescimento. Ele também fornece contatos para obter mais informações.
Uma introdução à linguagem de programação Go, incluindo suas características como tipagem estática, programação concorrente, pacotes, erros e canais. Apresenta exemplos de código e discute quem está usando Go, como Google e Dropbox, e para quais aplicações como microserviços e bancos de dados. Fornece também recursos de estudo online e de livros.
As classes de modelagem podem ser comparadas a moldes ou
formas que definem as características e os comportamentos dos
objetos criados a partir delas. Vale traçar um paralelo com o projeto de
um automóvel. Os engenheiros definem as medidas, a quantidade de
portas, a potência do motor, a localização do estepe, dentre outras
descrições necessárias para a fabricação de um veículo
Em um mundo cada vez mais digital, a segurança da informação tornou-se essencial para proteger dados pessoais e empresariais contra ameaças cibernéticas. Nesta apresentação, abordaremos os principais conceitos e práticas de segurança digital, incluindo o reconhecimento de ameaças comuns, como malware e phishing, e a implementação de medidas de proteção e mitigação para vazamento de senhas.
Este certificado confirma que Gabriel de Mattos Faustino concluiu com sucesso um curso de 42 horas de Gestão Estratégica de TI - ITIL na Escola Virtual entre 19 de fevereiro de 2014 a 20 de fevereiro de 2014.
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...Faga1939
Este artigo tem por objetivo apresentar como ocorreu a evolução do consumo e da produção de energia desde a pré-história até os tempos atuais, bem como propor o futuro da energia requerido para o mundo. Da pré-história até o século XVIII predominou o uso de fontes renováveis de energia como a madeira, o vento e a energia hidráulica. Do século XVIII até a era contemporânea, os combustíveis fósseis predominaram com o carvão e o petróleo, mas seu uso chegará ao fim provavelmente a partir do século XXI para evitar a mudança climática catastrófica global resultante de sua utilização ao emitir gases do efeito estufa responsáveis pelo aquecimento global. Com o fim da era dos combustíveis fósseis virá a era das fontes renováveis de energia quando prevalecerá a utilização da energia hidrelétrica, energia solar, energia eólica, energia das marés, energia das ondas, energia geotérmica, energia da biomassa e energia do hidrogênio. Não existem dúvidas de que as atividades humanas sobre a Terra provocam alterações no meio ambiente em que vivemos. Muitos destes impactos ambientais são provenientes da geração, manuseio e uso da energia com o uso de combustíveis fósseis. A principal razão para a existência desses impactos ambientais reside no fato de que o consumo mundial de energia primária proveniente de fontes não renováveis (petróleo, carvão, gás natural e nuclear) corresponde a aproximadamente 88% do total, cabendo apenas 12% às fontes renováveis. Independentemente das várias soluções que venham a ser adotadas para eliminar ou mitigar as causas do efeito estufa, a mais importante ação é, sem dúvidas, a adoção de medidas que contribuam para a eliminação ou redução do consumo de combustíveis fósseis na produção de energia, bem como para seu uso mais eficiente nos transportes, na indústria, na agropecuária e nas cidades (residências e comércio), haja vista que o uso e a produção de energia são responsáveis por 57% dos gases de estufa emitidos pela atividade humana. Neste sentido, é imprescindível a implantação de um sistema de energia sustentável no mundo. Em um sistema de energia sustentável, a matriz energética mundial só deveria contar com fontes de energia limpa e renováveis (hidroelétrica, solar, eólica, hidrogênio, geotérmica, das marés, das ondas e biomassa), não devendo contar, portanto, com o uso dos combustíveis fósseis (petróleo, carvão e gás natural).
4. Quem?
Graduado e pós-graduado em Ciência da Computação.
Cursando MBA em Gerenciamento de Projetos
Trabalha com PHP desde 2000
Autor dos livros Frameworks para Desenvolvimento
em PHP e Grid Computing in Research and Education
Coordenador do PHPSC e membro do PHPBC
Gerente de Desenvolvimento do Drimio e professor
na Unochapecó(Chapecó)
quarta-feira, 23 de setembro de 2009
5. Terminologia
Performance: a habilidade que uma aplicação tem de
atingir um objetivo, como por exemplo responder no
menor tempo possível
Capacidade: a carga total que uma aplicação pode
suportar
Escalabilidade: a habilidade de uma aplicação manter
a performance quando a carga de trabalho aumenta.
É a junção da capacidade e da performance
quarta-feira, 23 de setembro de 2009
7. Ou...
Performance: a velocidade do carro
Capacidade: o limite de velocidade e o número de
pistas da estrada
Escalabilidade: quantos carros e pistas eu posso
adicionar sem diminuir a velocidade do tráfego
“Performance is a problem. Scaling your performance is a
bigger problem”
quarta-feira, 23 de setembro de 2009
9. Web Servers
Apache: Prefork X Worker
Prefork
Usa fork(). Cada processo filho trata uma conexão
Grande uso de memória
Rápido
Bom para até duas CPUs
Worker
Apache 2.0 e superior
Múltiplas threads dentro de cada filho (poucos filhos)
Diminui o uso de memória
Mais escalável
Melhor com múltiplos processadores
Não funciona com PHP!
quarta-feira, 23 de setembro de 2009
10. Web Servers
“Usar servidores dedicados para conteúdo
estático“ (Flickr)
Apache pode ser substituído por outro mais leve:
lighttpd, tux, thttpd
Usar domínios diferentes para conteúdo estático e
dinâmico. Exemplo:
http://www.drimio.com (Servidor Apache)
http://static.drimio.com (Servidor lighttpd)
Usa a possibilidade dos navegadores acessarem múltiplos
domínios ao mesmo tempo. Não sobrecarrega o servidor de
conteúdo dinâmico
quarta-feira, 23 de setembro de 2009
11. Dica
Apache + Lighttpd = Cura do Câncer! (by @guhelski)
No apache:
ProxyRequests Off
ProxyPreserveHost On
ProxyPass /public http://0.0.0.0:8080/
ProxyPassReverse / http://0.0.0.0:8080/
Todas as requisições para arquivos estáticos (/public)
são repassados automaticamente para o lighttpd
quarta-feira, 23 de setembro de 2009
12. MySQL
“Nenhum dos problemas de escalabilidade que
enfrentaram era relacionado com PHP. Os maiores
problemas encontrados eram relacionados com base
de dados” (Digg)
“Sharding é usado para quebrar a base de dados em
várias porções menores” (Digg)
“Fazer o tunning do MySQL durante a escolha da
engine de armazenamento das tabelas. Usar InnoDB
quando precisa de transações e MyISAM quando não
precisa” (Digg)
“Desnormalização ou cacheamento são as únicas
formas de gerar uma tag cloud em milissegundos para
milhões de tags” (Flickr)
quarta-feira, 23 de setembro de 2009
13. MySQL
Usar replicação Master-Slave.
Dividir a carga entre servidores. As requisições de
modificação (INSERT, UPDATE,DELETE) podem ser
enviadas para o Master. Os dados são replicados para
os Slaves. As requisições de leitura (SELECT) são
enviadas direto para os Slave
Usar o tipo correto de dados na tabela:
INT x SMALLINT x TINYINT
CHAR x VARCHAR
quarta-feira, 23 de setembro de 2009
14. MySQL
Master-Slave tem o problema do tempo de
sincronização. Resposta: sharding.
“Uma base de dados pode ser sharded por tabelas, dados ou
faixas (ranges). É similar ao particionamento, mas possui
algumas diferenças. Sharding envolve separar os dados em
máquinas fisicamente distintas, enquanto que
particionamento geralmente ocorre em mesmo hardware.
MySQL não suporta nativamente sharding, mas sim tabelas
particionadas, tabelas federadas (federated) e clusters.”
quarta-feira, 23 de setembro de 2009
16. PHP
Usar “boas práticas de programação”
echo é mais rápido que print
require_once() é lento
etc,etc
http://reinholdweber.com/?p=3
http://www.devolio.com/blog/archives/314-Practical-and-
impractical-PHP-Optimizations.html
quarta-feira, 23 de setembro de 2009
17. PHP
PHP tem um compilador JIT que gera um código
intermedário chamado opcode que é então
interpretado. Por default essa compilação ocorre em
todas as execuções do script. Para otimização e
caching desse opcode, existem algumas soluções:
Pacote APC do PECL
XCache
Zend Platform ($$$)
quarta-feira, 23 de setembro de 2009
18. Cache
Memcached: é um sistema de cache de objetos em
memória distribuída de alta performance.Ele foi
desenvolvido de maneira que se consiga armazenar
qualquer tipo de informação mas é largamente usado
em aplicações web para armazenar conteúdos como
resultados de queries SQL, sessões de usuários,
arquivos CSS, etc.
É possível criar “memcached farms”, aumentando a
escalabilidade
quarta-feira, 23 de setembro de 2009
19. Memcached com PHP
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211);
$memcache->connect('localhost', 11212);
$memcache->connect(’192.168.0.10', 11212);
$conteudo = $memcache->get('estados');
if($conteudo === false) {
$uf = array('SC','RS','SP');
$memcache->set('estados', $uf, false, 100) ;
$conteudo = $uf;
}
var_dump($conteudo);
?>
quarta-feira, 23 de setembro de 2009
20. Memcached - Dicas
Existem 3 extensões para conectar o PHP com o
Memcached:
http://pecl.php.net/package/memcache (estável)
http://pecl.php.net/package/memcached (estável com mais
opções e mais rápido)
http://www.modron.net/~dina/ezmemcache/ (novo mas com
bom suporte a UDP)
No Drimio usamos: (ainda em testes. Não faça isso em
casa!)
memcached via TCP para salvar os ítens
ezmemcache via UDP para fazer a leitura. Mais rápido para
muitas conexões simultâneas
quarta-feira, 23 de setembro de 2009
21. 80-90% of the end-user response time is spent on
the frontend.
quarta-feira, 23 de setembro de 2009
22. Javascript
“Algumas pessoas reclamam que o Digg é lento. Mas
isso é mais devido ao uso de grandes bibliotecas
javascript e não da arquitetura de backend (Digg)”
JavaScript pode ser comprimido
http://developer.yahoo.com/yui/compressor/
Usar compressão no Apache.
quarta-feira, 23 de setembro de 2009
25. Imagens
Editores de imagens possuem grandes ferramentas
para otimizar o tamanho do arquivo sem perder
qualidade visual. Mesmo assim elas adicionam
informações extra no documento, como nome da
ferramenta, data de criação, etc.
O site Smushit.com permite fazer upload de uma
imagem ou indicar uma URL com a imagem a ser
otimizada. Lançado em 10/2008 por pesquisadores
do Yahoo! Exceptional Performance Team.
quarta-feira, 23 de setembro de 2009
29. Métricas - Drimio
Gráfico de CPU de um dos servidores
quarta-feira, 23 de setembro de 2009
30. Métricas - Drimio
Gráfico de CPU de um dos servidores
Alerta
quarta-feira, 23 de setembro de 2009
31. Métricas - Drimio
Gráfico de CPU de um dos servidores
Pânico
Alerta
quarta-feira, 23 de setembro de 2009
32. Métricas - Drimio
Gráfico de CPU de um dos servidores
Pânico
Alerta
Cool!
quarta-feira, 23 de setembro de 2009
33. Ferramentas
Apache ab,Siege, JMeter (aplicação)
Ganglia,Nagios, MRTG, SNMP (S.O. e serviços)
Firebug e YSlow (javascript, aplicação)
Xdebug (profiling do PHP)
Outras...
quarta-feira, 23 de setembro de 2009
34. Arquitetura
Load Balancers
Cache servers
Bancos de dados Master/Slave, Sharding
Scale-Out Wins Over Scale-
Up (escalar horizontalmente adicionando mais máqui
nas é melhor do que verticalmente adicionando
mais memória/CPU)
quarta-feira, 23 de setembro de 2009
35. Arquitetura
Sobre o Youtube:
“Eles seguiram uma evolução comum:
servidor único, único master e múltiplos
slaves para leitura e depois particionaram a
base de dados.”
quarta-feira, 23 de setembro de 2009
37. Arquitetura – Observações
Como agora um cliente pode ser atendido por
diversos servidores Web durante o uso, as sessões
dos usuários devem ser salvas no banco de dados ou
nos servidores de cache (Memcached)
O MySQL Master é um SPOF( Single Point of Failure) –
adicionar mais Masters em um esquema de replicação
Master/Master. Ou usar sharding
Diversos servidores de cache podem ser adicionados
quarta-feira, 23 de setembro de 2009
38. Lições Aprendidas
Dividir a carga
Usar servidores dedicados para conteúdo estático
Ao invés de comprar máquinas grandes e
centralizadas, é melhor comprar um monte de
pequenas e baratas.
Base de dados é um gargalo. Atacar e corrigir
consultas lentas
Coletar várias estatísticas de performance
Usar InnoDB quando precisa de transações e MyISAM
quando não precisa
quarta-feira, 23 de setembro de 2009
39. Lições Aprendidas
Fazer medições realísticas. Capacity planning deve
ser feito baseado em dados reais e não abstratos.
Começar lentamente. Não comprar muito
equipamento apenas porque está apavorado/feliz
com o fato de que o seu site vai explodir.
Descobrir o máximo de cada servidor para poder
saber se está perto do limite
quarta-feira, 23 de setembro de 2009
40. Receita para tratar crescimento rápido
while (true)
{
identify_and_fix_bottlenecks();
drink();
sleep();
notice_new_bottleneck();
}
Fonte: YouTube Team
quarta-feira, 23 de setembro de 2009
41. Referências
http://developer.yahoo.com/performance/
http://highscalability.com/unorthodox-approach-
database-design-coming-shard
http://blog.feliperibeiro.com/2008/04/slides-da-
palestra-php-para-desenvolvimento-de-aplicacoes-de-
grande-porte.html
http://www.xdebug.org
http://devzone.zend.com/content/zendcon_07_slides/
White_Eli_zendcon-2007-high-perf.pdf
http://jst.pbwiki.com/
http://www.slideshare.net/jallspaw/velocity2008-
capacity-management1-484676
quarta-feira, 23 de setembro de 2009