George Wilson presented on modern cloud architecture and automation for websites built with content management systems like Joomla. He demonstrated how to automate the deployment of a Joomla site on AWS using just 7 commands and a configuration file. This included uploading the code, creating the application version, and provisioning the environment. Wilson discussed the rise of using CLIs and APIs to manage websites and their content programmatically. Documenting APIs with OpenAPI/Swagger was presented as a best practice. While these techniques may not apply to all Joomla sites, Wilson argued they are relevant for many sites in Joomla's target markets that prioritize agility and automation.
The document summarizes the New York Times' use of WordPress as a backend platform to power their live coverage and blogging needs. Some key points:
- WordPress is used to power live blogs, events, and coverage through custom post types and a Backbone admin interface that produces JSON content for front-end display.
- Migrating to the NYT5 project required refactoring WordPress to work within the new PHP framework and routing system rather than being the sole application.
- Over time the "Blogs" team transitioned to focus on WordPress and supporting interactive needs, developing new live coverage tools and responsive frontend implementations.
- REST API usage and custom endpoints were built
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
Apache Cordova is used to wrap HTML5 applications into native mobile applications that can access device capabilities. A demo application was shown that used Cordova for the mobile portion and Java EE 7 on the server side. Key technologies discussed included Cordova plugins, RESTful web services, Java API for JSON, and Java API for WebSockets for bidirectional communication between the mobile app and server. jQuery Mobile was also mentioned as a potential UI framework.
Flexible Permissions Management with ACL TemplatesJeff Potts
This is was presented as an ignite-style lightning talk at DevCon 2018 in Lisbon. It discusses an open source add-on called ACL Templates which can be used to separate ACL settings from code.
Alfresco DevCon 2019 Performance Tools of the TradeLuis Colorado
Discover tips and tools that will help you to keep your Alfresco environment in shape. Most of the best tools are free or Open Source, and this presentation will guide you through the steps to improve the performance of your system.
- Lambdaless refers to a serverless architecture that does not use AWS Lambda functions. It utilizes AWS API Gateway to directly call other AWS services.
- Some examples of how Lambdaless can be used include building a URL shortener service using S3 redirects and access logs or building a basic CRUD API that stores data in DynamoDB.
- Lambdaless is best suited for simple tasks that involve calling a single AWS service API, while more complex business logic requiring data joins or computation should use Lambda functions.
SymfonyCon Cluj 2017 - Symfony at OpenSkyPablo Godel
- OpenSky is a digital agency that uses Symfony to power multiple e-commerce businesses, with over 100 employees in offices around the world.
- They have been using Symfony since 2010, initially migrating from Magento to Symfony 1 and then Symfony 2.
- Their current stack includes Symfony 2.8, PHP 7.1, MySQL, MongoDB, Redis, and over 10,000 unit tests.
The document summarizes the New York Times' use of WordPress as a backend platform to power their live coverage and blogging needs. Some key points:
- WordPress is used to power live blogs, events, and coverage through custom post types and a Backbone admin interface that produces JSON content for front-end display.
- Migrating to the NYT5 project required refactoring WordPress to work within the new PHP framework and routing system rather than being the sole application.
- Over time the "Blogs" team transitioned to focus on WordPress and supporting interactive needs, developing new live coverage tools and responsive frontend implementations.
- REST API usage and custom endpoints were built
Hybrid Mobile Development with Apache Cordova and Ryan Cuprak
Apache Cordova is used to wrap HTML5 applications into native mobile applications that can access device capabilities. A demo application was shown that used Cordova for the mobile portion and Java EE 7 on the server side. Key technologies discussed included Cordova plugins, RESTful web services, Java API for JSON, and Java API for WebSockets for bidirectional communication between the mobile app and server. jQuery Mobile was also mentioned as a potential UI framework.
Flexible Permissions Management with ACL TemplatesJeff Potts
This is was presented as an ignite-style lightning talk at DevCon 2018 in Lisbon. It discusses an open source add-on called ACL Templates which can be used to separate ACL settings from code.
Alfresco DevCon 2019 Performance Tools of the TradeLuis Colorado
Discover tips and tools that will help you to keep your Alfresco environment in shape. Most of the best tools are free or Open Source, and this presentation will guide you through the steps to improve the performance of your system.
- Lambdaless refers to a serverless architecture that does not use AWS Lambda functions. It utilizes AWS API Gateway to directly call other AWS services.
- Some examples of how Lambdaless can be used include building a URL shortener service using S3 redirects and access logs or building a basic CRUD API that stores data in DynamoDB.
- Lambdaless is best suited for simple tasks that involve calling a single AWS service API, while more complex business logic requiring data joins or computation should use Lambda functions.
SymfonyCon Cluj 2017 - Symfony at OpenSkyPablo Godel
- OpenSky is a digital agency that uses Symfony to power multiple e-commerce businesses, with over 100 employees in offices around the world.
- They have been using Symfony since 2010, initially migrating from Magento to Symfony 1 and then Symfony 2.
- Their current stack includes Symfony 2.8, PHP 7.1, MySQL, MongoDB, Redis, and over 10,000 unit tests.
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
The service implements a RESTful Users web service with Rails 3. It customizes Rails to remove unnecessary components and optimize for a lightweight REST service. The service follows best practices for API design including using JSON format, placing JSON conversion in the controller, and returning appropriate HTTP status codes. Requests are designed to be stateless and atomic. Errors are returned in a standardized JSON format.
eMusic is a digital music subscription service that allows users to discover, download, and own music. It is moving its content management system from a legacy platform to WordPress to take advantage of WordPress' custom post types, taxonomies, and plugin ecosystem. This transition involves planning the import of existing content and customizing WordPress with plugins to support eMusic's regionalized catalog and complex data needs. The experience has highlighted both WordPress' capabilities for complex websites and the ongoing costs and challenges of maintaining a dynamic WordPress site at scale.
This document discusses service-oriented architecture (SOA) and how Ruby on Rails can be used to build SOA systems. It defines a service as a system that responds to HTTP requests, usually to modify or retrieve data. The document explains benefits of SOA like isolation, scalability, and reusability. It also introduces some Ruby tools like Sinatra and HTTParty that are useful for building RESTful services and APIs.
CUST-10 Customizing the Upload File(s) dialog in Alfresco ShareAlfresco Software
Many Alfresco projects require customizations to the Share user interface that go beyond the normal configuration. This usually involves changing/overriding Repository Web Scripts and Surf Web Scripts, updating JavaScript and CSS files, coding with the Yahoo UI Library, etc. This session will customize the Alfresco Share Upload File(s) dialog and show you how to: Add Widgets to the Upload File(s) dialog, Override Surf Web Scripts, Override/Update JavaScript and CSS files, Write Repository Web Scripts, Call Web Scripts from Yahoo UI Library code, and Setup a build project for these customizations. This session will present the advanced customization concepts via hands-on tutorial and slides.
DevCon 2018 - 5 ways to use AWS with AlfrescoGavin Cornwell
Learn how to leverage AWS with Alfresco. We will look at current and future methods for deploying onto AWS, how you can use serverless and AI technologies to power your next generation extensions and how we’re using AWS internally to manage online trials and improve user experience.
Shopify uses Ruby on Rails, MySQL, and services like Memcached and Redis to handle a high volume of traffic. They optimize performance by caching content, running background jobs asynchronously, scaling database and application servers, and separating services like image processing. Monitoring tools help them understand bottlenecks and prioritize where to optimize next.
This document discusses various web frameworks and tools including Sinatra, Padrino, CoffeeScript, Sass, and Sprockets. It summarizes Padrino as a modular web framework built on Sinatra that aims to provide more features out of the box compared to Sinatra. Padrino includes generators to create projects, controllers, models and other components. It supports features like modular design, multiple apps, helpers for tags/assets/links, an optional mailer, and a development-friendly environment. The document presents Padrino as a fully-featured alternative to building applications with just Sinatra.
In The Trenches With Tomster, Upgrading Ember.js & Ember DataStacy London
A few months after I started working with Ember.js & Ember Data at my new job we began a project to upgrade both. There were parts that were a breeze and others that were quite tricky. This talk walks you through some of the challenges we faced and how we solved them as well as how we began to prepare for the Ember 2.x architectural shift. Hopefully this talk will help save you some time when you decide to upgrade your Ember web application.
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
In this talk you will learn how to set up an Alfresco SDK 3.0 multi module project that could be used in a larger consulting project context. Extension modules will be standalone and versioned and released independently in the Nexus 3 Repository Manager. The talk also includes a look at defining a Parent POM and an Aggregator POM for your SDK 3 project solution.
This document describes the serverless media workflow built by the speaker for adding video capabilities to Vingle. It discusses ingesting videos from clients into S3 using transfer acceleration, processing videos with AWS services like Elastic Transcoder and Elemental MediaConvert, and delivering videos via S3 and CloudFront. The architecture evolved over two versions to support features like parallel encoding and bypassing processing when possible to improve performance and reduce costs.
Integrating Alfresco @ Scale (via event-driven micro-services)J V
Alfresco DevCon 2018 (Lisbon) - https://devcon.alfresco.com/
Alfresco provides a rich set of options for integrating third-party systems with services across the Digital Business Platform. We will deep-dive into the architecture of the new Alfresco Integration Services framework – a set of event-driven micro-services that can be easily deployed & scaled.
https://www.youtube.com/watch?v=TyB-t7wsDEE
This document discusses best practices for designing RESTful APIs including planning for versioning, request and response formats, and authentication. It recommends using a RESTful approach, starting with a minimum viable API and maintaining features across versions. It suggests implementing versioning through URI design and sub-controllers, and handling requests and responses with JSON and the respond_with method in Rails. It also provides examples of authentication with Devise or request signatures, and testing API actions.
ADF Basics and Beyond - Alfresco Devcon 2018Mario Romano
If you want to know everything about ADF its architecture, technologies and best practices you can't skip this talk. Join us also to know more about what we released in November as part of ADF 2.0 and what is our vision for the future.
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...Edward Wilde
This talk introduces OpenFaaS, an open source platform for serverless functions. We begin by installing, running the platform and invoking a machine learning function within 60 second (ish). Next we step up and look at the high level platform architecture and key pillars of OpenFaaS: developer first, operator friendly and community focused. We close by looking at a multiuser platform built on top OpenFaas.
The objective of this talk is to introduce you to OpenFaaS the serverless platform and OpenFaaS cloud the multi-user environment for practicing git ops with functions.
The Apereo OAE Bootcamp offers an introduction into back-end and front-end development for the Apereo OAE project.
The back-end development part focuses on learning the different extension points behind the scenes in the service layer of OAE. A back-end component for OAE that exposes a REST API is built from scratch.
Back-end development topics include:
- Node.js NPM module system
- OAE back-end application life-cycle
- Data-modelling with Apache Cassandra and writing CQL queries from Node.js
- Using the OAE APIs to expose back-end functionality for the web VIA RESTful APIs
- Writing back-end unit tests using Grunt and Mocha. If time permits, the following will also be covered:
- Integrating with OAE's ElasticSearch query and index functionality
- Integrating with OAE's Activity and Notifications functionality
- Integration with OAE's Admin Configuration functionality
The front-end development part focuses on writing a UI widget using the REST APIs developed in the back-end development part.
Front-end development topics include:
- Integrating with the OAE Widget loading system
- Writing internationalizable templates with TrimPath and the widget i18n and l10n functionality
- Interacting with the core OAE UI APIs
- Using bootstrap 3 to design responsive UI layouts for your widgets
- Writing front-end unit tests using Grunt and CasperJS
Being a WordPress developer means that our main programming language is PHP. Which works for building websites but not for running tasks. In this talk I will share my experience using Node.js as a platform to build on. Explaining why I have chosen for Node.js and show you how I used Node.js to build microservices that are supporting my WordPress projects.
Flexible UI Components for a Multi-Framework WorldKevin Ball
Slides from Flexible UI Components talk given at Web Unleashed 2017
Build UI components that work seamlessly in every JavaScript Framework.
Your core UI elements shouldn’t have to be different for your marketing site than they are in your application just because the former uses jQuery while the latter is built using Angular or React.
Lessons learned from work on ZURB Foundation 7.
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUGOrtus Solutions, Corp
CommandBox is a command line interface (CLI) and package manager for ColdFusion (CFML) that allows developers to work more efficiently. It provides features like a package manager, integrated server, read-eval-print loop (REPL), and automation capabilities. CommandBox also integrates with ForgeBox, a public registry for CFML packages, allowing developers to publish and install packages from a central location. The presentation provided an overview of CommandBox's key features and how they help improve the ColdFusion development workflow.
This document provides an agenda for a class on databases and asynchronous JavaScript. It includes presentations of Project 2, a review of asynchronous concepts like callbacks, promises, and async/await. It also covers differences between SQL and NoSQL databases, examples of using SQL and MongoDB, and an introduction to using a Postgres database on Bluemix. Homework involves SQL queries on a Stack Overflow database and students are notified to begin working on Project 3, which will involve a database backend and chatbot.
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
Presentation about open source tools to set up continuous integration and continuous deployment. Covers Git, Gitlab, Chef, Vagrant, Jenkins, Gatling, Dashing, TYPO3 Surf and some other tools. Shows some best practices for testing with Behat and Functional Testing.
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.
Service-Oriented Design and Implement with Rails3Wen-Tien Chang
The service implements a RESTful Users web service with Rails 3. It customizes Rails to remove unnecessary components and optimize for a lightweight REST service. The service follows best practices for API design including using JSON format, placing JSON conversion in the controller, and returning appropriate HTTP status codes. Requests are designed to be stateless and atomic. Errors are returned in a standardized JSON format.
eMusic is a digital music subscription service that allows users to discover, download, and own music. It is moving its content management system from a legacy platform to WordPress to take advantage of WordPress' custom post types, taxonomies, and plugin ecosystem. This transition involves planning the import of existing content and customizing WordPress with plugins to support eMusic's regionalized catalog and complex data needs. The experience has highlighted both WordPress' capabilities for complex websites and the ongoing costs and challenges of maintaining a dynamic WordPress site at scale.
This document discusses service-oriented architecture (SOA) and how Ruby on Rails can be used to build SOA systems. It defines a service as a system that responds to HTTP requests, usually to modify or retrieve data. The document explains benefits of SOA like isolation, scalability, and reusability. It also introduces some Ruby tools like Sinatra and HTTParty that are useful for building RESTful services and APIs.
CUST-10 Customizing the Upload File(s) dialog in Alfresco ShareAlfresco Software
Many Alfresco projects require customizations to the Share user interface that go beyond the normal configuration. This usually involves changing/overriding Repository Web Scripts and Surf Web Scripts, updating JavaScript and CSS files, coding with the Yahoo UI Library, etc. This session will customize the Alfresco Share Upload File(s) dialog and show you how to: Add Widgets to the Upload File(s) dialog, Override Surf Web Scripts, Override/Update JavaScript and CSS files, Write Repository Web Scripts, Call Web Scripts from Yahoo UI Library code, and Setup a build project for these customizations. This session will present the advanced customization concepts via hands-on tutorial and slides.
DevCon 2018 - 5 ways to use AWS with AlfrescoGavin Cornwell
Learn how to leverage AWS with Alfresco. We will look at current and future methods for deploying onto AWS, how you can use serverless and AI technologies to power your next generation extensions and how we’re using AWS internally to manage online trials and improve user experience.
Shopify uses Ruby on Rails, MySQL, and services like Memcached and Redis to handle a high volume of traffic. They optimize performance by caching content, running background jobs asynchronously, scaling database and application servers, and separating services like image processing. Monitoring tools help them understand bottlenecks and prioritize where to optimize next.
This document discusses various web frameworks and tools including Sinatra, Padrino, CoffeeScript, Sass, and Sprockets. It summarizes Padrino as a modular web framework built on Sinatra that aims to provide more features out of the box compared to Sinatra. Padrino includes generators to create projects, controllers, models and other components. It supports features like modular design, multiple apps, helpers for tags/assets/links, an optional mailer, and a development-friendly environment. The document presents Padrino as a fully-featured alternative to building applications with just Sinatra.
In The Trenches With Tomster, Upgrading Ember.js & Ember DataStacy London
A few months after I started working with Ember.js & Ember Data at my new job we began a project to upgrade both. There were parts that were a breeze and others that were quite tricky. This talk walks you through some of the challenges we faced and how we solved them as well as how we began to prepare for the Ember 2.x architectural shift. Hopefully this talk will help save you some time when you decide to upgrade your Ember web application.
Alfresco DevCon 2018: SDK 3 Multi Module project using Nexus 3 for releases a...Martin Bergljung
In this talk you will learn how to set up an Alfresco SDK 3.0 multi module project that could be used in a larger consulting project context. Extension modules will be standalone and versioned and released independently in the Nexus 3 Repository Manager. The talk also includes a look at defining a Parent POM and an Aggregator POM for your SDK 3 project solution.
This document describes the serverless media workflow built by the speaker for adding video capabilities to Vingle. It discusses ingesting videos from clients into S3 using transfer acceleration, processing videos with AWS services like Elastic Transcoder and Elemental MediaConvert, and delivering videos via S3 and CloudFront. The architecture evolved over two versions to support features like parallel encoding and bypassing processing when possible to improve performance and reduce costs.
Integrating Alfresco @ Scale (via event-driven micro-services)J V
Alfresco DevCon 2018 (Lisbon) - https://devcon.alfresco.com/
Alfresco provides a rich set of options for integrating third-party systems with services across the Digital Business Platform. We will deep-dive into the architecture of the new Alfresco Integration Services framework – a set of event-driven micro-services that can be easily deployed & scaled.
https://www.youtube.com/watch?v=TyB-t7wsDEE
This document discusses best practices for designing RESTful APIs including planning for versioning, request and response formats, and authentication. It recommends using a RESTful approach, starting with a minimum viable API and maintaining features across versions. It suggests implementing versioning through URI design and sub-controllers, and handling requests and responses with JSON and the respond_with method in Rails. It also provides examples of authentication with Devise or request signatures, and testing API actions.
ADF Basics and Beyond - Alfresco Devcon 2018Mario Romano
If you want to know everything about ADF its architecture, technologies and best practices you can't skip this talk. Join us also to know more about what we released in November as part of ADF 2.0 and what is our vision for the future.
Docker and serverless Randstad Jan 2019: OpenFaaS Serverless: when functions ...Edward Wilde
This talk introduces OpenFaaS, an open source platform for serverless functions. We begin by installing, running the platform and invoking a machine learning function within 60 second (ish). Next we step up and look at the high level platform architecture and key pillars of OpenFaaS: developer first, operator friendly and community focused. We close by looking at a multiuser platform built on top OpenFaas.
The objective of this talk is to introduce you to OpenFaaS the serverless platform and OpenFaaS cloud the multi-user environment for practicing git ops with functions.
The Apereo OAE Bootcamp offers an introduction into back-end and front-end development for the Apereo OAE project.
The back-end development part focuses on learning the different extension points behind the scenes in the service layer of OAE. A back-end component for OAE that exposes a REST API is built from scratch.
Back-end development topics include:
- Node.js NPM module system
- OAE back-end application life-cycle
- Data-modelling with Apache Cassandra and writing CQL queries from Node.js
- Using the OAE APIs to expose back-end functionality for the web VIA RESTful APIs
- Writing back-end unit tests using Grunt and Mocha. If time permits, the following will also be covered:
- Integrating with OAE's ElasticSearch query and index functionality
- Integrating with OAE's Activity and Notifications functionality
- Integration with OAE's Admin Configuration functionality
The front-end development part focuses on writing a UI widget using the REST APIs developed in the back-end development part.
Front-end development topics include:
- Integrating with the OAE Widget loading system
- Writing internationalizable templates with TrimPath and the widget i18n and l10n functionality
- Interacting with the core OAE UI APIs
- Using bootstrap 3 to design responsive UI layouts for your widgets
- Writing front-end unit tests using Grunt and CasperJS
Being a WordPress developer means that our main programming language is PHP. Which works for building websites but not for running tasks. In this talk I will share my experience using Node.js as a platform to build on. Explaining why I have chosen for Node.js and show you how I used Node.js to build microservices that are supporting my WordPress projects.
Flexible UI Components for a Multi-Framework WorldKevin Ball
Slides from Flexible UI Components talk given at Web Unleashed 2017
Build UI components that work seamlessly in every JavaScript Framework.
Your core UI elements shouldn’t have to be different for your marketing site than they are in your application just because the former uses jQuery while the latter is built using Angular or React.
Lessons learned from work on ZURB Foundation 7.
Intro To CommandBox CLI,Package Manager, Server at the Japan CFUGOrtus Solutions, Corp
CommandBox is a command line interface (CLI) and package manager for ColdFusion (CFML) that allows developers to work more efficiently. It provides features like a package manager, integrated server, read-eval-print loop (REPL), and automation capabilities. CommandBox also integrates with ForgeBox, a public registry for CFML packages, allowing developers to publish and install packages from a central location. The presentation provided an overview of CommandBox's key features and how they help improve the ColdFusion development workflow.
This document provides an agenda for a class on databases and asynchronous JavaScript. It includes presentations of Project 2, a review of asynchronous concepts like callbacks, promises, and async/await. It also covers differences between SQL and NoSQL databases, examples of using SQL and MongoDB, and an introduction to using a Postgres database on Bluemix. Homework involves SQL queries on a Stack Overflow database and students are notified to begin working on Project 3, which will involve a database backend and chatbot.
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
Presentation about open source tools to set up continuous integration and continuous deployment. Covers Git, Gitlab, Chef, Vagrant, Jenkins, Gatling, Dashing, TYPO3 Surf and some other tools. Shows some best practices for testing with Behat and Functional Testing.
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.
Cameron Dutro introduces Kuby, which is an ActiveDeployment tool for Rails applications that packages and deploys apps into a Kubernetes cluster. Kuby aims to make deployment easy with minimal configuration, while also supporting major cloud providers and being native to Rails. It handles tasks like provisioning databases and acquiring SSL certificates automatically. The talk outlines the history of deployment methods and why Kubernetes provides an extensible platform. Kuby builds on concepts from tools like Capistrano but abstracts more details by treating servers collectively in a Kubernetes cluster.
COB - Azure Functions for Office 365 developersChris O'Brien
A presentation I gave at ESPC 2018 (the European SharePoint, Office 365 and Azure Conference) about use of Azure Functions to extend Office 365 solutions. Covers Azure Functions fundamentals, adding code to PowerApps/Flow, Site Designs and Site Scripts (and PnP site templating), SPFx and Durable Functions. Also has tips on v1/v2, performance, pricing and how to avoid cold starts.
This document provides an overview of using Fluxible to create isomorphic JavaScript applications. It defines what an isomorphic app is, discusses React and Flux, and then introduces Fluxible. Key points about Fluxible include that it is an implementation of Flux, has a vibrant community, and includes tools like provideContext and connectToStores to help build React components. The document demonstrates building a simple Fluxible app with files for the server, client, app, components, actions and stores. It also discusses routing and exporting/importing state between server and client.
Building Content-Rich Java Apps in the Cloud with the Alfresco APIJeff Potts
This presentation, originally delivered at JavaOne on October 2, 2012, talks about why you should use Alfresco instead of rolling your own content repository and discusses the new public Alfresco API for writing content apps that persist content to Alfresco in the Cloud.
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
Today’s cutting-edge companies have software release cycles measured in days instead of months. This agility is enabled by the DevOps practice of continuous delivery, which automates building, testing, and deploying all code changes. This automation helps you catch bugs sooner and accelerates developer productivity. In this session, we’ll share the processes that Amazon’s engineers use to practice DevOps and discuss how you can bring these processes to your company by using a new set of AWS tools (AWS CodePipeline and AWS CodeDeploy). These services were inspired by Amazon's own internal developer tools and DevOps culture.
AD113 Speed Up Your Applications w/ Nginx and PageSpeededm00se
My slide deck from my session, AD113: Speed Up Your Applications with Nginx + PageSpeed, at MWLUG 2015 in Atlanta, GA at the Ritz-Carlton.
For more, see:
- https://edm00se.io/self-promotion/mwlug-ad113-success
- https://github.com/edm00se/AD113-Speed-Up-Your-Apps-with-Nginx-and-PageSpeed
This document discusses building a Slack bot using AWS Lambda and the Chalice framework. It describes how FaaS works, options for running functions through AWS Lambda including Python support. It then outlines how to build a Slack bot with Chalice that allows users to query Stack Overflow through natural language requests in Slack. Key steps include setting up the bot to handle requests, retrieving secrets securely, formatting responses, and deploying the code to AWS Lambda to be accessible through Slack. It also briefly discusses additional uses of FaaS beyond a basic bot including cron jobs and handling external events.
DevOps, Continuous Integration & Deployment on AWS discusses practices for software development on AWS including DevOps, continuous integration, continuous delivery, and continuous deployment. It provides an overview of AWS services that can be used at different stages of the software development lifecycle such as CodeCommit for source control, CodePipeline for release automation, and CodeDeploy for deployment. National Novel Writing Month (NaNoWriMo) maintains its websites and services on AWS to support its annual writing challenge. It migrated to AWS to improve uptime and scalability. Its future goals include porting older sites to Rails, using Amazon SES for email, load balancing with ELB, implementing auto scaling, and using services like CodeDeploy, SNS
DevOps, Continuous Integration and Deployment on AWS: Putting Money Back into...Amazon Web Services
Organizations around the globe are leveraging the cloud to accomplish world-changing missions. This session will address how AWS can help organizations put more money toward their mission and scale outreach and operations to achieve more with less. Hear some of AWS’s most advanced customers on how their organizations handle DevOps, continuous integration and deployment. Learn how these practices allow them to rapidly develop, iterate, test and deploy highly-scalable web applications and core operational systems on AWS. The discussion will focus on best practices, lessons learned, and the specific technologies and services they use.
OpenShift with Eclipse Tooling - EclipseCon 2012Steven Pousty
This document provides an overview of the Eclipse tooling for OpenShift. It begins with an agenda and assumptions. It then defines Infrastructure as a Service, Platform as a Service, and Software as a Service. It highlights benefits of using a PaaS like OpenShift. Supported technologies are listed, including Java, JBoss Tools, Maven, and Jenkins. Steps are provided to get started, including signing up, installing plugins, creating a domain and applications. Demo steps are outlined. Command line tools are discussed. Creating an application in Eclipse is demonstrated.
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...Gaetano Giunta
1. The workshop will cover Docker, managing environments, database changes, and automated deployments for eZPublish websites.
2. A Docker stack is proposed that includes containers for Apache, MySQL, Solr, PHP, and other tools to replicate a production environment for development. Configuration and code are mounted as volumes.
3. Managing environments involves storing settings in the code repository and using symlinks to deploy different configurations. Database changes should be managed via migration scripts rather than connecting directly to a shared database.
4. Automating deployments is important and involves tasks like updating code, the database, caches and reindexing content. The same deployment script should be used for development and production. Testing websites is also recommended.
Symfony2 for legacy app rejuvenation: the eZ Publish case studyGaetano Giunta
This document discusses the rejuvenation of the legacy eZPublish content management system through adoption of the Symfony full-stack framework. Key aspects of the migration included maintaining backwards compatibility, integrating the legacy codebase through a dual-core architecture, refactoring the front controller, integrating routing, adopting Symfony caching practices, building a REST API, using the Doctrine database abstraction layer, improving performance through caching, and replacing the legacy templating language with Twig. The migration aimed to balance maintaining the existing system functionality while modernizing the codebase and architecture.
Serverless architectures let you build and deploy applications and services with infrastructure resources that require zero administration. In the past, you had to provision and scale servers to run your application code, install and operate distributed databases, and build and run custom software to handle API requests. Now, AWS provides a stack of scalable, fully-managed services that eliminates these operational complexities.
In this session, you will learn about the benefits of serverless architectures and the basics of the serverless stack AWS provides. We will also walk through how you can use serverless architectures for everything from data processing to mobile and web backends.
AWS DevDay San Francisco, June 21, 2016.
Presenter: Jeremy Edberg, Co-Founder, CloudNative, & AWS Community Hero
The document provides an overview of Google App Engine (GAE) for running Java applications on cloud platforms. It discusses that in GAE, developers do not manage machines directly and instead upload binaries for GAE to run. It describes various services available in GAE like data storage, processing images, and cron jobs. The document also summarizes tools for local development and deployment, limitations of GAE around filesystem and socket access, and advantages like built-in logging and routing by domain headers.
CakePHP is a modern PHP framework that aims to reduce development time and promote rapid application development. It takes a convention over configuration approach and encourages best practices like DRY coding. CakePHP has an active community that provides support through forums, Slack, IRC and meetups. The framework continues to evolve through new releases that bring additional features while maintaining backwards compatibility.
Ähnlich wie Modern websites in 2020 and Joomla (20)
What to do when you have a perfect model for your software but you are constrained by an imperfect business model?
This talk explores the challenges of bringing modelling rigour to the business and strategy levels, and talking to your non-technical counterparts in the process.
Unveiling the Advantages of Agile Software Development.pdfbrainerhub1
Learn about Agile Software Development's advantages. Simplify your workflow to spur quicker innovation. Jump right in! We have also discussed the advantages.
Nashik's top web development company, Upturn India Technologies, crafts innovative digital solutions for your success. Partner with us and achieve your goals
Using Query Store in Azure PostgreSQL to Understand Query PerformanceGrant Fritchey
Microsoft has added an excellent new extension in PostgreSQL on their Azure Platform. This session, presented at Posette 2024, covers what Query Store is and the types of information you can get out of it.
Unlock the Secrets to Effortless Video Creation with Invideo: Your Ultimate G...The Third Creative Media
"Navigating Invideo: A Comprehensive Guide" is an essential resource for anyone looking to master Invideo, an AI-powered video creation tool. This guide provides step-by-step instructions, helpful tips, and comparisons with other AI video creators. Whether you're a beginner or an experienced video editor, you'll find valuable insights to enhance your video projects and bring your creative ideas to life.
Boost Your Savings with These Money Management AppsJhone kinadey
A money management app can transform your financial life by tracking expenses, creating budgets, and setting financial goals. These apps offer features like real-time expense tracking, bill reminders, and personalized insights to help you save and manage money effectively. With a user-friendly interface, they simplify financial planning, making it easier to stay on top of your finances and achieve long-term financial stability.
Why Apache Kafka Clusters Are Like Galaxies (And Other Cosmic Kafka Quandarie...Paul Brebner
Closing talk for the Performance Engineering track at Community Over Code EU (Bratislava, Slovakia, June 5 2024) https://eu.communityovercode.org/sessions/2024/why-apache-kafka-clusters-are-like-galaxies-and-other-cosmic-kafka-quandaries-explored/ Instaclustr (now part of NetApp) manages 100s of Apache Kafka clusters of many different sizes, for a variety of use cases and customers. For the last 7 years I’ve been focused outwardly on exploring Kafka application development challenges, but recently I decided to look inward and see what I could discover about the performance, scalability and resource characteristics of the Kafka clusters themselves. Using a suite of Performance Engineering techniques, I will reveal some surprising discoveries about cosmic Kafka mysteries in our data centres, related to: cluster sizes and distribution (using Zipf’s Law), horizontal vs. vertical scalability, and predicting Kafka performance using metrics, modelling and regression techniques. These insights are relevant to Kafka developers and operators.
Malibou Pitch Deck For Its €3M Seed Roundsjcobrien
French start-up Malibou raised a €3 million Seed Round to develop its payroll and human resources
management platform for VSEs and SMEs. The financing round was led by investors Breega, Y Combinator, and FCVC.
Mobile App Development Company In Noida | Drona InfotechDrona Infotech
React.js, a JavaScript library developed by Facebook, has gained immense popularity for building user interfaces, especially for single-page applications. Over the years, React has evolved and expanded its capabilities, becoming a preferred choice for mobile app development. This article will explore why React.js is an excellent choice for the Best Mobile App development company in Noida.
Visit Us For Information: https://www.linkedin.com/pulse/what-makes-reactjs-stand-out-mobile-app-development-rajesh-rai-pihvf/
How Can Hiring A Mobile App Development Company Help Your Business Grow?ToXSL Technologies
ToXSL Technologies is an award-winning Mobile App Development Company in Dubai that helps businesses reshape their digital possibilities with custom app services. As a top app development company in Dubai, we offer highly engaging iOS & Android app solutions. https://rb.gy/necdnt
Enhanced Screen Flows UI/UX using SLDS with Tom KittPeter Caitens
Join us for an engaging session led by Flow Champion, Tom Kitt. This session will dive into a technique of enhancing the user interfaces and user experiences within Screen Flows using the Salesforce Lightning Design System (SLDS). This technique uses Native functionality, with No Apex Code, No Custom Components and No Managed Packages required.
A neural network is a machine learning program, or model, that makes decisions in a manner similar to the human brain, by using processes that mimic the way biological neurons work together to identify phenomena, weigh options and arrive at conclusions.
14 th Edition of International conference on computer visionShulagnaSarkar2
About the event
14th Edition of International conference on computer vision
Computer conferences organized by ScienceFather group. ScienceFather takes the privilege to invite speakers participants students delegates and exhibitors from across the globe to its International Conference on computer conferences to be held in the Various Beautiful cites of the world. computer conferences are a discussion of common Inventions-related issues and additionally trade information share proof thoughts and insight into advanced developments in the science inventions service system. New technology may create many materials and devices with a vast range of applications such as in Science medicine electronics biomaterials energy production and consumer products.
Nomination are Open!! Don't Miss it
Visit: computer.scifat.com
Award Nomination: https://x-i.me/ishnom
Conference Submission: https://x-i.me/anicon
For Enquiry: Computer@scifat.com
Orca: Nocode Graphical Editor for Container OrchestrationPedro J. Molina
Tool demo on CEDI/SISTEDES/JISBD2024 at A Coruña, Spain. 2024.06.18
"Orca: Nocode Graphical Editor for Container Orchestration"
by Pedro J. Molina PhD. from Metadev
Orca: Nocode Graphical Editor for Container Orchestration
Modern websites in 2020 and Joomla
1. George Wilson - December 2020
Building Modern Websites
The Cloud, APIs and CLIs
2. • Senior Consulting Engineer @
Automation Logic
• Working in DevOps on Government
Projects
• Joomla Leadership 2013-2019
• Joomla 4 Release Lead
• Please feel free to reach out on:
• Glip: George Wilson
• Email:
george.wilson@community.joomla.org
• GitHub: wilsonge
About Me
3. • Many people reference Google
trends as a measure of Joomla’s
decline
• No one mentions Wordpress in
the UK is down ~50% in Google
trends over the last 5 years
• Partly because their GLOBAL
marketshare remains constant
• Why have many companies
and agencies have fallen out
of love with the traditional PHP
CMS’?
Where did this talk come from?
5. • Ultimately any group of servers containing
applications and databases is a cloud
• Traditional PHP Shared hosting by <insert
you hosting provider here> is a cloud
• But these days the cloud o
ff
ers so many
more services than just a hosting platform
• Machine learning
• Secrets Management
• Storage
• CDN
• Container Management
• Virtual Machines
So what is the cloud?
6. Why are People Using the Cloud
• Depth of services
• Costs/Scalability - Pay for what you use and scale it as required
• Flexibility
• Reduced Downtime
• Great disaster recovery options
• Excellent Monitoring Capabilities
• Serverless
7. • These days people are tending towards
one of the 3 platforms:
1. AWS
✦ General Purpose, often small
business
2. Azure
✦ Often more corporate based as
more transparent on it’s security
model
3. GCP
✦ Highly data focussed - many
optimisations for large data sets &
analytics
The Modern Cloud
Source: https://start.jcolemorrison.com/understanding-modern-
cloud-architecture-on-aws-a-concepts-series/
8. • Amazon’s Off ering
• Dozens of services baked in -
but generally speaking a PHP
Environment might look like:
• VPC (Network)
• S3 (Storage)
• EC2 (Linux VM)
• RDS (MySQL)
• Route 53 (DNS)
AWS
10. For when that sounds like too much
Elastic Beanstalk
15 minutes later…
11. For when that sounds like too much
Elastic Beanstalk
Around $19 a month including a HA Database
12. Caveat
This just helps you to get a working setup in AWS this isn’t for
use in real life!!
13. • People no longer use static
con
fi
gurationfi les
• Lack of portability between
environments
• Desire to automate creation of
environments in ever simpler ways
• .env project
• Pulls in from environment
variables OR from
fi
les
• Used in most modern PHP
projects notably Laravel
• Would allow full use of Joomla in a
Beanstalk project
Modern Configuration Files
14. Quick Format Comparison
Joomla - Global
fi
le containing prod values. Values assembled from con
fi
g object as required
Laravel - .env
fi
le containing dev values, then assembled into con
fi
guration
fi
les
which in turn are loaded into a Con
fi
guration class
15. Things we can do
in core about this
https://github.com/joomla/joomla-cms/
compare/4.0-dev...wilsonge:feature/dotenv?
expand=1
16. Managing Installation/Updates
• So in summary:
• We have a Linux machine which gets destroyed and rebuilt every time we make a
new deployment from our ZIP
fi
le
• Questions Remaining:
• How do we disable use of Global Con
fi
g in the UI - these values are no longer
con
fi
gured through Joomla, but by our environment variables
• Same sort of switch required for loading our .env
fi
le for local development
• How do we manage the installation process (given all the normal form
fi
elds are
useless) - but we still need to setup our SQL DB?
• How do we manage Joomla upgrades - committing the physical
fi
les to git is
annoying
17. Automating Things
• My job is to automate the creation of resources
• In the words of a former team lead “You really hate GUI’s don’t you?”
• We’re going to use two tools for this
• AWS CLI (v2) - Installation Instructions: https://docs.aws.amazon.com/cli/latest/
userguide/install-cliv2.html
• I have authenticated to my personal AWS Account already
• JQ - JSON Parsing for Bash - https://stedolan.github.io/jq/download/
• We’re largely going to follow the tutorial documented here https://
docs.aws.amazon.com/elasticbeanstalk/latest/dg/environments-create-awscli.html
but being a bit more speci
fi
c to deploying my dummy Joomla instance
18. Automating Things
• aws elasticbeanstalk create-storage-location
• aws elasticbeanstalk create-application --application-name george-joomla-cli
• aws ec2 import-key-pair --key-name "george-primary-laptop-ssh" --public-key-
material
fi
leb://~/.ssh/id_rsa.pub
Ensure that a storage location has been setup
Create the main application (empty at this point) in Elastic Beanstalk
Setup my public ssh key into AWS for use later
19. Automating Things
• aws s3 cp build/tmp/packages/Joomla_4.0.0-beta6-dev-Development-
Full_Package.zip s3://elasticbeanstalk-eu-west-2-846108235618/test/
Joomla_4.0.0-beta6-dev-Development-Full_Package.zip
• aws elasticbeanstalk create-application-version --application-name george-
joomla-cli --version-label v1 --source-bundle S3Bucket=elasticbeanstalk-eu-
west-2-846108235618,S3Key=test/Joomla_4.0.0-beta6-dev-Development-
Full_Package.zip
Name of storage location from previous step
Path we want to drop
our data in - can be anything
we just need to remember it for
the next step!
Copy our zip that we want to deploy into the above storage location
Now upload our local copy of Joomla upstream
20. Automating Things
• aws elasticbeanstalk list-platform-versions --
fi
lters
'Type="PlatformName",Operator="contains",Values="PHP"' | grep
PlatformArn | awk -F '"' '{print $4}' | awk -F '/' '{print $2}'
• aws elasticbeanstalk create-confi guration-template --application-name
george-joomla-cli --template-name v1 --solution-stack-name "64bit Amazon
Linux 2 v3.1.3 running PHP 7.4"
Check what PHP Versions are available for us to use - Source: https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/launch-now-url.html#launch-now-url.params
21. Automating Things
• aws elasticbeanstalk create-environment --cname-pre
fi
x george-joomla-cli --
application-name george-joomla-cli --template-name v1 --version-label v1 --
environment-name v1-initial --option-settings
fi
le://options.json
Create the environment - start with a simple
con
fi
guration!
Setup networking (not required in some cases)
Required permissions for EBS to connect to our Linux Box
Ensure our Linux Box gets a public IP address so we can access
it through the browser
Ensure our SSH key can access the Linux Box
22. Automating Things
How to
fi
nd out what the magic options are?
• Google -> AWS Documentation :)
• https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/command-
options-general.html
23. Settings in your Github Repo!
• Not all options have to be con
fi
gured
in this JSON
fi
le!
• Some options can be controlled in
your GitHub repo
• Environment speci
fi
c things will
need to be on the command line still
• MySQL Database: Environment
JSON File
• Joomla Site Name: con
fi
g
fi
le in
repo
Automating Things
Source: https://github.com/aws-samples/eb-php-wordpress
24. Summary
• We setup a fully automated
Joomla environment with just 7
commands (and 1 json con
fi
g
fi
le)
• This means we can spin up our
environment in a public location
again and again (and delete it on
repeat) at will
• We also have good visibility over
the environment (in a way we
wouldn’t have on a traditional
PHP host)
Automating Things
26. … and why should you try it?
• Many people have been getting back into
CLIs
• Development with git
• Containers with docker
• Companies are making automation a
priority!
• Safety is running the same command
multiple times and always getting the
same result
• Works great as a compliment to rest APIs
Why is CLI back in Fashion?
27. • Runs outside the server (e.g.
AWS Cli)
• Allows users to manage their
data in your site (Create an
event on your events site,
editing pricing of their product
in your shop etc.)
• Generally uses a Sites API to
exchange data and will require
authentication
Client Side
Client Side vs Server Side CLI
• Runs on the server (e.g. WP-CLI,
Joomla 4 Cli)
• For managing the server (e.g.
Backups, Updates etc.)
• As it sits on the server will not
require authentication as access to
the server is the authentication
• Even can be used (e.g. Laravel
Artisan) to help you do development
work
Server Side
28. CMS Relevance?
WP CLI tool (with code
contributed by Automattic)
has over 4.3k stars on
Github - that’s more stars
than Joomla’s main
repository (3.6k)!
29. • Joomla 4 has rebuilt it’s CLI layer
(based on the Symfony library)
• Already has buy-in (and
excitement) from several major
extension providers
• Allows the automation of basic
functionality for day to day
maintenance
• Of course there’s still the
standard backend for content
creators and people who
aren’t con
fi
dent with the CLI!
Joomla 4 Server-Side CLI
30. • Most site builders have a basic
setup and set of extensions they
precon
fi
gure onto the majority of
their websites
• Imagine doing this in a single
script!
Joomla 4 Server-Side CLI
32. Are APIs relevant to a CMS?
• Yes! Many people already use them:
• e.g. Backing ups to AWS (e.g. Akeeba)
• Integrations (e.g. MailChimp)
• Google Analytics
• Payment Providers
• If you’re building a website where customers can do a level of administration (e.g.
shops where people can add their products etc. there will be demand for this!)
• There’s demand for being able to programatically con
fi
gure your website in
di
ff
erent environments!
33. What are the characteristics of a modern HTTP API?
• Language - Consistent response formats (options include JSON+LD, JSON API
etc.)
• Ability to Filter/Search for data (including sort order)
• Pagination
• Authorisation and Authentication (often OAuth)
• Good documentation (even if it’s an internal API)
• Responses to the 4 main HTTP Methods - POST and GET (like on a normal
website) as well as PUT/PATCH and DELETE
• REST is generally considered the go to these days (sometimes GraphQL for
highly nested data)
34. • Built to allow interactions with
Joomla with other mediums (e.g.
mobile to Joomla, other websites
with Joomla)
• Extendable to allow adding
custom endpoints (and therefore
users to be able to authenticate
into Joomla)
• Extendable authentication
allowing you to optimise based
on what you want to use the API
for
Joomla 4 API
35. • Open API is a method for
documenting APIs in JSON or
YAML
• Originally called swagger
before being moved to a
community managed project
• https://github.com/OAI/
OpenAPI-Speci
fi
cation
Documenting a custom API with
Open API
36. Documentation
• Various auto-documentation
sources exist for OpenAPI
fi
les
• Redoc is one of my personal
favourites
• https://github.com/Redocly/
redoc
• Simple custom element and
CSS means it is super
customisable
The Art of the Possible
37. Documentation
• Swagger Docs is also well
known
• Also used for our own Joomla
Downloads Site API
• Nice tool at editor.swagger.io
that allows you to see your
JSON File and the rendered docs
page on the same screen
The Art of the Possible
39. Advanced - SDK Generation
• All azure’s integrations with other
languages (NodeJS, PHP, Java etc)
start with an Open API File
• Then each language’s SDK is
generated
• Guarantees parity between libraries
(relevant if you have lots of API
endpoints)
• This could be useful for easy 3rd party
integrations with shops or event sites
• https://github.com/Azure/autorest
The Art of the Possible
40. • Authentication and Requests
made through the API
• CLI gives users more options
and situationally can be easier
to create automated
approaches
• API Auth token stored locally on
your computer to
fi
lesystem (e.g.
~/.aws/credentials etc).
• https://clig.dev/
Client Side CLI
https://www.contentful.com/developers/docs/tutorials/cli/
extension-management/
41. Summary
• The modern web is based around the ability to deploy quick and fast updates
(as languages evolve)
• Why? In my opinion this is due to both the increased Agile nature of
projects (especially in many digital agencies) as well as the faster paced
growth of the PHP Language/The Cloud (and frameworks taking
advantages of these new features)
• This is highly driven in many medium and large sized companies by increased
use of the CLI and API
• Increased automation has built up around this - in order to reduce the impact
of human error as they work quickly
42. Summary
• Many digital agencies have moved into the cloud to take advantage of the
managed o
ff
erings by cloud providers
• Still gains the ability to control your data (unlike Wix/Squarespace) but with
many more o
ff
erings than those given by traditional PHP Hosts
• More
fl
exibility for sites that may need a more niche service as well as
better log management
• Cost di
ff
erences do exist - but in the grand scheme of anything other than
individual sites or extremely small startups are negligible
43. Summary
• We looked at the services involved in deploying Joomla into one cloud
provider (AWS)
• We looked at the small changes that would make Joomla more in tune with
the larger PHP ecosystem and would make deploying Joomla more simple
when deploying into the cloud
• And the further work that would be required to make this realistic for
hosting Joomla services
• We looked at automating the setup of a Joomla site in a 0 to hero setup with
just 7 commands (and 1 con
fi
g
fi
le)
44. Summary
• We looked at the rise of the CLI
• We di
ff
erentiated them into server side and client side o
ff
erings and what the
di
ff
erence between them was
• We saw the already existing demand for this as a service in the CMS Marketplace
in the Wordpress CLI
• We looked into what to expect from an API
• We looked at use cases, how to document them and expose them to the clients
on your site through Open API and Swagger
• Finally are these concepts relevant to many Joomla Sites?
• Absolutely not - but they are relevant to lots of sites that fall into Joomla’s target
market too!