Assurer is a server testing and monitoring framework that allows configuring tests, notifications, formatting, and publishing of results using plugins. It uses a plugin architecture and YAML configuration to make it easy to add new tests and change outputs. Tests are run in parallel and results can be filtered and published to various outputs like terminals, email, and files. It aims to be similar to Plagger but also cover monitoring use cases.
Learn how to use Capistrano to automate the deployment of your Ruby on Rails applications. Apply best practices and add-ons for customizing Capistrano.
The document discusses different approaches for implementing server push in Flask including polling, long polling, server sent events, and websockets. It provides details on each approach, including their advantages and disadvantages. It also provides an example chatroom application that demonstrates each approach.
The document discusses designing a Perl module called Net::AWS::Glacier for interacting with Amazon Glacier, a cloud storage service. It proposes a two-level design with a low-level API module that mirrors the Glacier API and a high-level module that provides a more object-oriented interface. The high-level module would use a "Vault" object to manage downloads and access to archive data, hiding low-level details like iterating through job lists. An inheritance-based approach is described where derived classes can customize initialization while reusing a common object structure and initialization logic.
For many years Capistrano has been the defacto deployment tool, but many organisations have yet to realise the benefits of automating their deployment process. Automated Deployments are fast, less error prone, easier to rollback and you can dish out the keys to other team members so anyone can deploy. During this talk we’ll look at how to “capify” a simple PHP project and deploy it in a few minutes. And, as Capistrano is a “remote server automation and deployment tool”, we’ll also look at some of the other things Capistrano can do for you such as restarting apache or grepping server log (and more). We’ll also take a look at the various plug-ins available and see how easy it can be to write your own. If you are deploying using ssh / git pull / apache restart? Then it’s time to make a change: automate all the things and live in a world of “repeatable success”.
This document provides instructions for deploying a Rails application using Capistrano. It includes steps to set up Capistrano, configure the deploy.rb file, generate SSH keys, add the deploy key to GitHub, run Capistrano tasks to deploy the application, and make subsequent deploys when code changes. The application is deployed to a server at 192.168.255.54 running Mongrel and uses Git for version control.
Performance benchmarks are all too often inaccurate. This talk introduces some things to look for in setting up and running benchmarks to make them effective.
perl often doesn't get updated because people don't have a way to know if their current code works with the new one. The problem is that they lack unit tests. This talk describes how simple it is to generate unit tests with Perl and shell, use them to automate solving problems like missing modules, and test a complete code base.
Short introduction to the basics of Perl testing and some resources for further reading. Includes basics of Test::Simple, Test::More, using Inline for multi-language testing, testing coverage, testing tests.
In this talk we will present a middleware async architecture based on Expressive and Swoole to speed up web API development and runtime in PHP. Using this approach, you will be able to achieve great performance improvement, up to 4x faster than nginx or Apache (benchmark).
- PSGI (Perl Web Server Gateway Interface) and Plack provide a common interface and utilities for building web applications and servers in Perl. - PSGI defines a standard interface that web frameworks can implement to work with different server implementations. Plack provides server implementations like standalone, FastCGI and Apache modules. - This allows frameworks to focus on the application code instead of server specifics, and servers to handle multiple frameworks. Common middleware and testing utilities are also included. - Examples of frameworks that have adopted PSGI include Catalyst, Maypole and Mojolicious. Popular servers built on Plack include Starman and Dancer.
PowerShell is a rich and powerful automation language. Due to its self describing nature it's also dead easy to learn.
This document discusses using Python and related libraries to remotely control and manage multiple virtual machines. It recommends using PySphere and related tools to connect to VMWare servers, power on/off VMs, create snapshots, execute commands and programs on VMs, and more. The document provides instructions for setting up the necessary Python environment and configuring connections to VMWare servers. It also includes code examples for performing basic tasks like connecting to a VM, managing snapshots, running long-running tasks asynchronously, and executing programs on VMs with graphical interfaces.
This document contains test code for testing a Perl module called App::Zamakist. It shows the directory structure of the module with lib/ and t/ directories. It then shows the test workflow: installing dependencies with cpanm, building the module with Makefile.PL and make, and running tests with prove. This provides a high-level overview of how this Perl module is being tested in an automated way.
This is a revamped Asynchronous Programming FTW talk, given at YAPC::NA 2013, Cluj.pm, and AmsterdamX.pm.
This document provides a taxonomy and survey of Ruby HTTP client libraries. It discusses several popular client libraries like HTTParty, Faraday, Net::HTTP, Rest-Client and Typhoeus. The survey found HTTParty and Faraday to be the most popular based on stars. It also provides code samples for making requests with some of the top libraries.
This document discusses asynchronous programming and avoiding race conditions. It covers how asynchronous actions allow the main program flow to continue processing without blocking on I/O. It also discusses how asynchronous programming works with callbacks and promises rather than sequential execution. It provides examples of using libraries like Async to control asynchronous flows and common pitfalls to avoid like double callbacks and unexpected asynchronous behavior.
Flask is a micro web development framework for Python that keeps its core simple but allows for extensibility. It emphasizes building applications with extensions rather than having all functionality contained within the framework. A minimal Flask app requires only a few lines of code and runs a development server. Templates can be rendered to generate dynamic HTML content by passing context through the render_template function. Flask supports common features like request handling, cookies, sessions, and file uploads through extensions.
社内勉強会で発表した資料です。 serverspecの基本から属性値の管理、カスタマイズ方法まで紹介しています。 ※2013/8/14 version 0.7.8時点の情報なので注意
2017/3/31 Tech-Cirlce Itamae&Serverspecの会でのLT資料。
2016.3.10 OSSコンソーシアム クラウド部会主催 「開発エンジニアのためのインフラ勉強会」資料。 http://eventdots.jp/event/581726 Serverspecの入門的な資料です。
Serverspecを使ってサーバ5000台のBaculaクライアントを簡単にテストする手順書です。 Ansibleなどの構成管理ツールを使って自動で簡単に設定したサーバ群のテストに活用できます。 もちろん構成管理ツールを使っていない手動設定もテスト可能です。
Introduction: How to use Unit Testing (TDD) and Behaviour Testing (BDD) for Wordpress, building a Continuous Integration workflow.
For the last few months we've been implementing a Continuous Delivery pipeline for the redesign of Time Out. In this talk I will demonstrate a real life example of what our pipeline looks like, the different tools we've used to get it done (phing, github, jenkins, ansible, AWS S3, ...), and peculiarities for PHP and Symfony2 projects. Most importantly, I'll be looking at things we've struggled with along the way and the lessons we've learnt.
The document discusses automating software deployment using Ansible. It provides an overview of Ansible's basic concepts like inventory files to define hosts, playbooks to execute tasks on hosts, and roles to bundle related tasks. It then discusses using Ansible roles to automate deployments, including the ansistrano roles which can deploy applications by copying files, managing releases, and supporting deployment hooks. Overall the document presents Ansible as a way to easily automate and standardize software deployment processes.
Performance and Scalability Testing with Python and Multi-Mechanize. visit http://multimechanize.com
The document discusses continuous delivery and building a continuous delivery pipeline. It begins with an overview of continuous delivery, describing the basic steps of commit, build, test, and deploy. It then covers the tools used to build the pipeline, including GitHub and Jenkins plugins. The document outlines the process for building the pipeline, including checking out code, installing dependencies, running tests, generating assets, and deploying artifacts. It also discusses splitting the process into separate jobs for testing deployment scripts and running automated tests. Finally, it covers benefits of continuous delivery such as increased release frequency, reduced risk, and releases becoming a non-event.
This document summarizes how to test Java web applications on mobile devices using Arquillian and Selenium. It describes setting up Android emulators, configuring the Arquillian extension for AndroidDriver, and writing sample unit and functional tests for a mobile web application using Page Object Model patterns and the WebDriver API. Tips are provided for debugging tests, capturing screenshots on failure, and integrating tests with Jenkins.
This document summarizes a presentation on using Vagrant for development. The presentation covers motivation for using Vagrant, basic Vagrant usage, provisioning Vagrant machines with Chef cookbooks, and creating custom base images with Packer. The agenda includes an introduction to Vagrant, demonstrating common Vagrant commands, modifying Vagrantfiles to configure VMs, provisioning VMs with Chef recipes, and using Packer to build reusable base images.
The document discusses performance testing of an API server. It provides details on: 1) Preparing for performance testing by generating test data and configuring tools like Artillery to simulate user traffic. 2) Conducting the performance tests on different server configurations to identify bottlenecks, including testing with different Node.js versions. 3) Analyzing the results of the performance tests by profiling requests and examining response times to further optimize the server performance.
This document discusses how to ensure Presto scalability in multi-use case environments. It describes how Treasure Data uses Prestobase Proxy, a Finagle-based RPC proxy, to provide a scalable interface for BI tools. It also discusses Presto's node scheduler for distributing query stages across nodes and Treasure Data's use of resource groups to limit resource usage and isolate queries. The document advocates for approaches like dependency injection, VCR testing, and multi-dimensional resource scheduling to make Presto and its components reliable in distributed systems.
The document discusses various techniques for testing large, distributed systems beyond traditional unit testing. It recommends embracing virtualization to simulate production environments and deploying applications and tests across multiple virtual machines. Various tools are presented to help with distributed, automated testing including Cactus for in-container testing, Selenium and jsUnit for browser testing, and SmartFrog as a framework for describing, deploying and managing distributed service components and tests. The document calls for a focus on system-level tests that simulate the full production environment and integrate testing across distributed systems.
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.
Slides from presentation: "Revoke-Obfuscation: PowerShell Obfuscation Detection (And Evasion) Using Science" originally released at Black Hat USA 2017 & DEF CON by @danielhbohannon and @Lee_Holmes. For more information: http://www.danielbohannon.com/presentations/
Codeception is a testing framework that allows testing at multiple levels: acceptance, functional, and unit. It provides bundled actions and assertions to make testing easier. Codeception tests can be run with PHPBrowser, which uses a PHP scraper, or Selenium WebDriver to test in a real browser. Modules in Codeception encapsulate common testing actions and reduce the need to rewrite test code.
An overview on the benefits and best practices of using SaltStack for consistency and automation in highly available enterprise environments such as financial services.
Starting unit testing on a project can seem like a daunting task, and earning team and leadership buy-in can be challenging. We'll walk-through setup with composer, creating the first test, restructuring existing classes with dependency injection to allow unit testing, and releasing code confidently with test coverage. We'll also discuss overcoming common biases, unit testing challenges, and shortcomings of unit testing. Watch the presentation at https://www.youtube.com/watch?v=6v4_bEajDUk
The document discusses problems with using curl commands for interacting with AEM APIs and proposes using OpenAPI specification and generated API clients as a better solution. It outlines issues like inconsistent response formats, unreliable status codes, and lack of error handling with curl. The proposed solution is to define AEM endpoints in OpenAPI format and generate API clients in various languages like Ruby, Python, and Java. These clients provide response objects, better error handling, and easier integration with different technologies compared to curl commands. Use cases like Puppet modules for AEM configuration management are discussed.
AWS Lambda has changed the way we deploy and run software, but this new serverless paradigm has created new challenges to old problems - how do you test a cloud-hosted function locally? How do you monitor them? What about logging and config management? And how do we start migrating from existing architectures? In this talk Yan will discuss solutions to these challenges by drawing from real-world experience running Lambda in production and migrating from an existing monolithic architecture.
Protractor is an open source functional testing framework for AngularJS applications. It automates interaction with AngularJS apps for end-to-end testing. Protractor uses Selenium WebDriver for browser control and Jasmine or Mocha for writing test cases. Tests are organized into pages, common utilities, test data, specs, and configuration files. Protractor provides locators and functions to test AngularJS apps and generates Allure reports for test results.
Learn how symfony can make your life simple, especially if you want to develop web applications in a professional way. Warning! Contains PHP code...
A crucial step for continuous integration and continuous delivery with Fastly is testing the service configuration to provide confidence in changes. This workshop will cover unit-testing VCL, component testing a service as a black box, systems testing a service end-to-end and stakeholder acceptance testing.
http://togetter.com/li/445424?page=2 の 2013-01-26 15:13 ぐらいから15:38 ぐらいまでの tweet も合わせてご参照ください。
Gosuke Miyashita presented on Sqale, a cloud application platform similar to Heroku. Sqale uses Linux containers to isolate each user's environment. Requests are distributed to containers running applications through a web proxy and SSH router. The SSH router routes connections to the appropriate file repository, Git server, or container using OpenSSH and scripts. This allows isolating each user's applications, files, and Git repositories in separate containers and servers.
Perl changed the speaker's life in several ways: 1) The speaker met his wife on a Perl-based chat site in 1998. 2) The speaker's career path led him to technical management roles where he uses Perl and Perl-based tools extensively to develop internal systems. 3) Interacting with the Perl community through conferences and online helped the speaker advance his technical skills and career.
This document summarizes the backend architecture of Sqale, a cloud application platform similar to Heroku. Key components include containers deployed on EC2 instances that are assigned to individual users, an SSH router that routes SSH connections to the appropriate file repository, Git server, or user container, and a web proxy that load balances traffic across containers using dynamic configuration from Redis. The architecture aims to provide isolated virtual environments for each user's applications through the use of Linux containers and a customized kernel.
This document summarizes the backend architecture of Sqale, a cloud application platform. It uses Linux containers hosted on Amazon EC2 instances. Containers are assigned to individual users and act as virtual environments. Traffic is routed to containers through an Nginx load balancer using dynamic configuration based on availability. An SSH router routes Git, SFTP, and SSH connections to the appropriate file or container servers using authorized keys scripts. Deployments are handled by separate servers.