operational requirements
TRANSCRIPT
Operational RequirementsGreg Malcolm – Mar 2 2009
Columbus Architecture Group
Twitter: gregmalcolm [email protected]: http://geekswithblogs.net/gregorymalcolm
Operational RequirementsPASS MADE:
A list of major Operational Requirement types:
• Performance• Availability• Security• Scalability• Maintainability• Accessibility• Deployment• Extensibility
("PASS MADE" concept comes courtesy of Randy Cornish et al, “MCSD .NET Solution Architectures“)
PASS MADEPerformance Requirements
• Traditionally more of an issue for web based applications.• Mostly applies to Response Time:
Limited Bandwidth Server or network capacity Server traffic Application processing constraints
• Many of these factors will be beyond your control. • The purpose here is to avoid unnecessary complexity that
will degrade performance.
PASS MADEAvailability Requirements
• Availability is a measure of time a system or component is online ready to perform its specified function.
• It is easy to ask for 99.9% but is it needed? Meeting the requirement will come at a cost.
• Analyze: Who do you expect your customers to be? What are
their expectations? How much downtime is acceptable and at what times
of day? Is a 15 minute offline window at 3am for backups acceptable?
Do internal company processes depend on the service?
What is the schedule and budget?
PASS MADEAvailability Requirements
Common causes of applications becoming unavailable or unreliable:
Inadequate testing Change management issues Lack of ongoing monitoring Operational errors Weak code Interactions with external services or apps Differing usage levels, peak overloads Hardware failures
PASS MADESecurity Requirements
• The focus here is on recognizing current and future threats and developing measures that counteract real or implied threats.
• Most security measures are based on: Authentication Authorization Data protection Auditing
PASS MADESecurity Requirements
Some possible policy requirements: Password policy Logon policies and auditing Intruder prevention processes Ownership/responsibility for user accounts Encryption policies
PASS MADEScalability Requirements
• The ability to increase system capacity by upgrading hardware and software without extensive modifications to the application software.
• Only an issue for distributed applications.• Most issues are resolved during design and initial
implementation. • During the requirements stage it is still necessary to look
into what hardware and software changes are needed and the cost of scaling it over time.
• Optimizing for Scalability can conflict with maximizing for Performance.
PASS MADEScalability Requirements
• Scaling Up: Achieving scalability by using faster hardware
(single machines)• Scaling Out:
Achieving scalability by using more hardware (multiple machines)
PASS MADEScalability Requirements
• Key factors that affect scalability (in order of decreasing impact): Requirements and design (most impact) Code tuning Product tuning Hardware tuning (least impact)
PASS MADEMaintainability Requirements
• Your application should be designed to be easily be maintained and repaired.
• Example maintainability requirements: An episode of unexpected downtime will not exceed 5
minutes. Scheduled maintenance downtime will not exceed 5
days a year during non peak hours. Scheduled maintenance should not exceed 4 hours at
a time.
PASS MADEMaintainability Requirements
• Example objectives of maintainability requirements: Ensure that minor defects in an application are easy
to correct. Ensure that minor enhancements to an application
are relatively easy to implement. Minimize maintenance costs and free up
programmers for development rather than maintenance work.
PASS MADEMaintainability Requirements
• Key factors affecting maintainability requirements are: Breadth of application – no of sites Method of distribution/deployment Maintenance expectations Impact of 3rd party agreements
PASS MADEAccessibility Requirements
• This is, providing equal access to all users including people with cognitive and physical disabilities.
• Some guidelines: Use accessibility features in areas that affect large
number of users Incorporate accessibility features in parts of
application users frequently or integrally used. Ensure application is compatible with accessibility
aids. Check local legislation affecting the application. For web applications, follow W3C recommendations.
PASS MADEDeployment Requirements
• Who are your users? • Where are they?• How do you intend to deploy you application to them?
• Users can usually be separated into 3 categories: Standalone users
(ie not LAN connected) Remote access users Local network users
PASS MADEDeployment Requirements
• Factors in the deployment strategy are the range of OSs, configurations of users computers and specifications of connecting network infrastructure.
• How should the application be distributed? Some scenarios: Large number of users in diverse locations -
CD media Smaller number of users – Internet or Intranet
based download Users located worldwide – Over internet with
different packages for different languages
PASS MADEExtensibility Requirements
• This is the degree to which an application can be enhanced in the future to meet changing requirements.
• An example objective might be to ensure future enhancements can be easily and quickly implemented.
• Extensibility can be tightly coupled with scalability so extensibility requirements should include the ability to enhance data, hardware and software components.
• Think about the average time and cost it will take to make updates in different areas of the application.
Operational RequirementsFurther Reading
This presentation was based heavily on these sources:Book: MCSD .NET Solution Architectures
By Randy Cornish, Thomas Moore, Don Pavoni and Eric Rockenbach
Blog: DotNetJohnhttp://www.dotnetjohn.com/articles.aspx?articleid=111
Blog: David DeWinterhttp://blogs.rev-net.com/ddewinter/2006/10/21/%C2%BB-pass-made-part-1-of-2/
Twitter: gregmalcolm [email protected]: http://geekswithblogs.net/gregorymalcolm