160 likes | 336 Views
Managing Software in Higher Education. James Lambert Ian Rifkin Brandeis University #NC11_SESS36. Who We Are. Your role?. Why are you here?. Software Systems Administrator Enterprise Architect. Release Management. Managing change by understanding what software is on your server(s ).
E N D
Managing Software in Higher Education James Lambert Ian Rifkin Brandeis University #NC11_SESS36
Who We Are • Your role? • Why are you here? Software Systems Administrator Enterprise Architect
Release Management Managing change by understanding what software is on your server(s). What is release management?
How? How to accomplish goals of release management?
Applications at Brandeis • ~100 applications • apx. 7 million lines of code • Many are created in-house • Some open source products • Some proprietary products
Our Starting Point • Software management practices apx. 4 years needed improvement • Long, unmanageable application files • Mixing of code, design, user information, IPs, etc all hard-coded in long files • Limited usage of any version control (some CVS, some RCS) • Code was often edited on the fly • 3rd party software problems too (dependencies, upgrades)
Environments • Sandbox: Individual developer’s area to create/edit • Development: Unit testing • Test: Integration testing • Production: It’s live!
Environment Builds • What should you do with underlying software? • Apache, Java, libraries, class files, etc
Versioning Software Files Commit Changes Version Control Sandbox Get Updates • Version control software
Versioning Software Files • We use Subversion (svn) • Directory structure of repositories: • Trunk, releases, branches • Directory structure within applications: • .control (encrypted password files) • bin (cron scripts) • conf (configuration files) • perllib (custom application code) • templates (HTML templates) • website (images, CSS, JavaScript)
Software Kits/Builds Version Control System Get files Build Server Software Kit Group files • Builds/kits • Our builds take files from svn (trunk or a branch), groups them together with a version number, enabling them to be released.
Release Scripts Software Kit Send software kit, unpack and prep for application use Application Server What should happen when you release a software build?
Releases Practices • Set standards • Don’t “release and run” (esp. to production) • Consider downtime implications • Major versus minor release? • What constitutes a critical (urgent) release and what should that mean? • Who tests? • Where are bugs recorded?
Communication • Communication between developers is critical • Esp. when working together on a single product
Communication • Don’t rely on version control for all of your communication • Branches of code are needed at times, but add complications that need to be communicated
Questions? Ian Rifkin: irifkin@brandeis.edu James Lambert: jlambert@brandeis.edu