A talk about methods and tools to automate deployment of Plone sites. With a few steps an environment is prepared for a new Plone site on a test, staging or production layer. These steps take a couple of minutes, doing this manually took around one hour.
We use Puppet to prepare our hosts/clusters to get an environment to deploy to. Fabric is used to deploy Plone on this environment and to extend the webserver configuration under the hood. These complementary techniques provide a complete solution to get a working Plone site, including rollbacks.
Presentation by: Pawel Lewicki and Kim Chee Leong
This document provides instructions for installing various development tools on Mac OSX, including Xcode, command line tools, Homebrew, Ruby, Python, VirtualBox, Vagrant, Chef, and Ansible. It describes downloading and installing each tool, and in some cases providing additional configuration steps or notes on cleaning up existing installations. The overall purpose is to set up a standard development environment with common utilities.
Trust, but verify | Testing with Docker Containers
This presentation will dive into testing with Docker Containers
* Building Docker containers and testing with Serverspec
* Testing Docker Compose with Serverspec
* Taking advantage of Docker sibling containers to run serverspec in a container
* Running large test matrix with Serverspec
* Demonstrate using pry/pry-rescue to debug large test
The lab is available at: https://github.com/nanliu/docker-serverspec
This document discusses Node.js architecture and how software lives in hardware. It notes that Node.js uses a single-threaded, event loop model to avoid context switching and blocking I/O. This allows high throughput for operations like HTTP requests but is not optimal for long-running computations in a single thread. The document also addresses issues like callback hell and scaling event emitters, providing solutions like using promises and external queue systems. It concludes by stating Node.js is best for I/O operations, not all problems, and event loop models have existed in other frameworks before Node.js.
A quickfire rundown of concise tips designed to make your daily life with Docker better! There will be something for Docker users of all experience levels.
Test Driven Development with Puppet - PuppetConf 2014
The document discusses test driven development (TDD) approaches for Puppet modules. It recommends writing tests before code using tools like RSpec and guard. The document provides examples of unit testing Puppet code and definitions using rspec-puppet. It also discusses acceptance testing Puppet code and modules using Beaker against real systems. Overall, the document promotes writing tests for Puppet code to ensure quality and prevent regressions across different operating systems and versions.
Vagrant allows developers to easily create and manage virtual machine environments for development. It provides a simple configuration file format and CLI to automate the setup of VMs using various providers like VirtualBox, VMware, AWS, and more. Vagrant can provision VMs using tools like Chef, Puppet, Ansible and Shell scripts. It aims to allow exact clones of production environments for testing and to simplify tasks like testing infrastructure changes.
Процесс разработки не начинается и не заканчивается на написании кода программного продукта. Мы пишем документацию, придумываем, как это всё оттестировать, и заботимся о том, чтобы доступность приложения была на высоком уровне.
Мы все делаем привычные вещи привычным для нас способом. Порой выполняя много ручной и неэффективной работы. Но что, если есть другой, радикальный подход. Можно ли формализовать свою деятельность и переложить её в код? Какие практики и инструменты для этого использовать?
В докладе будет представлен личный опыт автора по автоматизации различных элементов разработки ПО.
This document discusses using infrastructure as code to automate server setup and deployment using Ansible. It outlines benefits like reducing human error, allowing developers and operations teams to work seamlessly through continuous integration and testing. Specifics of the infrastructure as code stack used are covered, including Ansible for configuration management, Docker for containers, and Vagrant for local virtual machine provisioning. Challenges and lessons learned around testing, debugging, and migrating existing systems are also presented. The overall message is that infrastructure as code takes time to implement but results in major improvements to deployment speed, reliability, and ability to rapidly iterate.
This fabric workshop aims to create a deploy tool using Fabric that can deploy code to servers defined in roles, show existing tags, change to a different tagged version, and remove tags. The agenda includes demonstrating local tasks, remote tasks using an Ansible inventory file, and functions for mkdir, cd, and uploading files. Fabric provides a simple way to automate operations across multiple servers.
Zero Downtime Deployment with Ansible - learn how to provision Linux servers with a web-proxy, a database and automate zero downtime deployment of a Java application to a load balanced environment.
These are the slides from a tutorial held at the Velocity Conference in Barcelona November 19th, 2014.
Git repo: https://github.com/steinim/zero-downtime-ansible
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
This document summarizes the results of performance tests conducted on a Magento 2 store using different PHP versions and configurations. The tests measured the transaction rate, number of transactions, and response time of Magento 2 using PHP 5.6 alone, PHP 5.6 with Varnish, PHP 7 alone, and PHP 7 with Varnish. The main findings were that PHP 7 significantly outperformed PHP 5.6, and that adding Varnish provided major improvements when combined with both PHP 5.6 and PHP 7, especially in terms reducing response times.
This document provides an overview of how to write Node.js modules. It discusses writing modules in JavaScript and C/C++, loading modules, publishing modules to the NPM registry, and some advanced topics like handling arguments and creating classes. The key points covered are:
- Modules can be written in JavaScript or C/C++ and exported via module.exports.
- Modules are loaded using require() and can be either core or third-party modules.
- Publishing a module to NPM involves initializing a package, uploading the files to the registry, and adding a main entry point.
- Advanced topics include getting arguments in C/C++ modules, understanding JavaScript types, and creating classes with
This document discusses experimenting with cgroups in Docker containers to isolate processes. It describes installing Docker, launching an Ubuntu container with capabilities enabled, and installing cgroup tools. It then mounts the cpuset and cpu cgroup hierarchies and creates low and high cgroups. Different CPU shares are assigned to each cgroup and processes are run in each to demonstrate the CPU isolation between cgroups.
NPM scripts allow developers to run predefined scripts at different stages of installing, publishing, and interacting with packages. These scripts are defined in the package.json file under the "scripts" key. Common script names include preinstall, install, postinstall, prepublish, publish, and postpublish. NPM versioning follows semantic versioning principles where versions are denoted as MAJOR.MINOR.PATCH. Dependencies can specify version ranges like tilde (~), caret (^), and hyphen (-) to control updates. Private NPM repositories and shrinkwrapping help ensure reproducible builds across environments. Scoped packages allow publishing packages under a unique namespace.
My talk will cover how to work with a large C++ code base professionally. How to write code for debuggability, how to work effectively even due the long C++ compilation times, how and why to utilize the STL algorithms, how and why to keep interfaces clean. In addition, general convenience methods like making wrappers to make the code less error prone (for example ranged integers, listeners, concurrent values). Also a little bit about common architecture patterns to avoid (virtual classes), and patterns to encourage (pure functions), and how std::function/lambda functions can be used to make virtual classes copyable.
Workshop about responsive web design (RWD), given on 13 Februari 2013. This is a presentation about how to create a responsive website. Different tools and libraries which are used for RWD are covered
Examples used in the workshop can be found here:
https://github.com/Goldmund-Wyldebeast-Wunderliebe/rwd-workshop
Buildout is a build tool for Python projects. It's a self-contained environment which manages depencies for a project, install/configure software components and create repeatable DTAP enviroments.
Essential Plone development tools - Plone conf 2012
Slides for the talk given at Plone Conference 2012. In the following collective package further explaination can be found about the tools discussed: https://github.com/collective/collective.exampledevtools
Vagrant allows users to configure and manage virtual machine environments through files and commands. It uses configuration files to define VMs and provisioning tools to automate software installation. Key features include:
- Managing virtual machines from a Vagrantfile configuration
- Provisioning VMs through tools like Chef and Ansible
- Accessing VMs through SSH using the vagrant command
- Installing plugins to add functionality like AWS integration
Puppet User Group Presentation - 15 March 2012Walter Heck
The document discusses a puppet user group meeting in Kuala Lumpur, Malaysia. It introduces OlinData, a company that provides Puppet consulting and training services, and discusses how Puppet can help automate server configuration management compared to manual methods. Future plans are outlined for Puppet training in Southeast Asia through OlinData and an upcoming Puppet user group meetup.
Ansible is an IT automation tool that can provision and configure servers. It works by defining playbooks that contain tasks to be run on target servers. Playbooks use YAML format and modules to automate configuration changes. Vagrant and Ansible can be integrated so that Ansible playbooks are run as part of the Vagrant provisioning process to automate server setup. The document provides an introduction and examples of using Ansible playbooks with Vagrant virtual machines to install and configure the Apache HTTP server.
This document provides instructions for installing various development tools on Mac OSX, including Xcode, command line tools, Homebrew, Ruby, Python, VirtualBox, Vagrant, Chef, and Ansible. It describes downloading and installing each tool, and in some cases providing additional configuration steps or notes on cleaning up existing installations. The overall purpose is to set up a standard development environment with common utilities.
Trust, but verify | Testing with Docker ContainersNan Liu
This presentation will dive into testing with Docker Containers
* Building Docker containers and testing with Serverspec
* Testing Docker Compose with Serverspec
* Taking advantage of Docker sibling containers to run serverspec in a container
* Running large test matrix with Serverspec
* Demonstrate using pry/pry-rescue to debug large test
The lab is available at: https://github.com/nanliu/docker-serverspec
This document discusses Node.js architecture and how software lives in hardware. It notes that Node.js uses a single-threaded, event loop model to avoid context switching and blocking I/O. This allows high throughput for operations like HTTP requests but is not optimal for long-running computations in a single thread. The document also addresses issues like callback hell and scaling event emitters, providing solutions like using promises and external queue systems. It concludes by stating Node.js is best for I/O operations, not all problems, and event loop models have existed in other frameworks before Node.js.
A quickfire rundown of concise tips designed to make your daily life with Docker better! There will be something for Docker users of all experience levels.
Test Driven Development with Puppet - PuppetConf 2014Puppet
The document discusses test driven development (TDD) approaches for Puppet modules. It recommends writing tests before code using tools like RSpec and guard. The document provides examples of unit testing Puppet code and definitions using rspec-puppet. It also discusses acceptance testing Puppet code and modules using Beaker against real systems. Overall, the document promotes writing tests for Puppet code to ensure quality and prevent regressions across different operating systems and versions.
Vagrant allows developers to easily create and manage virtual machine environments for development. It provides a simple configuration file format and CLI to automate the setup of VMs using various providers like VirtualBox, VMware, AWS, and more. Vagrant can provision VMs using tools like Chef, Puppet, Ansible and Shell scripts. It aims to allow exact clones of production environments for testing and to simplify tasks like testing infrastructure changes.
Процесс разработки не начинается и не заканчивается на написании кода программного продукта. Мы пишем документацию, придумываем, как это всё оттестировать, и заботимся о том, чтобы доступность приложения была на высоком уровне.
Мы все делаем привычные вещи привычным для нас способом. Порой выполняя много ручной и неэффективной работы. Но что, если есть другой, радикальный подход. Можно ли формализовать свою деятельность и переложить её в код? Какие практики и инструменты для этого использовать?
В докладе будет представлен личный опыт автора по автоматизации различных элементов разработки ПО.
This document discusses using infrastructure as code to automate server setup and deployment using Ansible. It outlines benefits like reducing human error, allowing developers and operations teams to work seamlessly through continuous integration and testing. Specifics of the infrastructure as code stack used are covered, including Ansible for configuration management, Docker for containers, and Vagrant for local virtual machine provisioning. Challenges and lessons learned around testing, debugging, and migrating existing systems are also presented. The overall message is that infrastructure as code takes time to implement but results in major improvements to deployment speed, reliability, and ability to rapidly iterate.
This fabric workshop aims to create a deploy tool using Fabric that can deploy code to servers defined in roles, show existing tags, change to a different tagged version, and remove tags. The agenda includes demonstrating local tasks, remote tasks using an Ansible inventory file, and functions for mkdir, cd, and uploading files. Fabric provides a simple way to automate operations across multiple servers.
Zero Downtime Deployment with Ansible - learn how to provision Linux servers with a web-proxy, a database and automate zero downtime deployment of a Java application to a load balanced environment.
These are the slides from a tutorial held at the Velocity Conference in Barcelona November 19th, 2014.
Git repo: https://github.com/steinim/zero-downtime-ansible
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and VarnishYireo
This document summarizes the results of performance tests conducted on a Magento 2 store using different PHP versions and configurations. The tests measured the transaction rate, number of transactions, and response time of Magento 2 using PHP 5.6 alone, PHP 5.6 with Varnish, PHP 7 alone, and PHP 7 with Varnish. The main findings were that PHP 7 significantly outperformed PHP 5.6, and that adding Varnish provided major improvements when combined with both PHP 5.6 and PHP 7, especially in terms reducing response times.
This document provides an overview of how to write Node.js modules. It discusses writing modules in JavaScript and C/C++, loading modules, publishing modules to the NPM registry, and some advanced topics like handling arguments and creating classes. The key points covered are:
- Modules can be written in JavaScript or C/C++ and exported via module.exports.
- Modules are loaded using require() and can be either core or third-party modules.
- Publishing a module to NPM involves initializing a package, uploading the files to the registry, and adding a main entry point.
- Advanced topics include getting arguments in C/C++ modules, understanding JavaScript types, and creating classes with
This document discusses experimenting with cgroups in Docker containers to isolate processes. It describes installing Docker, launching an Ubuntu container with capabilities enabled, and installing cgroup tools. It then mounts the cpuset and cpu cgroup hierarchies and creates low and high cgroups. Different CPU shares are assigned to each cgroup and processes are run in each to demonstrate the CPU isolation between cgroups.
NPM scripts allow developers to run predefined scripts at different stages of installing, publishing, and interacting with packages. These scripts are defined in the package.json file under the "scripts" key. Common script names include preinstall, install, postinstall, prepublish, publish, and postpublish. NPM versioning follows semantic versioning principles where versions are denoted as MAJOR.MINOR.PATCH. Dependencies can specify version ranges like tilde (~), caret (^), and hyphen (-) to control updates. Private NPM repositories and shrinkwrapping help ensure reproducible builds across environments. Scoped packages allow publishing packages under a unique namespace.
How to make a large C++-code base manageablecorehard_by
My talk will cover how to work with a large C++ code base professionally. How to write code for debuggability, how to work effectively even due the long C++ compilation times, how and why to utilize the STL algorithms, how and why to keep interfaces clean. In addition, general convenience methods like making wrappers to make the code less error prone (for example ranged integers, listeners, concurrent values). Also a little bit about common architecture patterns to avoid (virtual classes), and patterns to encourage (pure functions), and how std::function/lambda functions can be used to make virtual classes copyable.
Workshop about responsive web design (RWD), given on 13 Februari 2013. This is a presentation about how to create a responsive website. Different tools and libraries which are used for RWD are covered
Examples used in the workshop can be found here:
https://github.com/Goldmund-Wyldebeast-Wunderliebe/rwd-workshop
Buildout is a build tool for Python projects. It's a self-contained environment which manages depencies for a project, install/configure software components and create repeatable DTAP enviroments.
Essential Plone development tools - Plone conf 2012Kim Chee Leong
Slides for the talk given at Plone Conference 2012. In the following collective package further explaination can be found about the tools discussed: https://github.com/collective/collective.exampledevtools
Responsive webdesign presentatie - Nederlandse Plone gebruikersdag 2012Kim Chee Leong
This document discusses responsive web design, which involves making websites render well on a variety of devices and screen sizes. It recommends using a flexible grid layout with fluid fonts and margins, CSS3 media queries, and responsive add-ons for older browsers. It provides links to resources on responsive web design techniques and testing tools to help designers get started with this approach.
Automating your build process with Continuous Integration is certainly a great idea, but why stop there? Why not go the whole nine yards and automate the deployment process as well? Staging and production deployments are typically more complicated and more involved than a simple development deployment, but doing them by hand can be time-consuming, tricky and error-prone. Indeed, turning your staging and production deployments into a one-click affair has a lot going for it.
Deze presentatie is gegevens tijden de Arduino Workshop. De workshop is georganiseerd door startupkid.nl (een samenwerking van Goldmund, Wyldebeast & Wunderliebe en De Jonge Onderzoekers).
Capistrano deploy Magento project in an efficient waySylvain Rayé
Deploying a Magento project can be very a long and laborious task with some risks of errors. Having the good tool to prevent such a pain like Capistrano will help you to automatize such a process. Thanks such a tool you may deploy a release of your Magento project in less than 5 minutes.
Krux operates a large infrastructure serving thousands of user requests per second. They use Puppet and tools like Cloudkick, Foreman, Boto, and Vagrant to manage their infrastructure in an automated and scalable way. Their Puppet configuration is split into modules, environments, and datacenters. They launch AWS nodes programmatically and configure them with Puppet. Cloudkick is used for monitoring and parallel SSH. Boto allows full Python API access to AWS. Vagrant allows consistently provisioning development machines locally. Automation and external configuration enable their small operations team to manage a large, dynamic infrastructure.
Kris Buytaert discusses how they used Vagrant, Puppet, and other tools to improve their Puppet development and testing workflow. Some key points:
- Vagrant allows creating reproducible development environments for Puppet code.
- Puppet style guides help write more readable manifests. Tools like Puppet Lint can validate style.
- Testing Puppet code with rspec-puppet, cucumber-puppet, and other tools helps prevent errors.
- Using Git, GitHub, and Git flow practices helps manage Puppet modules in version control.
- Jenkins can automate building, testing, and deploying Puppet code and modules.
- Demonstr
Puppet Camp Chicago 2014: Docker and Puppet: 1+1=3 (Intermediate)Puppet
This document discusses Docker and Puppet and how they can be used together. It describes how Puppet can be used to install and configure Docker on a system and then how Dockerfiles can be used to build container images. However, it notes that using Puppet to build container images directly is not recommended and describes alternatives like using Puppet during the build process to configure "golden images" and then deploying them. It suggests approaches like running services externally to containers and using data containers to optimize container usage.
OSDC.no 2015 introduction to node.js workshopleffen
This document provides a short introduction to Node.js, Express, and MQTT for IoT applications. It discusses using Node.js and its non-blocking I/O model on devices like the Raspberry Pi. It then demonstrates setting up a basic Express app, adding static files and templates. Finally, it introduces MQTT as a lightweight protocol for IoT with publish/subscribe messaging and shows a simple example of connecting and publishing with the MQTT Node.js client library.
How Puppet Enables the Use of Lightweight Virtualized Containers - PuppetConf...Puppet
The document summarizes how Puppet can be used to enable lightweight virtualized containers by configuring applications and their dependencies into immutable container images during the build process. It compares deploying a Jenkins application with LDAP authentication on virtual machines versus containers. It discusses challenges with service resources in containers and provides solutions like overriding service resources or using multi-process images with systemd to build immutable Puppet-configured application images.
This document discusses puppetizing complex applications like sipXecs, an open source voice over IP telephony server. It provides an overview of Puppet and how it can be used to deploy and configure sipXecs in a repeatable, automated way. Challenges with the existing sipXecs installation and configuration are discussed. The document explores potential approaches like using test frameworks and APIs but concludes there is no perfect solution yet and engagement with upstream suppliers may be needed.
How to go the extra mile on monitoringTiago Simões
This document provides instructions for monitoring additional metrics from clusters and applications using Grafana, Prometheus, JMX, and PushGateway. It includes steps to export JMX metrics from Kafka and NiFi, setup and use PushGateway to collect and expose custom metrics, and create Grafana dashboards to visualize the metrics.
This document summarizes a presentation about integrating the configuration management tool Puppet with the cloud computing platform CloudStack. The key points are:
1) Puppet is configured to provision virtual machines launched in CloudStack without requiring manual intervention or Puppet's auto-signing certificate feature, which poses a security risk.
2) User data passed to instances at launch is used to dynamically set Puppet facts like role and environment without needing separate node definitions.
3) Cleanup scripts remove nodes from Puppet's database and monitoring systems when their corresponding virtual machines in CloudStack are terminated to avoid alerting on missing hosts.
This document discusses challenges with configuring and managing third-party applications like SIPXecs using existing tools. It explores options like screen scraping, test frameworks like Cucumber and Selenium, but notes issues with reliability as GUIs change. The document concludes that no good solution exists yet and suggests talking to vendors, being patient, and setting a good example. It asks how the reader would solve the problem of needing an API or reliable way to configure applications without extensive manual effort.
TensorFlow can be installed and run in a distributed environment using Docker. The document discusses setting up TensorFlow workers and parameter servers in Docker containers using a Docker compose file. It demonstrates building Docker images for each role, and configuring the containers to communicate over gRPC. A Jupyter server container is also built to host notebooks. The distributed TensorFlow environment is deployed locally for demonstration purposes. Future directions discussed include running the distributed setup on a native cluster using tools like Docker Swarm or RancherOS, and testing TensorFlow with GPU support in Docker.
This document discusses Ansible, an open-source automation tool. It provides an overview of Ansible's capabilities including configuration management, orchestration, deployment and more. It also summarizes Ansible Tower which adds centralized control, RBAC, and other features to Ansible. Examples are given of using Ansible playbooks to automate tasks like installing and configuring Apache on Linux hosts and using Ansible modules to configure network devices.
The document discusses using Puppet and Vagrant together to create a test environment for infrastructure configuration. Vagrant allows setting up and provisioning virtual machines quickly, while Puppet configures the desired state of systems. The demo project uses Vagrant to launch a CentOS virtual machine and Puppet to configure it based on roles like webserver or database.
This document summarizes Deepak Garg's presentation on Fabric and app deployment automation. Fabric allows defining Python functions to automate system administration and deployment tasks across multiple servers. Example functions showed provisioning VMs, installing packages, deploying code, and more. Fabric offers commands to run commands remotely, upload/download files, and decorators to define server groups and task properties. The goals of Fabric include testing infrastructure, deploying and scaling apps across identical environments, and making systems administration tasks Pythonic and automated.
1. The document discusses moving from a Dev to DevOps model by addressing issues like siloization between development and operations teams and embracing concepts like infrastructure as code.
2. It recommends several DevOps tools for infrastructure automation including Puppet, Vagrant, and VeeWee which allow developers to define infrastructure in code and provision environments.
3. The Puppet Domain Specific Language (DSL) is demonstrated for declaring resources like users, files, packages, and services with attributes and relationships between them in a declarative way.
This talk will focus on a brief overview of Kubernetes, with a brief demo, and then more of an in-depth focus on issues we've faced moving PHP projects into Docker and Kubernetes like signal propagation, init systems, and logging.
Talk from Cape Town PHP meetup on Feb. 7, 2016:
https://www.meetup.com/Cape-Town-PHP-Group/events/237226310/
Code: https://github.com/zoidbergwill/kubernetes-php-examples
Slides as markdown: http://www.zoidbergwill.com/presentations/2017/kubernetes-php/index.md
Moving from Jenkins 1 to 2 declarative pipeline adventuresFrits Van Der Holst
T-Dose 2017 presentation, Sunday 19 November 2017. Adventures building a declarative pipeline script for a traditional (non-java/non-cloud) installable windows/Linux application. Video will hopefully be available later.
Break data silos with real-time connectivity using Confluent Cloud Connectorsconfluent
Connectors integrate Apache Kafka® with external data systems, enabling you to move away from a brittle spaghetti architecture to one that is more streamlined, secure, and future-proof. However, if your team still spends multiple dev cycles building and managing connectors using just open source Kafka Connect, it’s time to consider a faster and cost-effective alternative.
An MVP (Minimum Viable Product) mobile application is a streamlined version of a mobile app that includes only the core features necessary to address the primary needs of its users. The purpose of an MVP is to validate the app concept with minimal resources, gather user feedback, and identify any areas for improvement before investing in a full-scale development. This approach allows businesses to quickly launch their app, test its market viability, and make data-driven decisions for future enhancements, ensuring a higher likelihood of success and user satisfaction.
React Native vs Flutter - SSTech SystemSSTech System
Your project needs and long-term objectives will ultimately choose which of React Native and Flutter to use. For applications using JavaScript and current web technologies in particular, React Native is a mature and trustworthy choice. For projects that value performance and customizability across many platforms, Flutter, on the other hand, provides outstanding performance and a unified UI development experience.
Responsibilities of Fleet Managers and How TrackoBit Can Assist.pdfTrackobit
What do fleet managers do? What are their duties, responsibilities, and challenges? And what makes a fleet manager effective and successful? This blog answers all these questions.
Ansys Mechanical enables you to solve complex structural engineering problems and make better, faster design decisions. With the finite element analysis (FEA) solvers available in the suite, you can customize and automate solutions for your structural mechanics problems and parameterize them to analyze multiple design scenarios. Ansys Mechanical is a dynamic tool that has a complete range of analysis tools.
What is OCR Technology and How to Extract Text from Any Image for FreeTwisterTools
Discover the fascinating world of Optical Character Recognition (OCR) technology with our comprehensive presentation. Learn how OCR converts various types of documents, such as scanned paper documents, PDFs, or images captured by a digital camera, into editable and searchable data. Dive into the history, modern applications, and future trends of OCR technology. Get step-by-step instructions on how to extract text from any image online for free using a simple tool, along with best practices for OCR image preparation. Ideal for professionals, students, and tech enthusiasts looking to harness the power of OCR.
COMPSAC 2024 D&I Panel: Charting a Course for Equity: Strategies for Overcomi...Hironori Washizaki
Hironori Washizaki, "Charting a Course for Equity: Strategies for Overcoming Challenges and Promoting Inclusion in the Metaverse", IEEE COMPSAC 2024 D&I Panel, 2024.
Are you wondering how to migrate to the Cloud? At the ITB session, we addressed the challenge of managing multiple ColdFusion licenses and AWS EC2 instances. Discover how you can consolidate with just one EC2 instance capable of running over 50 apps using CommandBox ColdFusion. This solution supports both ColdFusion flavors and includes cb-websites, a GoLang binary for managing CommandBox websites.
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdfonemonitarsoftware
WhatsApp Tracker Software is an effective tool for remotely tracking the target’s WhatsApp activities. It allows users to monitor their loved one’s online behavior to ensure appropriate interactions for responsive device use.
Download this PPTX file and share this information to others.
WhatsApp Tracker - Tracking WhatsApp to Boost Online Safety.pdf
Plone deployment made easy
1. Plone deployment
made easy
Pawel Lewicki
Kim Chee Leong
Goldmund, Wyldebeast & Wunderliebe
{ lewicki, leong } @gw20e.com
2. Outline
● From manual to automatic deployment
● How Puppet and Fabric are used for
deployment
● Deployment demo in screencast
● Puppet server orchestration
● Fabric in detail
3. From manual to
automatic deployment
our path to automatic deployment
4. Typical Plone release
@GWW
● Mark eggs/modules using git tag
● Update mr developer sources with tag
● SSH to server
● Clone new buildout in releases directory
● Bootstrap buildout and execute
● Switch previous release to new release
● If on a cluster set-up, rinse and repeat
5. Plone release @GWW
using Fabric
● All previous steps in one Fabric script
● Allows ‘dummy-proof’ releases
Run:
fab make_tag
fab deploy
fab switch
And Bob is your uncle!
7. Why automatic
deployment?
● Avoid repetitive tasks
● Error-proof
● Immune to typo’s
● Consistent environments
● Time efficient
8. Why automatic
deployment?
● Avoid repetitive tasks
● Error-proof
● Immune to typo’s
● Consistent environments
● Time efficient
nothing* should be done manually
on the server
10. Initial server setup with
Puppet
● Puppet is used for server orchestration
● Puppet prepares the servers
● When Puppet is done, Fabric is used to
deploy buildouts
12. Buildout deployment with
Fabric
● Uses tst, acc and prd layers
● Knows configuration for buildout
● Deploys and runs buildouts
● Does several other tasks
17. Puppet tasks
● User accounts for TAP environments:
o app-mysite-prd in /opt/APPS/mysite/prd
o app-mysite-acc in /opt/APPS/mysite/acc
o app-mysite-tst in /opt/APPS/mysite/tst
● Webserver config is mapped to each
application user
$ cat /etc/apache2/sites-enabled/zzz-app-mysite-prd
Include /opt/APPS/mysite/prd/sites-enabled/
● SSH Keys of developers are synced
● Buildout cache is enabled
19. Plone Fabric features
● Automatic deployment
● Push buildout config using jinja templates
● Extended TAP-layers
● Switching between releases
● But also; supports git branches, virtual host
for webserver, copying zodb to local
buildout.
20. Release switch using
Fabric
1. Update current symlink
rm -f ~/current
ln -s ~/releases/20141028 ~/current
1. Start supervisor daemon in new buildout
~/releases/20141028/bin/supervisord
1. For each service in supervisor:
a. Stop service in old buildout
b. Start service in new buildout
2. Shutdown supervisor in old buildout
~/releases/20130101/bin/supervisorctl shutdown
21. ● Fabric is controlled from the local buildout:
./bin/fab -l
Available commands:
deploy Create new buildout in release dir
switch Switch supervisor to latest buildout
test Test if the connection is working
● Deploying to test environment:
./bin/fab deploy:layer=tst,branch=new-feature
In this talk we’ll explain how we automated the deployment of Plone sites and which tools are used.
Gradually we made the moved from manual deployment to automatic.
Shared experience with Django deployments
Ask who deploys Plone buildouts for a customer, company or organisation?
First explain how our typical Plone setup looks like.
Collection of building blocks, based on best practices.
We have ours, you probably have yours.
Cluster, buildout-template with varnish and TAP
What is a release?
Modules with specific functionality, such as content/theme
Mr developer specific from prd env
In the past we used eggs
Explain how we used the release checklist/procedure at our customer
This is much easier :]
Ofcourse first release on test and acc, too weed out possible problems
Accurate depiction
Start automating tasks you’re familiar with
Releases are not happening often! Possibly mention release calendar
Repetitive tasks: it easy to mess up when doing a rep. task
Error-proof: you should have encountered possible errors on tst and acc
Typo’s and consistent env: with automatic deployment. naming git tags and dirs is done for you. manual..
Time efficient: in the long run you’ll save time
next slide contains “nothing* should be done manually on the server”
nothing should be done using SSH shell except for debugging purposes
Fabric is the base of our automatic deployment, but there is more… (ba dum tss)
Puppet is one way todo server orchestration, Chef and Ansible are popular tools.
Also used to setup server monitoring and do system upgrades
Written in Ruby, reasonable easy to write modules. Many modules available.
No SSH login, uses separate agen
Agents update periodalcialy
Why are we using seperate user accounts?
Webserver config is managable
Buildout cache is enabled per user
Explain why Puppet should not be used to deploy buildouts. It should be explicit.
Use SSH forward agent to git clone repositories on remote server
Why are we using seperate user accounts?
Webserver config is managable
Buildout cache is enabled per user
What is missing here?
Why are we using seperate user accounts?
Webserver config is managable
Buildout cache is enabled per user
Also explain why Puppet should not be used to deploy buildouts
Also explain why Puppet should not be used to deploy buildouts
Supervisor is socket based
Explain production setup; three tier architecure
fe with apache, varnish and haproxy
be with ZODB