Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS SummitAmazon Web Services
Containers are a lightweight and very fast alternative to virtual machines. But keeping track of and coordinating a vast array of individual containers is no small feat and requires orchestration for all of the components to act as one. Amazon Elastic Container Service for Kubernetes (Amazon EKS) is the tool to handle this task. In this session, learn about this service’s latest new features.
Accelerate Cloud Migration to AWS Cloud with Cognizant Cloud StepsAmazon Web Services
Digital transformation and cloud migration are complex but necessary mandates for modern organizations. Cognizant’s Cloud Steps transformation and migration framework simplifies the process, enabling enterprises to quickly and easily build resilient cloud foundations and confidently migrate applications, infrastructure, security, and DevOps to an AWS environment at speed and scale.
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMRightScale
As public cloud storage services mature, it becomes easier to make apples-to-apples comparisons. We drill down on the latest specs and features for object, block, archival, and file storage across AWS, Azure, Google, and IBM. We also compare prices for a variety of storage scenarios.
When migrating applications to the AWS Cloud, it’s important to architect cloud environments that are efficient, secure, and compliant. Companies depend on critical enterprise applications to run their business. In this session, learn about the compute, storage, and networking services that AWS offers to help you build, run, and scale your business-critical applications more quickly, securely, and cost-efficiently. We also cover the AWS services and partners that are available to help you modernize and migrate your business-critical applications to the cloud.
Ireferred AWS official study guide for AWS solution architecture that is just summary so if you wanna take the certificate, so please study by an official guide
AWS Fargate is a technology for Amazon ECS and EKS* that allows you to run containers without having to manage servers or clusters. Join us to learn more about how Fargate works, why we built it, and how you can get started using it to run containers today.
Kubernetes on AWS with Amazon EKS - MAD301 - New York AWS SummitAmazon Web Services
Containers are a lightweight and very fast alternative to virtual machines. But keeping track of and coordinating a vast array of individual containers is no small feat and requires orchestration for all of the components to act as one. Amazon Elastic Container Service for Kubernetes (Amazon EKS) is the tool to handle this task. In this session, learn about this service’s latest new features.
Accelerate Cloud Migration to AWS Cloud with Cognizant Cloud StepsAmazon Web Services
Digital transformation and cloud migration are complex but necessary mandates for modern organizations. Cognizant’s Cloud Steps transformation and migration framework simplifies the process, enabling enterprises to quickly and easily build resilient cloud foundations and confidently migrate applications, infrastructure, security, and DevOps to an AWS environment at speed and scale.
Cloud Storage Comparison: AWS vs Azure vs Google vs IBMRightScale
As public cloud storage services mature, it becomes easier to make apples-to-apples comparisons. We drill down on the latest specs and features for object, block, archival, and file storage across AWS, Azure, Google, and IBM. We also compare prices for a variety of storage scenarios.
When migrating applications to the AWS Cloud, it’s important to architect cloud environments that are efficient, secure, and compliant. Companies depend on critical enterprise applications to run their business. In this session, learn about the compute, storage, and networking services that AWS offers to help you build, run, and scale your business-critical applications more quickly, securely, and cost-efficiently. We also cover the AWS services and partners that are available to help you modernize and migrate your business-critical applications to the cloud.
Ireferred AWS official study guide for AWS solution architecture that is just summary so if you wanna take the certificate, so please study by an official guide
AWS Fargate is a technology for Amazon ECS and EKS* that allows you to run containers without having to manage servers or clusters. Join us to learn more about how Fargate works, why we built it, and how you can get started using it to run containers today.
by Mikhail Prudnikov, Sr. Solutions Architect, AWS
Redis is an open source, in-memory data store that delivers sub-millisecond response times enabling millions of requests per second to power real-time applications. It can be used as a fast database, cache, message broker, and queue. Amazon ElastiCache delivers the ease-of-use and power of Redis along with the availability, reliability, scalability, security, and performance suitable for the most demanding applications. We’ll take a close look at Redis and how to use it to power different use cases.
Mainframe Modernization with AWS: Patterns and Best Practices (GPSTEC305) - A...Amazon Web Services
Customers have compelling business reasons to modernize and migrate mainframe workloads to AWS. Mainframes typically process complex and critical applications. Fortunately, we have accumulated experience and learned lessons based on the many successful customer modernization projects to AWS. In this session, we present patterns and best practices that facilitate successful mainframe to AWS initiatives.
by Isaiah Weiner, Sr. Manager of Solutions Architecture, AWS
Companies are using AWS to create and deploy efficient, fast, and cost-effective backup and restore capabilities to protect critical IT systems without incurring the infrastructure expense of a second physical site. In this session, we will talk about cloud-based services AWS provides to enable robust backup and rapid recovery of your IT infrastructure and data.
Accelerate your Cloud Migration Journey (Level 100)
Many enterprises have realized the benefits of migrating services to the cloud and are considering the next stage in their journey. In this webinar we will take you through the principles of cloud migration including the business benefits, cloud economics, methodologies and tools to accelerate your journey. We will also discuss the key enablers for cloud adoption based on real examples.
This is a Level 100 webinar
Speakers: Manav Prabhakar, Practice Manager, AWS Professional Services
Jon Austin, Principal Solutions Architect, Amazon Web Services
Parijat Mishra, Solutions Architect Manager, Amazon Web Services
Maintaining control of sensitive data is critical in the highly regulated financial investments environment that Vanguard operates in. This need for data control complicated Vanguard's move to the cloud. They needed to expand globally to provide a great user experience while at the same time maintaining their mainframe-based backend data architecture. In this session, Vanguard discusses the creative approach they took to decouple their monolithic backend architecture to empower a microservices architecture while maintaining compliance with regulations. They also cover solutions implemented to successfully meet their requirements for security, latency, and end-state consistency.
Speaker: Jon Austin, Enterprise Solutions Architect, AWS
Hybrid cloud architecture which integrates on-premises resources with cloud resources, is essential to the success of many businesses. For most customers with on-premises technology investments, operating in a hybrid architecture is a necessary part of cloud adoption. This webinar covers how to simplify Hybrid IT operations by using the same VMware Cloud Foundation technologies across on-premises data centers and on the AWS Cloud, without having to purchase any new or custom hardware, rewrite applications, or modify operating models. We share how you can easily and rapidly add new innovations to your applications by natively integrating AWS infrastructure and platform capabilities.
Speakers:
David Lim, Head of Consulting Partners, Amazon Web Services
Nathan Wheat, Partner Success Manager (VMware), Amazon Web Services
Cloud adoption requires that fundamental changes are considered across the entire organization, and that stakeholders across all organizational units are engaged in these changes. This session will introduce participants to the AWS Cloud Adoption Framework (AWS CAF) to help organizations take an accelerated path to successful cloud adoption. Participants will be exposed to consideration, guidance, and best practices that can be used to help their organizations develop an efficient and effective plan to realize measurable business benefits from cloud adoption faster and with less risk.
More and more enterprise companies are migrating to the AWS Cloud and there are a number of reasons why. While every organization is going to have their own unique motivations, common drivers include exiting data centers, increasing business agility, improving workforce productivity, gaining transparency in operational costs and reducing risk.
The AWS Migration Acceleration Program (MAP) is designed to help enterprises that are committed to a migration journey achieve a range of these business benefits by migrating existing workloads to Amazon Web Services. In this session, you will learn about proven migration patterns, methods and tools that AWS has delivered successfully to hundreds of enterprise customers globally that will help you accelerate migrations, reduce risk and quickly realize value.
Learn best practices for deploying Magento on AWS using services such as Amazon Elastic Compute Cloud (Amazon EC2), Amazon Virtual Private Cloud (Amazon VPC), Amazon Relational Database Service (Amazon RDS), and Amazon Simple Storage System (Amazon S3).
Module 1: AWS Introduction and History - AWSome Day Online Conference - APACAmazon Web Services
This module will cover cloud computing concepts and AWS global Infrastructure.
• Recognize terminology and concepts as they relate to the AWS platform and navigate the AWS Management Console.
• Understand the foundational services, including Amazon Elastic Compute Cloud (EC2), Amazon Virtual Private Cloud (VPC), Amazon Simple Storage Service (S3), and Amazon Elastic Block Store (EBS).
• Understand the security measures AWS provides and key concepts of AWS Identity and Access Management (IAM).
• Understand AWS database services, including Amazon DynamoDB and Amazon Relational Database Service (RDS). • Understand AWS management tools, including Auto Scaling, Amazon CloudWatch, Elastic Load Balancing (ELB), and AWS Trusted Advisor.
Presenters today:
• John Balsillie Senior Technical Trainer, AWS APAC
• Karthik Chandy Senior Technical Trainer, AWS APAC
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...Amazon Web Services
Get a jump on traffic surges with Predictive Auto Scaling. AWS Auto Scaling now responds more quickly by analyzing past traffic trends. The new predictive capability looks at your incoming load and forecasts it into the future. Not only can you see ahead of time when and how your resources will scale, your resources are made available ahead of when they are needed to enable faster, more responsive applications. Come learn how Genesys uses Predictive Scaling to scale the infrastructure used to run their popular contact center solution, PureCloud, worldwide.
by Mikhail Prudnikov, Sr. Solutions Architect, AWS
Redis is an open source, in-memory data store that delivers sub-millisecond response times enabling millions of requests per second to power real-time applications. It can be used as a fast database, cache, message broker, and queue. Amazon ElastiCache delivers the ease-of-use and power of Redis along with the availability, reliability, scalability, security, and performance suitable for the most demanding applications. We’ll take a close look at Redis and how to use it to power different use cases.
Mainframe Modernization with AWS: Patterns and Best Practices (GPSTEC305) - A...Amazon Web Services
Customers have compelling business reasons to modernize and migrate mainframe workloads to AWS. Mainframes typically process complex and critical applications. Fortunately, we have accumulated experience and learned lessons based on the many successful customer modernization projects to AWS. In this session, we present patterns and best practices that facilitate successful mainframe to AWS initiatives.
by Isaiah Weiner, Sr. Manager of Solutions Architecture, AWS
Companies are using AWS to create and deploy efficient, fast, and cost-effective backup and restore capabilities to protect critical IT systems without incurring the infrastructure expense of a second physical site. In this session, we will talk about cloud-based services AWS provides to enable robust backup and rapid recovery of your IT infrastructure and data.
Accelerate your Cloud Migration Journey (Level 100)
Many enterprises have realized the benefits of migrating services to the cloud and are considering the next stage in their journey. In this webinar we will take you through the principles of cloud migration including the business benefits, cloud economics, methodologies and tools to accelerate your journey. We will also discuss the key enablers for cloud adoption based on real examples.
This is a Level 100 webinar
Speakers: Manav Prabhakar, Practice Manager, AWS Professional Services
Jon Austin, Principal Solutions Architect, Amazon Web Services
Parijat Mishra, Solutions Architect Manager, Amazon Web Services
Maintaining control of sensitive data is critical in the highly regulated financial investments environment that Vanguard operates in. This need for data control complicated Vanguard's move to the cloud. They needed to expand globally to provide a great user experience while at the same time maintaining their mainframe-based backend data architecture. In this session, Vanguard discusses the creative approach they took to decouple their monolithic backend architecture to empower a microservices architecture while maintaining compliance with regulations. They also cover solutions implemented to successfully meet their requirements for security, latency, and end-state consistency.
Speaker: Jon Austin, Enterprise Solutions Architect, AWS
Hybrid cloud architecture which integrates on-premises resources with cloud resources, is essential to the success of many businesses. For most customers with on-premises technology investments, operating in a hybrid architecture is a necessary part of cloud adoption. This webinar covers how to simplify Hybrid IT operations by using the same VMware Cloud Foundation technologies across on-premises data centers and on the AWS Cloud, without having to purchase any new or custom hardware, rewrite applications, or modify operating models. We share how you can easily and rapidly add new innovations to your applications by natively integrating AWS infrastructure and platform capabilities.
Speakers:
David Lim, Head of Consulting Partners, Amazon Web Services
Nathan Wheat, Partner Success Manager (VMware), Amazon Web Services
Cloud adoption requires that fundamental changes are considered across the entire organization, and that stakeholders across all organizational units are engaged in these changes. This session will introduce participants to the AWS Cloud Adoption Framework (AWS CAF) to help organizations take an accelerated path to successful cloud adoption. Participants will be exposed to consideration, guidance, and best practices that can be used to help their organizations develop an efficient and effective plan to realize measurable business benefits from cloud adoption faster and with less risk.
More and more enterprise companies are migrating to the AWS Cloud and there are a number of reasons why. While every organization is going to have their own unique motivations, common drivers include exiting data centers, increasing business agility, improving workforce productivity, gaining transparency in operational costs and reducing risk.
The AWS Migration Acceleration Program (MAP) is designed to help enterprises that are committed to a migration journey achieve a range of these business benefits by migrating existing workloads to Amazon Web Services. In this session, you will learn about proven migration patterns, methods and tools that AWS has delivered successfully to hundreds of enterprise customers globally that will help you accelerate migrations, reduce risk and quickly realize value.
Learn best practices for deploying Magento on AWS using services such as Amazon Elastic Compute Cloud (Amazon EC2), Amazon Virtual Private Cloud (Amazon VPC), Amazon Relational Database Service (Amazon RDS), and Amazon Simple Storage System (Amazon S3).
Module 1: AWS Introduction and History - AWSome Day Online Conference - APACAmazon Web Services
This module will cover cloud computing concepts and AWS global Infrastructure.
• Recognize terminology and concepts as they relate to the AWS platform and navigate the AWS Management Console.
• Understand the foundational services, including Amazon Elastic Compute Cloud (EC2), Amazon Virtual Private Cloud (VPC), Amazon Simple Storage Service (S3), and Amazon Elastic Block Store (EBS).
• Understand the security measures AWS provides and key concepts of AWS Identity and Access Management (IAM).
• Understand AWS database services, including Amazon DynamoDB and Amazon Relational Database Service (RDS). • Understand AWS management tools, including Auto Scaling, Amazon CloudWatch, Elastic Load Balancing (ELB), and AWS Trusted Advisor.
Presenters today:
• John Balsillie Senior Technical Trainer, AWS APAC
• Karthik Chandy Senior Technical Trainer, AWS APAC
Predictive Scaling for More Responsive Applications (API330) - AWS re:Invent ...Amazon Web Services
Get a jump on traffic surges with Predictive Auto Scaling. AWS Auto Scaling now responds more quickly by analyzing past traffic trends. The new predictive capability looks at your incoming load and forecasts it into the future. Not only can you see ahead of time when and how your resources will scale, your resources are made available ahead of when they are needed to enable faster, more responsive applications. Come learn how Genesys uses Predictive Scaling to scale the infrastructure used to run their popular contact center solution, PureCloud, worldwide.
Shared By The Many: Advances in technology are allowing for the provision of affordable, decentralized healthcare for the masses and are lowering the barriers to entry in less developed markets.
The analysis in PSFK’s Future of Health Report has yielded a number of insights, the most evident of which is mobile technology as a catalyst for change. The mobile phone and connected tablet computer are allowing for the distribution of a broad range of medical and support services. This is especially important in countries with little or no healthcare infrastructure and areas in which there are few trained healthcare professionals. These technologies also allow trained professionals to perform quality control remotely.
Amongst the many significant developments is a shift towards one-on-one, in- field diagnostics and monitoring. Services that were once only available at a doctor’s office or hospital are now available on-demand through low-tech, affordable solutions. Personal systems allow for ‘good enough’ diagnostics that would have been difficult, expensive and timely to attain previously.
Using a basic phone with adapted software, a health worker can test for myriad symptoms - even cancer. This information can be relayed to a central medical care center where doctors and trained professionals can react to the data, provide prompt diagnosis and suggest treatment options. The ability to capture this data and get quick responses remotely means better healthcare, fewer trips to the hospital (which, for many means days away from home and family), and less time away from work.
A change is also occurring that is seeing increased access to and sharing of health information. This is made possible by the proliferation of systems designed to overcome infrastructure insufficiencies. these systems are enabling the broadcast of information and receipt of subsequent feedback in virtually any setting. From ‘town crier’ systems to ‘internet by text’, the collective knowledge found on the web is being made available to populations around the world who previously lacked access. The connectivity that is enabling the sharing of health information is also powering the growth of social networks focused on health and medical care. These networks are allowing professionals, health workers and individuals to connect and share knowledge quickly.
PSFK’s Future of Health Report details 15 trends that will impact health and wellness around the world. Simple advances such as off-the-grid energy and the introduction of gaming into healthcare service offerings sit alongside more future-forward developments such as bio-medical printing. It is our hope that this report will inspire your thinking and lead to services, applications and technologies which will allow for more available, quality healthcare.
For a download of this report - visit: http://www.psfk.com/future-of-health
Walks through the basics of the HTTP protocol, URLs, cookies and caching, with tricks and tips that can be used by web developers. From a Geek.class I did on Oct 6, 2011 for Meet the Geeks.
200, 404, 302. Is it a lock combination? A phone number? No, they're HTTP status codes! As we develop Web applications, we encounter these status codes and others, and often we make decisions about which ones to return without giving much thought to their meaning or context. It's time to take a deeper look at HTTP. Knowing the methods, headers, and status codes, what they mean, and how to use them can help you develop richer Internet applications. Join Ben Ramsey as he takes you on a journey through RFC 2616 to discover some of the gems of HTTP.
An overview of the HTTP protocol showing the protocol basics such as protocol versions, messages, headers, status codes, connection management, cookies and more.
But it still remains an overview without in-depth information. Also some key aspects are left out (because of limited time) such as authentication, content negotiation, robots, web architecture etc..
HTTP is one of the most widely used protocols in the world.
The version of HTTP 1.1, used to this day, was developed and described 18 years ago - 1999.
With the increasing complexity of web applications, the capabilities of HTTP 1.1 are already insufficient to provide increased demands on performance and responsiveness.
So in order to meet new requirements, HTTP must evolve. HTTP 2.0 is designed to make web applications faster, simple and reliable.
In this report I will tell about
- drawbacks of HTTP 1.1 and why we need a new version of HTTP.
- which advantages HTTP/2 offers in comparison with the previous version?
- how the new protocol affected the new version of SERVLET 4.0 and how we can use it.
Presentation given at the International PHP conference in Mainz, October 2012, dealing with a bit of history about the HTTP protocol, SPDY and the future (HTTP/2.0).
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
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
The field of Information retrieval (IR) is currently undergoing a transformative shift, at least partly due to the emerging applications of generative AI to information access. In this talk, we will deliberate on the sociotechnical implications of generative AI for information access. We will argue that there is both a critical necessity and an exciting opportunity for the IR community to re-center our research agendas on societal needs while dismantling the artificial separation between the work on fairness, accountability, transparency, and ethics in IR and the rest of IR research. Instead of adopting a reactionary strategy of trying to mitigate potential social harms from emerging technologies, the community should aim to proactively set the research agenda for the kinds of systems we should build inspired by diverse explicitly stated sociotechnical imaginaries. The sociotechnical imaginaries that underpin the design and development of information access technologies needs to be explicitly articulated, and we need to develop theories of change in context of these diverse perspectives. Our guiding future imaginaries must be informed by other academic fields, such as democratic theory and critical theory, and should be co-developed with social science scholars, legal scholars, civil rights and social justice activists, and artists, among others.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
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.
8. The Client sends a Request to the Server
The Server sends back a Response to the Client
A Client (browser, bot,WS, curl, …)
A Server (Apache, nginx, …)
The Request and the Response are HTTP messages
11. « The request-header fields allow the client to pass additional
information about the request, and about the client itself, to the
server.These fields act as request modifiers, with semantics
equivalent to the parameters on a programming language method
invocation. »
12. « Each HTTP header field consists of a case-insensitive field name
followed by a colon (":"), optional whitespace, and the field value »
13. HTTP/1.1 200 OK
Date: Wed, 15 Oct 2005 07:07:07 GMT
Server: Apache
Content-Length: 14
Content-Type: text/html
Hello World!
14. Live HTTP headers Firefox extension
http://livehttpheaders.mozdev.org/
28. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
HTTP/1.1 200 OK
Expires: Thu,
01
Dec
…
Hello
GET /foo
HTTP/1.1 200 OK
Expires: Thu,
01
Dec
…
Hello
HTTP/1.1 200 OK
Expires: Thu,
01
Dec
…
Hello
30. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
HTTP/1.1 200 OK
Expires: Thu,
01
Dec
…
Hello
GET /foo
HTTP/1.1 200 OK
Expires: Thu,
01
Dec
…
Hello
HTTP/1.1 200 OK
Expires: Thu,
01
Dec
…
Hello
A<er
expira4on
Not
fresh
31. Expires: Thu, 01 Dec 2010 16:00:00 GMT
Date in RFC1123 format, not RFC2822
(timezone always GMT, which is ~ UTC)
33. $date = new DateTime(null, new DateTimeZone('UTC'));
$date->modify('+5 seconds');
$expires = $date->format('D, d M Y H:i:s').' GMT';
$date = gmdate('D, j M Y H:i:s T', time() + 5);
header('Expires: '.$expires);
47. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
If-None-Match: abcdef
HTTP/1.1 304 Not Modified
GET /foo
HTTP/1.1 200 OK
ETag: abcdef
…
Hello
HTTP/1.1 200 OK
ETag: abcdef
Hello
If
the
resource
has
not
changed
48. SomeCache
GET /foo
HTTP/1.1 200 OK
ETag: abcdef
…
Hello
Browser
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
If-None-Match: abcdef
If
the
resource
has
changed
GET /foo
HTTP/1.1 200 OK
ETag: 123456
…
Hello
HTTP/1.1 200 OK
ETag: 123456
Hello
HTTP/1.1 200 OK
ETag: 123456
Hello
49. // compute ETag value
$etag = '...';
if (
isset($_SERVER['HTTP_IF_NONE_MATCH'])
&& $_SERVER['HTTP_IF_NONE_MATCH'] == $etag
) {
header('HTTP/1.1 304 Not Modified');
} else {
header('ETag: '.$etag);
echo 'Hello';
}
52. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo
HTTP/1.1 200 OK
Last-Modified: Thu,
…
Hello
HTTP/1.1 200 OK
Last-Modified: Thu,
…
Hello
HTTP/1.1 200 OK
Last-Modified: Thu,
…
Hello
53. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
If-Modified-Since: Thu,
HTTP/1.1 304 Not Modified
GET /foo
HTTP/1.1 200 OK
Last-Modified: Thu,
…
Hello
HTTP/1.1 200 OK
Last-Modified: Thu,
…
Hello
If
the
resource
has
not
changed
54. SomeCache
GET /foo
HTTP/1.1 200 OK
Last-Modified: Thu,
…
Hello
GET /foo
HTTP/1.1 200 OK
Last-Modified: Sun,
…
Hello
Browser
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
If-Modified-Since: Thu,
If
the
resource
has
changed
HTTP/1.1 200 OK
Last-Modified: Sun,
…
Hello
HTTP/1.1 200 OK
Last-Modified: Sun,
…
Hello
56. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo
HTTP/1.1 200 OK
Etag: abcdef
Cache-‐Control:
max-‐
age=10
…
Hello
HTTP/1.1 200 OK
ETag: abcdef
Cache-‐Control:
max-‐age=10
Hello
HTTP/1.1 200 OK
ETag: abcdef
Cache-‐Control:
max-‐age=10
Hello
57. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
Before
expira4on
Your
applica4on
is
not
called
GET /foo
HTTP/1.1 200 OK
Etag: abcdef
Cache-‐Control:
max-‐
age=10
…
Hello
HTTP/1.1 200 OK
ETag: abcdef
Cache-‐Control:
max-‐age=10
Hello
58. Browser
YourPHPapplication
SomeCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
If-None-Match: abcdef
HTTP/1.1 304 Not Modified
Cache-‐Control:
max-‐age=10
A<er
expira4on
but
resource
s4ll
valid
GET /foo
HTTP/1.1 200 OK
Etag: abcdef
Cache-‐Control:
max-‐
age=10
…
Hello
HTTP/1.1 200 OK
ETag: abcdef
Cache-‐Control:
max-‐age=10
Hello
59. You can combine HTTP headers
the way you want
Expiration wins overValidation
60. Expiration allows you to scale
as less requests hit your server
(and client speed is better too)
Validation saves bandwidth
61. The goal is to never
generate the same response twice
71. On
the
server
side
Within
a
Company
Browser
YourPHPapplication
BrowserBrowser
BrowserCacheBrowserCacheBrowserCache
ProxyCache
72. On
the
server
side
Within
a
Company
Browser
YourPHPapplication
BrowserBrowser
BrowserCacheBrowserCacheBrowserCache
ProxyCache
Within
a
Company
BrowserBrowserBrowser
BrowserCacheBrowserCacheBrowserCache
ProxyCache
74. On
the
server
side
YourPHPapplication
Browser
BrowserCache
GatewayCache
75. Within
a
Company
On
the
server
side
Browser
YourPHPapplication
BrowserBrowser
BrowserCacheBrowserCacheBrowserCache
GatewayCache
76. On
the
server
side
Within
a
Company
Browser
YourPHPapplication
BrowserBrowser
BrowserCacheBrowserCacheBrowserCache
ProxyCache
BrowserBrowser
BrowserCacheBrowserCache
GatewayCache
79. Proxy Cache
A shared cache
Many people behind a single proxy
Installed by large corporations and ISPs
Reduce latency and network traffic
80. Gateway Cache
A shared cache on the server side
Installed by network administrators
Make websites more scalable, reliable and performing better
CDNs like Akaïma are gateway caches
85. In practice, most caches avoid anything with
Cache-Control
Cookie / Set-Cookie
WWW-Authenticate / Authorization
POST / PUT
302 / 307 status codes
86. Cache-Control: private
This is the default with PHP when you have a session
Browser cache will still work fine here
(public means shared caches, private means browser cache)
87. A gateway cache won't cache anything
"private" or carrying a cookie
In a real-world: tracking cookies (Google Analytics)
93. BrowserCache
Alice
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
HTTP/1.1 200 OK
C-C: max-age=600
Hello
HTTP/1.1 200 OK
C-C: max-age=600
Hello
GatewayCache
GET /foo
HTTP/1.1 200 OK
C-C: max-age=600
…
Hello
GET /foo
HTTP/1.1 200 OK
C-C: max-age=600
…
Hello
95. Bob’sCache
GatewayCache
Bob
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo
HTTP/1.1 200 OK
Etag: abcde
…
Hello
HTTP/1.1 200 OK
Etag: abcde
Hello
HTTP/1.1 200 OK
Etag: abcde
Hello
GET /foo
HTTP/1.1 200 OK
Etag: abcde
…
Hello
HTTP/1.1 200 OK
Etag: abcde
Hello
96. Bob’sCache
GatewayCache
Bob
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
If-None-Match: ab
GET /foo HTTP/1.1
Host: foo.org
If-None-Match: ab
GET /foo
HTTP/1.1 200 OK
Etag: ab
…
Hello
HTTP/1.1 200 OK
Etag: ab
Hello
GET /foo
HTTP/1.1 200 OK
Etag: ab
…
Hello
304 Not Modified304 Not Modified
97. GatewayCache
YourPHPapplication
BrowserCache
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
If-None-Match: ab
GET /foo
HTTP/1.1 200 OK
Etag: ab
…
Hello
HTTP/1.1 200 OK
Etag: ab
Hello
304 Not Modified
Alice
HTTP/1.1 200 OK
Etag: ab
Hello
GET /foo
HTTP/1.1 200 OK
Etag: ab
…
Hello
98. Gateway caches
Varnish (only does that and tries to do it well)
Squid (just one way to use it)
mod_cache (Apache)
100. But what if you cannot cache whole pages?
What if a page has "more" dynamic parts?
101. Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Mauris
dignissim,
urna
quis
iaculis
tempus,
justo
libero
porRtor
est,
nec
eleifend
est
elit
vitae
ante.
Curabitur
interdum
luctus
metus.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Mauris
dignissim,
urna
quis
iaculis
tempus,
justo
libero
porRtor
est,
nec
eleifend
est
elit
vitae
ante.
Curabitur
interdum
luctus
metus,
in
pulvinar
lectus
rutrum
sit
amet.
Duis
gravida,
metus
in
dictum
eleifend,
dolor
risus
4ncidunt
ligula,
non
volutpat
nulla
sapien
in
elit.
Nulla
rutrum
erat
id
neque
suscipit
eu
ultricies
odio
sollicitudin.
Aliquam
a
mi
vel
eros
placerat
hendrerit.
Phasellus
porRtor,
augue
sit
amet
vulputate
venena4s,
dui
leo
commodo
odio,
a
euismod
turpis
ligula
in
elit.
cacheable for 10 seconds
cacheable for 5 seconds
102. ESI… or Edge Side Includes
http://www.w3.org/TR/esi-lang
103. Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Mauris
dignissim,
urna
quis
iaculis
tempus,
justo
libero
porRtor
est,
nec
eleifend
est
elit
vitae
ante.
Curabitur
interdum
luctus
metus.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Mauris
dignissim,
urna
quis
iaculis
tempus,
justo
libero
porRtor
est,
nec
eleifend
est
elit
vitae
ante.
Curabitur
interdum
luctus
metus,
in
pulvinar
lectus
rutrum
sit
amet.
Duis
gravida,
metus
in
dictum
eleifend,
dolor
risus
4ncidunt
ligula,
non
volutpat
nulla
sapien
in
elit.
Nulla
rutrum
erat
id
neque
suscipit
eu
ultricies
odio
sollicitudin.
Aliquam
a
mi
vel
eros
placerat
hendrerit.
Phasellus
porRtor,
augue
sit
amet
vulputate
venena4s,
dui
leo
commodo
odio,
a
euismod
turpis
ligula
in
elit.
104. Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Mauris
dignissim,
urna
quis
iaculis
tempus,
justo
libero
porRtor
est,
nec
eleifend
est
elit
vitae
ante.
Curabitur
interdum
luctus
metus,
in
pulvinar
lectus
rutrum
sit
amet.
Duis
gravida,
metus
in
dictum
eleifend,
dolor
risus
4ncidunt
ligula,
non
volutpat
nulla
sapien
in
elit.
Nulla
rutrum
erat
id
neque
suscipit
eu
ultricies
odio
sollicitudin.
Aliquam
a
mi
vel
eros
placerat
hendrerit.
Phasellus
porRtor,
augue
sit
amet
vulputate
venena4s,
dui
leo
commodo
odio,
a
euismod
turpis
ligula
in
elit.
<esi:include src="..." />
106. BrowserCache
GatewayCache
Browser
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /bar HTTP/1.1
Host: foo.org
Lorem
ipsum
dolor
<esi:include
src="hYp.."
/>
HTTP/1.1 200 OK
Lorem
ipsum
dolor
HTTP/1.1 200 OK
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
107. BrowserCache
GatewayCache
Browser
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /bar HTTP/1.1
Host: foo.org
Lorem
ipsum
dolor
<esi:include
src="hYp.."
/>
HTTP/1.1 200 OK
C-C: max-age=10
Lorem
ipsum
dolor
HTTP/1.1 200 OK
C-C: max-age=5
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
GET /foo
C-C: max-age=10
Lor <esi:include />
GET /bar
C-C: max-age=5
Lorem
GET /foo
C-C: max-age=10
Lor Lorem
111. BrowserCache
GatewayCache
Browser
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /bar HTTP/1.1
Host: foo.org
Lorem
ipsum
dolor
<esi:include
src="hYp.."
/>
HTTP/1.1 200 OK
C-C: s-maxage=10
Lorem
ipsum
dolor
HTTP/1.1 200 OK
C-C: s-maxage=5
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
GET /foo
C-C: s-maxage=10
Lor <esi:include />
GET /bar
C-C: s-maxage=5
Lorem
112. BrowserCache
GatewayCache
Browser
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
GET /foo
C-C: s-maxage=10
Lor <esi:include />
GET /bar
C-C: s-maxage=5
Lorem
2
seconds
later…
113. BrowserCache
GatewayCache
Browser
YourPHPapplication
GET /foo HTTP/1.1
Host: foo.org
GET /foo HTTP/1.1
Host: foo.org
GET /bar HTTP/1.1
Host: foo.org
Lorem
ipsum
dolor
HTTP/1.1 200 OK
C-C: s-maxage=5
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
Lorem
ipsum
dolor
sit
amet,
Lorem
ipsum
dolor
HTTP/1.1 200 OK
GET /foo
C-C: s-maxage=10
Lor <esi:include />
GET /bar
C-C: s-maxage=5
Lorem
7
seconds
later…
114. Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Mauris
dignissim,
urna
quis
iaculis
tempus,
justo
libero
porRtor
est,
nec
eleifend
est
elit
vitae
ante.
Curabitur
interdum
luctus
metus.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Mauris
dignissim,
urna
quis
iaculis
tempus,
justo
libero
porRtor
est,
nec
eleifend
est
elit
vitae
ante.
Curabitur
interdum
luctus
metus,
in
pulvinar
lectus
rutrum
sit
amet.
Duis
gravida,
metus
in
dictum
eleifend,
dolor
risus
4ncidunt
ligula,
non
volutpat
nulla
sapien
in
elit.
Nulla
rutrum
erat
id
neque
suscipit
eu
ultricies
odio
sollicitudin.
Aliquam
a
mi
vel
eros
placerat
hendrerit.
Phasellus
porRtor,
augue
sit
amet
vulputate
venena4s,
dui
leo
commodo
odio,
a
euismod
turpis
ligula
in
elit.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
Integer
semper
turpis
et
enim
porRtor
iaculis.
Nulla
facilisi.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
Mauris
vehicula
ves4bulum
dictum.
Aenean
non
velit
tortor.
Nullam
adipiscing
malesuada
aliquam.
Lorem
ipsum
dolor
sit
amet,
consectetur
adipiscing
elit.
In
vel
nulla
arcu,
vitae
cursus
nunc.
main template
layout
base layout
included page
included page
included page
126. Imagine the power when you combine
ESI, expiration, validation, max-age, s-maxage, …
127. Why would you want to reinvent the wheel?
and implement your own caching system?
128. Because you cannot afford to useVarnish?
Because you use a shared hosting company?
129. <?php
// With the Symfony2 HTTP accelerator instead of Varnish
// won't work if you use exit() for instance...
// won't work if you have "global" state
// This is just a skeleton to get you started
// Of course, this is native with Symfony2 ;)
130. use SymfonyComponentHttpFoundationResponse;
use SymfonyComponentHttpFoundationRequest;
use SymfonyComponentHttpKernelHttpKernelInterface;
use SymfonyComponentHttpKernelCacheCache;
use SymfonyComponentHttpKernelCacheEsi;
use SymfonyComponentHttpKernelCacheStore;
class AppKernel implements HttpKernelInterface
{
public function handle(Request $request = null, $type
= HttpKernelInterface::MASTER_REQUEST, $raw = false)
{
return new Response($content, 200, $headers);
}
public function getRequest() {}
}
131. $_SERVER['HTTP_SURROGATE_CAPABILITY'] = 'symfony2="ESI/1.0"';
// quick hack... not secure at all!
$base = str_replace('index.php', '', $request->getScriptName());
$script = str_replace($base, '', $request->getRequestUri());
ob_start();
include __DIR__.'/'.$script;
$content = ob_get_clean();
$headers = array();
foreach (headers_list() as $header) {
$elements = explode(':', $header, 2);
$headers[$elements[0]] = trim($elements[1]);
}
// do not deal with response others than 200
// implementation depends on your code
return new Response($content, 200, $headers);
132. $kernel = new AppKernel();
$store = new Store('/path/to/http_cache');
$esi = new Esi();
$cache = new Cache($kernel, $store, $esi);
$cache->handle()->send();
error_log($cache->getLog());