90 likes | 224 Views
This document by Andrew Gehring from NREL discusses the development and design of a collaborative web infrastructure. It covers previous architectures and processes, outlines new requirements and objectives, and presents the proposed architecture including hardware and software components. The paper highlights challenges in implementation, the need for version control, and best practices in software development lifecycles (SDLC) while focusing on collaboration tools. It further addresses issues like test environments, migration to green IT, and improving access for remote contractors.
E N D
Collaborative Web Development Designing and Building a Collaborative Web Infrastructure Andrew Gehring - NREL
Overview • Previous Architecture & Processes • Requirements & Objectives • New Architecture • Hardware • Software • New Processes • Challenges • Future
History • Hardware/OS • Sparc Based • Solaris (8 & 9) • Software • Custom Apache • Shared Binary • NFS • Process • Development • NFS / CiFS • Prod & Dev • Same appliance • External Contractors • FTP • Transfer • Freeze • CTP • Copy to Production • Network Appliance • .snap • 1 revision • Issues • Silos • Upgrades • Outage • No “Test” Environment • Halt work • Production vs. Dev • folder • Architecture • Process • Development Cycle • Version Control • Major “Issues”
Objectives • Implement revision control system • Implement “Test” into Development Cycle • Encourage “Best Practices” • SDLC, SOA, Security, … • Collaboration Tools • Migration toward Green IT Requirements • Ease of Use • “No Change” for Internal Users • Improve remote Contractor access / Controls
New Architecture • Hardware • Software • “Tools” • Standards • Hardware • SUN • X86 Servers (x4600) • Sparc Servers (T2000) • SAN • iSCSI • Fibre • NFS • Clustered Appliances • Software • VMWare ESX • Ubuntu LTS • Solaris 10 • Zones • Containers • “Official” Software • Supported • Tools • Subversion • “Hooks” • TRAC • Tickets • PM • Custom • Test • Production • Standards • Authentication • Active Directory • Management • BCFG2 • OS • Config • Single Purpose • Multi “Homed”
New Processes • Coding Environment • Test / Production Environment • Test / Production Deployment Process • Desktop • NFS / CiFS • Checkout/in • Remote • Checkout/in • Hooks • Hooks • Authorized • Tags • Autonomous • Reduced dependencies • Centrally Managed • BCFG2 • SVN (Config) • Patch Management • Aggressive (D/T)
Challenges • Social • Users (developers) are reluctant to change • Political • Previous investment in tools • Security • Unfamiliarity with new tools • Subversion • TRAC
Future • Work for Others • Code Sharing (public subversion server) • Collaboration • ticketing, WIKIs (TRAC) • The “Cloud” • Better development processes