Continuous delivery of software and related infrastructure environments is a challenging proposition. Typical enterprise environments, comprising distributed software and its supporting infrastructure, exhibit non-obvious, often implicit dependencies and requirements. Further increasing this challenge is that knowledge about configuration is fragmented and informally recorded. Given this situation, we propose Weaver, a domain-specific language designed to formally specify blueprints, desired state descriptions of environments. An associated runtime executes blueprints to create or modify environments through a set of target-specific platform providers that supply cloud-specific implementations. New and existing automation to implement and maintain the desired state can be associated with a blueprint specified in Weaver. Furthermore, Weaver supports the definition of conditions to validate a blueprint at design time and deployment time, as well as to continuously validate a deployed environment. We demonstrate the use of Weaver to deploy IBM Connections, an enterprise social software platform.
Note: The Institute of Electrical and Electronics Engineers, Incorporated is distributing this Article with permission of the International Business Machines Corporation (IBM) who is the exclusive owner. The recipient of this Article may not assign, sublicense, lease, rent or otherwise transfer, reproduce, prepare derivative works, publicly display or perform, or distribute the Article.