Serena Deployment Automation
The Deployment Automation Platform for Continuous Delivery
Although Serena Deployment Automation can be used in a simple configuration for individual teams, the Deployment Automation architecture is designed to scale to support enterprise-grade requirements: horizontal scalability, enterprise-grade security, performance and high availability.
Deployment Automation has four primary components, each of which can be logically and physically separated to support pre-existing, operationally defined infrastructure requirements.
Business Logic and Presentation Tier
Stateless controller server(s) provide access to the security engine, workflow engine, user interface and other key areas of the product. This tier can be fully load balanced to enable almost instantaneous failover, allowing both high availability and load balanced implementations. User access is available via command line, RESTful service, or browser-based User Interface (UI). All system configuration, process definition, deployment and reporting capabilities are available via the UI.
Metadata and File Storage Tier
The "backend" component of the Deployment Automation server consists of a database (pick from Oracle, MS SQL Server, MySQL, or Apache Derby) which is used to store system configuration, security and process information. Physical artefacts, including the objects to be deployed to target locations and log files are stored in a "Deployment Repository," which uses physically or logically attached disk or network storage.
An agent is an unobtrusive and secure process that runs on each target host and communicates with the Deployment Automation server. Agents are integral to Deployment Automation's client/server architecture; they deploy components and relieve the server from that task, making large deployments involving thousands of targets possible.
Agent Relays act as proxies and brokers, allowing the consolidation of traffic from many agents to route through a single point on the way to the business logic tier. Relays allow simplified firewall configuration and reduce the direct network traffic and processing load on the business logic tier.
Scalable Server Architecture
Serena Deployment Automation servers don’t actually perform "deployment work.” All deployment activities (moving files, adjusting configuration, starting and stopping, interacting with load balancers, and interacting with third-party tools) is undertaken by Serena Deployment agents
Agents run as a Java process, in the context of a JVM installed on a remote machine. They are low footprint, stateless and subscribe to JMS requests provided by the Deployment Automation server. Agents are sent tasks by the server and run any appropriate commands using the plugin framework. Agents can also utilize Web services provided by the server to get additional information or post back results.