2. Axiom Applications are not just code Containers and application servers play increasingly bigger roles Increasing computational demands drive horizontal scaling. With great power comes great responsibility: Monitoring (system health); Infrastructure (hardware, network, OS setup); Administration (automated deployment, rolling updates)
3. Axiom cont. Increasing application complexity creates new challenges for IT staff: Applicative monitoring (queue sizes, component statistics, complex behavioral rules) System tuning (horizontal scaling + application performance improvements = huge gains) System architecture (static server farms, load balancers, high availability, central storage…) Not just LAMP anymore!
4. Axiom cont. As IT staff plays an increasingly significant role, responsibilities shift from R&D to IT … but IT can’t deliver without being directly involved with R&D! System architecture is tightly coupled with deployment, monitoring, tuning System architecture may comprise shared responsibilities (e.g. a hybrid static/dynamic web farm) Inevitable conclusion: A successful project requires close cooperation between R&D and IT
5. The Application Engineer… … is the IT liaison officer in R&D Specifies operational requirements (e.g. monitoring, configuration, logging); Active participant in design reviews; Is the contact point for R&D requirements from IT (hardware, deployment, storage…)
6. The Application Engineer… … is the IT equivalent of a system architect Specifies architecture (web farms, central/distributed storage, load balancing…) Works closely with R&D to define the system architecture Has significant theoretical knowledge of the application (… in order to correctly monitor and tune it)
7. The Application Engineer… … is directly responsible for the production environment Monitoring (specification and implementation) Reporting (provides feedback to R&D) Ongoing tuning Management contact point
8. In Practical Terms Vís a vís R&D: Sits in on design reviews Generates requirements Provides ongoing feedback to R&D Production errors Performance bottlenecks Collaborates with R&D to define the system architecture and deployment practices
9. In Practical Terms Vís a vís management: Provides the contact point for the production environment (“the site is down!”) Responsibilities include: Deployment Production uptime System performance Support (?) and issue tracking Infrastructure (web, high availability, central storage…)
10. Are we done yet? Questions? Comments? Snarky remarks?