The document discusses ways to add serverless functionality to legacy PHP applications. It begins by explaining what serverless is and the benefits it provides. It then explores various approaches to incorporating serverless starting with simple tasks like logging and moving to more complex uses like allowing users to run custom code. Challenges encountered include determining where to store settings and testing limitations. The document envisions further serverless integration like rebuilding the admin interface and customer portal.
RFC 7540 was ratified over 2 years ago and, today, all major browsers, servers, and CDNs support the next generation of HTTP. Just over a year ago, at Velocity (https://www.slideshare.net/Fastly/http2-what-no-one-is-telling-you), we discussed the protocol, looked at some real world implications of its deployment and use, and what realistic expectations we should have from its use.
Now that adoption is ramped up and the protocol is being regularly used on the Internet, it's a good time to revisit the protocol and its deployment. Has it evolved? Have we learned anything? Are all the features providing the benefits we were expecting? What's next?
In this session, we'll review protocol basics and try to answer some of these questions based on real-world use of it. We'll dig into the core features like interaction with TCP, server push, priorities and dependencies, and HPACK. We'll look at these features through the lens of experience and see if good practice patterns have emerged. We'll also review available tools and discuss what protocol enhancements are in the near and not-so-near horizon.
Fastly delivers more than a million log events per second. Setting it is up is easy, but there are many features you might not be using to their full extent.
This workshop will cover setting up logging to various endpoints, dealing with structured data, and getting real-time insights into your customers’ behavior.
Tips for going fast in a slow world: Michael May at OSCON 2015Fastly
Fastly engineer Michael May at OSCON 2015: When it comes to caching, we fall into two categories – those who make phat stacks of cache money and those who suffer from cache anxiety. We know caching aggressively improves performance; however, advanced caching strategies for event-driven content or user-specific content are often neglected for fear of complexity or lack of understanding. In this talk, we’ll cover HTTP caching, old and new strategies for caching historically ‘uncacheable’ content, and secret features of HTTP accelerators like Varnish. Whether you’re already stacking cache or just seeking a prescription for one, you’ll leave with a deeper understanding of caching and accelerating applications that you can take and apply to your Rails, Django, etc. apps.
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...KubeAcademy
Load balancing is an important part of any resilient web application. Kubernetes supports a few options for external load balancing, but they are limited in features. After a brief discussion of those options and the features they lack, we’ll show how to build an advanced load balancing solution for Kubernetes on top of NGINX, utilizing Kubernetes features including Ingress, Annotations, and ConfigMap. We’ll conclude with a demo of how to use NGINX and NGINX Plus to expose services to the Internet.
Sched Link: http://sched.co/6Bc9
Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...Fastly
In this workshop, we’ll dive into how Fastly’s global server load balancer (GSLB) can help you scale your application. Whether you are bringing together multiple microservices as a single platform, using geo location to direct customers to your closest origin, or creating a multi-origin cloud failover for high availability, this workshop will show you examples you can use with Fastly to achieve a scalable, global load balancing strategy.
On the eve of what was hoped to be of the biggest traffic days for New York Magazine’s sites, the company was the target of a DDoS attack that caused their sites to go dark. New York quickly turned to Fastly to deflect and overcome the attack. Larry discusses how New York Mag went from zero page views per second to getting back online and recording one of their biggest traffic days of the year with the aid of Fastly’s team and tech. In addition he discusses how New York is leveraging Fastly as part of a larger strategy of performance improvements to deliver the build a better web and deliver the best premium content experience in the context of alternative distribution and consumption channels, such as Google Amp and FB Instant Article.
Stupid Boot Tricks: using ipxe and chef to get to boot management blissmacslide
Jason Cook discusses his experience setting up boot infrastructure for Fastly's caching clusters. He outlines how they moved from using existing tools like Cobbler and Razor to building their own solution called Donner using iPXE to boot machines over HTTP. Donner uses Chef to store machine metadata and configuration which allows the boot process to install operating systems, configure networking, and run Chef on first boot to provision machines.
Learn from Fastly veteran Cassandra Dixon on some of the most common customer issues we see — such as why things aren’t caching, misconfigured origins, issues with intermediary proxies, and VCL snafus — and the best ways to resolve them. We’ll also discuss our unique approach to debugging — using seemingly mundane tools to diagnose issues in creative ways — and how you can apply these methods to your own organization to get the most out of Fastly’s offerings.
RFC 7540 was ratified over 2 years ago and, today, all major browsers, servers, and CDNs support the next generation of HTTP. Just over a year ago, at Velocity (https://www.slideshare.net/Fastly/http2-what-no-one-is-telling-you), we discussed the protocol, looked at some real world implications of its deployment and use, and what realistic expectations we should have from its use.
Now that adoption is ramped up and the protocol is being regularly used on the Internet, it's a good time to revisit the protocol and its deployment. Has it evolved? Have we learned anything? Are all the features providing the benefits we were expecting? What's next?
In this session, we'll review protocol basics and try to answer some of these questions based on real-world use of it. We'll dig into the core features like interaction with TCP, server push, priorities and dependencies, and HPACK. We'll look at these features through the lens of experience and see if good practice patterns have emerged. We'll also review available tools and discuss what protocol enhancements are in the near and not-so-near horizon.
Fastly delivers more than a million log events per second. Setting it is up is easy, but there are many features you might not be using to their full extent.
This workshop will cover setting up logging to various endpoints, dealing with structured data, and getting real-time insights into your customers’ behavior.
Tips for going fast in a slow world: Michael May at OSCON 2015Fastly
Fastly engineer Michael May at OSCON 2015: When it comes to caching, we fall into two categories – those who make phat stacks of cache money and those who suffer from cache anxiety. We know caching aggressively improves performance; however, advanced caching strategies for event-driven content or user-specific content are often neglected for fear of complexity or lack of understanding. In this talk, we’ll cover HTTP caching, old and new strategies for caching historically ‘uncacheable’ content, and secret features of HTTP accelerators like Varnish. Whether you’re already stacking cache or just seeking a prescription for one, you’ll leave with a deeper understanding of caching and accelerating applications that you can take and apply to your Rails, Django, etc. apps.
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...KubeAcademy
Load balancing is an important part of any resilient web application. Kubernetes supports a few options for external load balancing, but they are limited in features. After a brief discussion of those options and the features they lack, we’ll show how to build an advanced load balancing solution for Kubernetes on top of NGINX, utilizing Kubernetes features including Ingress, Annotations, and ConfigMap. We’ll conclude with a demo of how to use NGINX and NGINX Plus to expose services to the Internet.
Sched Link: http://sched.co/6Bc9
Altitude SF 2017: Fastly GSLB: Scaling your microservice and multi-cloud envi...Fastly
In this workshop, we’ll dive into how Fastly’s global server load balancer (GSLB) can help you scale your application. Whether you are bringing together multiple microservices as a single platform, using geo location to direct customers to your closest origin, or creating a multi-origin cloud failover for high availability, this workshop will show you examples you can use with Fastly to achieve a scalable, global load balancing strategy.
On the eve of what was hoped to be of the biggest traffic days for New York Magazine’s sites, the company was the target of a DDoS attack that caused their sites to go dark. New York quickly turned to Fastly to deflect and overcome the attack. Larry discusses how New York Mag went from zero page views per second to getting back online and recording one of their biggest traffic days of the year with the aid of Fastly’s team and tech. In addition he discusses how New York is leveraging Fastly as part of a larger strategy of performance improvements to deliver the build a better web and deliver the best premium content experience in the context of alternative distribution and consumption channels, such as Google Amp and FB Instant Article.
Stupid Boot Tricks: using ipxe and chef to get to boot management blissmacslide
Jason Cook discusses his experience setting up boot infrastructure for Fastly's caching clusters. He outlines how they moved from using existing tools like Cobbler and Razor to building their own solution called Donner using iPXE to boot machines over HTTP. Donner uses Chef to store machine metadata and configuration which allows the boot process to install operating systems, configure networking, and run Chef on first boot to provision machines.
Learn from Fastly veteran Cassandra Dixon on some of the most common customer issues we see — such as why things aren’t caching, misconfigured origins, issues with intermediary proxies, and VCL snafus — and the best ways to resolve them. We’ll also discuss our unique approach to debugging — using seemingly mundane tools to diagnose issues in creative ways — and how you can apply these methods to your own organization to get the most out of Fastly’s offerings.
Andrew Betts Web Developer, The Financial Times at Fastly Altitude 2016
Running custom code at the Edge using a standard language is one of the biggest advantages of working with Fastly’s CDN. Andrew gives you a tour of all the problems the Financial Times and Nikkei solve in VCL and how their solutions work.
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.
Social Connections 13 - Troubleshooting Connections PinkNico Meisenzahl
Curious on how to make your Connections PINK environment run smoothly while reducing support effort? Need help debugging and getting to the core of some Connections challenges? Join Nico to find out how to resolve common issues, learn troubleshooting basics and other useful knowledge to ensure an efficient Connections PINK on-premises environment. Level up your debugging skills while learning more about back-end topics such as IBM Cloud private, Kubernetes, Docker as well as Orient Me, Metrics and Connections Customizer. Walk away with Connections PINK best practice tips and tricks to help you provide steady and efficient social capabilities!
Kubernetes the Very Hard Way discusses making a Kubernetes cluster production-ready by addressing challenges that arise after initial setup. This includes making the control plane resilient and scalable through techniques like having separate etcd nodes and load balancing the API servers. Securing the control plane requires careful certificate management as certificates are used everywhere but can cause issues if not rotated. Efficient networking involves techniques like giving pods their own IP addresses and routing them natively instead of using overlays, to avoid performance overhead. Ingresses must also be set up to allow external access to clusters and applications in a scalable way.
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!Masoud Kalali
This session focuses on how Java EE 7 provides extensive set of new and enhanced features to support standards like HTML5, WebSockets, and Server Sent Events among others.In this session we will show how these new features are designed and matched to work together for developing lightweight solutions matching end users high expectation from a web application’s responsiveness. The session will cover best practices and design patterns governing application development using JAX-RS 2.0, Async Servlet, and JSON-P (among others) as well as iterating over the pitfalls that should be avoided. During the session we will show code snippets and block diagrams that clarify use of APIs coming from the demo application we will show at the end.
Rob Gardner presented on bringing OSG pools to campus clusters and connecting clusters to the Open Science Grid (OSG). The presentation covered installing the Connect Client software to submit jobs from a campus cluster to OSG resources, totaling over 100,000 CPU cores. Users can check job status and view where jobs ran using Connect Client commands like "connect q" and "connect histogram". Tutorials are available online to help users learn new techniques for running on OSG Connect.
Introduction to service discovery and self-organizing cluster orchestration. ...Pivorak MeetUp
Serf is a decentralized tool for service discovery, membership and failure detection that is lightweight and highly available. It can be used for use cases like clustering web servers and load balancers, clustering services like Memcached and Redis, triggering deployments, updating DNS records and providing simple observability. Consul is a service discovery and configuration tool that supports additional features like rich health checking, multi-datacenter support, key-value storage and requires centralized servers for coordination. Both tools emphasize treating infrastructure as code and easing scaling and recovery through service discovery.
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Fastly
Fastly Altitude - June 25, 2015. Joe Williams, Computer Operator at GitHub discusses using a CDN to mitigate security threats.
Video of the talk: http://fastly.us/Altitude2015_Mitigating-Security-Threats-2
Joe's bio: Joe Williams is a Computer Operator at GitHub, and joined their infrastructure team in August 2013. Joe's passion for distributed systems, queuing theory and automation help keep the lights on. When not behind a computer you can generally find him riding a bicycle around Marin, CA.
Running Kubernetes at scale is challenging and you can often end up in situations where you have to debug complex and unexpected issues. This requires understanding in detail how the different components work and interact with each other. Over the last 3 years, Datadog migrated most of its workloads to Kubernetes and now manages dozens of clusters consisting of thousands of nodes each. During this journey, engineers have debugged complex issues with root causes that were sometimes very surprising. In this talk Laurent and Tabitha will share some of these stories, including a favorite: how a complex interaction between familiar Kubernetes components allowed an OOM-killer invocation to trigger the deletion of a namespace.
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Codemotion
gRPC is a high performance, language-neutral, general RPC framework developed and open sourced by Google. Built on the HTTP/2 standard, gRPC brings many benefits such as bidirectional streaming, flow control, header compression, multiplexing and more. In this session, you will learn about gRPC and how you can use it in your applications.
Fluentd is an open source data collector that allows flexible data collection, processing, and output. It supports streaming data from sources like logs and metrics to destinations like databases, search engines, and object stores. Fluentd's plugin-based architecture allows it to support a wide variety of use cases. Recent versions of Fluentd have added features like improved plugin APIs, nanosecond time resolution, and Windows support to make it more suitable for containerized environments and low-latency applications.
This document discusses using HAProxy as a load balancer and discusses its benefits and uses. It describes how HAProxy can be used to make non-highly available services highly available and provide load balancing. It also discusses ways to address potential single points of failure with HAProxy, such as using Corosync and Pacemaker to set up redundant HAProxy clusters. Upstream failures from slow databases or application servers are also addressed.
This talk is about the issues with parallel transactions in relational databases: anomalies, locks, isolation levels, and how to work with this in JDBC and JPA.
https://github.com/kslisenko/tx-isolation
Service discovery like a pro (presented at reversimX)Eran Harel
So you want to auto scale your services, and use service oriented architecture, eh?
Want to reduce the cost of managing your clusters, and discover them dynamically?
In this talk we shall see how consul helps you do that very efficiently, explain how it works, demonstrate spinning up several interconnected services, and show how we can achieve seamless discovery, HA, and fault tolerance.
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIMarcelo Gornstein
This is the talk about PAMI and PAGI, and general telephony applications with PHP and Asterisk for the php conference argentina (phpconfar). The **complete** talk is available in the slides (in english), just download it (see above), and check out the slide notes for the complete text for each slide. Looking forward for your feedback. Enjoy :)
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic ContentFastly
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.
Kea DHCP – the new open source DHCP server from ISCMen and Mice
This webinar will highlight the differences between the old ISC DHCP and new Kea DHCP (database support, dynamic reconfiguration, performance wins, scripting hooks) and will showcase the Men & Mice Suite as a graphical front-end to both ISC DHCP and Kea to ease the migration.
Kube-proxy enables access to Kubernetes services (virtual IPs backed by pods) by configuring client-side load-balancing on nodes. The first implementation relied on a userspace proxy which was not very performant. The second implementation used iptables and is still the one used in most Kubernetes clusters. Recently, the community introduced an alternative based on IPVS. This talk will start with a description of the different modes and how they work. It will then focus on the IPVS implementation, the improvements it brings, the issues we encountered and how we fixed them as well as the remaining challenges and how they could be addressed. Finally, the talk will present alternative solutions based on eBPF such as Cilium.
Infrastructural challenges of a fast-pace startupDevOps Braga
DevOps Braga #12 discussed infrastructural challenges at a fast-growing startup and solutions implemented by the DevOps team. The startup had storage issues with large VMs and a monolithic infrastructure across regions. The team rethought the infrastructure, moving to smaller VMs with horizontal scaling, SMB file sharing, and an HAProxy load balancer. They also discussed implementing containers to build a microservices-oriented pipeline with autonomous CI/CD environments for each team.
How bol.com makes sense of its logs, using the Elastic technology stack.Renzo Tomà
Bol.com uses the Elastic (ELK) stack to make sense of logs from over 1,600 servers and 500-600 million events per day. Key aspects of their system include:
1. Shipping JSON-formatted log events from sources like Apache, databases, and applications to Redis queues to allow multiple Logstash instances to process events in real-time without data loss.
2. Enriching log events with information like request IDs to correlate requests across services, and IP-to-role mappings to identify client roles.
3. Using Elasticsearch aggregations and transformations to generate a directed graph of service dependencies based on logs, to help understand their distributed architecture.
Andrew Betts Web Developer, The Financial Times at Fastly Altitude 2016
Running custom code at the Edge using a standard language is one of the biggest advantages of working with Fastly’s CDN. Andrew gives you a tour of all the problems the Financial Times and Nikkei solve in VCL and how their solutions work.
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.
Social Connections 13 - Troubleshooting Connections PinkNico Meisenzahl
Curious on how to make your Connections PINK environment run smoothly while reducing support effort? Need help debugging and getting to the core of some Connections challenges? Join Nico to find out how to resolve common issues, learn troubleshooting basics and other useful knowledge to ensure an efficient Connections PINK on-premises environment. Level up your debugging skills while learning more about back-end topics such as IBM Cloud private, Kubernetes, Docker as well as Orient Me, Metrics and Connections Customizer. Walk away with Connections PINK best practice tips and tricks to help you provide steady and efficient social capabilities!
Kubernetes the Very Hard Way discusses making a Kubernetes cluster production-ready by addressing challenges that arise after initial setup. This includes making the control plane resilient and scalable through techniques like having separate etcd nodes and load balancing the API servers. Securing the control plane requires careful certificate management as certificates are used everywhere but can cause issues if not rotated. Efficient networking involves techniques like giving pods their own IP addresses and routing them natively instead of using overlays, to avoid performance overhead. Ingresses must also be set up to allow external access to clusters and applications in a scalable way.
Server Sent Events, Async Servlet, Web Sockets and JSON; born to work together!Masoud Kalali
This session focuses on how Java EE 7 provides extensive set of new and enhanced features to support standards like HTML5, WebSockets, and Server Sent Events among others.In this session we will show how these new features are designed and matched to work together for developing lightweight solutions matching end users high expectation from a web application’s responsiveness. The session will cover best practices and design patterns governing application development using JAX-RS 2.0, Async Servlet, and JSON-P (among others) as well as iterating over the pitfalls that should be avoided. During the session we will show code snippets and block diagrams that clarify use of APIs coming from the demo application we will show at the end.
Rob Gardner presented on bringing OSG pools to campus clusters and connecting clusters to the Open Science Grid (OSG). The presentation covered installing the Connect Client software to submit jobs from a campus cluster to OSG resources, totaling over 100,000 CPU cores. Users can check job status and view where jobs ran using Connect Client commands like "connect q" and "connect histogram". Tutorials are available online to help users learn new techniques for running on OSG Connect.
Introduction to service discovery and self-organizing cluster orchestration. ...Pivorak MeetUp
Serf is a decentralized tool for service discovery, membership and failure detection that is lightweight and highly available. It can be used for use cases like clustering web servers and load balancers, clustering services like Memcached and Redis, triggering deployments, updating DNS records and providing simple observability. Consul is a service discovery and configuration tool that supports additional features like rich health checking, multi-datacenter support, key-value storage and requires centralized servers for coordination. Both tools emphasize treating infrastructure as code and easing scaling and recovery through service discovery.
Mitigating Security Threats with Fastly - Joe Williams at Fastly Altitude 2015Fastly
Fastly Altitude - June 25, 2015. Joe Williams, Computer Operator at GitHub discusses using a CDN to mitigate security threats.
Video of the talk: http://fastly.us/Altitude2015_Mitigating-Security-Threats-2
Joe's bio: Joe Williams is a Computer Operator at GitHub, and joined their infrastructure team in August 2013. Joe's passion for distributed systems, queuing theory and automation help keep the lights on. When not behind a computer you can generally find him riding a bicycle around Marin, CA.
Running Kubernetes at scale is challenging and you can often end up in situations where you have to debug complex and unexpected issues. This requires understanding in detail how the different components work and interact with each other. Over the last 3 years, Datadog migrated most of its workloads to Kubernetes and now manages dozens of clusters consisting of thousands of nodes each. During this journey, engineers have debugged complex issues with root causes that were sometimes very surprising. In this talk Laurent and Tabitha will share some of these stories, including a favorite: how a complex interaction between familiar Kubernetes components allowed an OOM-killer invocation to trigger the deletion of a namespace.
Introduction to gRPC: A general RPC framework that puts mobile and HTTP/2 fir...Codemotion
gRPC is a high performance, language-neutral, general RPC framework developed and open sourced by Google. Built on the HTTP/2 standard, gRPC brings many benefits such as bidirectional streaming, flow control, header compression, multiplexing and more. In this session, you will learn about gRPC and how you can use it in your applications.
Fluentd is an open source data collector that allows flexible data collection, processing, and output. It supports streaming data from sources like logs and metrics to destinations like databases, search engines, and object stores. Fluentd's plugin-based architecture allows it to support a wide variety of use cases. Recent versions of Fluentd have added features like improved plugin APIs, nanosecond time resolution, and Windows support to make it more suitable for containerized environments and low-latency applications.
This document discusses using HAProxy as a load balancer and discusses its benefits and uses. It describes how HAProxy can be used to make non-highly available services highly available and provide load balancing. It also discusses ways to address potential single points of failure with HAProxy, such as using Corosync and Pacemaker to set up redundant HAProxy clusters. Upstream failures from slow databases or application servers are also addressed.
This talk is about the issues with parallel transactions in relational databases: anomalies, locks, isolation levels, and how to work with this in JDBC and JPA.
https://github.com/kslisenko/tx-isolation
Service discovery like a pro (presented at reversimX)Eran Harel
So you want to auto scale your services, and use service oriented architecture, eh?
Want to reduce the cost of managing your clusters, and discover them dynamically?
In this talk we shall see how consul helps you do that very efficiently, explain how it works, demonstrate spinning up several interconnected services, and show how we can achieve seamless discovery, HA, and fault tolerance.
Phpconf 2013 - Agile Telephony Applications with PAMI and PAGIMarcelo Gornstein
This is the talk about PAMI and PAGI, and general telephony applications with PHP and Asterisk for the php conference argentina (phpconfar). The **complete** talk is available in the slides (in english), just download it (see above), and check out the slide notes for the complete text for each slide. Looking forward for your feedback. Enjoy :)
Caching the Uncacheable: Leveraging Your CDN to Cache Dynamic ContentFastly
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.
Kea DHCP – the new open source DHCP server from ISCMen and Mice
This webinar will highlight the differences between the old ISC DHCP and new Kea DHCP (database support, dynamic reconfiguration, performance wins, scripting hooks) and will showcase the Men & Mice Suite as a graphical front-end to both ISC DHCP and Kea to ease the migration.
Kube-proxy enables access to Kubernetes services (virtual IPs backed by pods) by configuring client-side load-balancing on nodes. The first implementation relied on a userspace proxy which was not very performant. The second implementation used iptables and is still the one used in most Kubernetes clusters. Recently, the community introduced an alternative based on IPVS. This talk will start with a description of the different modes and how they work. It will then focus on the IPVS implementation, the improvements it brings, the issues we encountered and how we fixed them as well as the remaining challenges and how they could be addressed. Finally, the talk will present alternative solutions based on eBPF such as Cilium.
Infrastructural challenges of a fast-pace startupDevOps Braga
DevOps Braga #12 discussed infrastructural challenges at a fast-growing startup and solutions implemented by the DevOps team. The startup had storage issues with large VMs and a monolithic infrastructure across regions. The team rethought the infrastructure, moving to smaller VMs with horizontal scaling, SMB file sharing, and an HAProxy load balancer. They also discussed implementing containers to build a microservices-oriented pipeline with autonomous CI/CD environments for each team.
How bol.com makes sense of its logs, using the Elastic technology stack.Renzo Tomà
Bol.com uses the Elastic (ELK) stack to make sense of logs from over 1,600 servers and 500-600 million events per day. Key aspects of their system include:
1. Shipping JSON-formatted log events from sources like Apache, databases, and applications to Redis queues to allow multiple Logstash instances to process events in real-time without data loss.
2. Enriching log events with information like request IDs to correlate requests across services, and IP-to-role mappings to identify client roles.
3. Using Elasticsearch aggregations and transformations to generate a directed graph of service dependencies based on logs, to help understand their distributed architecture.
The document discusses TheSchwartz, an open-source queueing system for reliably processing asynchronous jobs. It describes problems with initial approaches like single daemon queues and multiple daemon solutions. TheSchwartz uses a database to store jobs and worker processes to reliably process them. Workers can handle one or more job types and jobs are pulled from the database to be processed. TheSchwartz has been used to process over 100 jobs per second for LiveJournal.
The document discusses scaling a web application called Wanelo that is built on PostgreSQL. It describes 12 steps for incrementally scaling the application as traffic increases. The first steps involve adding more caching, optimizing SQL queries, and upgrading hardware. Further steps include replicating reads to additional PostgreSQL servers, using alternative data stores like Redis where appropriate, moving write-heavy tables out of PostgreSQL, and tuning PostgreSQL and the underlying filesystem. The goal is to scale the application while maintaining PostgreSQL as the primary database.
Increasing velocity via serless semanticsKfir Bloch
1) The document discusses increasing developer productivity in microservices architectures through adopting serverless semantics.
2) It notes that existing productivity libraries and code generation approaches become too complex and create maintenance issues over time.
3) The speaker advocates adopting a serverless approach that exposes runtime as a service, simplifies deployment and configuration, and focuses developers on business logic through a simple API. This avoids problems of "distributed monoliths" caused by compile-time wiring of runtimes.
Docker Logging and analysing with Elastic StackJakub Hajek
Collecting logs from the entire stateless environment is challenging parts of the application lifecycle. Correlating business logs with operating system metrics to provide insights is a crucial part of the entire organization. What aspects should be considered while you design your logging solutions?
Docker Logging and analysing with Elastic Stack - Jakub Hajek PROIDEA
Collecting logs from the entire stateless environment is challenging parts of the application lifecycle. Correlating business logs with operating system metrics to provide insights is a crucial part of the entire organization. We will see the technical presentation on how to manage a large amount of the data in a typical environment with microservices.
What happens when you start transitioning from a monolithic PHP app to Go services running on AWS Lambda? Good things! I'd like to share the problems encountered, decisions made and lessons learned along the way.
Machine Learning and Logging for Monitoring Microservices Daniel Berman
In this talk I go over the use cases for using machine learning and centralized logging for monitoring a distributed, multi layered microservices architecture.
The Good, the Bad and the Ugly of Migrating Hundreds of Legacy Applications ...Josef Adersberger
Running applications on Kubernetes can provide a lot of benefits: more dev speed, lower ops costs, and a higher elasticity & resiliency in production. Kubernetes is the place to be for cloud native apps. But what to do if you’ve no shiny new cloud native apps but a whole bunch of JEE legacy systems? No chance to leverage the advantages of Kubernetes? Yes you can!
We’re facing the challenge of migrating hundreds of JEE legacy applications of a major German insurance company onto a Kubernetes cluster within one year. We're now close to the finish line and it worked pretty well so far.
The talk will be about the lessons we've learned - the best practices and pitfalls we've discovered along our way. We'll provide our answers to life, the universe and a cloud native journey like:
- What technical constraints of Kubernetes can be obstacles for applications and how to tackle these?
- How to architect a landscape of hundreds of containerized applications with their surrounding infrastructure like DBs MQs and IAM and heavy requirements on security?
- How to industrialize and govern the migration process?
- How to leverage the possibilities of a cloud native platform like Kubernetes without challenging the tight timeline?
Migrating Hundreds of Legacy Applications to Kubernetes - The Good, the Bad, ...QAware GmbH
CloudNativeCon North America 2017, Austin (Texas, USA): Talk by Josef Adersberger (@adersberger, CTO at QAware)
Abstract:
Running applications on Kubernetes can provide a lot of benefits: more dev speed, lower ops costs, and a higher elasticity & resiliency in production. Kubernetes is the place to be for cloud native apps. But what to do if you’ve no shiny new cloud native apps but a whole bunch of JEE legacy systems? No chance to leverage the advantages of Kubernetes? Yes you can!
We’re facing the challenge of migrating hundreds of JEE legacy applications of a major German insurance company onto a Kubernetes cluster within one year. We're now close to the finish line and it worked pretty well so far.
The talk will be about the lessons we've learned - the best practices and pitfalls we've discovered along our way. We'll provide our answers to life, the universe and a cloud native journey like:
- What technical constraints of Kubernetes can be obstacles for applications and how to tackle these?
- How to architect a landscape of hundreds of containerized applications with their surrounding infrastructure like DBs MQs and IAM and heavy requirements on security?
- How to industrialize and govern the migration process?
- How to leverage the possibilities of a cloud native platform like Kubernetes without challenging the tight timeline?
This document discusses microservices architecture compared to a monolithic architecture. A microservices architecture breaks an application into smaller, independent services that each perform discrete functions. This allows for more rapid development and improved scalability. However, a microservices architecture is also more complex to deploy and manage. The document provides an example of how a VoIP application could use a microservices approach by breaking components like billing, fraud detection, and call analytics into separate services. It also discusses using Docker containers and services to deploy and scale the microservices architecture.
This document discusses reflections on serverless computing from Diego Pacheco. It describes the evolution from SOA to microservices to serverless. Serverless wave 1 focused on functions and pay-per-use billing but had tooling and scaling limits. Serverless wave 2 enables multi-cloud deployment without vendor lock-in but still has challenges around data management and potential for new integration needs. Kubernetes is the new Linux but other abstractions are adding complexity, and fully serverless applications may require solutions for data integration challenges not yet addressed.
Introducing Gridiron Security and Compliance Management Platform and Enclave ...Aptible
View more (including full video and transcript) at: https://www.aptible.com/resources/update-webinar-jan-2017/
The Aptible Update Webinar Series is a quarterly presentation that covers recent features and changes to the Enclave deployment platform and Gridiron security management products.
The Aptible Update Webinar Series is a quarterly presentation that covers recent features and changes to the Enclave deployment platform and Gridiron security management products. These webinars feature technical sessions led by Aptible engineers, live demonstrations, customer examples, and Q&A with the Aptible team.
This Aptible Update Webinar covers:
- A preview of Gridiron, our security management and compliance platform
- Improvements to the Enclave deployment process for reliability, predictability and speed
- Enclave database logging
- The Enclave CLI for Windows
- Continual efforts to strengthen Enclave security
Lambda is the next stage in the evolution of the AWS platform. It allows you to build reactive, event-driven systems that are easy to deploy, update and scale. Amazon manages all the undifferentiated heavy-lifting for you so you can focus on delivering value to your customers with even greater speed and cost efficiency.
Join Yan in this talk as we take a deep dive through AWS Lambda and the Serverless framework.
We'll see how to start building reactive systems using AWS Lambda, Kinesis and API Gateway, without having to manage any servers. And, you only pay for your services when they are used. We'll discuss lessons learned, best practices and current limitations with AWS Lambda.
We'll also get to know the Serverless framework, which helps automate both deployment and versioning so that you can better focus on the things that matter to your customers.
This document provides tips for writing LotusScript code for large systems with a focus on logging, performance, code reuse, and handling weird situations. Some key points include:
- Logging is important for stability and managing large systems. Recommends using OpenLog or creating and emailing log documents to avoid performance impacts.
- Views with click-sorted columns and unnecessary views hurt performance. Recommends minimizing views and avoiding click-sort.
- Agents need to be well-behaved to avoid overloading servers. Suggests profiling agents, breaking large tasks into multiple runs, and not relying on Agent Manager to kill misbehaving agents.
- Code reuse is important for maintenance. Recommends creating
Massively Scaled High Performance Web Services with PHPDemin Yin
Over the years, people have questioned if PHP is a good choice for building web services. In this talk, I will share how we use PHP on the backend for Glu Mobile’s flagship mobile game Design Home, enabling it to regularly rank amongst the top free mobile games in the Apple App Store and the Google Play Store. We will deep dive into the thought processes, development, testing, and deployment strategy, showcasing what we have achieved with PHP.
Building production websites with Node.js on the Microsoft stackCellarTracker
Node.js on Windows, in production, may not be the most common configuration – but it’s immensely powerful with the help of edge.js, iisnode, and other open source projects. In fact, it’s a great tool for building highly performant, scalable front- and back-end websites on the Microsoft stack (IIS, .NET, SQL Server, etc).
In this talk, I’ll share some details, tips-and-tricks, and experiences building a production website on Windows, using CellarTracker – the world’s largest collection of community wine reviews and tools for cellar management – as an example.
This document discusses using Scala and functional programming concepts like the cake pattern and validation in Goozy, a social networking application. It describes how Goozy's API uses Scala for its performance, conciseness and advanced object-oriented features. It also discusses issues with using Lift and how the cake pattern improved organization by encapsulating dependencies. Validation is implemented using Scalaz to catch errors and exceptions are converted to a common error type for reporting. In summary, functional programming brought organization and error handling benefits but also increased complexity compared to exceptions.
Similar to Adding serverless to legacy applications (20)
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
Understanding User Behavior with Google Analytics.pdfSEO Article Boost
Unlocking the full potential of Google Analytics is crucial for understanding and optimizing your website’s performance. This guide dives deep into the essential aspects of Google Analytics, from analyzing traffic sources to understanding user demographics and tracking user engagement.
Traffic Sources Analysis:
Discover where your website traffic originates. By examining the Acquisition section, you can identify whether visitors come from organic search, paid campaigns, direct visits, social media, or referral links. This knowledge helps in refining marketing strategies and optimizing resource allocation.
User Demographics Insights:
Gain a comprehensive view of your audience by exploring demographic data in the Audience section. Understand age, gender, and interests to tailor your marketing strategies effectively. Leverage this information to create personalized content and improve user engagement and conversion rates.
Tracking User Engagement:
Learn how to measure user interaction with your site through key metrics like bounce rate, average session duration, and pages per session. Enhance user experience by analyzing engagement metrics and implementing strategies to keep visitors engaged.
Conversion Rate Optimization:
Understand the importance of conversion rates and how to track them using Google Analytics. Set up Goals, analyze conversion funnels, segment your audience, and employ A/B testing to optimize your website for higher conversions. Utilize ecommerce tracking and multi-channel funnels for a detailed view of your sales performance and marketing channel contributions.
Custom Reports and Dashboards:
Create custom reports and dashboards to visualize and interpret data relevant to your business goals. Use advanced filters, segments, and visualization options to gain deeper insights. Incorporate custom dimensions and metrics for tailored data analysis. Integrate external data sources to enrich your analytics and make well-informed decisions.
This guide is designed to help you harness the power of Google Analytics for making data-driven decisions that enhance website performance and achieve your digital marketing objectives. Whether you are looking to improve SEO, refine your social media strategy, or boost conversion rates, understanding and utilizing Google Analytics is essential for your success.
Instagram has become one of the most popular social media platforms, allowing people to share photos, videos, and stories with their followers. Sometimes, though, you might want to view someone's story without them knowing.
4. 1. What is “Serverless”?
2. Why bother?
3. Ways to get started with
serverless + legacy
a. From easy / low-touch, to…
b. Major functionality /
high-touch
What we’re gonna
talk about (broadly)
4
9. My thing ->
Me:
Generalist problem solver
In Austin or a big RV
@brettflorio
▪ Launched in 2007
▪ Processed over $1B for thousands of merchants
▪ Cart + Checkout. No CMS.
▪ 100+ payment, tax, & shipping integrations
▪ Level 1 PCI Service Provider
▪ https://foxy.io/ and @foxycart
9
11. How to modernize?
Lots of options, but basically:
1. Complete Rebuild
2. Partial Rebuild/Refactor
We’re going to talk about
taking an iterative and
additive approach, using
serverless.
11
12. What is “Serverless”?
Broadly:
Running code without bothering
with the infrastructure.
It’s a natural evolution:
Physical servers (colo or closet)
-> Dedicated Servers
-> Virtual Machines / VPS
-> Containers
-> Serverless
12
14. ▪ HTTP requests
▪ Scheduled events (like cron)
▪ Platform-specific items like…
a. S3 file events
b. SNS & SQS
c. CloudWatch Logs
d. DynamoDB & other data stores
EVENTS:
How to
actually run a
serverless
app.
14
16. Make Serverless Easy
with serverless.com
● YAML-based
● Provider-agnostic
● Great ecosystem
● Local dev options
● Open source & enterprise
16
17. Let’s focus on Lambda
17
● HTTP requests
● HTTP responses
● Other events to trigger
● PHP is possible
● Filesystem (lack thereof)
● Cold starts
● Execution time limits
● Security via IAM
19. THE GOOD:
▪ Hugely reduced infrastructure overhead & costs*
▪ Can encourage better programming &
encapsulation (especially in a legacy env)
▪ Easier path towards modernization
▪ Scalability OHMYGOSH
▪ Security (in general)
▪ Isolation from legacy app environment
THE GOOD,
The Bad,
& The Ugly
19
20. THE BAD (OR LESS-THAN-GOOD):
▪ Overhead of “more stuff”
▪ Languages & PHP support
▪ Incorporating with deployment procedures
▪ Figuring out local dev
▪ Additional overhead for logging & monitoring
▪ Adjusting to new approaches & ways of thinking
▪ Less control over environment
The Good,
THE BAD,
& The Ugly
20
21. THE UGLY:
▪ Vendor lock-in
▪ Cold starts, VPCs & database access
▪ Output formatting
▪ SO MANY SERVICES (and their learning curves)
▪ Balancing disparate systems / thresholds
▪ “Whoopsies” moments :)
The Good,
The Bad,
& THE UGLY
21
23. 23
▪ Mail through SendGrid.com
▪ Logs at LogEntries.com (now Rapid7)
▪ How to get SendGrid’s webhook to
LogEntries endpoint, with authentication
headers?
▪ Serverless!
Our first foray into Serverless:
Getting mail logs to our log management system.
1.a
LOGS!
Start with handling
logs. Don’t even touch
the legacy app.
24. 24
1.a
LOGS!
Start with handling
logs. Don’t even touch
the legacy app.
var Logger = require('le_node');
var le = new Logger({
token: 'F00BAR-1234-5678-ABCD',
timeout:1000,
withLevel:false,
});
module.exports.handler = function(event, context) {
le.log(event);
le.on('error', function(e) {
console.log('LOG_ENTRIES_ERROR: ' + e.message);
context.done();
});
le.on('disconnected', function(e) {
console.log('done');
context.done();
});
};
26. 26
The Use Case:
▪ Blocking IPs that generate excessive
e-commerce checkout errors.
▪ We don’t want our legacy app to handle
anything at the network level. IP blacklists
shouldn’t be a legacy app thing.
1.b
More logs!
Parsing logs to block
abusive users &
fraudsters.
27. 27
▪ CloudFront generates a LOT of logs, and
knows when Legacy generates a specific
error (ie. by response code 422).
▪ AWS has a WAF that looks fun, but…
▪ Legacy app can’t handle new 💩tons of data.
Serverless and Legacy see each other across the
room… Serverless catches Legacy’s eye… What is
this flutter in Legacy’s heart?
1.b
More logs!
Parsing logs to block
abusive users &
fraudsters.
▪ New skill unlocked: S3 events!
▪ Lambda can easily update the WAF blacklist.
28. module.exports.processCloudFrontLogs = (event,
context, callback) => {
// … some stuff removed up here …
parser.on('readable', function () {
let access;
while (access = parser.read()) {
switch (parseInt(access["sc-status"])) {
case 422:
process422(callback, access, ddb);
break;
case 504:
process504(access);
break;
default:
continue;
}
}
});
// do a bit more, removed…
};
28
1.b
More logs!
Parsing logs to block
abusive users &
fraudsters.
29. function process422(callback, access, ddb) {
async.waterfall([
function(cb) {
// Add the entry to DynamoDB
ddb.put(log, function(err, data) {
if (err) {/* ... */
} else {/* ... */
}
});
},
// Query Dynamo to get all the matching records
for the IP
function(ip, timestamp, data, cb) {
// Check the count of errors for the IP
// Then add the IP to the blacklist
},
], function (err, result) {
callback(err, result);
});
}
29
1.b
More logs!
Parsing logs to block
abusive users &
fraudsters.
31. What just happened?
1. Serverless + logs = easy way to get started
2. HTTP event
3. File creation event
4. Database record creation event
5. Rock-solid, effectively zero cost, worry free
31
1.z
SUMMARY
HTTP event.
File (S3) event.
Database (DDB) event.
32. The Use Case:
▪ Blocking by response code works, but we can
get more specific to catch bad behavior.
▪ “Card testers” will push attempt many
transactions, using a new credit card # every
attempt. The cards that make a successful
transaction (often a donation) will then be
used in a more targeted fraud.
▪ Let’s blacklist IPs that attempt more than X #
of different CC#s in Y minutes.
32
2.
MOAR LOGS
Let’s finally have
Legacy actually talk to
Serverless.
33. ▪ Serverless: Add additional http event handler.
▪ Legacy: Add a little http request.
- Short timeout. Ignore errors.
33
▪ A serverless app is well-suited to adding
related functionality to.
▪ Legacy apps can usually be easily extended to
make an extra outbound request or two.
Serverless has an easy charm that Legacy can’t
resist. Legacy walks up and makes a REQUEST to
Serverless. Serverless responds with a 200 OK!
2.a
MOAR LOGS
Let’s finally have
Legacy actually talk to
Serverless.
34. public function logCheckoutAttempt($FoxyGateway) {
global $serverless_waf_endpoint;
$last4 = ''; // prep some data
$data_to_log = json_encode(array(
'ip' => $this->getCustomerIp(),
'host' => $this->store->getActualDomain(),
'store_id' => $this->store->getId(),
'last4' => $last4
));
$ch = curl_init($serverless_waf_endpoint);
curl_setopt(); // Better google "how to curl in php"
// for the 1,000th time
$result = curl_exec($ch);
curl_close($ch);
}
34
2.a
MOAR LOGS
Let’s finally have
Legacy actually talk to
Serverless.
35. s
# Let's add an HTTP endpoint for Legacy to hit
processAttemptedCheckout:
handler: app.processAttemptedCheckout
events:
- http:
path: checkout/attempt
method: post
35
2.a
MOAR LOGS
Let’s finally have
Legacy actually talk to
Serverless.
36. 36
▪ We don’t want to blacklist IPs forever,
especially for our “excessive errors”.
▪ Schedule serverless to purge “old” IPs every
day.
Legacy is in love!
“Can you text me a love note every 8 hours?”
“Totes yes,” promises Serverless.
2.b
TIDYING UP
Let’s get a cron going
to periodically remove
offending IPs.
38. The Use Case:
▪ Webhooks are 🔥💯, but webhooks built in
2007 are definitely not.
▪ Legacy app already was sending a payload
to an arbitrary endpoint, so it was
well-suited to be augmented/replaced with a
serverless app.
▪ It’d also allow for additional 3rd party
integrations like Zapier.
38
3.
GOING BIG
Replacing a core
component of the
legacy app.
39. 39
▪ A single URL endpoint.
▪ No automatic reattempts on errors.
▪ Legacy XML API payload, that was…
▪ Encrypted with RC4, not AES, and…
▪ Was URL encoded (instead of Base64) (?!)
▪ Required a specific response payload instead
of a 200 response code.
What needed fixing?
Lots of stuff.
The old system was limited to…
3.
GOING BIG
Replacing a core
component of the
legacy app.
40. 40
▪ Needed the ability to send to multiple
endpoints, without slowing down legacy.
-> Queues of some sort.
▪ Didn’t need to be in the PCI environment, as
webhooks didn’t touch CC#s.
▪ We wanted to extend it to 3rd party
integrations, so it really felt more like a larger
& separate component.
Should we rebuild it in the legacy app?
Short answer: Yes.
But why?
3.
GOING BIG
Replacing a core
component of the
legacy app.
41. Challenges & Errors:
1. Where (legacy MySQL db
or serverless’s DDB) should
settings live?
2. Legacy caching v. DDB.
(Don’t bother with cache.)
3. $1000 testing “whoopsies”
4. Controlling serverless
settings via legacy API.
What we got right:
1. It worked!
2. It scaled.
3. It was silly cheap.
4. It allowed lots of options
without causing
problems for the app.
5. It allowed 3rd party
integrations.
41
42. 42
▪ Legacy app uses MySQL.
▪ Serverless uses DynamoDB.
▪ Trade-offs either way.
▪ We pushed more data into the serverless app
than we maybe should have.
▪ Using the serverless app’s datastore for
“temporary” things is fine, but “real” data and
config should be in the primary datastore.
Let’s explore a challenge we faced:
Where should per-account settings be stored? In
the legacy app’s MySQL, or serverless’s DDB?
3.
GOING BIG
Replacing a core
component of the
legacy app.
43. 43
▪ Legacy uses Redis (via ElastiCache).
▪ Legacy was caching serverless settings (from
DynamoDB).
▪ For our uses, DDB was just as fast as Redis,
so attempting to cache DDB data only added
complexity.
▪ KNOW YOUR TOOLS.
Know your tools: Caching.
Serverless apps may not require the same
solutions as legacy systems.
3.
GOING BIG
Replacing a core
component of the
legacy app.
44. 44
▪ Set reasonable concurrency limits.
▪ Set reasonable timeouts.
▪ Don’t accidentally blow through $1000 by
setting 5minute timeouts and max
concurrency :)
▪ Shout out to AWS for understanding!
Testing & Timeouts
Stress testing is great but remember you’re
paying by the (milli)second!
3.
GOING BIG
Replacing a core
component of the
legacy app.
46. The Use Case:
▪ Getting accurate shipping rates is near
impossible to pull off in a way that’ll easily
work for “everybody”.
▪ 99% of custom shipping hacks are easily
accomplished with a bit of custom code.
▪ Wouldn’t it be great if we could safely and
securely allow our users to run custom code,
within our application?
46
4.
RUNNING
CUSTOM
CODE
How to allow enough
flexibility? How about
allowing straight js?
48. How it works:
1. Serverless app repo
exists in filesystem.
2. App copies directory,
updates some files, and
runs `sls deploy --args`.
3. App stores custom code
and serverless app status
in db.
4. Serverless returns API
Gateway URI. App stores in
db.
5. App makes requests to URI,
and handles the responses.
48
49. What we go right:
1. Started small. No UI yet.
2. Security.
3. Robust documentation
and helpers.
4. The whole system is part
of the app. No issues
with builds/deploys.
Challenges & Errors:
1. AWS limits.
2. Async deploy process
difficult to handle within
legacy app and API.
49
50. 50
▪ Possible to reuse a single serverless app?
Yes, but… Why risk it?
▪ Every user gets an entirely separate
CloudFormation (serverless) stack.
▪ The Lambdas have effectively zero access.
▪ The Lambdas are in an entirely separate AWS
region from the main application.
Additional notes about this weird approach:
4.
RUNNING
CUSTOM
CODE
How to allow enough
flexibility? How about
allowing straight js?
52. “
Some people,
when confronted with a problem, think
"I know, I'll use regular expressions
SERVERLESS."
Now they have two ZERO problems.
52https://en.wikiquote.org/wiki/Jamie_Zawinski
53. Rebuilding the admin:
▪ Full serverless-powered web app.
▪ All back-end functionality via the existing API.
a. Allows for open-sourcing the whole thing.
b. Forces us to become API first.
▪ Utilize other AWS services like Cognito.
▪ Trivially easy to fork, modify, whitelabel, and
deploy for enterprise users.
53
5.
SERVERLESS
ALL THE
THINGS
Or lots of them,
at least.
54. Customer Portal:
▪ Add a public /customer endpoint served by
serverless, along with existing /cart and
/checkout legacy endpoints.
▪ Route requests to /customer to serverless app
instead of legacy (via ALB or CloudFront).
▪ The customer portal interacts with legacy app
only using existing interfaces (both back-end
and front-end).
▪ This is the foundation of additional core app
functionality. Not a “one-off”.
54
5.
SERVERLESS
ALL THE
THINGS
Or lots of them,
at least.
55. Credits Special thanks to all the people who
made assets used in this presentation.
55
▪ Watercolors by Catarina Garcia
▪ Other art by my children (who don’t have websites yet)
▪ Demotivational poster “Laziness” by Despair.com
▪ Presentation template by SlidesCarnival
56. Questions?
Thanks!
56
Happy to talk about this or most any other topic.
▪ Foxy.io / FoxyCart.com
▪ @brettflorio
▪ @foxycart
▪ Slides available at bit.ly/serverless-foxy