1 / 13

Agile Software Distribution

Agile Software Distribution. Session held by:. René Steg Steg IT-Engineering, Zurich (Switzerland). Why do I need „Agile Software Distribution“?. Because you may have hundreds of servers with a high number of applications running on these servers have distributed applications in place

liko
Download Presentation

Agile Software Distribution

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Agile Software Distribution Session held by: René Steg Steg IT-Engineering, Zurich (Switzerland)

  2. Why do I need „Agile Software Distribution“? Because you may • have hundreds of servers with a high number of applications running on these servers • have distributed applications in place • allow manual changes on the runtime configuration of the application after „installation“ • not have a link between Software Configuration Management (SCM) and Software Distribution (SWD) • document the installation-steps in plain-text ... which makes the question: „What Release of my application is running on which server ?“ very difficult to answer (if it can be answered at all)

  3. 1st Step: Reorganize the way you do SWD • Require referential builds for all of your applications • Setup a team, which supports the software developers / engineers in creating the installation packages • Store your server metadata in a repository, which can be easily accessed and queried • Define and implement standards, how the applications have to be installed on your servers (e. g. applications must be delivered in Solaris Packaging Format)

  4. Development Software Distribution Test / Runtime Referential Build Build Installations-Package Capacity Management Distribution / Installation Source, Executables. / Golden Copy Executables, Install-Param. / Golden Copy/2 Installations-Package Silver Copy Server-MetadataSilver Copy Silver Copy Installations-PackageServer-MetadataInstallation-Logs Repository Software Distribution Process

  5. Referential Build Build Installation-Package Capacity Management Distribution / Installation Developer Repository GoldenCopy contains Sourcesfrom Baseline Source /Executable Source-Code Executables Compile / Build Check-in / Golden Copy Referential Build

  6. Referential Build Build Installations-Package Capacity Management Distribution / Installation Installation-Parameters Developer Packaging-Specialist is derived Repository GoldenCopy GoldenCopy/2 Golden Copy/2 contains contains Source /Executable Executable /Install.-Parm. Build Installation-Packages (Part 1)

  7. Referential Build Build Installations-Package Capacity Management Distribution / Installation Developer Packaging-Specialist is derived is derived Repository GoldenCopy GoldenCopy/2 SilverCopy contains contains contains Source /Executable Executable /Install.-Parm. Package Runtime-Code Installation-Parameters, Executables Build Packages Check-in / Silver Copy Install-Packages Build Installation-Packages (Part 2)

  8. Referential Build Build Installations-Package Capacity Management Distribution / Installation Server-Metadata Server is assigned Environment Manager Developer Environment Manager is derived is derived Repository GoldenCopy GoldenCopy/2 SilverCopy Server – ProductAssignment contains contains contains Source /Executable Executable /Install.-Parm. Package Capacity Management

  9. Referential Build Build Installations-Package Capacity Management Distribution / Installation Distribution-Order Server is assigned Environment Manager Distribution Manager is derived is derived Repository GoldenCopy GoldenCopy/2 SilverCopy contains contains contains Source /Executable Executable /Install.-Parm. Package Package Server is installed Installation-Status Server Server Distribution / Installation

  10. Automating the Processes • Automate the Build-Process • Using a SCM-Tool, this task will be a lot easier • Always use a Baseline for the automatic Builds (else it won‘t be referential!) • Automate the Package-Creation • Check, which software-products in your company may be installed in the same way and create the packages for these application automatically • Version the installation-parameters (these are part of the software configuration anyway) • Scan Hardware-Data automatically • Try to minimize manual data-entry for hardware, to keep the hardware-inventory up-to-date and store these data in a repository as well • Automate the Distribution- and Installation-Processes • Try to eliminate any manual interaction for a distribution / installation • De-Installation must also be automated • Keep the installation fast, using a delta-distribution mechanism

  11. And what‘s the benefit? • Software Distribution gets agile, even with hundreds of servers in a large enterprise • The question: „What Release of my application is running on which server ?“, may be answered with some clicks using a web-report • The same application-release is always installed the same way • Back-out scenarios are easier to implement • The distribution-process is a one-button-only-click, if the metadata has been pre-defined once in the repository and therefore the Distribution Manager does not need to know the installation sequence of the application • CMMI-Level 3 may be reachable, because to implement and automate Software Distribution successfully, it is essential, that the processes are: • Documented • Standardized • Repeatable

  12. Recommendations • Define standards, policies and naming conventions (Programs love conventions!) • Reduce special-engineering and minimize the number of different middleware and operating-systems on your servers (programs hate exceptions! And so do your programmers) • Use a repository which keeps your metadata of your distribution activities together • Use the automated distribution mechanism already in the testing phases, this way the installation packages are also tested in early stages • Use the SWD system for the entire software-stack of your server (operating system, middleware and business-application) • Link the source (Golden Copy) and the installation-unit (Silver Copy), so you know immediately, which source to change in an error-case (Best Practice: there is a link between source-code, derived object and installation package) • Define an emergency-scenario, in case the automatic SWD is not available • Do not allow ANY manual changes on the servers (exception: emergency-scenario) • Performance: If you want your developers to use the SWD in early stages, be aware, that the process must be fast (data model, delta-deploy etc.) • Reports are important, not only for your management, but also for other roles involved in the entire application life-cycle.

  13. Thanks for your attention and have a nice day!

More Related