Apresentaremos o projeto ExpressoV3, suas funcionalidades, arquitetura e comunidade, mostraremos o cenário de expansão de usuários e detalharemos as soluções arquiteturais projetadas para escalar a aplicação, que podem servir para outras aplicações PHP.
ExpressoBR para Um Milhão (de Usuários)Flávio Lisboa
As mais recentes alterações do projeto Expresso, feitas para torná-lo um software de comunicação ajustável para qualquer empresa ou país e para escalar a aplicação para milhares de usuários,
Tirando água da rocha: escalabilidade via software no ExpressoV3Flávio Lisboa
1) O documento descreve como o ExpressoV3 escalou via software, incluindo o uso de cache, sessões, sharding de banco de dados e migração para nuvem.
2) Foi implementado um sistema de sharding virtual para distribuir usuários entre bancos de dados, embora os dados compartilhados ainda precisem ser replicados entre shards.
3) O próximo passo é migrar para bancos não-relacionais auto-gerenciados na nuvem para melhor escalabilidade.
Cobo, Cristiane Brandão. Especialização Banco de Dadoscris.finholdt
1. O documento é uma monografia apresentada por Cristiane Brandão Cobo para obtenção do título de Especialista em Banco de Dados na Universidade de Ribeirão Preto.
2. A monografia aborda as características e aplicações dos bancos de dados do tipo NoSQL, realizando uma revisão bibliográfica sobre o tema e apresentando exemplos práticos utilizando o MongoDB.
3. O objetivo é apresentar as principais características do NoSQL e a importância dos profissionais de TI obterem conhecimento
1) O documento discute soluções de alta disponibilidade do SQL Server, incluindo AlwaysOn Availability Groups e Failover Clustering.
2) O SQL Server AlwaysOn fornece alta disponibilidade e recuperação de desastres no nível do banco de dados combinando database mirroring e log shipping.
3) O documento também discute novos recursos do SSAS como o ColumnStore Index.
Escalabilidade via Software no Expressov3Flávio Lisboa
O documento discute a arquitetura de sharding para escalar o sistema Tine 2.0 para um milhão de usuários. Ele propõe dividir os dados entre vários bancos de dados e domínios, mapeando usuários para shards de forma balanceada. Também aborda desafios como queries distribuídas, replicação de dados e resharding.
O documento discute bancos de dados NoSQL, comparando MongoDB, Cassandra e HBase. MongoDB é adequado para alta velocidade e suporte a clusters, enquanto Cassandra é bom para alta velocidade de escrita. HBase pode armazenar grandes quantidades de dados, mas requer configuração difícil. No geral, NoSQL é útil para escalabilidade e desempenho em aplicações de grande volume.
O documento discute soluções de alta disponibilidade e recuperação de desastres para SQL Server. Ele apresenta várias tecnologias como failover clustering, database mirroring e log shipping. O documento também descreve como a DELL implementou essas soluções para consolidar 600 servidores e 1500 bancos de dados em um cluster de 8 nós, melhorando a disponibilidade e o aproveitamento de armazenamento.
O documento discute vários tópicos relacionados ao desenvolvimento web, incluindo protocolos da internet, bancos de dados, servidores web, hospedagem e tendências. Ele também apresenta uma dinâmica sobre o desenvolvimento de um produto Software as a Service.
ExpressoBR para Um Milhão (de Usuários)Flávio Lisboa
As mais recentes alterações do projeto Expresso, feitas para torná-lo um software de comunicação ajustável para qualquer empresa ou país e para escalar a aplicação para milhares de usuários,
Tirando água da rocha: escalabilidade via software no ExpressoV3Flávio Lisboa
1) O documento descreve como o ExpressoV3 escalou via software, incluindo o uso de cache, sessões, sharding de banco de dados e migração para nuvem.
2) Foi implementado um sistema de sharding virtual para distribuir usuários entre bancos de dados, embora os dados compartilhados ainda precisem ser replicados entre shards.
3) O próximo passo é migrar para bancos não-relacionais auto-gerenciados na nuvem para melhor escalabilidade.
Cobo, Cristiane Brandão. Especialização Banco de Dadoscris.finholdt
1. O documento é uma monografia apresentada por Cristiane Brandão Cobo para obtenção do título de Especialista em Banco de Dados na Universidade de Ribeirão Preto.
2. A monografia aborda as características e aplicações dos bancos de dados do tipo NoSQL, realizando uma revisão bibliográfica sobre o tema e apresentando exemplos práticos utilizando o MongoDB.
3. O objetivo é apresentar as principais características do NoSQL e a importância dos profissionais de TI obterem conhecimento
1) O documento discute soluções de alta disponibilidade do SQL Server, incluindo AlwaysOn Availability Groups e Failover Clustering.
2) O SQL Server AlwaysOn fornece alta disponibilidade e recuperação de desastres no nível do banco de dados combinando database mirroring e log shipping.
3) O documento também discute novos recursos do SSAS como o ColumnStore Index.
Escalabilidade via Software no Expressov3Flávio Lisboa
O documento discute a arquitetura de sharding para escalar o sistema Tine 2.0 para um milhão de usuários. Ele propõe dividir os dados entre vários bancos de dados e domínios, mapeando usuários para shards de forma balanceada. Também aborda desafios como queries distribuídas, replicação de dados e resharding.
O documento discute bancos de dados NoSQL, comparando MongoDB, Cassandra e HBase. MongoDB é adequado para alta velocidade e suporte a clusters, enquanto Cassandra é bom para alta velocidade de escrita. HBase pode armazenar grandes quantidades de dados, mas requer configuração difícil. No geral, NoSQL é útil para escalabilidade e desempenho em aplicações de grande volume.
O documento discute soluções de alta disponibilidade e recuperação de desastres para SQL Server. Ele apresenta várias tecnologias como failover clustering, database mirroring e log shipping. O documento também descreve como a DELL implementou essas soluções para consolidar 600 servidores e 1500 bancos de dados em um cluster de 8 nós, melhorando a disponibilidade e o aproveitamento de armazenamento.
O documento discute vários tópicos relacionados ao desenvolvimento web, incluindo protocolos da internet, bancos de dados, servidores web, hospedagem e tendências. Ele também apresenta uma dinâmica sobre o desenvolvimento de um produto Software as a Service.
O documento fornece uma visão geral do potencial de mercado do Drupal. Resume que o Drupal é uma plataforma open source, flexível e robusta para construção de sites e aplicações web, com uma grande comunidade global de desenvolvedores e casos de sucesso em grandes empresas.
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
O documento discute como empresas grandes podem reduzir custos com mainframes mantendo desempenho, disponibilidade e segurança. Ele descreve novas tecnologias mainframe como zIIP, zEDC e SMT-2 que reduzem custos de hardware e software, e iniciativas como MWP que barateiam cargas móveis. O documento conclui que mainframes continuam sendo aliados de empresas para crescimento com redução de custos graças a melhorias contínuas.
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.
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
Este documento compara modelos de bancos de dados relacionais, NoSQL e NewSQL. Ele descreve a metodologia de comparação entre os modelos, incluindo uma matriz de características e testes de desempenho usando as ferramentas TPC-C e YCSB. Os resultados mostram que bancos NoSQL como Cassandra tiveram melhor desempenho em alguns testes, enquanto bancos NewSQL como NuoDB mantiveram desempenho consistente com a adição de nós. A conclusão é que cada modelo tem propósitos diferentes e
O documento fornece uma visão geral do potencial do Drupal no mercado. Apresenta o Drupal como uma plataforma open source, web e social para gerenciamento de conteúdo, com foco em performance, design, segurança e escalabilidade global. Também destaca a comunidade ativa e casos de sucesso em grandes empresas.
O documento discute NoSQL, comparando propriedades ACID e BASE e o teorema CAP. Apresenta vários modelos NoSQL como chave-valor, orientado a colunas, documentos e grafos. Explica como sistemas NoSQL priorizam disponibilidade sobre consistência de acordo com o teorema CAP.
How Google plans to change the way you watch TV ARPAN SAXENA
The Internet is fundamentally changing the way people watch television by providing greater choice of content, more personalized recommendations, and opportunities for social interactivity. Viewers now expect an on-demand experience and more control over what they watch and when. This shift requires new approaches to content discovery, measurement of viewership, and monetization of content. While the television industry faces disruption, broadcasters that embrace these Internet-enabled technologies and changing viewer behaviors can prosper in the future.
Este documento proporciona análisis técnicos diarios de varias acciones españolas e internacionales, incluyendo líneas de soporte y resistencia, así como posiciones largas y cortas recomendadas con niveles de entrada, stop y objetivos. Fue elaborado por un analista técnico de Cortal Consors el 29 de agosto de 2011.
Adrian Terry, Thales Training & Consultancy, presents on how Learning & Development can support businesses through change and transformation programmes.
El documento describe el Convento de Santa María Magdalena en Cuitzeo, México. El convento fue iniciado en 1550 por la orden de los agustinos y tomó 100 años en completarse. Contiene 24 celdas para monjes, un órgano funcional en el coro, y frescos originales en las paredes. El convento sirvió como cuartel imperialista entre 1864-1867 antes de convertirse en un museo que atrae a muchos visitantes atraídos por su arquitectura, historia y ambiente espiritual.
Helping Rural banks Comply with Microinsurance RegulationsMABSIV
This document summarizes key points from a presentation on helping rural banks comply with microinsurance regulations in the Philippines. It discusses a new circular allowing rural banks to sell microinsurance and outlines proposed licensing requirements and procedures for microinsurance agents and brokers. Key elements include limits on daily premiums and guaranteed benefits, requirements for microinsurance contracts, and the need for a national strategy and regulatory framework to support microinsurance development.
Este documento presenta análisis técnicos de 10 acciones del mercado español y europeo, incluyendo recomendaciones de compra o venta, niveles de entrada y salida, y líneas de soporte y resistencia. Para cada acción, se especifican la estrategia recomendada (largo o corto), los precios objetivo, y un gráfico de líneas pivotales. El análisis fue realizado por Oscar Germade de Cortal Consors el 13 de septiembre de 2010.
Communication with our clients
The Topic are:
-Conference call
-Intro
-Role Play (to understand and ilustrate problems)
-Process
-Language
-Showing disagreement
-Conclusion
O documento fornece uma visão geral do potencial de mercado do Drupal. Resume que o Drupal é uma plataforma open source, flexível e robusta para construção de sites e aplicações web, com uma grande comunidade global de desenvolvedores e casos de sucesso em grandes empresas.
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
O documento discute como empresas grandes podem reduzir custos com mainframes mantendo desempenho, disponibilidade e segurança. Ele descreve novas tecnologias mainframe como zIIP, zEDC e SMT-2 que reduzem custos de hardware e software, e iniciativas como MWP que barateiam cargas móveis. O documento conclui que mainframes continuam sendo aliados de empresas para crescimento com redução de custos graças a melhorias contínuas.
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.
Estudo comparativo entr bancos RDBMS, NoSQL e NewSQLOrlando Vitali
Este documento compara modelos de bancos de dados relacionais, NoSQL e NewSQL. Ele descreve a metodologia de comparação entre os modelos, incluindo uma matriz de características e testes de desempenho usando as ferramentas TPC-C e YCSB. Os resultados mostram que bancos NoSQL como Cassandra tiveram melhor desempenho em alguns testes, enquanto bancos NewSQL como NuoDB mantiveram desempenho consistente com a adição de nós. A conclusão é que cada modelo tem propósitos diferentes e
O documento fornece uma visão geral do potencial do Drupal no mercado. Apresenta o Drupal como uma plataforma open source, web e social para gerenciamento de conteúdo, com foco em performance, design, segurança e escalabilidade global. Também destaca a comunidade ativa e casos de sucesso em grandes empresas.
O documento discute NoSQL, comparando propriedades ACID e BASE e o teorema CAP. Apresenta vários modelos NoSQL como chave-valor, orientado a colunas, documentos e grafos. Explica como sistemas NoSQL priorizam disponibilidade sobre consistência de acordo com o teorema CAP.
How Google plans to change the way you watch TV ARPAN SAXENA
The Internet is fundamentally changing the way people watch television by providing greater choice of content, more personalized recommendations, and opportunities for social interactivity. Viewers now expect an on-demand experience and more control over what they watch and when. This shift requires new approaches to content discovery, measurement of viewership, and monetization of content. While the television industry faces disruption, broadcasters that embrace these Internet-enabled technologies and changing viewer behaviors can prosper in the future.
Este documento proporciona análisis técnicos diarios de varias acciones españolas e internacionales, incluyendo líneas de soporte y resistencia, así como posiciones largas y cortas recomendadas con niveles de entrada, stop y objetivos. Fue elaborado por un analista técnico de Cortal Consors el 29 de agosto de 2011.
Adrian Terry, Thales Training & Consultancy, presents on how Learning & Development can support businesses through change and transformation programmes.
El documento describe el Convento de Santa María Magdalena en Cuitzeo, México. El convento fue iniciado en 1550 por la orden de los agustinos y tomó 100 años en completarse. Contiene 24 celdas para monjes, un órgano funcional en el coro, y frescos originales en las paredes. El convento sirvió como cuartel imperialista entre 1864-1867 antes de convertirse en un museo que atrae a muchos visitantes atraídos por su arquitectura, historia y ambiente espiritual.
Helping Rural banks Comply with Microinsurance RegulationsMABSIV
This document summarizes key points from a presentation on helping rural banks comply with microinsurance regulations in the Philippines. It discusses a new circular allowing rural banks to sell microinsurance and outlines proposed licensing requirements and procedures for microinsurance agents and brokers. Key elements include limits on daily premiums and guaranteed benefits, requirements for microinsurance contracts, and the need for a national strategy and regulatory framework to support microinsurance development.
Este documento presenta análisis técnicos de 10 acciones del mercado español y europeo, incluyendo recomendaciones de compra o venta, niveles de entrada y salida, y líneas de soporte y resistencia. Para cada acción, se especifican la estrategia recomendada (largo o corto), los precios objetivo, y un gráfico de líneas pivotales. El análisis fue realizado por Oscar Germade de Cortal Consors el 13 de septiembre de 2010.
Communication with our clients
The Topic are:
-Conference call
-Intro
-Role Play (to understand and ilustrate problems)
-Process
-Language
-Showing disagreement
-Conclusion
The document provides demographic information about the main audiences for 7 different media properties or events. The main audiences tended to be majority male, with the 15-24 age group making up the largest percentage. Socioeconomic groups AB and C1 also comprised large portions of most of the main audiences. The results for 'Sherlock Holmes' were reported as being the same as for the information presented above it.
O documento discute programação reativa e serverless no Azure. Na primeira parte, fornece contexto histórico sobre a evolução dos sistemas e mudanças nos paradigmas de programação. A segunda parte explica conceitos de programação reativa e como ela se relaciona com programação funcional. A terceira parte introduz o tópico de serverless e discute seu espectro de uso na nuvem.
O documento descreve os principais sistemas de gerenciamento de bancos de dados (SGBDs): PostgreSQL, DB2, MySQL, Oracle e SQL Server. Ele fornece detalhes sobre suas características, capacidades de armazenamento, sistemas operacionais compatíveis, versões e clientes.
1. O documento discute técnicas para escalar aplicações React e TypeScript, incluindo estrutura de projetos, boas práticas de código, testes e monitoramento.
2. O autor tem experiência desenvolvendo sites com milhões de visitas diárias e discute como projetos podem crescer rapidamente sem problemas de desempenho ou manutenibilidade.
3. Escalabilidade envolve estruturar o código e projeto para que novos desenvolvedores possam entender facilmente, adicionar novas funcionalidades rapid
Web service permite a integração de sistemas e comunicação entre aplicações através de formato XML, permitindo que novas aplicações interajam com as existentes e sistemas de plataformas diferentes sejam compatíveis. MS SQL Server é um sistema gerenciador de banco de dados relacional desenvolvido pela Microsoft para armazenar e recuperar dados solicitados por outras aplicações. Hibernate é um framework Java que realiza mapeamento objeto-relacional para diminuir a complexidade de trabalhar com bancos de dados relacionais.
O documento discute ferramentas para desenvolvimento web como Yeoman, AngularJS, CouchDB e Cloudant. Ele também fornece resumos sobre cada ferramenta e discute como elas podem ser usadas para criar e hospedar aplicações.
O documento resume as principais novidades e melhorias trazidas pelo HTML5, incluindo elementos semânticos, novas APIs para conectividade, armazenamento, multimídia, gráficos e formulários. O HTML5 objetiva melhorar a acessibilidade e a interoperabilidade entre navegadores.
Como DDD e Strategic Design estão nos ajudando a modernizar um LegadoLuiz Costa
O objetivo desta palestra é mostrar como é possível evoluir e reescrever partes de uma aplicação legada com mais 5 anos em produção utilizando técnicas de uma parte Domain Driven Design conhecida como Strategic Design. É uma aplicação web escrita em Python e Django que suporta a operação de um grupo focado em medicina do trabalho, com clínicas espalhadas pelo país.
Nesta palestra vamos mostrar uma abordagem que pode ajudar times que precisam lidar com aplicações legadas grandes e complexas no caminho da modernização.
Desenvolvimento web - conceitos, tecnologia e tendências.Valmir Justo
O documento discute conceitos, tecnologias e tendências de desenvolvimento web. Aborda tópicos como HTML5, CSS3, frameworks responsivos, JavaScript, Node.js, linguagens e frameworks para desenvolvimento mobile, arquitetura empresarial e integração de sistemas. Apresenta também a agenda e perfil profissional do autor.
Pangea - Plataforma digital com Google Cloud PlatformAndré Paulovich
O documento apresenta os benefícios da plataforma Google Cloud Platform, incluindo escalabilidade ilimitada, disponibilidade, desempenho garantido e preços competitivos. Apresenta também exemplos de como usar serviços como Compute Engine, Datastore e Cloud Storage para desenvolver aplicações de forma escalável e econômica na nuvem.
O documento discute a arquitetura de microsserviços e a plataforma Cloud Foundry. Ele explica como empresas como Amazon e Facebook entregam atualizações frequentemente usando essa arquitetura e como ela permite escalabilidade ilimitada. Também discute como a SAP HCP suporta a implantação de aplicações baseadas em microsserviços.
Arquitetura de Mensagens Assíncronas - MeliDevConf 2013 - SPmelidevelopers
Este documento discute a arquitetura de mensagens assíncronas do MercadoLivre. Apresenta como os recursos da API são organizados logicamente em departamentos independentes e como as mensagens são propagadas entre eles através de uma fila de mensagens para manter a consistência eventual dos dados. Também aborda lições aprendidas como trabalhar offline, manter informações redundantes e cachear tudo para melhorar a performance.
O documento apresenta Frederico Maia Arantes e suas qualificações como programador Java. Em seguida, fornece uma introdução ao conceito de computação em nuvem, discutindo seus principais tipos (IaaS, SaaS, PaaS), vantagens como escalabilidade e elasticidade, e desafios como a ausência de joins e transações. Exemplos de serviços em nuvem como Google Docs, Dropbox e Amazon Web Services são apresentados.
O documento discute o desenvolvimento em nuvem, definindo-o como computação remota acessada pela internet. Apresenta os principais modelos de serviço (SaaS, PaaS e IaaS), tecnologias como MapReduce, Amazon EC2, Eucalyptus e plataformas como Google App Engine e Microsoft Azure. Por fim, discute aplicações, desafios e referências sobre computação em nuvem.
O documento descreve como usar MongoDB com Zend Framework 2 para armazenar dados no lugar do componente Zend\Db. O documento introduz MongoDB e discute como instalá-lo e conectá-lo do PHP, bem como operações básicas como inserir, procurar, atualizar e remover documentos. Finalmente, o documento menciona o módulo DoctrineMongoODMModule para integrar MongoDB com Zend Framework 2.
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
O documento apresenta uma aula introdutória sobre sistemas distribuídos ministrada pelo professor Thomás da Costa. A aula define sistemas monolíticos e distribuídos, discute as vantagens dos sistemas distribuídos como escalabilidade e alta disponibilidade, e apresenta exemplos de tecnologias para integração de aplicações como RPC, RMI, MOM e WebServices.
Sistemas Operacionais - Aula 4 - Revisão e ExercíciosCharles Fortes
O documento fornece uma introdução sobre sistemas operacionais, incluindo conceitos básicos como hardware, software, processamento, memória e arquitetura. Também discute tópicos como pipelining e sistemas distribuídos.
[DTC21] Thiago Lima - Do Zero ao 100 no Mundo de MicroservicesDeep Tech Brasil
Thiago Lima é um empreendedor e especialista em tecnologia com mais de 30 anos de experiência desenvolvendo e liderando equipes de tecnologia. Ele falará sobre microsserviços, desde a decomposição de sistemas até práticas de monitoramento e resiliência.
O documento apresenta Handerson Frota e seu histórico como programador desde os 13 anos, envolvido principalmente com Java e Ajax. Também discute o que é Ajax, suas vantagens, como funciona e frameworks para desenvolvimento cross-browser, recomendando especialmente o framework DWR para Java.
Plataforma Android: Produtividade Além do SDKRyan Padilha
O documento discute frameworks e padrões de projeto para desenvolvimento de aplicativos Android. Apresenta ferramentas como DroidDraw para design de interface, RoboGuice para injeção de dependência, AndOrm para mapeamento objeto-relacional e padrões como MVC e Singleton. Também aborda integração de dados via web services SOAP.
Similar to Escalabilidade via Software no ExpressoV3 (20)
Cooperativas de Software Livre: Uma comparação entre Brasil e ArgentinaFlávio Lisboa
Este documento discute as cooperativas de software livre no Brasil e na Argentina, comparando o ecossistema de cooperativas de tecnologia da informação nos dois países. Apresenta o conceito de cooperativismo e como ele oferece uma alternativa ao emprego e ao empreendedorismo individual, permitindo que trabalhadores assumam o controle coletivo de suas atividades por meio da autogestão e do trabalho em benefício comum. Destaca exemplos de cooperativas de software livre no Brasil e na Argentina.
Aprenda a afiar suas garras com LaminasFlávio Lisboa
Nesta palestra apresento a trajetória do meu trabalho de instrutor e promotor do Zend Framework, agora Laminas, culminando com o lançamento do livro PHP Web Development with Laminas, pela Packt Publishing. Apresento os tópicos de uma formação completa de desenvolvedor web PHP trabalhando com aplicações orientadas a objeto usando padrões de projeto e desenvolvimento orientado a testes.
Ciência e software livre: desenvolvendo com métodoFlávio Lisboa
Esta palestra visa mostrar como o software livre se beneficia do paradigma do método científico e quais as vantagens de times de desenvolvimento de assimilarem as boas práticas desse método e a vantagem de manter sempre uma atitude crítica na busca de soluções de problemas.
Tópicos abordados:
* O método científico e os paradigmas da ciência
* Como o software livre aplica o método científico
* Como assimilar isso em sua empresa
Flávio Gomes da Silva Lisboa apresenta suas qualificações e experiência, incluindo doutorando na UTFPR, mestre em Tecnologia e Sociedade, especialista em Java, instrutor de cursos de desenvolvimento de software e professor universitário. Ele também fala sobre seu trabalho atual com software para PaaS e como autor.
O documento apresenta a história do framework Zend Framework e sua transição para o framework Laminas. Descreve a compra do Zend Framework pela RogueWave e a saída de seus principais desenvolvedores em 2018, levando à criação do projeto Laminas sob a Linux Foundation. Também discute as perspectivas para a ferramenta de migração entre os frameworks e os próximos passos do projeto Laminas.
Algoritmos Genéticos em PHP - PHP Conference Brasil 2019Flávio Lisboa
Da Teoria da Evolução para a solução de problemas baseada em busca, com provocações para quem não gosta de pensar.
O componente usado na demonstração está disponível em https://github.com/fgsl/geneticalgorithm.
O documento discute a arquitetura de microsserviços em PHP, comparando arquiteturas monolíticas e distribuídas. Ele também cobre tópicos como disponibilidade, centralização vs descentralização, frameworks para criação de microsserviços em PHP e exemplos básicos de implementação.
Como se tornar o pior programador PHP do mundoFlávio Lisboa
O documento fornece sete lições para se tornar o pior programador PHP do mundo, focando em aspectos técnicos como usar apenas processos síncronos e não se preocupar com codificação de caracteres, e aspectos sociais como não seguir bons exemplos e ignorar outras linguagens de programação.
A demanda da santa entrega Batman: bugs e gargalos em aplicações PHPFlávio Lisboa
O documento discute a necessidade de ambientes integrados de desenvolvimento (IDEs) para projetos de software. Ele descreve as vantagens de usar o Eclipse PHP Development Tools, incluindo integração com controle de versão, bancos de dados e ferramentas PHP. Também fornece dicas sobre depuração, desempenho e técnicas para descoberta de bugs.
Comunicação e padrões em código aberto: quando convergente e divergente cooperamFlávio Lisboa
O documento discute como conciliar as demandas de clientes com as demandas da comunidade em projetos de código aberto. Sugere que a comunicação eficaz e o uso de padrões de projeto e arquitetura podem ajudar a fazer com que a comunidade aceite alterações necessárias para atender às demandas dos clientes.
Criação de robôs em PHP para raspagem de dadosFlávio Lisboa
Este documento discute raspagem de dados usando robôs em PHP. Ele fornece exemplos de como criar robôs para capturar código-fonte de páginas web e dados inseridos via JavaScript. O documento também responde perguntas sobre como lidar com cookies, manter dados atualizados e quebrar CAPTCHAs usando PHP.
A história conta a jornada de um piloto de testes, Martin Jordan, que enfrenta seus medos após um acidente aéreo. Ele é escolhido para ser o novo Lanterna Verde depois que o alienígena moribundo que ocupava o cargo o escolhe. Apesar de receoso no início, Martin aprende a usar o anel de poder e assume a responsabilidade de proteger a galáxia.
Estudo de Caso: Utilização de PHP no Serviço Federal de Processamento de DadosFlávio Lisboa
[1] O documento discute o uso de PHP no Serviço Federal de Processamento de Dados (SERPRO)
[2] O SERPRO desenvolve diversos sistemas utilizando a linguagem PHP, como o software livre SAGUI
[3] Entre 2009-2016, o SERPRO implementou 1221 projetos utilizando PHP, correspondendo a 83 sistemas diferentes.
Arquitetura PHP para um mundo orientado a microsserviçosFlávio Lisboa
Nesta palestra abordaremos diversos aspectos da arquitetura de software contextualizados para o cenário de aplicações PHP construídas a partir da integração de microsserviços integrados. Dentro desse cenário, iremos separar o que é responsabilidade do PHP e o que não é, mas com o que ele pode contribuir (ou como ele pode evitar que seus parceiros tornem sua vida difícil). Abordaremos motivações, boas práticas e orientações para lidar com transações, manipulação de erros, execução de código lento, execução em linha de comando, coleta de dados de usuário, análise e business intelligence.
Semeando Liberdade: Como (e onde) o software livre inclui as pessoasFlávio Lisboa
O documento discute como o software livre e a tecnologia social podem promover a inclusão digital e social. Apresenta o conceito de software livre e como ele garante a liberdade e autonomia dos usuários. Também define tecnologia social como aquela adaptada para pequenos grupos e que promova a criatividade dos usuários. Por fim, discute como o acesso à tecnologia e a alfabetização digital podem levar à apropriação das ferramentas tecnológicas e sua utilização para fins sociais.
Programar computadores envolve escrever instruções claras e objetivas em linguagens de programação para ensinar máquinas a realizar tarefas. Ao longo da história, as linguagens evoluíram de códigos binários para linguagens de alto nível mais próximas da linguagem humana, à medida que computadores se tornaram mais poderosos e acessíveis. Programadores memoráveis contribuíram para o desenvolvimento da computação.
O documento discute a importância das comunidades e da economia colaborativa. Aponta exemplos como a Corporação Mondragón e o kernel Linux que ilustram como modelos cooperativos e colaborativos podem ser bem-sucedidos. Também descreve estratégias para empresas se adaptarem à economia colaborativa, como manter baixos custos fixos, buscar parcerias, e focar no relacionamento de longo prazo com clientes.
Aplicações Corporativas em PHP (CRM e ERP)Flávio Lisboa
This document discusses technology choices for corporate applications like CRM and ERP. It recommends open-source stacks for building portals, e-commerce sites, and CRM systems using frameworks like Drupal, Joomla, Magento, Prestashop, SugarCRM, and platforms like Zend, OroCRM, and Tine20. It also mentions ERP options like Marello and Inoideas that use open-source technologies.
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).
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
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.
5. Quem sou eu?
● Leciono a disciplina Programação PHP Orientada a Objetos com Testes
Unitários no curso de especialização em Desenvolvimento de Aplicações
Web na UniCesumar.
8. O que é o Expresso?
● O Expresso (ou mais precisamente, Expresso Livre) é
um groupware, um software para comunicação e
colaboração entre equipes. Sua primeira versão,
derivada do E-Groupware, foi criada pela CELEPAR,
Companhia de Informática do Paraná. A versão mais
recente, a 3, é baseada no Tine 2.0, um projeto mais
evoluído, com arquitetura orientada a serviço e
modular, baseado em Zend Framework.
● A versão mais recente do Tine 2.0 usa as versões 1 e 2
do Zend Framework (95% - 5%)
11. Por que o Expresso?
● A aquisição de solução semelhante ao Expresso Livre
teria um custo muito mais elevado que o investimento
nas equipes que o desenvolvem.
● Cada licença de cliente Microsoft Exchange, por
exemplo custa cerca de R$ 170,00, e provavelmente
geraria muita demanda interna de customização.
● Isso não é uma hipótese. Temos vários casos de
esforço de adequação de ferramentas de código-fechado.
Às vezes é necessário criar sistemas
complementares para suprir a carência de
funcionalidades.
12. Por que o Expresso?
● O Expresso é um software livre e aberto, não tem
backdoors que permitam espionagem.
● O Expresso é extensível por módulos.
● Existem vários módulos disponíveis.
● O Expresso é orientado a serviços. Qualquer um pode
fazer um cliente em qualquer linguagem que consuma
um servidor Expresso usando JSON-RPC.
● O Expresso é parte de uma vibrante comunidade de
software livre internacional, a do projeto Tine 2.0.
13. Desafio do Expresso
Escalar a aplicação para suportar centenas de
milhares de usuários, podendo em situações
extremas alcançar um milhão de usuários (ou
mais).
Motivo: atender a demanda por uma solução
auditável de comunicação para toda a
administração pública federal
15. Desafio Técnico
Fazer com que um sistema gerenciador de
banco de dados livre possa suportar de
centenas de milhares a um milhão de conexões
com banco de dados.
WHERE'S WALLY?
16.
17. Fato
“Unless we're doing a lot of file serving, the
database is the toughest part to scale.
If we can, best to avoid the issue altogether
and just buy bigger hardware”
Cal Henderson
18. Realidade
Nem sempre é possível comprar mais
hardware.
Nem sempre mais hardware implica em
melhoria de desempenho.
19. Caminho
Elaborar estratégias para escalar o banco de
dados (PostgreSQL no caso) para a
expectativa de demanda exposta
anteriormente.
20. Frase marcante
“Se for possível ter um
banco de dados por
usuário, não haverá limites
para a infraestrutura”
?!?!?!?!
21. Traduzindo
“Como seria maravilhoso se
o banco de dados relacional
pudesse ser fragmentado.”
?!?!?!?!
25. Dividir para conquistar
Conseguimos suportar de 60 a 70 mil usuários
por domínio, aproximadamente.
Isso significa que com 10 domínios, podemos
ter 700 mil usuários, cada um com sua
infraestrutura, mas compartilhando a mesma
instância de aplicação.
26. Atualização distribuída
● Algumas operações tem de ser feitas em
todos os domínios.
● A instalação, atualização e remoção de
módulos são algumas delas.
● A criação de filtros compartilhados é outra.
27. Atualização distribuída
● Foco em resultados: a aplicação precisa
funcionar.
● Se um banco de dados pode apresentar
falhas, n bancos de dados também podem.
● Não se pode evitar falhas, podemos tolerá-las.
O que se precisa definir é o nível, a
medida de tolerância.
28. Atualização distribuída
● Se durante uma atualização, a operação em
um banco de dados falhar, a aplicação já tem
condições de informar qual banco falhou e
produzir um script para atualizar o banco.
● A aplicação não vai recuperar o banco de
dados se o servidor estiver indisponível (sem
conexão, máquina física desligada, etc).
● A aplicação pode notificar o sistema de
monitoração sobre a falha na atualização
também, embora já avise o administrador
sobre falhas no processo.
29. Atualização distribuída
● Suponha que haja 10 domínios, e um módulo tenha
de ser atualizado. A aplicação irá fazer um loop,
gravando nos 10 bancos de dados.
● Se a operação falhar em 1 banco de dados, o
problema não é proveniente da aplicação, pois a
operação funcionou em 9 bancos.
● Reverter 90% do processo de atualização é menos
custoso do que executar um script para 1 banco de
dados?
● Dotar a aplicação de controle transacional sobre
vários bancos significa aumentar a complexidade
da aplicação para atender um estado transitório.
31. Atualização distribuída
● Atualizações de estrutura de tabelas não são
tarefas frequentes.
● Assim com a aplicação pode notificar a
monitoração para alertar sobre falhas na
atualização, agentes podem automatizar a
execução dos scripts, desde que saibamos
para onde os scripts precisam ser enviados
para serem executados.
32. Modus Operandi da atualização distribuída
Instância única do ExpressoV3
Tenta atualizar todos Reporta quais não foram
atualizados e gera script
Banco 1 Banco 2 Banco 3 Banco n
33. Modus Operandi da atualização distribuída
● Importante: a atualização é feita pelo Gerenciador de
Aplicações, que tem uma interface que mostra o que está
atualizado, desatualizado e se houve erros.
34. Status de entrega
● Configuração de multidomínio
pronta.
● Release em homologação.
● Setup com interface gráfica para
atualização distribuída em fase
final de desenvolvimento.
35. Limites
Mas se houver mais de 70 mil usuários em um
domínio?
Para esses casos extremos, precisaremos de
uma solução mais agressiva.
36. O que o mercado faz
Facebook tem
800 milhões de usuários sendo que 500 milhões
visitam diariamente o site.
350 milhões de usuários mobile atualizando
constantemente seus status.
7 milhões de aplicações e Web sites integrados com a
plataforma Facebook.
>60 milhões de queries por segundo
Banco de dados MySQL dividido em 4000 shards
9000 instâncias de Memcached
1800 servidores para MySQL (2008)
805 servidores dedicados para Memcached
* Dados de 2011 [1],[2],[3]
38. O que o mercado faz
MySQL tem uma solução para sharding de
banco de dados proprietária e paga, o MySQL
Cluster.
39. O que o mercado faz
Foursquare tem
45 milhões de usuários (19/12/2013)
5 bilhões de check-ins (19/12/2013)
Banco de dados MongoDB com auto-sharding.
Hive e Hadoop.
Houve um caso de indisponibilidade de 7 horas em
2010.
* [4],[5],[6],[7]
40. O que o mercado faz
Instagram tem
●14 milhões de usuários
●Amazon Elastic Load Balander com 3 instâncias de
NGINX
●Amazon Route53 para DNS
●Django sobre Apache com mod_wsgi
●PostgreSQL com sharding em cluster com 12
instâncias de memória extra-grandes quádruplas e 12
réplicas em uma zona diferente. Usa Streaming
Replication e Pgbouncer.
●Várias instâncias de Redis usadas extensivamente.
●Gearman para processamento paralelo com 200
threads.
* [8],[9]
41. Fato
Diante do cenário de restrição para aumento de
infraestrutura e limitações para introdução de
novas soluções de software, o sharding é a
solução mais viável de ser implementada para
casos extremos, o que não implica que seja a
mais fácil de ser administrada.
43. Com o Sharding
Instância da
aplicação
SShhaarrdd 11 Shard 2 Shard 3 Shard n
44. Como fazer sharding para o ExpressoV3
Sem dispor de uma solução que faça o
sharding de forma transparente para a
aplicação, como o EnterpriseDB [12], temos de
fazer sharding com a aplicação ciente disso.
A aplicação está assumindo uma tarefa que o
banco de dados não consegue realizar.
45. Como fazer sharding para o ExpressoV3
Por que não usamos EnterpriseDB? Bem, ele é
proprietário. A solução alternativa aberta é o
Postgres-XC-Cluster [11, p. 27], mas ele não
faz compartilhamento entre shards.
Além de não ter domínio do código, ainda
teríamos de desenvolver a parte de
compartilhamento na aplicação.
46. Mundo ideal
Delegaríamos o sharding para o EnterpriseDB e não
precisaríamos desenvolver uma camada para
administrar a segmentação de usuários.
EnterpriseDB
48. Arquitetura da solução de sharding para o ExpressoV3
Aplicação
Virtual Shard Virtual Shard Virtual Shard Virtual Shard Virtual Shard Virtual Shard
Banco de
Dados
Banco de
Dados
Banco de
Dados
Banco de
Dados
Estratégia de Sharding
49. Os shards no ExpressoV3 serão virtuais
● Do ponto de vista da aplicação, os usuários estarão
segmentados em N shards, definidos em um
arquivo de configuração de shards (shard.inc.php).
● Mas fisicamente, dois ou mais shards podem
apontar para o mesmo banco de dados.
● A aplicação não precisa ser modificada para que
um banco seja incluído ou removido.
● O método de resharding move os dados de um
usuário ou de todos usuários de associados a um
virtual shard para outro banco de dados.
50. Não há mágica!
Virtual Shard Virtual Shard Virtual Shard Virtual Shard Virtual Shard Virtual Shard
Banco de
Dados
Banco de
Dados
Banco de
Dados
Banco de
Dados
● É preciso monitorar os shards!
51. A configuração de múltiplos bancos de dados está
pronta
● Já é possível usar o ExpressoV3 com sharding
para novas instalações.
● Para migrar instalações existentes, é necessário
aguardar a finalização do script de resharding.
● Os dados compartilhados não estão disponíveis.
Cada usuário compartilha somente dentro do seu
shard. Usuários de shards diferentes são como
usuários de instâncias diferentes de ExpressoV3.
● O uso de sharding é dependente da replicação
dos dados globais entre os shards.
● O sharding será um plugin que terá de ser
habilitado.
52. Status de entrega
● Suporte a sharding para novas
instalações pronta.
● Script de resharding em fase final
de desenvolvimento.
54. Outros ajustes para reduzir acesso ao banco
● Uso exclusivo de LDAP para autenticação e
controle de usuários e grupos sem
sincronização com o banco.
● Redução de tabelas ( eliminaçao quando
possviel).
● O uso da sessão será ampliado para evitar o
uso do banco de dados, armazenando ACL e
containers.
● Podemos usar cache compartilhado para os
dados globais dos vários frontends do
serviço.