Assurer - a pluggable server testing/monitoring frameworkGosuke Miyashita
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.
Assurer - a pluggable server testing/monitoring frameworkGosuke Miyashita
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.
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.
How Danga::Socket handles asynchronous processing and how to write asynchrono...Gosuke Miyashita
The document discusses asynchronous programming in Perl and how to write asynchronous plugins for Perlbal using Danga::Socket. Key points include:
1) Danga::Socket provides asynchronous I/O event handling using its main event loop and allows adding I/O watchers and timers.
2) To write asynchronous Perlbal plugins, the main process should be based on Danga::Socket's event loop and use callbacks. The plugin must return 1 and a callback must restart processing in ClientProxy.
3) Perlbal itself may also need patching to work with asynchronous plugins by checking an async completion flag in ClientProxy before running plugins.
Inside Sqale's Backend at Sapporo Ruby Kaigi 2012Gosuke Miyashita
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.
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.
Xen Summit 2008 Tokyo - Operating Xen domains through LL(Perl/Python) with li...Gosuke Miyashita
The document discusses libvirt, a library that provides a virtualization API for managing virtual machines. It describes how libvirt interacts with virtualization systems like Xen and allows operations like listing domains, getting domain info, and performing actions like create, shutdown, and reboot. Code examples are provided in Perl and Python to connect to remote libvirt servers and get domain state information using libvirt and Avahi multicast DNS discovery.
How To Build A Scalable Storage System with OSS at TLUG Meeting 2008/09/13Gosuke Miyashita
The document discusses Gosuke Miyashita's goal of building a scalable storage system for his company's web hosting service. He is exploring the use of several open source technologies including cman, CLVM, GFS2, GNBD, DRBD, and DM-MP to create a storage system that provides high availability, flexible I/O distribution, and easy extensibility without expensive hardware. He outlines how each technology works and shows some example configurations, but notes that integrating many components may introduce issues around complexity, overhead, performance, stability and compatibility with non-Red Hat Linux.
Yapc::Asia 2008 Tokyo - Easy system administration programming with a framewo...Gosuke Miyashita
Punc is a framework for building system administration applications. It allows users to select target hosts, connect to them securely, run modules on them to retrieve information or make changes, and reuse code via a module programming model. Modules run commands and return structured data like scalars, hashes and arrays. Punc uses JSON-RPC over HTTPS to call modules securely on target hosts. It detects operating systems using Pfacter to use the right module for the target system. The framework is open source and development is ongoing to support more modules and features.
15. Danga::Socket での I/O イベント登録 use base ‘Danga::Socket’; sub new { # ファイルディスクリプタを new に渡す $self->SUPER::new( $fd ); } sub event_read { # $fd が読込可能になった時に実行 } sub event_write { # $fd が書込可能になった時に実行 }
30. 非同期処理するクラス package My::Drizzle ; use base ‘Danga::Socket’ ; use Net::Drizzle ':constants' ; sub new { $self->SUPER::new($fh); $self->watch_read(1); } sub event_read { # DB リクエスト状態確認と完了時のコールバック処理 }