Friday, June 05, 2009

Continuous deployment example

ControlTier has supported the concept of continuous deployment for years and it's great that the concept is becoming increasingly main stream. 

In ControlTier, the end-to-end build and deployment process is defined via the Updater "BuildAndUpdate" workflow that orchestrates the Builder's Build and the Site's Update workflows. You can read about the basics on our Wiki here: Continuous_deployment

There's also a practical hands on example using tomcat

Of course you can also support continuous deployment by having your favorite continuous integration server interface with ControlTier after the build is completed. 

Tuesday, June 02, 2009

ControlTier 3.4.4 Released

ControlTier 3.4.4 has been released.


This release has been focused on support for Windows in several forms:

  • Internet Explorer is now supported for the server web applications Workbench, Jobcenter, and Reportcenter. Both IE 7 and 8 are supported
  • Windows-based Examples have been added to the Wiki. See the Examples page.

Other bug fixes are also included.

Documentation:

Two new high-level Library Guides have been added to help you develop Tomcat and JBoss server management solutions. These guides tie together the related Type Modules that are included with ControlTier, and show how they can be used together to create a management solution.


We intend to produce these "Library" guides for each of the various technologies that ControlTier provides Type Modules for.

See the Solution Libraries Guide for the complete list of available Library Guides.

Monday, April 27, 2009

ControlTier 3.4.3 is now available

ControlTier 3.4.3 is now available:
http://sourceforge.net/project/showfiles.php?group_id=151079

Here are the release notes:
http://sourceforge.net/project/shownotes.php?group_id=151079&release_id=678230

And don't forget to check out the ControlTier Wiki for documentation:
http://apps.sourceforge.net/mediawiki/controltier/index.php?title=Main_Page

Brand new examples/tutorials:
http://apps.sourceforge.net/mediawiki/controltier/index.php?title=Examples

Tuesday, April 07, 2009

ControlTier all Apache 2 licensed in 3.4.3

The next release of the ControlTier distribution will switch to an all Apache 2 license agreement. All of ControlTier 3.x was already Apache 2 licensed except for the Workbench server web app so this really just makes it all consistent. Workbench had been licensed under GPL 2 due to previous business arrangements that have since been re-worked. 

How does this impact end users? Well, not much except for the knowledge that you only have one open source license to be aware of and that Apache 2 provides the most freedom of use. 

Thursday, April 02, 2009

New Whitepaper: Achieving Fully Automated Provisioning

Working with our friends at Reductive Labs, we've just finished a whitepaper called "Web Ops 2.0: Achieving Fully Automated Provisioning"(pdf).

There is a live example of our joint ControlTier and Puppet solution, naturally. However, the main point of the paper is much broader than that. What we are proposing is an outline of an open source toolchain for fully automated provisioning.

What's the criteria for "fully automated provisioning"?

That details are in the whitepaper but here's the list we came up with:
  1. Be able to automatically provision an entire environment -- from "bare-metal" to running business services -- completely from specification
  2. No direct management of individual boxes
  3. Be able to revert to a "previously known good" state at any time
  4. It’s easier to re-provision than it is to repair
  5. Anyone on your team with minimal domain specific knowledge can deploy or update an environment
Here's the proposed open source toolchain (with ControlTier and Puppet highlighted):


Read the whitepaper and let us know what you think. I imagine that we'll get some objection to either the criteria or the toolchain... but that's fine. Sparking a conversation is actually what we want.

The point of all of this is to encourage discussion on how open source provisioning tools fit together to provide real world solutions. It's all too often that we meet people looking to improve their operations but they are befuddled by all of the various open source choices that don't seem to have much relation to each other. Hopefully this paper will be a first step towards greater public discussion. Educating the public lifts all boats.

All of the content in the whitepaper is licensed under the Creative Commons (Attribution - Share Alike) license.

ControlTier 3.4.2 posted to SourceForge.net

ControlTier 3.4.2 is now available:
http://sourceforge.net/project/showfiles.php?group_id=151079

Here are the release notes:
http://sourceforge.net/project/shownotes.php?group_id=151079&release_id=671303

And don't forget to check out the ControlTier Wiki for documentation:
http://apps.sourceforge.net/mediawiki/controltier/index.php?title=Main_Page

Sunday, March 01, 2009

New ControlTier Screencasts

New ControlTier Screencasts are now up on the wiki:
http://apps.sourceforge.net/mediawiki/controltier/index.php?title=Screencasts

There you'll find:
  • Demo screencasts (JBoss deployment, build automation, using Jobcenter, etc...)
  • Automation development screencasts (Using ProjectBuilder, creating CTL modules, defining commands, etc...)
  • HowTo screencasts (importing packages, deploying packages, defining services, etc...)
  • Presentation on using ctl-exec
Additional screencasts will be added as they are produced. If anyone would like to make a screencast and have it included it in the list, send either the file or the link our way.

Tuesday, February 17, 2009

ControlTier 3.4 Posted to SourceForge.net

I'm pleased to announce that ControlTier 3.4 is now available

For more info see the message group post and release notes:
http://groups.google.com/group/controltier/browse_thread/thread/69c91cf9e0a92e4a

To download ControlTier:
http://sourceforge.net/projects/controltier/

And don't forget to check out the new ControlTier Wiki (also hosted by SourceForge):
http://apps.sourceforge.net/mediawiki/controltier/index.php?title=Main_Page

Monday, January 26, 2009

New Wiki for ControlTier's Open Source Tools

Things are still a bit under construction, but the new ControlTier Wiki (also hosted by SourceForge) is now the definitive source for ControlTier documentation.

As always, any feedback or suggestions are highly welcome.

Monday, December 29, 2008

Abstracted Administration

[The latest version of this post can be found on the ControlTier Wiki]

The idea that drives the ControlTier project is "abstracted administration". In this paradigm, you think about and develop management processes using an abstracted view, one that is independent of any particular physical node or software deployment. What drives the need for abstracted administration is rising scale and complexity . Abstracted administration is paramount in a world where
  • the host environment is varied in kind and size (e.g., different scales in heterogeneous environments and also the growing use of "elastic" virtual machine infrastructure)
  • management processes are becoming more distributed and more easily impacted by application and environmental differences (e.g, multi-step procedures that execute across the network and across different tools).
This project supports the idea of an abstracted administration paradigm, one where you manage distributed application services and their management processes through a simplified, more standardized and abstracted view. Within this paradigm, an administrator has the choice to focus on managing operations from a higher level, and let the underlying framework coordinate operations across the actual physical environment. Of course, one can also choose to manage things at a much finer level of granularity, performing management activity on a particular host, which still remains important.

Note:
* The ControlTier project is not a VM technology. ControlTier is a technology that lets you deploy and control services hosted on operating system instances (virtualized or not).

Abstracted administration framework

Within this paradigm, the framework
  • Lets you manage many deployments through an abstracted, logical structure or at any distinct point by objectifying your process within the context of the abstracted deployment model
  • Wraps around your scripts to produce workflow endpoints that can be combined together to execute distributed multi step processes.
Within the administration framework, your operations processes become more uniform and therefore more reusable, with environment specific parameters and settings externalized in a collaboratively maintained model, shared across support teams. Within this paradigm exists a hierarchy of types that let you break down operation processes into several standard layers, each focused on a specific aspect. Aspects exist for package building, staging and deployment, service run state control, mediated execution, and more.

Abstracted Nodes

For command execution, this project aims to help you abstract the physical Nodes in your environment. Commands ultimately execute on some host, but in large scale environments, it's cumbersome to specify the particular hosts. The ControlTier software provides a couple ways to abstract node infrastructure:

  • Node tags and attributes: The ctl-exec command lets you execute ad hoc commands by addressing target Nodes using tags and attributes rather than lists of hosts. This is a convenient way to manage host groups and ctl-exec supports inclusion and exclusion filters to identify any subset of hosts. ctl-exec also supports parallel execution important when you need to execute actions simultaneously across a large number of hosts.
  • Command dispatching': The ctl command lets you define reusable commands targeted to individual service management control actions or target coordinated distributed actions, logically via a Site. The command dispatcher looks up the nodes on which commands should be executed and invokes them remotely when necessary. In this case, one stays focused on managing service action without having think about nodes.

Abstracting nodes from your procedures is the first step towards abstracted administration. When nodes vary between environments or when they are based on VMs and can be rescaled at any time depending on conditions, your scripts will not have to be changed to redefine node targets.

Abstracting the Service

One of this project's primary goals is to provide a service management interface that lets you forget about Nodes during operation.
  • Long running application components are called Services in ControlTier. You abstract your services by exposing all the physical environment differences in the Service's object model. Doing this lets you define your service management code in an abstracted way. During execution your procedures are bound to environment specific views.
  • ControlTier's Site, provides the management interface that lets you logically control a set of services be they one machine or many. Application components combine together to form a distributed application. Where these components are hosted depends on the environment. For example, in development or QA they may all reside on one node, while in production they may be spread over many.
Exposing logical control of the many parts of a service is a further step towards abstracted administration, since at this level of abstraction not only are Nodes abstracted but so are the individual application deployments that comprise the integrated service.

Abstracting the process

There are several service management life cycle activities common to any application service: build, stage, install, update, stop, start, configure, check, roll back, etc. Of course these activities vary depending on operating system, application platform, or environment. The last aim of the ControlTier project is this: simplify operations by obscuring environment differences that impact procedures.
  • ControlTier includes a standard set of types, each responsible for carrying out each of the life cycle steps. You can also expose your procedures in place of the standard implementation.
  • Service management processes are carried out over multiple steps across different machines. Again depending on where the process runs, process execution can occur on different machines. ControlTier workflows allow you to define and execute processes independent of the environment making them more reusable.
  • Besides abstracting location, service management processes can also be executed sequentially or in parallel without any code modifications. ControlTier workflows allow you to define a thread count in the object model to control parallel or sequential execution.
By exposing life cycle activities as service management workflows reusable across environments, another level of abstracted administration is achieved.

What drives the ideas behind abstracted administration are the successive layering of abstractions:
  • Abstract the nodes, for better visibility into the services.
  • Abstract the services, to gain better visibility of the management processes.
  • Abstract the processes, for standardized reusable life cycle steps and workflows
Through the process of abstraction, all the specifics become maintained in an object model and the procedural code consolidates into common libraries. Less code means less maintenance, better re-usability, and further elimination of procedural variation, often the root cause of service management problems.