520 likes | 596 Views
MYSQL-PROXY: THE PROXY BELT. WHO ARE YOU???. Internet Technologist IT Contractor 10 year Professional MySQL Power User. Clint Alexander Lancaster County, PA Married, 3 Children. Web Application Developer. Systems Administration. PHP. Lingo. Perl. Expect. Lua. Visual Basic.
E N D
MYSQL-PROXY: THE PROXY BELT WHO ARE YOU??? • Internet Technologist • IT Contractor • 10 year Professional • MySQL Power User • Clint Alexander • Lancaster County, PA • Married, 3 Children Web Application Developer Systems Administration PHP Lingo Perl Expect Lua Visual Basic Action Script Web Administration Network Architect My Very Own Website: http://www.cdalexander.net/ (just getting started) Interactive Developer Project Management Brainbench CIP Certified Internet Professional Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WHY ARE WE HERE? Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WHY ARE WE HERE? TO DESIGN FAIL-SAFE SYSTEMS Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WHY ARE WE HERE? TO DESIGN FAIL-SAFE SYSTEMS WHAT IS THAT? Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WHY ARE WE HERE? TO DESIGN FAIL-SAFE SYSTEMS WHAT IS THAT? HIGH AVAILABILITY! Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WHY ARE WE HERE? TO DESIGN FAIL-SAFE SYSTEMS WHAT IS THAT? HIGH AVAILABILITY! uhh… Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WHY ARE WE HERE? TO DESIGN FAIL-SAFE SYSTEMS WHAT IS THAT? HIGH AVAILABILITY! uhh… Keeping your services available 99.9% OF THE TIME. Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WHY ARE WE HERE? TO DESIGN FAIL-SAFE SYSTEMS WHAT IS THAT? HIGH AVAILABILITY! uhh… Keeping your services available 99.9% OF THE TIME. oh… Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT LET’S SET SOME REQUIREMENTS… Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Maximize Cost-Effectiveness Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Design Simple Management Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Redundancy & Fail-Over Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Maintain Optimal Performance Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Minimize Dependencies Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT No Single Point of Failure Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT • Maximize Cost-Effectiveness • Design Simple Management • Create Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure What’s the objective? Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT LET’S TALK SCALING Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT SCALING UP Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT = Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT = More RAM = Fast CPU = Fast SCSI = Fast Bus Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Result? Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT SUPER DUDE! (err… Server) Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT SCALING OUT Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Take 1 fish… Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Add lots more. Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Standard Web Service Setup Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Where should requests go now? X Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT Simple Scale-Out Solution Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT X Requests still fulfilled (whew!) Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT SINGLE GATEWAY DESIGNS SPOF DETECTED! Single Point of Failure Great For • Development Networks • Low-Visibility Services • Low-Availability Services Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT DUAL GATEWAY DESIGNS • SOFTWARE REQUIRED! • Heartbeat Service • Switching Mechanism Great For • Production Networks • High-Visibility Services • High-Availability Services Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT THE PROXY BELT “Strap-On” MySQL-Proxy Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT AUTONOMOUS DESIGN Self-Reliant Systems Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT What’s the objective? • Maximize Cost-Effectiveness • Design Simple Management • Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure REQUIREMENTS REVIEW Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT COST-EFFECTIVENESS? • No Additional Hardware • No Additional Installations • No Additional Software • No Additional Labor • Saving $5K – $10K Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT What’s the objective? • Maximum Cost-Effectiveness • Simple Management • Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT DESIGN SIMPLE MANAGEMENT? Simple Management, in this case, means management of a service required within the network is minimized by its lack of dependents and complexity of its configuration. • Servicing the Clients • Relative to the purpose and configuration of the clients • Servicing MySQL • Multiple GUI Administration Options • Servicing Proxy • Easy & Minimal Configuration Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT REQUIREMENTS REVIEW • Maximum Cost-Effectiveness • Simple Management • Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT REDUNDANCY & FAIL-OVER? • MySQL Services • Managed by Lua & Proxy connection pooling • Failure to Client Server • DNS Round-Robin (other?) • Failure to Proxy Service • Crontabs and Notifications! Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT What’s the objective? • Maximum Cost-Effectiveness • Simple Management • Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT MAINTAIN OPTIMAL PERFORMANCE? • MySQL Proxy is light-weight and transparent • Lua is a well-known light-weight API • Footprint = 0 (zero) Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT What’s the objective? • Maximum Cost-Effectiveness • Simple Management • Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT MINIMIZE DEPENDENCIES? • Users are dependent on available client systems • Clients are dependent on available Proxy services • Proxy is dependent on available MySQL servers • No Extra Dependencies Required Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT What’s the objective? • Maximum Cost-Effectiveness • Simple Management • Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT NO SINGLE POINT OF FAILURE? • Fail-over Requires: • Minimum: 2+ Clients • Minimum: 2+ Proxies • Minimum: 2+ Databases Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT That’s the objective! • Maximum Cost-Effectiveness • Simple Management • Redundancy & Fail-Over • Maintain Optimal Performance • Minimize Dependencies • No Single Point of Failure Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT WAIT!! DIDN’T WE SAY SOMETHING ABOUT A CRON SCRIPT? Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT MANAGABLE CONFIGURATION FILE Assumed Location: /etc/mysql-proxy/mysql-proxy.conf Clint Alexander <clint@cdalexaneder.net>
MYSQL-PROXY: THE PROXY BELT CRON SCRIPT Assumed Location: /opt/mysql-proxy/sbin/proxychk.cron Clint Alexander <clint@cdalexaneder.net>