Talk given at WordCamp Athens 2017, by Otto Kekäläinen. For more info, see blog post at https://seravo.com/measuring-wordpress-speed/
WP-CLI is a command line interface for managing WordPress installations. It allows users to perform tasks like installing plugins and themes, updating WordPress core, managing users, and more through commands instead of using the WordPress dashboard. The tool saves time by automating repetitive tasks and allowing bulk operations. Developers can extend WP-CLI's functionality by creating their own commands and packages.
Magento is a leading open source, eCommerce platform used by many global brands. However, architecting your Magento platform to grow with your business can sometimes be a challenge. This session walks through the steps needed to take an out-of-the-box, single-node Magento implementation and turn it into a highly available, elastic, and robust deployment. This includes an end-to-end caching strategy that provides an efficient front-end cache (including populated shopping carts) using Varnish on Amazon EC2 as well as offloading the Magento caches to separate infrastructure such as Amazon ElastiCache. We also look at strategies to manage the Magento Media library outside of the application instances, including EC2-based shared storage solutions and Amazon S3. At the data layer we look at Magento-specific Amazon RDSandndash;tuning strategies including configuring Magento to use read replicas for horizontal scalability. Finally, we look at proven techniques to manage your Magento implementation at scale, including tips on cache draining, appropriate cache separation, and utilizing AWS CloudFormation to manage your infrastructure and orchestrate predictable deployments.
Find Site Performance from the server to WordPress. A look at how some good performance gains can be made in tuning MySQL and APC and getting the most of out W3 Total Cache.
How to improve your workflows via SSH gateway. Experts at WP Engine help you learn about how WordPress developers can make their work more efficient using WP-CLI via SSH gateway to improve workflows. On-demand webinar: https://hs.wpengine.com/webinar-improve-workflows-SSH-gateway
This document is an introduction to using Backbone.js in WordPress presentations. It discusses why to use Backbone over just jQuery, the basics of Backbone and Underscore, and how to create models, views, collections, and populate collections from the WordPress REST API. It also provides a demo of a Backbone plugin and resources for further learning.
The document discusses Grunt and Bower, two JavaScript build tools. Grunt is a task runner that can be used to automate repetitive tasks like minification, compilation, unit testing, and linting. It uses a Gruntfile to configure tasks and load plugins. Bower is a package manager for front-end web development that allows installing dependencies directly from the command line. It uses a bower.json file to specify dependencies that will be downloaded from the Bower registry.
This document provides tips for optimizing a WordPress site for performance. It recommends analyzing the site using tools like Firebug and GTmetrix to identify issues. Common problems include slow initial page loads due to too many database queries and large image files. The document outlines plugins and code tweaks that can help, such as caching plugins, GZIP compression, and leveraging a content delivery network. An ideal setup is proposed using Varnish as a reverse proxy cache in front of Redis for object caching. Redis is preferred over Memcached due to its larger object size limits and broader language support.
This document summarizes a presentation about optimizing database performance in ColdFusion applications. It discusses how to analyze query plans to understand how queries are executing and identify optimization opportunities. Specific tips covered include using query parameters to promote plan reuse, optimizing indexes, combining queries to reduce round trips to the database, and monitoring server resources and database statistics that can impact performance. The presentation also provides examples of inefficient SQL patterns to avoid, such as inline queries and over-joining of data.
This document discusses setting up a LAMP stack on an Ubuntu server using SSH and various commands like apt-get. It installs Apache, PHP, MySQL, Redis, and Varnish. It then discusses using rsync to copy files to the server and configuring the various components like enabling PHP modules and Apache rewrite rules.
It's no denying that rich Javascript applications (sometimes called One Page Applications) are a big thing, but what if you want to leverage Drupal on the backend, or have an existing site? Tools like Angular.JS and EmberJS are great when you have an API, but Drupal 7 doesn't really have an API layer. I'll explore the parts of a one page application and how to integrate it into either an existing or a new Drupal site, and the pitfalls that one must watch out for.
This document discusses using ElasticBeanstalk to scale Magento applications. Some key points: ElasticBeanstalk allows automatically scaling web and worker applications by adding and removing instances as needed. It also allows running different environments like production, testing, and development. Deploying code updates can be done by pushing to Git or uploading ZIP files. Logs, configurations, and other customizations are managed through YAML files. ElasticBeanstalk simplifies scaling Magento by integrating with features like Composer, Redis, and S3.
This document provides an overview of Bower, a package manager for the web. It discusses how to install Bower, commonly used Bower commands like install, search and uninstall, the bower.json and .bowerrc configuration files, and includes an appendix with additional reference information. The document is intended to teach users how to get started with and effectively use Bower to manage front-end web packages and dependencies.
The document discusses the WordPress HTTP API, which provides wrapper functions for making HTTP requests from PHP that are easier to use than cURL. It introduces the main functions like wp_remote_get() and wp_remote_post() for making GET and POST requests. It also covers how to process responses by retrieving headers, body content, response codes. Useful API tools like Postman and PAW for testing requests are also mentioned.
Talk given at WP Helsinki Meetup 7.11.2018 See also: * https://developer.wordpress.org/themes * https://developer.wordpress.org/plugins * https://travis-ci.org/Seravo * https://seravo.com/blog/coding-wordpress-in-style-with-phpcs/
Websockets allow for real-time, bi-directional communication between a client and server by maintaining an open connection. The document discusses how to use websockets with ColdFusion by defining channels and handlers, implementing the JavaScript API to publish and subscribe to messages, and options for security, filtering, and fallback support. Demos are provided to illustrate key features of ColdFusion's websocket implementation.
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files together in a text editor and uploading them on the web. Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years! We will start by seeing how you can use Yeoman and its generators to kickstart your project. Then you will see how Bower let you manage the dependencies of your project. Downloading the JavaScript and CSS frameworks that you are using for you. After that we will have a look at Chrome Devtools in order to debug and edit our application. We will also see how to use remote debugging to inspect a web application running on a phone or a tablet. Finally we will see how you can set up your whole continuous integration workflow with Grunt. Compilation, static code analysis, unit tests, integration tests, minification, code coverage, you name it. This talk has been presented during EclipseCon North America 2014 in San Francisco
We take great care in our back end coding workflow, optimising, automating and abstracting as much as is possible. So why don't we do that with our front end code? We'll take a look at some tools to help us take our front end workflow to the next level, and hopefully optimise our load times in the process! We'll be looking at using Twig templates and optimising them for the different areas of your application, integrating Bower and Gulp for managing assets and processing our front-end code to avoid repetitive tasks - looking at how that impacts the typical Symfony workflow.
Containerization helps us bundle dependencies with applications instead of having to use configuration management to prepare machines for running them, hence making build once run anywhere easy. For legacy applications this can be quite hard though when they spread persistent data across the file system. In this talk I'll show how we can quickly set up a Go.CD server and agents for our Continuous Delivery pipelines on Google Cloud. The infrastructure creation is handled by Terraform, the server and agents are custom built Docker containers.
As a PHP developer building web applications is besides making a living a lot of fun too, especially when you can deploy your apps to any kind of environment and on any platform. In this session I take a non-standard PHP application (based on Zend Framework) and deploy it to a bare metal environment running LAMP, Windows 2008 Server with IIS7 and to cloud instances like Azure and Amazon. The goal is to provide information on how to deploy to these various environments manual and automatic, but also to show it doesn't really matter anymore what the targeted platform is, as long the apps are written in PHP.
Get hands-on with security features and best practices to protect your containerized services. Learn to push and verify signed images with Docker Content Trust, and collaborate with delegation roles. Intermediate to advanced level Docker experience recommended, participants will be building and pushing with Docker during the workshop. Led By Docker Security Experts: Riyaz Faizullabhoy David Lawrence Viktor Stanchev Experience Level: Intermediate to advanced level Docker experience recommended
This document discusses using CommandBox and Docker to deploy real projects. It covers background on the development workflow and environments, benefits of Docker and CommandBox, code cleanup tools like CFLint and git hooks, serving apps with CommandBox, server monitoring with Prometheus, dynamic configuration, caching, session storage, logging with Elasticsearch and Kibana, load balancing with Kubernetes, data changes, scheduled tasks, and canary/blue-green deployments. The overall message is that CommandBox and tools can provide structure and simplify transitions to help teams succeed in deploying applications.
This document discusses using CommandBox and Docker to deploy real projects. It covers background on the development workflow and environments, benefits of Docker and CommandBox, code cleanup tools like CFLint and git hooks, serving apps with CommandBox, server monitoring with Prometheus, dynamic configuration, caching, session storage, logging with Elasticsearch and Kibana, load balancing with Kubernetes, data changes, scheduled tasks, and canary/blue-green deployments. The overall message is that CommandBox and tools can provide structure and simplify transitions to help teams succeed in deploying applications.
Vagrant is a tool that allows users to build and distribute development environments. It simplifies the process of creating and configuring virtual machine environments and allows development environments to be identical across different machines. Vagrant uses a file called the Vagrantfile to configure virtual machines and provision them automatically using tools like Puppet, Chef or Ansible.
The document discusses the modern developer toolbox and outlines various tools that developers can use for development environments, testing, debugging, profiling, deployment, logging, and monitoring of applications. It provides recommendations for setting up development environments on different operating systems and with tools like Vagrant, Docker, Ansible, and Homebrew. It also discusses PHP installation and editors/IDEs to use. Testing with PHPUnit, Behat, and Jenkins is covered as well as debugging with XDebug, profiling with XHProf, and deployment with Ansible, Capistrano and other options. Logging with Monolog, Logstash and Kibana is also summarized along with monitoring metrics with StatsD, Graphite and Grafana.
This document discusses approaches for deploying Drupal websites from development to production environments. It covers considerations for initial site installation ("cold start") as well as ongoing updates. Simple setups can use basic scripts for deployment, but more complex enterprise sites require tools to manage multiple hosts, roles, environments and tasks. The document evaluates options like Webistrano, DrushDeploy, Jenkins and Aegir and discusses related tools for automation, testing and continuous integration.
The document discusses running Docker in development and production. It covers: - Using Docker containers to run individual services like Elasticsearch or web applications - Creating Dockerfiles to build custom images - Linking containers together and using environment variables for service discovery - Scaling with Docker Compose, load balancing with Nginx, and service discovery with Consul - Clustering containers together using Docker Swarm for high availability
Like many others, WordPress has been my personal blogging tool for a long time. A powerful tool for easy publishing! That is what everyone wants. Large sites like TechCrunch and TheNextWeb use it exactly for that reason. And more enterprises seem to discover it as good solution to their too-expensive publication tools. But keeping those WordPress instances running requires skills and knowledge. Because of WordPress extendibility and its very active community, you can do this too. This tutorial will teach you how use Ansible, Composer, WP-CLI, WP REST API, and Elasticsearch can push WordPress from a personal blogging tool into an enterprise-worthy level application. Out with FTP based SCM ... in with automated deployment, dependency management, and utterly fast search.
This document provides information about Node.js, Express, and using Node.js with databases like MySQL. It describes Node.js as a JavaScript web framework that is fast and small. It explains that Express is a web application framework built on Node.js and Connect. It provides instructions for installing Express and a quick start guide. It also lists features of Express like routing, views, and sessions. Finally, it discusses hosting Node.js applications on platforms like Heroku and connecting Node.js to MySQL.
"Drupal is always so fast!" ... said no one, ever. Drupal has a reputation as being a slow CMS, but that reputation is undeserved; there are many small things that impact a Drupal site's performance in sometimes substantial ways. This session will highlight many 'quick wins' that will get your site performing like a champ in no time! Then we'll take a demonstration site that has many elements of real-world 'slow' Drupal sites, show how to do a quick performance evaluation/triage, and change the site from loading in 4-5 seconds to loading in less than a second, and maxing out at 2 requests per second to a speedy 4,000+ requests per second! The session will also discuss the importance of a plan, benchmarking, and assumptions when you do performance work on your own Drupal site.
This presentation is part 5 in the EWD 3 Training Course. It describes the first steps you should take when building a browser-based desktop QEWD application. This version of Part 5 is for anyone using QEWD on Windows with the Cache database.
This document summarizes some workflows and processes used by a development team for WordPress projects, including version control with Git, environment-aware configuration files, database migrations, and automated deployments. It discusses setting up local development environments, managing code standards and reviews, and deploying code from development to multiple environments.
This document discusses using the MEAN stack with Docker. It provides Dockerfiles to containerize MongoDB, a MongoDB replica set configurator, Node.js, sample applications, and MongoDB Management Service monitoring/backup agents. It also describes using Vagrant to set up a demo environment with Docker containers for a MongoDB replica set and sample app.
The document discusses using Phing, an XML-based build tool written in PHP, to automate the deployment of PHP applications to various platforms including Linux, Windows, and Windows Azure. It provides examples of using Phing tasks to export code from version control, deploy via SCP, FTP, or cloud services, and set up continuous integration and continuous deployment workflows. The key message is that Phing allows for easy, automated deployment of PHP code to any environment.