OWAAMSCore,
version 1.0.0
Overview
OWAAMSCore is a free .NET library designed
for automatic
management and
scaling of the Windows Azure
applications.
Windows Azure applications
management and
scaling are
performed through the specialized .NET classes
(OWAAMSJobs) defined in the OWAAMSCore
assembly.
OWAAMSCore includes OWAAMSJobs to
perform the following operations with the
Windows Azure applications:
•
creating/updating/deleting the Windows Azure hosted
services;
•
creating/upgrading/deleting the Windows
Azure deployments;
•
increasing/decreasing instances count of the
Windows Azure deployment roles.
All supported OWAAMSJobs are described in the
POSOlSoft.Azure.OWAAMS.Core.chm file. (See abstract classes nested in
the
BaseJob class. Corresponding
non-abstract classes are contained in the
AsyncJob and
SyncJob classes.)
OWAAMSCore provides means to run two kinds of
OWAAMSJobs:
•
instant
– OWAAMSJobs are executed immediately as
OWAAMSJobs processing
starts;
•
future –
OWAAMSJobs are executed at a certain time in
the future.
OWAAMS plugins
Which OWAAMSJobs to use and when to execute
them
completely depends on
OWAAMS plugins.
OWAAMSCore communicates with OWAAMS plugins by
means of
Managed Extensibility Framework (MEF).
Any number of OWAAMS plugins may be used by
OWAAMSCore simultaneously.
OWAAMSCore interacts with OWAAMS plugins in
the following fashion:
•
OWAAMSCore initializes OWAAMS plugins and in
return gets information whether there are
instant and/or
future OWAAMSJobs;
•
OWAAMSCore asks OWAAMS plugins for
instant OWAAMSJobs (if any) and
executes them immediately;
•
if there are
future OWAAMSJobs, OWAAMSCore starts
internal timer with which periodically asks
OWAAMS plugins for
future OWAAMSJobs and executes them.
So OWAAMSCore's logic about which OWAAMSJobs
to use and when may be changed or extended
by providing custom OWAAMS plugins. Custom
OWAAMS plugin may contain any desired logic
to provide OWAAMSJobs to OWAAMSCore to
execute.
For example, OWAAMS plugin may check some
system metrics (performance counters,
diagnostic data,
etc.), may communicate with applications it
want to manage to get performance data
(number of users, processor load, memory
usage, etc.). Based on this information
OWAAMS plugin may decide which OWAAMSJobs to
use and when.
To be used by OWAAMSCore custom OWAAMS plugin
must implement
IOWAAMSPlugin interface defined in the
OWAAMSCore assembly (see
POSOlSoft.Azure.OWAAMS.Core.chm) and
export this interface in accordance with the
MEF requirements.
E.g.:
[Export( typeof( IOWAAMSPlugin ) )]
public class SimpleSchedulePlugin : IOWAAMSPlugin
{…}
Custom OWAAMS plugin must be placed in the
directory where
POSOlSoft.Azure.OWAAMS.Core.dll
resides. Plugin's configuration is provided through appropriate sub element of
the
<Plugins>
element of the OWAAMSCore configuration.
Everything else will be done by MEF.
Free OWAAMS plugin
SimpleSchedulePlugin provides an opportunity to run OWAAMSJobs (i) instantly, (ii) once at specified
time or (iii) periodically without any additional
decision logic.
Settings
All OWAAMSCore settings are provided through
the .xml configuration file.
If OWAAMSCore is used locally, then name of
this file must be defined as a custom
application setting in the
<appSettings>
section of the application configuration
file under
OWAAMSConfig key.
E.g.:
<appSettings>
<add
key="OWAAMSConfig" value="OWAAMSConfig.xml"/>
</appSettings>
If OWAAMSCore is used in the Windows Azure
environment (either in the cloud or
emulated), then name of this file must be
defined as a value of the
OWAAMSConfig string setting
of the Windows Azure role's properties.
Format and contents of the OWAAMSCore
configuration file are described
in the
OWAAMSCoreConfig.xps file.
Requirements
OWAAMSCore requires
Windows Azure SDK for .NET 1.6 – November
2011. So if used locally (not in the Windows Azure
environment), it needs at least Windows 7 to
run.
OWAAMSCore uses
Windows Azure Service Management REST API
to execute OWAAMSJobs. So it requires that
the
management certificate is associated
with the Windows Azure Subscription
containing managed applications.
If OWAAMSCore is used
locally, then the same certificate must be
installed locally under the current user or
local machine certificate store.
If
OWAAMSCore is used in the Windows Azure
environment, then the same certificate must
be added to the Certificates folder of the
Hosted Service containing deployment that
uses OWAAMSCore.
Examples
OWAAMSConsole project
contains working example of local OWAAMSCore
usage.
OWAAMSWorker
project contains working example of
OWAAMSCore usage under the Windows Azure
environment.
Miscellaneous
All dates/times written to log by OWAAMSCore
are expressed as the Coordinated Universal
Time (UTC).
Download
OWAAMSCore,
version 1.0.0
|
History
20 Aug 2012: v. 1.0.0
+ first public release
|