16 Mar 2014

Configure, Deploy and Manage with AWS OpsWorks

Nurturing ‘master’ images of static server instances is time consuming and admin-heavy, requiring full instance re-creation when changes are made with dedicated snapshot regimes for archiving and disaster recovery.
Such legacy methods of infrastructure and application management are inefficient and out of date. A version controlled configuration management environment is substantially more effective.

To ensure that your systems perform as intended at all levels AWS have taken CM to the next level with inclusion of scaled infrastructure resilience, load balancing and instance self healing all from within a single solution – AWS OpsWorks.

AWS OpsWorks is a DevOps Cloud Application Management solution for managing the complete deployment process. It offers a comprehensive array of configuration options to manage and control both application and infrastructure lifecycle. Here's a top level breakdown of process :

Easy templates are provided for commonly used core web technologies like PHP, Java and Ruby, with added configuration using your own Chef recipes to tailor application specifics. AWS OpsWorks offers load or time based scaling along with automatic self-healing to ensure your application is always online and configured to deliver the most up to date revision.

Here at cirroNIX we've been spending quite a bit of time with AWS OpsWorks lately, pushing its capabilities by fine tuning a deployment infrastructure to accommodate high availability scaling for base 'single-domain' Wordpress. For those of you 'in deep' with Wordpress you'll know how difficult a process scaling it for resilience can be, and although there are a multitude of How-To's dotted about the internet advising they all rely on one or another plugin to accommodate S3 centralised storage for shared assets (the key requirement). Using plugins for this purpose is fine for post-configured WP clustering, but, if you're looking for truly automated scaling using fresh, stateless instances it's virtually impossible to automate internalised custom Wordpress config (i.e for plugins) post deploy. Which is why we didn't.

Our method uses direct mapping technology to mount an S3 bucket at file system level for holding shared assets (i.e wp-content or w.h.y). OpsWorks configures the domain vhost for you and after initial 1st instance config (WP install/DB connect) will scale supplemental instances from load or time based metrics both up and down. This is something we simply couldn't have achieved without the layered flexibility of AWS OpsWorks (and, credit where it's due, Chef also). It took a bit of lateral thinking and some recipe tweaking but it works rather splendidly, delivering managed versioning from either Git, SVN or S3 for all WP components.

If you're interested in Configuration Management for AWS hosted applications, or have specific interests with a view to Wordpress scaling, why not get in touch and can discuss tactics.

No comments:

Post a Comment