This document discusses best practices for building scalable PHP websites, as demonstrated by ZingMe's architecture. It describes how ZingMe uses a scale-out approach with load balancing, centralized session storage, and an automated code deployment system. The key aspects covered are load balancing with HAProxy, overriding PHP's session handling to use Memcached, and configuring servers identically through version control and scripts. The goal is to gracefully handle increasing traffic by adding commodity servers within 5 minutes while maintaining a consistent environment.
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)Ontico
What does it take to achieve sub two seconds video playback latency on the 3rd largest website in the world?
We will peek under the hood of the Watch page and explore what common problems are being solved by
YouTube's Desktop team and what interesting solutions had to be implemented to achieve this goal.
We will discuss how page loads are classified and what specific treatment is required for every type, what tools and technologies are used in the stack, how being one of the largest image serving websites affects our approach to thumbnails and how we maintain and monitor our latency goals.
From nothing to a video under 2 seconds / Mikhail Sychev (YouTube)Ontico
What does it take to achieve sub two seconds video playback latency on the 3rd largest website in the world?
We will peek under the hood of the Watch page and explore what common problems are being solved by
YouTube's Desktop team and what interesting solutions had to be implemented to achieve this goal.
We will discuss how page loads are classified and what specific treatment is required for every type, what tools and technologies are used in the stack, how being one of the largest image serving websites affects our approach to thumbnails and how we maintain and monitor our latency goals.
In Jan 2012, Zynga was kind enough to invite me to speak at their SF office. These are the slides I presented; its much of the same SPDY content, although starting to focus more on mobile.
Have you experienced a Moodle site failure during a critical time? Are you worried that your Moodle service won't be able to meet your needs at the busiest times? This session will cover a variety of methods to ensure optimal performance of Moodle under peak load. The session will address general resource guidelines for expected concurrency and help administrators determine the correct sizing of IT resources for an expected Moodle load. The session will also cover benchmarking techniques that can be used to measure the actual performance of your Moodle infrastructure.
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...Severalnines
To operate MongoDB efficiently, you need to have insight into database performance. And with that in mind, we’ll dive into monitoring in this second webinar in the ‘Become a MongoDB DBA’ series. MongoDB offers many metrics through various status overviews and commands, but which ones really matter to you? How do you trend and alert on them? What is the meaning behind the metrics?
We’ll discuss the most important ones and describe them in ordinary plain MySQL DBA language. And we’ll have a look at the open source tools available for MongoDB monitoring and trending. Finally, we’ll show you how to leverage ClusterControl’s MongoDB metrics, dashboards, custom alerting and other features to track and optimize the performance of your system.
AGENDA
How does MongoDB monitoring compare to MySQL
Key MongoDB metrics to know about
Trending or alerting?
Available open source MongoDB monitoring tools
How to monitor MongoDB using ClusterControl
Demo
SPEAKER
Art van Scheppingen is a Senior Support Engineer at Severalnines. He’s a pragmatic MySQL and Database expert with over 15 years experience in web development. He previously worked at Spil Games as Head of Database Engineering, where he kept a broad vision upon the whole database environment: from MySQL to Couchbase, Vertica to Hadoop and from Sphinx Search to SOLR. He regularly presents his work and projects at various conferences (Percona Live, FOSDEM) and related meetups.
Presentation at the Plone Conference Brazil 2013.
How to create a Plone deployment that performs like crazy and survives not only a datacenter failure, but even keeps on running when all Plone heads are down.
In Jan 2012, Zynga was kind enough to invite me to speak at their SF office. These are the slides I presented; its much of the same SPDY content, although starting to focus more on mobile.
Have you experienced a Moodle site failure during a critical time? Are you worried that your Moodle service won't be able to meet your needs at the busiest times? This session will cover a variety of methods to ensure optimal performance of Moodle under peak load. The session will address general resource guidelines for expected concurrency and help administrators determine the correct sizing of IT resources for an expected Moodle load. The session will also cover benchmarking techniques that can be used to measure the actual performance of your Moodle infrastructure.
Webinar slides: Become a MongoDB DBA - What to Monitor (if you’re really a My...Severalnines
To operate MongoDB efficiently, you need to have insight into database performance. And with that in mind, we’ll dive into monitoring in this second webinar in the ‘Become a MongoDB DBA’ series. MongoDB offers many metrics through various status overviews and commands, but which ones really matter to you? How do you trend and alert on them? What is the meaning behind the metrics?
We’ll discuss the most important ones and describe them in ordinary plain MySQL DBA language. And we’ll have a look at the open source tools available for MongoDB monitoring and trending. Finally, we’ll show you how to leverage ClusterControl’s MongoDB metrics, dashboards, custom alerting and other features to track and optimize the performance of your system.
AGENDA
How does MongoDB monitoring compare to MySQL
Key MongoDB metrics to know about
Trending or alerting?
Available open source MongoDB monitoring tools
How to monitor MongoDB using ClusterControl
Demo
SPEAKER
Art van Scheppingen is a Senior Support Engineer at Severalnines. He’s a pragmatic MySQL and Database expert with over 15 years experience in web development. He previously worked at Spil Games as Head of Database Engineering, where he kept a broad vision upon the whole database environment: from MySQL to Couchbase, Vertica to Hadoop and from Sphinx Search to SOLR. He regularly presents his work and projects at various conferences (Percona Live, FOSDEM) and related meetups.
Presentation at the Plone Conference Brazil 2013.
How to create a Plone deployment that performs like crazy and survives not only a datacenter failure, but even keeps on running when all Plone heads are down.
Zing me build brand engagement with zing me aug 2011Binny Ngo
This presentation is made by Nguyen Van Duc Trong, Web Business Development at VNG Corporation. Please note the source in terms of publishing in any case.
This presentation was as support for my live presentation to an audience of about 700 speakers. This is just a sample of the presentation, and the smooth, subtle animation effects are missing. Please note how each slide template is designed to perfectly transition to the next. This was part of a huge, seamless template that I designed for my presentation.
Eptica Webinar: Unlock Revenue with Proactive Web ChatEptica UK Ltd
Web chat can make the difference between a sale and a lost customer - with proactive chat delivering a 105% return on investment and a 19% increase in Average Order Value, businesses today cannot afford to ignore this competitive advantage.
This presentation will show you how to:
- Use proactive web chat to reduce order abandonment and improve customer experience
- Unlock revenue for your business using real-time web analytics and customer behavioural data
- Build your business case for Chat using Eptica’s ‘Impact of Deploying Web Chat’ Return on Investment model
Watch the webinar on demand: https://www.nginx.com/resources/webinars/maximize-php-performance-with-nginx
Is your PHP app slowing to a crawl? PHP is a powerful programming language that powers roughly 80% of the internet, but it’s unfortunately subject to performance problems – as we all know. Luckily, for thousands of PHP-based applications, some relatively simple changes can lead to noticeable improvements in performance.
NGINX has greatly improved application performance for more than 150 million sites in production today. Using NGINX greatly improves the performance of PHP apps with features such as caching, load balancing, HTTP/2 support, and more, included in open source NGINX software and in our commercial-grade application delivery platform NGINX Plus.
USENIX LISA15: How TubeMogul Handles over One Trillion HTTP Requests a MonthNicolas Brousse
TubeMogul grew from few servers to over two thousands servers and handling over one trillion http requests a month, processed in less than 50ms each. To keep up with the fast growth, the SRE team had to implement an efficient Continuous Delivery infrastructure that allowed to do over 10,000 puppet deployment and 8,500 application deployment in 2014. In this presentation, we will cover the nuts and bolts of the TubeMogul operations engineering team and how they overcome challenges.
This is episode 4 of the building the perfect PHP app for the enterprise webinar series. Nothing is faster than a frustrated user clicking away from your site or abandoning your service. Avoid attrition by learning how to tune your applications towards lightning-fast page loads and response times. Learn: the basic principles behind enterprise PHP performance management; How to optimize workloads through background jobs and caching; How to measure performance and make data-driven decisions.
PHP At 5000 Requests Per Second: Hootsuite’s Scaling Storyvanphp
Bill Monkman, Lead Engineer at Hootsuite, presenting on how Hootsuite went from zero to hundreds of millions of requests per day with its PHP codebase, and how dealing with that growth has shaped its future direction. Tips, optimizations, and horror stories from a rapidly-scaling PHP startup.
Video: https://www.youtube.com/watch?v=TZGeBAIMPII
How would you build the world’s largest, fastest, most complex Magento ecommerce store? Three COPIOUS engineers share their approaches to this problem, including best practices, code samples, and system configurations necessary to scale Magento up to 100,000 daily orders with a catalog of 100,000 products.
(phpconftw2012) PHP as a Middleware in Embedded Systemssosorry
It is used by sosorry at PHPConf Taiwan 2012. In this presentation, we will see that why we need a middleware in embedded systems, and how PHP can play this role. Besides, some tasks about architecture design, porting libraries, development & debug, and performance tunning would be included.
Zero Downtime Architectures based on JEE platform. Almost every big enterprise with online business tries to design its applications in a way that they are always online. But is it also the case when we upgrade the database cluster? When we switch the whole data center? Based on a customer project we try to present common architecture principles that enable you to do all this without any service interruption and the most important: without any stress.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Zingme practice for building scalable website with PHP
1. ZingMe Practice
For Building Scalable PHP Website
By Chau Nguyen Nhat Thanh
ZingMe Technical Manager
Web Technical - VNG
2. Agenda
●
About ZingMe
●
Scaling PHP application
●
Scalability definition
●
Scaling up vs scaling out
●
Load balancing
●
Problem with PHP when using load balancer
●
User session management
●
Problem with code deployment
2
3. Agenda(cont.)
● ZingMe practice in building scalable PHP
applications
● Choosing scale out
● Load balancing model
● User session management system
● Code deployment system
● ZingMe more
● Open social API
7. Scaling PHP application
● Scalability definition
● Scaling up vs scaling out
● Load balancing
● User session management
● Code deployment
8. Scalability definition
“Scalability is a desirable property of a system,
a network, or a process, which indicates its
ability to either handle growing amounts of work
in a graceful manner or to be enlarged” from
Wikipedia
”A web application is scalable when is able to
manage a growing traffic with additional
resources (CPU, RAM) without software
changes” by Jan Burkl, Enrico Zimuel (Zend
Technologies)
9. Scaling up vs scaling out
● Scaling up (vertically)
● Add more resources to single node in a
system
● Resources can be software or hardware
● Make system more powerful by increase node
powerful
● Has an upper limit
● Hard to implement HA solution
● Cost: expensive
10. Scaling up vs scaling out
● Scaling out (horizontally)
● Add more nodes to a system
● Make system more powerful by increase
number of nodes in the system
● Maybe has no upper limit
● Easy to implement HA solution
● Cost: cheap
11. Scaling up vs scaling out
•
From slide ”How to scale PHP application”
•
by Jan Burkl, Enrico Zimuel (Zend Technologies)
12. Load balancing
● The need of a load balancer
● Most of big web site choose scale out
● Need a component for distribute load among
the nodes
● Such component called load balancer
13. Load balancing
•
from ”Server load balancing architectures”
•
by Gregor Roth, JavaWorld.com, 10/21/08
14. Load balancing
● How load balancer work?
● Has 2 interfaces: Back-end, Front-end
● Front-end receive the request from client
● Back-end forward request to internal node
● Back-end receive the response from node
● Front-end response to client
● Status monitor for monitoring the back-end
interface
15. Load balancing
● Web application load balancer
● Work in layer 7
● Can filter HTTP header and body in both
request and response
● Can be hardware or software
● F5 BIG-IP, Citrix Netscale, Cisco
● HA Proxy, Nginx, lighttpd
16. Problem with PHP when using
load balancer
● PHP stores session info into local disk by
default
● How to scale session to 2 nodes ?
● Can be scaled if:
● Load balancer has a method for routing the
same user requests into the same nodes (1)
● Override the default PHP mechanism for
storing session of all nodes in the same
storage (2)
17. Problem with PHP when using
load balancer
● Method (1)
● Load balancer must keep state for connection
● Overhead for routing request
● Not balancing
● Method (2)
● Must change software
● No overhead for routing request
● More balancer than (1)
18. PHP session management
● Choose method (2)
● Centralize storage among web server
● Storage can be NFS, DB, memcached...
● All web servers access the same storage
● Override the default behavior of PHP
session functions
● Bottleneck can be in storage
20. Problem with code deployment
● Adding new server to system:
● What kind of configuration must be changed?
● Which code will be deployed ? In which
server?
● How can we monitor them?
21. Problem with PHP code
deployment
● What will we change in PHP code ?
● Separate all configuration to configuration file
● Do not hard code any configuration
● Put the code in a central server like SVN
● Use scripts to pull all code to production
server
● Build profiler system for monitor the code
22. ZingMe practice for building
scalable web site
● Choose Scale out
● Use HA proxy for load balancing
● Use Memcached for session storage
● Simple code deployment system base on
SVN and bash script
23. ZingMe practice for building
scalable web site
● Divide into small services
● Use commodity hardwares
● Use open source software
● Server has the same environment
● Add new server < 5mins
25. ZingMe load balancing model
● Use HA proxy
● HTTP based proxy
● High availability
● Use epoll
● Use content switching to divide the service
into group
● Define load balancing factors based on the
power of the back-end server
28. ZingMe user session
management
● Use memcached for high performance
● Override Zend_Session
● 3K hits/s
29. Why we choose memcache?
● L1 cache reference 0.5 ns
● Branch mispredict 5 ns
● L2 cache reference 7 ns
● Mutex lock/unlock 25 ns
● Main memory reference 100 ns
● Compress 1K bytes with Zippy 3,000 ns
● Send 2K bytes over 1 Gbps network 20,000 ns
● Read 1 MB sequentially from memory 250,000 ns
● Round trip within same datacenter 500,000 ns
● Disk seek 10,000,000 ns
● Read 1 MB sequentially from disk 20,000,000 ns
● Send packet CA->Netherlands->CA 150,000,000 ns
From Jeff Dean - google.com
30. ZingMe code deployment
● Developer upload code to SVN
● SO runs scripts to deploy code to production server
● Has staging server for real environment test
● Dev cannot touch to production environment
● Using environment parameter
● Nginx: fastcgi_param
● Apache: setenv
31. ZingMe more
● Standard latency for server side code
processing < 200ms
● Live demos Profiler system
● Open social API updated infos
● Sandbox for developer
● Will be open soon
32. ZingMe more
● Optimize node before scale it up
● Performance C++ > Java > PHP
● Why PHP ?
– Easy to implement business
– Easy to deploy
● Why C++?
– Performance
● Can we mix PHP and C++?
– Next session will answer