180 likes | 638 Views
Web Hosting and Management "Past, Present, Future of web services from Wishart's lab" Nelson Young Wishart's Lab Presentation May 7, 2010 Outline Web Hosting Process DNS forwarding, firewall and routing, virtual hosting Web Development Process
E N D
Web Hosting and Management"Past, Present, Future of web services from Wishart's lab" Nelson Young Wishart's Lab Presentation May 7, 2010
Outline • Web Hosting Process • DNS forwarding, firewall and routing, virtual hosting • Web Development Process • Design, implement, document, revision control, wiki • Web Technologies and Frameworks Involved • C, Perl, CGI, Java Servlet, Ruby, AJAX • Java Struts/JSF, Ruby on Rails Framework • Infrastructure/Applications Virtualization • Web Administration and Management • On-campus dedicated servers • Off-campus hosting: shared/managed web hosting, dedicated servers, cloud computing • Off-Campus Web Hosting • Compare options, services, viability, maintenance
Web Hosting Process • Register domain name (ie. hmdb.ca) from Domain Service Provider (ie. Verio, Justhosting) • Register web server's IP with Domain Service Provider • Set up server's AND department's firewalls to open web ports (ie. 80,8080) • Set up VirtualHosting • Apache • Apache port-forwarding Tomcat • Apache port-forwarding Glassfish • Glassfish independent of Apache • Mongrel / Passenger Ruby on Rails
Web Development Process Past: • redpoll.pharmacy.ualberta.ca/wishart.biology.ualberta.ca are homes of all legacy programs • Static HTML web pages • Develop and test on production server • Front-end web pages to display results from programs in the back-end: • Wrote standalone C/Perl programs (ie. thrifty, shifty, shiftor, vadar, etc...) • Interconnect programs via piping • Aggregate and wrap final results in a web interface (ie. bacmap, basys, PANAV, CS23D, etc...)
Web Development Process Present And Future: • Separate development servers from production servers for testing and developing • Current web apps are more sophisticated, interactive, and well-managed; • Current web apps tend to follow some framework (ie Rails, MVC paradigm, JSF); data persistence via back-end database; • Check out latest source codes from SVN repositories; • facilitate code sharing and revision control
Web Technologies and Frameworks Past: • Web Technologies: • C, Java Servlets/Applets and Perl • Framework: • Use CGI from Apache to handle dynamic contents from results generated by independent C/Perl programs • Use Java servlets from Tomcat • Use flat-files instead of relational database for data storage • Use cronjobs to monitor and eliminate "run-away" processes • Very little data persistence
Web Technologies and Frameworks Present: • Web Technologies: • Java Servlets, JSF, AJAX, Ruby, Perl, Python • Framework: • For ease of deployment and management • JSF/Struts Framework • Ruby on Rails • Use MYSQL relational database for data storage and persistence • JSF/Java Struts
Web Technologies and Frameworks Future: • Web Technologies: • Virtualization (ie. VMWare, Xen, Parallel, KVM) • Framework: • Virtualize existing servers • Package, distribute, and deploy web apps via virtual machine images (VMs) • Take snapshots of VMs from time to time before update as a form of infrastructure revisioning
Web Technologies and Frameworks Future: • Web Technologies: • Virtualization (ie. VMWare, Xen, Parallel, KVM) • Frameworks: • Virtualize existing servers • Upload virtualized servers to remote datacenters (ie. Amazon, Eucalyptus, VMWare VCloud, etc...) • Package, distribute, and deploy web apps via VMs • Take snapshots of VMs from time to time before update as a form of infrastructure revisioning
Web Administration and Management Past: • Host all the web apps at the root location on the same server • Dependent libraries were installed and shared on a system level • intricate level of dependencies • minimal application isolation • Cronjob to monitor and bypass run-time errors • Documentation reside in individual programs • No revision control or centralization of source codes (ie. make copies of source codes in user dirs) • Loose server security policy • Password-authentication; no enforcement • Simple passwords => security breach => HACKING!!!
Web Administration and Management Present: • Decentralize and separate web apps to different servers on-campus (ie. Rail apps, JSF apps, Java Servlets apps, Legacy apps); • Web apps are isolated to their own directories • SVN repositories for application documentation and source code revision control • GoogleExcel to keep track of and share information about all the servers and their hosting web apps • Implement and enforce stricter server policy • Private/Public key pair authentication
Web Administration and Management Future: • SVN repositories for application documentation and source code revision control • WishartWiki to document all web and standalone programs (ie. README.txt, INSTALL.txt, NOTES.txt, RELEASES.txt) • Migrate to off-campus web hosting • Current production servers on campus will become testing/development servers for users • Implement and enforce stricter server policy
Web Administration and Management Future: • Off-campus web hosting • Shared/managed web hosting • Dedicated physical/virtual server • Cloud Computing • Off-campus Pros • Save office spaces = $$$ • More reliable network uptime (ie. 99.5% uptime) • Off-campus Cons • No immediate hardware support • Pay for infrastructure support and hosting services
Off-Campus Web Hosting Shared Web Hosting (ie. OCS Solutions):
Off-Campus Web Hosting Managed Web Hosting/Dedicated Server (ie. OCS Solutions):
Off-Campus Web Hosting Dedicated Physical/Virtual Server (ie. OCS Solutions):
Off-Campus Web Hosting Cloud Computing (ie. Amazon): • On demand, Internet-based computing utility services • Pay for what you consume • Self-administration of operating system • Low hourly charge • Support full virtualization and administrative API tools • EBS or S3 services for persistence data storage • Ideal for • Memory and cpu-intensive web apps • Web apps that are not “well-behaved, structured” that require “privileged”, system access