+ All Categories
Home > Software > Adi Bolboacă: Architecture For Disaster Resistant Systems at I T.A.K.E. Unconference 2015

Adi Bolboacă: Architecture For Disaster Resistant Systems at I T.A.K.E. Unconference 2015

Date post: 12-Aug-2015
Category:
Upload: mozaic-works
View: 86 times
Download: 0 times
Share this document with a friend
Popular Tags:
37
Architecture for Disaster Resistant Systems - Resilience (materials science) - www.mozaicworks.com
Transcript

Architecture for Disaster Resistant Systems

- Resilience (materials science) -

www.mozaicworks.com

Me

Adi BolboacăProgrammer

Organizational & TechnicalTrainer & Coach

www.mozaicworks.com

Disaster Resistant System

A system's degree of resistance to disasters is a measurement of its stability under stress conditions

caused by the outside environment or by the people who manipulate it.

www.mozaicworks.com

We will talk about

● Software Architecture● Fligtht safety vs Product safety

● Risk management in Aviation vs Software● Briefing in Aviation vs Software

● Checklists● Measurements for fast feedback

● Tools and techniques to avoid disasters

www.mozaicworks.com

Architecture

Ἀρχιτέκτων = ἀρχι-τέκτωνArchitect = chief builder

www.mozaicworks.com

Pilot – Authority andResponsibility

● Operate aircraft according to regulations● Operate within the aircraft limitations

● Refuse any unsafe flight● Evaluate and approve or refuse missions

● Before departure understands request● Have all resources to perform flight

www.mozaicworks.com

Architect – Authority and Responsibility

● Focus on non-functional requirements (security, maintainabiliy, extensibility, scalability, usability, etc)

● Help the teams create standards● Enforce standards● Maximize reusage

● Modularize system with feedback from the stakeholders (eg. product roadmap, usability tests)

● Work closely with teams and code with them● Adapt architecture depending on the feedback

● Responsible for the system's health (Architecture Stewardship)

www.mozaicworks.com

Aviation – Risk Management

Is a five-step process

1. Identify the Hazard2. Asses the Hazard / Risk3. Make a Risk Decision4. Implement Controls5. Supervize / Evaluate

www.mozaicworks.com

Architect – Risk Management

1. Assess2. Brainstorm

3. Assign probability4. Estimate impact

5. Decide which to consider6. Create contingency plan

7. Create guidelines8. Gather feedback on guidelines

9. Enforce guidelines10. Go to 1.

www.mozaicworks.com

Deployment & Risk Management1. Assess

www.mozaicworks.com

Deployment & Risk Management2. Brainstorm

1. Risk: Security between GUI and WS2. Risk: Communication to Hospitals DB

3. Risk: Storage API to stop working4. Risk: GUI to stop working

5. Risk: Cloud storage to stop working6. Risk: WS stops working

7. Risk: ...

www.mozaicworks.com

Deployment & Risk Management3. Assign Probability

www.mozaicworks.com

Deployment & Risk Management4. Estimate Impact

1. Risk: Security between GUI and WS → HIGH2. Risk: Communication to Hospitals DB → HIGH3. Risk: Storage API to stop working → MEDIUM

4. Risk: GUI to stop working → HIGH5. Risk: Cloud storage to stop working → HIGH

6. Risk: WS stops working → HIGH7. Risk: ...

www.mozaicworks.com

Deployment & Risk Management5. Decide Which to Consider

1. Risk: Security between GUI and WS → HIGH2. Risk: Communication to Hospitals DB → HIGH3. Risk: Storage API to stop working → MEDIUM

4. Risk: GUI to stop working → HIGH5. Risk: Cloud storage to stop working → HIGH

6. Risk: WS stops working → HIGH7. Risk: ...

www.mozaicworks.com

Deployment & Risk Management6. Create Contingency Plan

Risk: GUI to stop working → HIGH

● Measure the live system performance● Message suport when it fails

● When service stops, start automatically another service

● If service cannot be started, create new machine, start service and reroute to new machine

● Message support if failure continues for more than 5 minutes

www.mozaicworks.com

Deployment & Risk Management7. Guidelines

● Always create a deployment script● Use the deployment script to automatically spawn

new service● Always log

● Always message support about system failure

www.mozaicworks.com

Deployment & Risk Management

All these practices help us to

minimize the risks

www.mozaicworks.com

Aviation – Checklist Usage

The checklists are used:a) Before engine start

b) Before Startingc) Before takeoff

d) Cruisee) Before landingf) After landing

g) Engine shutdown

www.mozaicworks.com

Checklist – Before Engine Start

● Auxiliary fuel pump — Off● Flight controls — Free and correct

● Instruments and radios — Checked and set● Landing gear position lights — Checked

● Altimeter — Set● Directional gyro — Set

● Fuel gauges — Checked● Trim — Set

● Propeller — Exercise● Magnetos — Checked

● Engine idle — checked● Flaps — As required

● Seat belts/shoulder harnesses — Fastened● Parking brake — Off

www.mozaicworks.com

Architecture – Checklist Usage

What if we use checklists:a) Before project start

b) Before kick-off projectc) Before first sprint

d) During developmente) Before deployment

f) After deploymentg) For retrospective

www.mozaicworks.com

Checklist – Before Project Starts

● Requirements are clear● Customer needs are identified

● Final user types (personas) are identified● Architecture sketch finalized: system

diagram, deployment diagram● Architecture reviewed by another architect

● Architecture reviewed by QA● Architecture reviewed by Operations

www.mozaicworks.com

Checklist – Before kick-off

● We have the minimum architecture● The team members know their roles and

responsibilities● We have all the necessary roles in the team● The team understand the business concept

● We have enough hardware in place● All the software tools are installed and ready

www.mozaicworks.com

Checklist – Before First Sprint

● We have enough requirements clarified● The team read and understood the

requirements for the next period● The architecture is clear to the team

● We have architecture guidelines in place● Standards and team rules have been

defined and improved with the team

www.mozaicworks.com

Aviation - Measurements

Pilots use tools to continously assess the current situation

www.mozaicworks.com

Architecture - Measurements

Architects should use appropriate metrics and tools to continously assess the current

situation

The difference: metrics need to be chosen

www.mozaicworks.com

Architecture - Measurements

Number of failing tests: Integration, Performance, Security, etc

Automated = current situation

Hint: Always prefer automated metrics

www.mozaicworks.com

Architecture - Standards

● Code standards per language● Code review standards

● Tool usage standards (ie commit at least once per day)

Hint: use automated tools to enforce code standards (ie Sonar, Code Cop)

www.mozaicworks.com

Architecture - Policies

● Security Policies ● Always encrypt when outside the LAN

● Programming policies● Do not return null, always use Null Object Pattern

● Process Policies● When the architecture is not helping, talk with the

architect(s) immediately● The team takes decisions about the detailed

architecture

www.mozaicworks.com

Aviation - Practices

www.mozaicworks.com

- From Lufthansa magazine -

Always pair when a high risk is involved!

Architecture - Practices

www.mozaicworks.com

● Code review● Architecture review● Pair-programming

● Team feedback● Continous improvement

All these practices minimize the risks and make the system resistant to

disasters

General Guideline

Pilots Architects should not allow themselves to be persuaded to

attempt anything against their better judgment.

When in doubt, don't!

(Operations and Safety Procedures Guide for Helicopter Pilots, page 25)

www.mozaicworks.com

Disaster Resistant Systems

www.mozaicworks.com

A system is disaster resistant if we:

● Perform risk management before and during the project

● Use checklists to minimize mistakes● Continously assess risks and rate impact

● Use transparency and honesty in the team● Use always our better judgement

Questions?

www.mozaicworks.com

Let's talk at Open Space as well!

Thank [email protected]

Twitter: @adibolb

Blog: blog.adrianbolboaca.ro

www.mozaicworks.com

See the slides at http://www.slideshare.net/adibolb

References

http://upload.wikimedia.org/wikipedia/commons/8/84/Stress_Strain_Ductile_Material.png

Lufthansa Magazine

http://www.nifc.gov/aviation/av_documents/av_helicopters/SafetyBrief.pdf

http://upload.wikimedia.org/wikipedia/commons/5/5e/Tape_measure_colored.jpeg http://pixabay.com/p-41335

www.mozaicworks.com

References

http://upload.wikimedia.org/wikipedia/commons/8/84/Stress_Strain_Ductile_Material.png

Lufthansa Magazinehttp://www.nifc.gov/aviation/av_documents/av_helicopters/SafetyBrief.pdf

http://pixabay.com/p-41335http://pixabay.com/p-33364

http://pixabay.com/p-311409 http://pixabay.com/p-296438http://pixabay.com/p-29503

http://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Official_policy_seal.svg/329px-Official_policy_seal.svg.png

https://www.flickr.com/photos/barrydahl/6675297699http://pixabay.com/p-155486http://pixabay.com/p-303113

https://c1.staticflickr.com/9/8067/8163592864_fa4a9ba8ed_z.jpg

www.mozaicworks.com


Recommended