architecting solutions and systems – randy’s secrets to success

23

Upload: randy-williams

Post on 14-Apr-2017

600 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Architecting Solutions and Systems – Randy’s Secrets to Success
Page 2: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Architecting Solutions and Systems – Secrets to SuccessRandy WilliamsVP, AvePoint Client [email protected]

Page 3: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Randy Williams

VP, ACSAuthor

Page 4: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw© AvePoint 2013

Base Principles

Page 5: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Know your requirements You cannot properly design without knowing what the

customers’ or market needs are How many people will use the system? What are the performance expectations? What are the security requirements? How long is the system expected to last? How flexible does the architecture need to be?

Not all requirements will come from the outside As an architect, make sure you get this input. If there are

missing details, then you need to define these as assumptions.

Bottom line is that the success of the design is whether it meets these requirements

Page 6: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Getting good requirements isn’t easy

Page 7: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Trade off Considerations All design elements will consist of these These are the pros/cons, advantages/disadvantages, etc. An architect is like a judge. One who considers all the

evidence and makes a fair and balanced decision.

Page 8: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Return on Investment Perhaps the most important trade-off considerations, but

often overlooked ROI = value – cost. Bottom line: You want to make sure value > cost for the

system’s life Will the choices you make pay off?

Page 9: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw© AvePoint 2013

Infrastructure Architecture

Page 10: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Servers How many servers will you need? Should you scale up or scale out? Do you need to scale on demand? What about fault tolerance? In general, will the system be CPU

or RAM bound? Most of the time, memory is more

important than CPU For SharePoint farms, consider what

your roles are WFE, App, Cache, Database Min role in SP2016 changes things

Page 11: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Storage So many choices. DAS,

SAN, NAS, near line, HBA types, SSD, WORM, cloud, on-prem, …

Striping (RAID levels) is still used to increase space and speed, but this is much easier with NAS and SAN devices

Basic measure of performance is IOPS (Input Ops per Second)

For SharePoint db storage, target 1.0 IOPS/GB

Page 12: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Databases What database technology do you need?

Relational, NoSQL, Hadoop Do you need transactional support? What recovery needs do you have? Do you need to maintain relational integrity? How can you protect the database?

AuthN, AuthZ, encryption, backup/restore What performance needs do you have?

In general, the larger a database gets, the slower it becomes

Page 13: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Network Server to server, client to server

We optimize these separately Create VLANs, dedicated network segments There are lots of choices covering almost each

layer of the OSI model from application to physical Use caching techniques where needed Batch calls to reduce round trips where possible Leverage the power of your smart client

HTML5 makes even browser apps rich client apps

Page 14: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw© AvePoint 2013

Cloud Considerations

Page 15: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

The cloud changes most of the rules IaaS – we don’t think about infrastructure (hardware) PaaS – we don’t think about the OS SaaS – we don’t think about the platform (.NET, Java, etc.)

Elasticity and Scalability gives us great flexibility Pay for what you use model allows us to save $$$

Bridging on-prem and the cloud is where things get complex Hybrid is ever evolving and still has a

long way to go

Page 16: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw© AvePoint 2013

Randy’s Tips for Success

Page 17: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Tips from Randy Make sure you know the platform. Do your homework. Research other patterns and practices. It's very likely

others have designed something similar. Be careful if you take short cuts. Experts can get often

away with this, but I don't recommend it for others. Can you explain your design to your peers or properly

document it? If not, you probably don't know it well enough. Keep reviewing and refining it.

Architecting is often done in layers. Examples include n-tier solutions. But also from high level to lower levels.

Page 18: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Tips from Randy What is the right level of detail for your design? This is

hard to answer as it depends on many factors. The short answer is when a team understands the design and can jump right into implementation

Consult others on your design. Don’t be afraid to let others look at it. Be prepared to defend your choices, but be flexible and take their input like a professional. If you need to redesign, see this as an opportunity to improve and learn something new

There are no perfect designs so don’t make this your goal. Your design needs to be good enough to meet the requirements

Page 19: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Tips from Randy Designs are not really right or wrong. Few things in this

world are black and white like this. Consider the adage, "A good plan today is better than a

great plan tomorrow." - Do you think this applies to architecting solutions?

Do not drag out the architecture for ever trying to consider every possible angle. There are always schedule pressures whether this comes from a customer, the market or your boss/project manager. This will lead to paralysis.

That said, don't rush too fast. Give it proper time. Making bad design choices can result in weeks or months of rework. With experience, you'll often know when it's good enough. If you don't, consult others for their opinion.

Page 20: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Tips from Randy Make sure you have the architecture ready before you

start formal development. I can't emphasize how important this is and how often it is overlooked. Doing prototype development to validate your choices is fine, but consider it throw-away code.

Simple designs are almost always better than complex designs.

Make sure you think about how can you prove that your design is the best choice. Consider how can it be tested. This happens as you design and all the way thru development.

Keep your code units modular as much as possible. Think about re-use either in this solution or other ones. Think about having a library of reusable modules. We need to continually grow this out.

Page 21: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Tips from Randy No one knows everything so don’t try to be an expert

across all areas Have a good generalist knowledge about how things work

and fit together Then, find those specific areas where you want to

specialize and become an expert. These areas should align with your passion.

Do what you love to make your heart sing

Page 22: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetraw

Thank you

[email protected] @tweetraw

Questions?

Page 23: Architecting Solutions and Systems – Randy’s Secrets to Success

@tweetrawThank you

Collaboration with Confidence: Let take you there.