June 25, 2014. Hooman Beheshti, VP Technology at Fastly, discusses how using a real-time, modern CDN that provides instant cache invalidation and real-time analytics allows for instantaneous control over dynamic content caching. In this session, he looks at the challenges CDNs face with dynamic content and how you can use programmatic means to fully integrate your applications with your CDN.
Nginx is a popular tool for load balancing and caching. It offers high performance, reliability and flexibility for load balancing through features like upstream modules, health checks, and request distribution methods. It can also improve response times and handle traffic spikes through caching static content and supporting techniques like stale caching.
(Surge 2014) This is a longer version of our Velocity 2014 slides around caching dynamic content. Topic: In the past, CDNs have been used to cache and distribute static objects. But issues around invalidation, staleness, and lack of visibility have prevented us from using CDNs to fully leverage the benefits of caching when it comes to dynamic content. Today, using a real-time, modern CDN that provides instant cache invalidation and real-time analytics allows for instantaneous control over dynamic content caching.
The document provides a summary and comparison of various proxy caching servers including Apache Traffic Server (ATS), Nginx, Squid, and Varnish. It discusses the pros and cons of each in terms of HTTP/1.1 support, performance, scalability, ease of use, features, and extensibility. While each has strengths, the document concludes that ATS and Squid have the most complete HTTP protocol support according to independent tests, but ATS has better performance and is easier to configure than Squid. Nginx is good for web serving but its caching capabilities are limited. Varnish has the best performance but more limited protocol support.
With the Varnish caching proxy you can make websites blazingly fast. The basics are quite simple once you understand how cache handling in HTTP works. For starters, we will look into HTTP and Varnish configuration. The main course is going to be test-driven cache invalidation and the cache tagging strategy. For desserts, there will be an introduction to Edge Side Includes (ESI). All of this will be liberally sprinkled with examples from the FOSHttpCache library and some ideas from the FOSHttpCacheBundle for Symfony2.
October 14 2009 New York Web Performance Group Session. Rusty Conover is talking about his experience at InfoGears building Content Delivery Network (CDN) on top of Amazon EC2
You have amazing content and you want to get it to your users as fast as possible. In today’s industry, milliseconds matter and slow websites will never keep up. You can use a CDN but they are expensive, make you dependent on a third party to deliver your content, and can be notoriously inflexible. Enter Varnish, a powerful, open-source caching reverse proxy that lives in your network and lets you take control of how your content is managed and delivered. We’ll discuss how to install and configure Varnish in front of a typical web application, how to handle sessions and security, and how you can customize Varnish to your unique needs. This session will teach you how Varnish can help you give your users a better experience while saving your company and clients money at the same time.
Tomas Doran presented on their implementation of Logstash at TIM Group to process over 55 million messages per day. Their applications are all Java/Scala/Clojure and they developed their own library to send structured log events as JSON to Logstash using ZeroMQ for reliability. They index data in Elasticsearch and use it for metrics, alerts and dashboards but face challenges with data growth.
We continuously see great interest in MySQL load balancing and HAProxy, so we thought it was about time we organised a live webinar on the topic! Here is the replay of that webinar! As most of you will know, database clusters and load balancing go hand in hand. Once your data is distributed and replicated across multiple database nodes, a load balancing mechanism helps distribute database requests, and gives applications a single database endpoint to connect to. Instance failures or maintenance operations like node additions/removals, reconfigurations or version upgrades can be masked behind a load balancer. This provides an efficient way of isolating changes in the database layer from the rest of the infrastructure. In this webinar, we cover the concepts around the popular open-source HAProxy load balancer, and show you how to use it with your SQL-based database clusters. We also discuss HA strategies for HAProxy with Keepalived and Virtual IP. Agenda: * What is HAProxy? * SQL Load balancing for MySQL * Failure detection using MySQL health checks * High Availability with Keepalived and Virtual IP * Use cases: MySQL Cluster, Galera Cluster and MySQL Replication * Alternative methods: Database drivers with inbuilt cluster support, MySQL proxy, MaxScale, ProxySQL
This document summarizes a talk given at ApacheCon 2015 about replacing Squid with Apache Traffic Server (ATS) as the proxy server at Yahoo. It discusses the history of using Squid at Yahoo, limitations with Squid that led to considering ATS, key differences in configuration between the two, how features like caching, logging, and peering are implemented in each, and lessons learned from the migration process.
NGINX is a well kept secret of high performance web service. Many people know NGINX as an Open Source web server that delivers static content blazingly fast. But, it has many more features to help accelerate delivery of bits to your end users even in more complicated application environments. In this talk we'll cover several things that most developers or administrators could implement to further delight their end users.
Joined by Rick Nelson, Technical Solutions architect from NGINX Server Density take you though the do's and don'ts of monitoring NGINX. Critical and non critical metrics to monitor, important alerts to configure and the best monitoring tools available.
A presentation about module-writing for nginx. Example code can be found at github: https://github.com/kvisle/nginx_module_samples
The document discusses the history and fundamentals of interactive web technologies. It begins with HTTP and its limitations for pushing data from server to client. It then covers early techniques like meta refresh and AJAX polling. It discusses longer polling, HTTP chunked responses, and forever frames. It introduces Comet and web sockets as solutions providing true real-time bidirectional communication. It also covers server-sent events. In conclusion, it recommends using all these techniques together and frameworks like Socket.IO and SignalR that abstract the complexities and provide high-level APIs.
This document discusses techniques for building scalable websites with Perl, including: 1) Caching at various levels (page, partial page, and database caching) to improve performance and reduce load on application servers. 2) Using job queuing and worker processes to distribute processing-intensive tasks asynchronously instead of blocking web requests. 3) Leveraging caching and queueing libraries like Cache::FastMmap, Memcached, and Spread::Queue to implement caching and job queueing in Perl applications.
This document provides an introduction to performance tuning Perl web applications. It discusses identifying performance bottlenecks, benchmarking tools like ab and httperf to measure performance, profiling tools like Devel::NYTProf to find where time is spent, common causes of slowness like inefficient database queries and lack of caching, and approaches for improvement like query optimization, caching, and infrastructure changes. The key messages are that performance issues are best identified through measurement and profiling, database queries are often the main culprit, and caching can help but adds complexity.
Kafka is a distributed streaming platform that allows for publishing and subscribing to streams of records. It provides functionality for building real-time data pipelines and streaming apps. The document discusses Kafka concepts like producers, consumers, topics, partitions and offsets. It also provides examples of using Kafka with Java and Spring, and describes how Heroku uses Kafka for logging and metrics aggregation.
In this presentation we take a look at the basics of content caching with NGINX as well as advanced configuration and implantation.
CDN 2.0 aims to be a platform that efficiently controls and utilizes diverse resources. CDNs have evolved from primarily delivering content over distribution and networking infrastructure to now providing computing power for tasks like security, cryptography, big data processing and media transcoding using resources like GPU/RAM, SSDs and advanced protocols. This allows CDNs to take on more complex workloads beyond basic content delivery.
ChinaCache is a leading content delivery network (CDN) and internet data center (IDC) provider that has been serving global brands since 1998. It has over 11,000 servers globally and delivers over 6 billion pages and 60 million unique IP visits daily. ChinaCache provides fast content delivery, video streaming, file downloads, and other services to customers across industries such as media, gaming, automotive and government agencies. It aims to be the global gateway to growth by leveraging its local strength in China and global experience.
The document provides information about ChinaCache, a Nasdaq-listed company that operates data centers (DCs) in China. It discusses ChinaCache's DC infrastructure and operations, including an introduction to their Atecsys campus in Beijing, which has 9,000 racks across 9 buildings and is one of ChinaCache's largest DCs. The document also reviews ChinaCache's network architecture, fiber connectivity, power and cooling systems, and their ability to provide colocation solutions to customers in DCs with tier 3+ reliability.
In MicroMarketMonitor’s recent report, it was noted that the North American content delivery network market is expected to grow from $1.95 billion in 2013 to $7.83 billion in 2019. One significant factor driving this growth is end user interaction with online content. The interaction between a user and online content is far more complex today than it was a few years ago. Today’s users are much more likely to be streaming a longer video from a mobile phone or accessing a SaaS portal when working from home. These are far more complex experiences that did not exist five or so years ago. Given the expected growth of the CDN market in the coming years, this post will define exactly what a CDN is and how it operates. A content delivery network, also called a CDN, improves the performance, security and reliability of a website. Since the start of the internet, websites have evolved in how they deliver content to the end user. In the example below, you will see the CDNetworks’ Twitter stream. Highlighted in red, is what is known as static content. The CDNetworks logo and profile descriptions are basic graphics and HTML text that rarely change. Highlighted in yellow, is what is known as dynamic content. The Twitter stream represents content that is always changing and moving.
(Surge 2014) How do you build a distributed cache invalidation system that can invalidate content in 150 milliseconds across a global network of servers? Fastly CTO Tyler McMullen and engineer Bruce Spang will discuss the process of constructing a production-ready distributed system built on solid theoretical foundations. This talk will cover using research to design systems, the bimodal multicast algorithm, and the behavior of this system in production.
CDNs provide caching and delivery of web content but are often misused. CDNs can cache more dynamic content than typically done and improve performance. Precise measurement is still difficult, such as determining cache hit rates and impacts of memory versus disk hits. Overall, CDNs have more potential for optimization and caching improvements remain an ongoing challenge.
Fastly Altitude - June 25, 2015. Want to integrate Fastly with a paywall, or learn how to efficiently do a large amount of redirects from VCL? This workshop with Fastly engineers Rogier Mulhuijzen and Stephen Basile is a deep dive into six advanced use cases and the VCL needed for them. Rogier's bio: Rogier “Doc” Mulhuijzen is a Varnish wizard and senior professional services engineer at Fastly where he focuses on performance tuning and troubleshooting. When he’s not helping customers, he sits on the Varnish Governance Board, where he helps give direction and solve issues for the Varnish open source project. Formerly an Oracle DBA and Unix admin, Rogier learned scaling while working for Ziggo, a major Dutch ISP.
Probabilistic algorithms exist to solve problems that are either impossible or unrealistic (too expensive, too time consuming, etc.) to solve precisely. In an ideal world, you would never actually need to use probabilistic algorithms. For programmers who are not familiar with them, the concept can be positively nerve-racking: “How do I know it will actually work? What if it is inexplicably wrong? How can I debug it? Maybe we should just punt on this problem or buy a whole lot more servers. . .” However, for those who either deeply understand probability theory or at least have used and observed the behavior of probabilistic algorithms in large-scale production environments, these algorithms are not only acceptable but also worth using at any opportunity. This is because they can help solve problems, create systems that are less expensive and more predictable, and do things that could not be done otherwise.
Fastly Altitude - June 25, 2015. Ines Sombra, a Systems Engineer at Fastly, talks about lessons learned in rapid systems development. Video of the talk: http://fastly.us/Altitude2015_Fallacy-of-Fast Ines' bio: Ines Sombra is a Systems Engineer at Fastly, where she spends her time helping the Web go faster. Ines holds an M.S. in Computer Science and an M.S. in Information Management from Washington University in Saint Louis. Being a true Argentine, she has a fondness for steak, fernet, and a pug named Gordo.
Fastly Altitude - June 25, 2015. Chief SpeedCurver Steve Souders explains how design and web performance are more interconnected than ever before. Users want a fast website with a rich design, but sometimes the interplay between design and performance feels like a fixed sum game: one side's gain is the other side's loss. Design and performance are indeed connected, but it's more like the yin and yang. They aren't opposing forces, but instead complement each other. Bringing these processes together produces experiences that are rich and fast. Video from the talk: http://fastly.us/Altitude2015_Design-Performance Steve's bio: Steve Souders is a co-founder at SpeedCurve, where he develops web performance services. His book, High Performance Web Sites, explains his best practices for performance; it was #1 in Amazon's Computer and Internet bestsellers. His follow-up book, Even Faster Web Sites, provides performance tips for today's Web 2.0 applications. Steve is the creator of many performance tools and services including YSlow, the HTTP Archive, Cuzillion, Jdrop, SpriteMe, ControlJS, and Browserscope. He serves as co-chair of Velocity, the web performance and operations conference from O'Reilly, and is co-founder of the Firebug Working Group.
The document discusses common mistakes made when prioritizing speed over quality, such as de-emphasizing testing, releases, operations, insights, security, and knowledge. It recommends focusing on system design, configurations, limits, growth, processes, resources, and building resilience through redundancies and documentation. Testing the full system, having playbooks, and minding assumptions and dependencies are emphasized.
Fastly Altitude - June 25, 2015. Catchpoint CEO Mehdi Daoudi talks about performance measuring and monitoring. Video from the talk: http://fastly.us/Altitude2015-Catchpoint-Video Mehdi's bio: Mehdi is the founder and CEO of Catchpoint, the fastest-growing Web Performance Monitoring Solution. The Catchpoint vision is to provide the best IT analytics & intelligence to help companies improve their end user performance and keep an eye on their infrastructure and vendors. Before Catchpoint, Mehdi spent 10+ years at DoubleClick and Google, where he was responsible for Quality of Services, buying, building, deploying and using various internal and external monitoring solutions to keep an eye on the DART infrastructure delivering billions of transactions a day using thousands of servers, routers, and various other web performance systems.
This document discusses applying Varnish, including topics like the VCL (Varnish Configuration Language), request flow, sticky origins, localized site redirects, token authentication, and third party authentication. It concludes by inviting any questions from the audience.
June 24, 2014 - SF Video Technology Meetup. Live streaming can be difficult and challenging, yet extremely rewarding. In the video gaming world, it has become the most powerful way of reaching your audience. It combines traditional web technologies with even more traditional broadcast video stacks in a "it's going live now" environment. In this presentation Lee Chen, head of product at Fastly, goes over the top 5 things that have lost him sleep, made his eyebrows go up, and sometimes even made him fail -- what he did to correct it.
This document discusses refactoring techniques for Ember applications. It describes using tests to guide refactoring, including custom test helpers for things like finding elements. An example shows refactoring a service for making requests by version into a more generic resource service. The recap encourages relying on tests, writing targeted helpers, addressing code smells, adding features, applying the "three times rule" of repetition, and refactoring during upgrades.
The document discusses probabilistic algorithms and their use for solving count-distinct problems. It explains that probabilistic algorithms provide probabilistically bounded error rates rather than exact answers. The count-distinct problem aims to estimate the number of unique elements in a large dataset and is used in applications like estimating unique website visitors. The document presents the LogLog algorithm as a probabilistic solution that partitions data and tracks the maximum number of leading zeros seen to estimate the count in a memory-efficient way.
Despite advances in software design and static analysis techniques, software remains incredibly complicated and difficult to reason about. Understanding highly-concurrent, kernel-level, and intentionally-obfuscated programs are among the problem domains that spawned the field of dynamic program analysis. More than mere debuggers, the challenge of dynamic analysis tools is to be able record, analyze, and replay execution without sacrificing performance. This talk will provide an introduction to the dynamic analysis research space and hopefully inspire you to consider integrating these techniques into your own internal tools.
The physical, logical, and economic topology of the Internet is ever changing due to new network to network interconnections, the planned or accidental disconnection of existing interconnections, and the ever growing needs for more network capacity. As a multi-Terabit traffic source, Fastly must regularly evaluate its needs for network capacity against performance and operating costs. This talk will examine the capacity planning models, scalability concerns, and economic drivers used to make key business decisions regarding connectivity, emphasizing the needs for metrics collection, analysis, and constant iterative tuning involving a distributed, international team.
This document discusses caching strategies for Rails applications, including: 1. Using Rails caching for queries, pages, assets, and fragments to improve performance. 2. Configuring Cache-Control headers, compression, and CDNs like Fastly for efficient caching. 3. Techniques for caching dynamic content at the edge using surrogate keys and purging cached responses.
The internet and how people interact with content online has evolved, with event-driven and personalized experiences becoming more common. Content delivery networks (CDNs) are struggling to meet new demands. While edge computing addresses some issues, true personalization and interactivity require data as well. For the next phase of the internet, data must also move to the edge to power personalized, real-time experiences globally. However, distributing and keeping data consistent across all edge locations presents significant technical challenges.
CDNs have traditionally been considered "black box" services with lack of control and visibility. Modern applications and DevOps culture require more flexibility, customization, and insight into your infrastructure, and how content is being served. In this talk, we'll explore how you can use content delivery networks as an extension of your applications, with full control, flexibility, and transparency at the network edge.
Fastly VP of Technology Hooman Beheshti gives a keynote on The Future of CDNs at Software Practice Advancement Conference 2015. More resources: http://spaconference.org/spa2015/uploads/resources/SPA%202015%20KEYNOTE%20AND%20DIVERSIONS.pdf
Traditionally, content delivery networks (CDNs) were known to accelerate static content. Amazon CloudFront has come a long way and now supports delivery of entire websites that include dynamic and static content. In this session, we introduce you to CloudFront’s dynamic delivery features that help improve the performance, scalability, and availability of your website while helping you lower your costs. We talk about architectural patterns such as SSL termination, close proximity connection termination, origin offload with keep-alive connections, and last-mile latency improvement. Also learn how to take advantage of Amazon Route 53's health check, automatic failover, and latency-based routing to build highly available web apps on AWS.
Amazon CloudFront and Amazon Route 53 can help optimize web application performance and availability. CloudFront improves performance by caching static and reusable content at edge locations and optimizing delivery of dynamic content through features like keep-alive connections and latency-based routing. Route 53 provides fast, reliable DNS services and can health check origins to improve high availability. Together, CloudFront and Route 53 provide a global network that caches content close to users and routes traffic based on network conditions to optimize performance and design for failure.
Traditionally, content delivery networks (CDNs) were known to accelerate static content. Amazon CloudFront has come a long way and now supports delivery of entire websites that include dynamic and static content. In this session, we introduce you to CloudFront’s dynamic delivery features that help improve the performance, scalability, and availability of your website while helping you lower your costs. We talk about architectural patterns such as SSL termination, close proximity connection termination, origin offload with keep-alive connections, and last-mile latency improvement. Also learn how to take advantage of Amazon Route 53's health check, automatic failover, and latency-based routing to build highly available web apps on AWS.
The document provides tips for optimizing various aspects of a website including the front end, application and database, web server, and miscellaneous topics. It recommends techniques such as minimizing HTTP requests, leveraging caching, optimizing databases and queries, offloading processing, and load balancing between web servers to improve page loading speeds and site performance. The overall goal is to analyze bottlenecks and apply solutions such as file compression, caching, and leveraging CDNs or reverse proxies to make websites faster and more scalable.
This session is recommended for people who are new to content distribution networks (CDNs) and have a need to decrease server load and speed up their website’s load time. In this mid-level technical session you will be able to learn more about improving the performance of web sites and web applications using Amazon CloudFront and Amazon Router 53. Learn how to assess whether your web applications will benefit from caching and how to optimize the delivery of static and dynamic content to boost performance and improve your customers' experience in using your applications.
CDNs have become a core part of internet infrastructure, and application owners are building them into development and product roadmaps for improved efficiency, transparency and performance. In his talk, Hooman shares recent learnings about the world of CDNs, how they're changing, and how Devs, Ops, and DevOps can integrate with them for optimal deployment and performance. Hooman Beheshti is VP of Technology at Fastly, where he develops web performance services for the world's smartest CDN platform. A pioneer in the application acceleration space, Hooman helped design one of the original load balancers while at Radware and has held senior technology positions with Strangeloop Networks and Crescendo Networks. He has worked on the core technologies that make the Internet work faster for nearly 20 years and is an expert and frequent speaker on the subjects of load balancing, application performance, and content delivery networks.
This document discusses web performance optimization techniques. It is a summary of rules for web performance by Mark Tomlinson, who has 27 years of experience in performance. Some of the key techniques discussed include reducing HTTP requests, optimizing file compression, minimizing code, improving web font and image performance, prefetching resources, avoiding unnecessary redirects, and optimizing infrastructure and databases. The document emphasizes measuring performance through load testing and monitoring to identify bottlenecks.
The document discusses how content delivery networks (CDNs) have evolved to better handle dynamic and unpredictable content. Traditionally, CDNs focused on static content and treated dynamic content as uncacheable. However, some dynamic content can actually be cached for periods of time. Modern CDNs now provide more granular caching controls and real-time APIs to allow custom caching configurations specified by the application. This improves cache hit ratios, offloads origin servers, and enhances performance even for long-tail content that changes infrequently.
Challenges behind the scenes of the large Swiss e-Commerce shop apfelkiste.ch and the role of CloudFlare - Sven Härtwig, CTO narf-studios GmbH Full video recording of the Talk: https://youtu.be/PlQhYAzYx3M
This document discusses ways to improve web performance for mobile users. It outlines goals like achieving a speed index between 1,100-2,500 and first meaningful paint within 1-3 seconds. Various techniques are presented for hacking first load times, data transfer, resource loading, images and user experience. These include avoiding redirects, using HTTP/2 and service workers, modern cache controls, responsive images, preloading resources, and ensuring consistent frame rates. The overall message is that mobile performance needs more attention given average load times and high bounce rates on slow mobile sites.
1. A website is loaded by a browser through a multi-step process involving DNS lookups, TCP connections, downloading resources like HTML, CSS, JS, and images. This process can be slow due to the number of individual requests and dependencies between resources. 2. Ways to optimize the loading process include making the server fast, inlining critical resources, gzip compression, an optimized caching strategy, optimizing file delivery through techniques like CDNs and HTTP/2, bundling resources, optimizing images, avoiding unnecessary domains, minimizing web fonts, and JavaScript techniques like PJAX. Minifying assets can also speed up loading.
Slides on how to build your WordPress site so that it performs like an enterprise application. Associated video: http://wordpress.tv/2014/06/25/john-giaconia-enterprise-wordpress-performance-scalability-and-redundancy/