SlideShare uma empresa Scribd logo
1 de 88
Aliaksei Bahachuk
Solution Architect at EPAM Systems
Solution Architecture
and JavaScript
What is Architecture?
Architecture?
Architecture?
Architecture in Software
• Code
• Folder Structure
• Design Patterns
• Software Patterns
Solution Architecture?
The Swedish Ship Vasa
The Swedish Ship Vasa
70 met ers
• 300 soldiers
• 3 year
The Swedish Ship Vasa
The Swedish Ship Vasa
Who is guilty?
Gustav II Adolf Henrik Hybertsson
Inquest
• Balancing all of the conflicting constraints
• Risk management
• Customer management
• Wrong technologies
• Impossible requirements
Dead before the first tree
Architecture Cycle
Goals
Requirements
Architecture
SystemStakeholders
Failed before the first line of
code was written
Solution Architect
Solution Architecture Book
History: Clockwork Jimmy
Architectural Kata is …
• Replace the current UI solution
• Provide a new approach for D&D
• Provide better User Experience
• Different Platforms
Clockwork Jimmy
Minsk
Montreal
Dublin
Clockwork Jimmy
1
Presentation Time
Architecture Cycle
Goals
Requirements
Architecture
SystemStakeholders
Book
https://goo.gl/8DMmgq
about Business
Solution Architecture Book
• Stakeholders
History: Not Enough Fast
Architectural Kata is …
• Trading system
• Complete transactions in 0.5 sec
• The project was failed. Why?
Dynamic Goal
0.6 > 0.5 > 0.4
Architecture Cycle
Goals
Requirements
Architecture
SystemStakeholders
Business Requirements
Objective
Business Goals
Business Driver
Business Goals
Objective Objective
Business Principle
Projects without Goals
Book
https://goo.gl/SybSxi
about discovery Phase
Solution Architecture Book
• Stakeholders
• Business Goals
How Pioneers a Horse Milked
Architectural Kata is …
• Existing website
• Open and work on the phone of employees
• Offline mode
Pioneers
New Details
• Only Android System
• Only Offline
• Deadline is 2 months
Just need PWA
Architecture Cycle
Goals
Requirements
Architecture
SystemStakeholders
Example of requirements
MoSCoW
M - MUST
o
S - SHOULD
C - COULD
o
W - WON’T
Functional Requirements
“If only the functionality would matter then we would need no
internal structure, a single monolithic blob would be enough.”
Software Architecture in Practice
Requirements
Non-Functional
Functional
Constraints
Quality Attributes
History: White Сrow
Architectural Kata is …
• Separate service
• Converting and caching data in xml format
• Legacy system
White Сrow
White Сrow
Architecture Cycle
Goals
Constraints
Architecture
SystemStakeholders
Constraints
• Technical
• Time and budget
• People
Solution Architecture Book
• Stakeholders
• Business Goals
• Constraints
Quality Attributes
• accessibility
• accountability
• accuracy
• adaptability
• administrability
• affordability
• agility
• auditability
• autonomy
• availability https://en.wikipedia.org/wiki/List_of_system_quality_attributes
Quality Attributes
History: Security in Library
Security?
Security in Library
Architecture Cycle
Goals
Quality Attributes
Architecture
SystemStakeholders
Quality Attributes Scenario
Performance?
Quality Attributes Scenario
Source of stimulus
Stimulus
Environment
Artifact
Response
Measure
Solution Architecture Book
• Stakeholders
• Business Goals
• Constrains
• Quality Attributes
Architecture Cycle
Goals
Quality Attributes
Architecture
SystemStakeholders
Architecture
PRG Datacenter
Prod environment
PRODUCTION
CBJ Datacenter
Prod environment
PRODUCTION
“PLAY” Server Host 2
eWF Backend
(Play port 9000)
“ADT” Server
ADT Backend
(Play port 9000)
CAS
(Tomcat port
8080)
“Balancer” Server
NGinx
Frontend
NGinx
Backend
EWF->ADT: Get CI values
EWF->CAS: Authenticate
EWF->CAS: Get new tokenCalls from external systems
“Report” Server
Reporting server
EWF->Report: schedule a report
EWF-Report: generate report
ReplicationeWF
Prod
ADT
Prod
CAS
Prod
“CQ Author” Server
“CQ Publisher” Server
CQ Dispatcher
CQ Publisher
(Prod run mode)
CQ Author
(Passive)
Static resources
F5
BIG IP
Enduser
eWF
Prod
ADT
Prod
CAS
Prod
F5
BIG IP
eWF
Staging
ADT
Staging
CAS
Staging
Replication
Staging (Prod Config)
“PLAY” Server
eWF Backend
(Play 9000)
uses local cache
“ADT” Server
ADT Backend
(Play)
uses local cache
CAS
(Tomcat)
“Balancer” Server
NGinx
Frontend
NGinx
Backend
EWF->ADT: Get CI values
Reporting server
“CQ Publisher” Server
CQ Dispatcher
CQ Publisher
(Staging run mode)
“Centr. logging” Server
Centr.
Logging
server
Mongo
DB
“PLAY” Server Host 1
eWF Backend
(Play port 9000)
TSA
(main)
Cluster
TSA
(backup
host 2)
TSA
(main)
TSA
(backup
host 2)
REST calls from UI
3dns
Akamai
“PLAY” Server Host 2
eWF Backend
(Play port 9000)
“ADT” Server
ADT Backend
(Play port 9000)
CAS
(Tomcat port
8080)
“Balancer” Server
NGinx
Frontend
NGinx
Backend
EWF->ADT: Get CI values
EWF->CAS: Authenticate
EWF->CAS: Get new tokenCalls from external systems
“Report” Server
Reporting server
EWF->Report: schedule a report
EWF-Report: generate report
“CQ Author” Server
“CQ Publisher” Server
CQ Dispatcher
CQ Publisher
(Prod run mode)
CQ Author
(Activee)
Static resources
“Centr. logging” Server
Centr.
Logging
server
Mongo
DB
“PLAY” Server Host 1
eWF Backend
(Play port 9000)
TSA
(main)
TSA
(backup
host 2)
TSA
(main)
TSA
(backup
host 2)
REST calls from UI
Cluster
Internal reports
External reports
E2E (UAT) environment
Same as Prod environment in PRG
CQ Authors
Support team
Manage content
DHl Admins
Manage configuration items
Run internal reports
Solve Online Problems
Release new version
UAT team
Publish conf items values
Report
Prod
Report
Prod
Legend
Application
Hardware service
High available hosts (at least 2 hosts)
Cluster
Single host
High availbale DB
Report
Prod
“Migratiion” Server
Migration Backend
Draft servers
Migration
Schema
Migration Users
Migrate existing data
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Centr
logging
agent
Architectural Tactics
FE Performance Tactics
• Improve User Experience
• Optimize Resources (js, css, images, fonts, etc)
• Caching
• Critical Path
• Compression
• HTTP/2
Layered Architecture
BACK-END
DATA LAYER
DNS
VIEW
CQRS
Controllers/Services/API
READ ServiceWRITE Service
Data Access Data AccessConsumer
Good Performance
Fault Tolerance
Fault will always
Fault -> Error -> Failure
Fail Fast
Fail Fast
• Verify Integration Points early
• Avoid Slow Responses
• Input validation
Lie connection
Circuit Breaker Pattern
Close
Open
Half-open
Succes
s
Open
Fail Fast
Fail, Open
Try Request
Success, Close
Summary
Service
Validation
Discovery
Circuit Breaker
Logger
Log Errors
• Error Info
• Context Data
• Core Dump ~ 500 Mb
Leaky Bucket Counter
Core Dump
Summary
Service
Validation
Discovery
Circuit Breaker
LeakyBucket
Logger Service
Validation
Discovery
Book
https://goo.gl/8DMmgq
with 63 Patterns
Book
https://goo.gl/nMa8PA
about architecture
Solution Architecture Book
• Stakeholders
• Business Goals
• Constrains
• Quality Attributes
• Architecture
Think about architecture?
Architectural Kata is …
• Defined all Architecture Requirements/Goals/etc
• Developed solution
• The project was failed. Why?
Architecture Cycle
Goals
Quality Attributes
Architecture
SystemStakeholders
Is your project failed?
Thank you!
Link to the Presentation
https://goo.gl/zz2J96
Thank you!
Questions?
Bogachuk Alexey
bogachuk.alex@gmail.com

Mais conteúdo relacionado

Mais procurados

Mais procurados (20)

Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
Continuous Integration and Continuous Deployment (CI/CD) with WSO2 Enterprise...
 
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
APIdays Helsinki 2019 - Beyond REST: GraphQL API Management with Amit Acharya...
 
InfluxDB Live Product Training
InfluxDB Live Product TrainingInfluxDB Live Product Training
InfluxDB Live Product Training
 
[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...[apidays Live Australia] How do you enhance customer experience through event...
[apidays Live Australia] How do you enhance customer experience through event...
 
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
PuppetConf 2017 | Adobe Advertising Cloud: A Lean Puppet Workflow to Support ...
 
Build your next app with MvvmCross 6
Build your next app with MvvmCross 6Build your next app with MvvmCross 6
Build your next app with MvvmCross 6
 
WSO2 Guest Webinar: Building Enterprise Awareness with API Analytics in the A...
WSO2 Guest Webinar: Building Enterprise Awareness with API Analytics in the A...WSO2 Guest Webinar: Building Enterprise Awareness with API Analytics in the A...
WSO2 Guest Webinar: Building Enterprise Awareness with API Analytics in the A...
 
APIs from the Edge to the Mesh
APIs from the Edge to the MeshAPIs from the Edge to the Mesh
APIs from the Edge to the Mesh
 
[Webinar] WSO2 Enterprise Integrator 7.1.0 Release
[Webinar] WSO2 Enterprise Integrator 7.1.0 Release[Webinar] WSO2 Enterprise Integrator 7.1.0 Release
[Webinar] WSO2 Enterprise Integrator 7.1.0 Release
 
[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment[API World 2021 ] - Understanding Cloud Native Deployment
[API World 2021 ] - Understanding Cloud Native Deployment
 
apidays LIVE Paris - Automation API Testing by Guillaume Jeannic
apidays LIVE Paris - Automation API Testing by Guillaume Jeannicapidays LIVE Paris - Automation API Testing by Guillaume Jeannic
apidays LIVE Paris - Automation API Testing by Guillaume Jeannic
 
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
APIdays Helsinki 2019 - The Future of the Dynamic Application Server, NGINX U...
 
Api Gateway
Api GatewayApi Gateway
Api Gateway
 
[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs[API World ] - Managing Asynchronous APIs
[API World ] - Managing Asynchronous APIs
 
Hybrid integration platform reference architecture
Hybrid integration platform reference architectureHybrid integration platform reference architecture
Hybrid integration platform reference architecture
 
Service Mesh - kilometer 30 in a microservice marathon
Service Mesh - kilometer 30 in a microservice marathonService Mesh - kilometer 30 in a microservice marathon
Service Mesh - kilometer 30 in a microservice marathon
 
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
apidays LIVE Hong Kong 2021 - Multi-Protocol APIs at Scale in Adidas by Jesus...
 
Voxxed Days Minsk. Microservices:
 The phantom menace
. Istio Service Mesh: 
...
Voxxed Days Minsk. Microservices:
 The phantom menace
. Istio Service Mesh: 
...Voxxed Days Minsk. Microservices:
 The phantom menace
. Istio Service Mesh: 
...
Voxxed Days Minsk. Microservices:
 The phantom menace
. Istio Service Mesh: 
...
 
Multi Team Architecture
Multi Team ArchitectureMulti Team Architecture
Multi Team Architecture
 
Microservice: the phanot menace. Istio Service Mesh: the new hope. JEEConf 2019
Microservice: the phanot menace. Istio Service Mesh: the new hope. JEEConf 2019Microservice: the phanot menace. Istio Service Mesh: the new hope. JEEConf 2019
Microservice: the phanot menace. Istio Service Mesh: the new hope. JEEConf 2019
 

Semelhante a Aliaksei Bahachuk - JavaScript and Solution Architecture

A1 engineered systems principles and architecture
A1   engineered systems principles and architectureA1   engineered systems principles and architecture
A1 engineered systems principles and architecture
Dr. Wilfred Lin (Ph.D.)
 

Semelhante a Aliaksei Bahachuk - JavaScript and Solution Architecture (20)

Aliaksei Bahachuk JavaScript and solution architecture
Aliaksei Bahachuk   JavaScript and solution architectureAliaksei Bahachuk   JavaScript and solution architecture
Aliaksei Bahachuk JavaScript and solution architecture
 
StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
StarlingX - A Platform for the Distributed Edge | Ildiko VancsaStarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
StarlingX - A Platform for the Distributed Edge | Ildiko Vancsa
 
Reactive Development: Commands, Actors and Events. Oh My!!
Reactive Development: Commands, Actors and Events.  Oh My!!Reactive Development: Commands, Actors and Events.  Oh My!!
Reactive Development: Commands, Actors and Events. Oh My!!
 
Serverless SQL
Serverless SQLServerless SQL
Serverless SQL
 
Honorable Squires
Honorable SquiresHonorable Squires
Honorable Squires
 
Sebastien goasguen cloud stack the next year
Sebastien goasguen   cloud stack the next yearSebastien goasguen   cloud stack the next year
Sebastien goasguen cloud stack the next year
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
StarlingX - Project Onboarding
StarlingX - Project OnboardingStarlingX - Project Onboarding
StarlingX - Project Onboarding
 
Service quality monitoring system architecture
Service quality monitoring system architectureService quality monitoring system architecture
Service quality monitoring system architecture
 
Building FoundationDB
Building FoundationDBBuilding FoundationDB
Building FoundationDB
 
Why Upgrade to v8.6?
Why Upgrade to v8.6?Why Upgrade to v8.6?
Why Upgrade to v8.6?
 
An Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspectiveAn Azure of Things, a developer’s perspective
An Azure of Things, a developer’s perspective
 
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
CMG2013 Workshop: Netflix Cloud Native, Capacity, Performance and Cost Optimi...
 
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
Continuous Deployment into the Unknown with Artifactory, Bintray, Docker and ...
 
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
Tokyo Azure Meetup #7 - Introduction to Serverless Architectures with Azure F...
 
Software Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuableSoftware Architecture and Architectors: useless VS valuable
Software Architecture and Architectors: useless VS valuable
 
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
AWS re:Invent 2016: Born in the Cloud; Built Like a Startup (ARC205)
 
A1 engineered systems principles and architecture
A1   engineered systems principles and architectureA1   engineered systems principles and architecture
A1 engineered systems principles and architecture
 
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
Simulating Networks Using Cisco Modeling Labs (TechWiseTV Workshop)
 
Cloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark AnalyticsCloud Security Monitoring and Spark Analytics
Cloud Security Monitoring and Spark Analytics
 

Último

Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Último (20)

AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 

Aliaksei Bahachuk - JavaScript and Solution Architecture

Notas do Editor

  1. Само понятие архитектуры у меня всегда ассоциируется со строениями
  2. Уже традиционно, я хотел бы начать свое выступление с истории Истории, повествующей о шведском корабле(не побоюсь этого слова Галере) Ваза, который заставит вас совершенно по-другому взглянуть на подходы к построению архитектуры приложений и современную роль архитектора на проекте
  3. 70 meters long, able to carry 300 soldiers, and with an astonishing 64 heavy guns mounted on two gun decks Hybertsson had to balance many concerns. Swift time to deployment was critical, but so were performance, functionality, safety, reliability, and cost. He was also responsible to a variety of stakeholders. In this case, the primary customer was the king, but Hybertsson also was responsible to the crew that would sail his creation. Also like all architects, Hybertsson brought his experience with him to the task. In this case, his experience told him to design the Vasa as though it were a single-gun-deck ship and then extrapolate, which was in accordance with the technical environment of the day. Faced with an impossible task, Hybertsson had the good sense to die about a year before the ship was finished. SA in Practice P-165
  4. К воскресенью 10 1628 года «Ваза» стоял на швартовах напротив королевского дворца. Там на борт был принят балласт, а также пушки, порох и ядра для первого плавания. Когда корабль вышел на открытое пространство бухты, сильный порыв ветра наполнил паруса, и «Ваза» начал крениться на подветренную сторону, но затем выровнялся и прошёл ещё примерно 1300 метров, дойдя до острова Бекхольмен у входа в гавань Стокгольма. Там, в ста метрах от острова, новый порыв ветра снова накренил корабль, на этот раз значительно сильнее. Вода хлынула через открытые пушечные порты, корабль лёг на борт и начал тонуть с поднятыми парусами и развевающимися флагами.
  5. Когда корабль вышел на открытое пространство бухты, сильный порыв ветра наполнил паруса, и «Ваза» начал крениться на подветренную сторону, но затем выровнялся и прошёл ещё примерно 1300 метров, дойдя до острова Бекхольмен у входа в гавань Стокгольма. Там, в ста метрах от острова, новый порыв ветра снова накренил корабль, на этот раз значительно сильнее. Вода хлынула через открытые пушечные порты, корабль лёг на борт и начал тонуть с поднятыми парусами и развевающимися флагами.
  6. Никаких результатов не принесли допросы кораблестроителей, под руководством которых строился «Ваза». Основная сложность заключалась в том, что фактический строитель корабля Хенрик Хюбертссон умер за год до катастрофы. Ответственные за верфь, где был построен «Ваза», судостроитель Хейн Якобссон и арендатор верфи Арент де Грот поклялись в своей невиновности, указав, что корабль был построен по тем размерам, которые утвердил лично король Густав II Адольф. И на борту было то количество пушек, которое стояло в контракте. Привлекать к следствию самого короля в Государственном совете не решились. В итоге никто не был признан виновным и никто не был осуждён за катастрофу. В ходе следствия выдвигались разнообразные гипотезы относительно причин гибели корабля: алкогольное опьянение капитана, ненадёжное закрепление пушек и т. д. Ни одна из этих версий не подтвердилась. В конце концов, следствием был сделан вывод: при проектировании корабля были допущены ошибки. Действительно, «Ваза» имел слишком высоко расположенный центр тяжести и был слишком узок, хотя судостроители, тайно от короля, увеличили его ширину на 2,5 метра, его подводная часть по отношению к корпусу, рангоуту и артиллерии имела слишком малый вес. Это привело к неустойчивости корабля. Капитан корабля Сёфринг Ханссен сам отмечал это на следствии, однако в случае с «Вазой» предпринять было нечего: взять большее количество балласта и тем повысить остойчивость корабля не позволяла его конструкция.
  7. История Вазы, хотя более 375 лет, хорошо иллюстрирует Цикл влияния архитектуры: цели организации порождают требования, которые порождают архитектуру, которая порождает систему. И цена ошибки на любом из этапов может стоить вам корабль
  8. При неверной архитектуре, сколько проектов мертвы еще до написания первой строчки кода?
  9. Говоря об архитектуре, каждый смотрит на нее под своим углов со своей перспективы. Поставщики пушек смотрели на судно, как на объект, который должен был вместить ровно 64 пушки Маляры – как на площадь для закраски
  10. Король, как главный заказчик, смотрел на корабль как инвестицию в свое политическое будущее Что в свою очередь дало толчок к созданию каких-то чертежей Корабль строился в верфях и доках
  11. Сейчас казнить архитекторов нельзя (запрещает законодательство), а так бы книга была написана кровью
  12. Во время историй, я буду предлагать решать архитектурные задачки или каты Где в упрощенном виде описан самый первый запрос, который может прийти от клиента.
  13. История Вазы, хотя более 375 лет, хорошо иллюстрирует Цикл влияния архитектуры: цели организации порождают требования, которые порождают архитектуру, которая порождает систему.
  14. Responsible (R): the persons who will be performing the work on the task. Accountable (A): the person who is ultimately held accountable for successful completion of the task and is the decision maker. Consulted (C): the stakeholders who will be asked to provide an opinion or information about the task. Informed (I): a stakeholders that is kept up to date on the task and notified of its outcome.
  15. Из Минусов RACI матрицы, что она не покрывает следующий случай
  16. Кстати, вы с этим типом стейкхолдеров тоже встречались, например законы требующие получить сертификат соответствия у внешние аудиторских компаний по аксесабилити или безопасности вашего приложения.
  17. Business goal was to be quicker then competitors At the time of writing the spec competitors were doing transactions in 0.6 sec A month later a new product was launched offering transactions in 0.4 sec
  18. Заказчик хотел иметь самую быструю систему (самый большой самый тяжеловооруженный корабль), на это была направлена вся его реклама А Ценность такой системы заметно падала!
  19. Business Objective - A strategic business goal for an enterprise. Example - We will provide the best customer service in our field. Business Principle - High level rules that govern the manner in which business capabilities are delivered by the enterprise and provide the context for designing and defining how these capabilities will be realised. Example - Quality will not be sacrificed by cost efficiency. Business Domain - This is the top level construct in the Business Architecture.  It provides a means of categorising the business related elements independent of the context in which it is applied. In other words the main groupings of the business, not necessarily the organisational functions. e.g., Invoicing belongs to the Finance domain but may appear in the Sales Order process. Example - Sales and Marketing, Operations, Customer Services, Finance, Fulfilment, HR, IT, Business Control, Trading and Order Management. Business Capability- Business Capabilities are used to model the capabilities of a business or enterprise. Capabilities represent what the business does (or needs to do) in order to fulfil its objectives and responsibilities. Examples - Order Approval, Picking, Packing, Delivery, Client Management, Client Invoicing, Trades Matching and Confirmation, Perform Industry Research.   https://www.enterprise-architecture.org/business-architecture-tutorials/55-business-architecture-overview
  20. • Проекты, которые не имеют четких целей, постоянно борются, чтобы понять, каковы их настоящие требования, и вряд ли их обнаружат. • Проекты без целей уязвимы для давления на добавление требований, даже если у них нет времени или денег для большей работы.
  21. Whether requirements are specified using the “MoSCoW” style (must, should, could, won’t), or as a collection of “user stories,” Они рассказывают, что система должна делать, а не какой она должна быть
  22. Functional - These requirements are satisfied by including an appropriate set of responsibilities within the design. Quality attribute - These requirements are satisfied by the structures and behaviors of the architecture. Constraints - A constraint is a design decision that’s already been made
  23. История про библиотеку, где я хотел посмотреть каталог. Нужно было зарегистрироваться и указать емайл и телефон! А потом должна была прийти СМС!
  24. Вроде ошибка в определении Quality Attributes Но с другой стороны Security в приложении важно. Чего-то не хватает?
  25. “In summary, here are the six parts: Source of stimulus. This is some entity (a human, a computer system, or any other actuator) that generated the stimulus. 2. Stimulus. The stimulus is a condition that requires a response when it arrives at a system. 3. Environment. The stimulus occurs under certain conditions. The system may be in an overload condition or in normal operation, or some other relevant state. For many systems, “normal” operation can refer to one of a number of modes. For these kinds of systems, the environment should specify in which mode the system is executing. “4. Artifact. Some artifact is stimulated. This may be a collection of systems, the whole system, or some piece or pieces of it. 5. Response. The response is the activity undertaken as the result of the arrival of the stimulus. 6. Response measure. When the response occurs, it should be measurable in some fashion so that the requirement can be tested.
  26. “We call these techniques architectural tactics. A tactic is a design decision that influences the achievement of a quality attribute response—tactics directly affect the system’s response to some stimulus. Tactics impart portability to one design, high performance to another, and integrability to a third
  27. speed up delivery with faster dns-lookup, preconnect, Prefetch and preload
  28. Command Query Responsibility Segregation Подобный паттерн добавляет серьезный оверхед на нашу архитектуру и применение данного паттерна должно быть продиктовано нашим сценарием
  29. Отказоустойчивость
  30. Отказоустойчивость!
  31. Неисправность ошибка падение
  32. Pragmatic Programmers - Release It - Design and Deploy Production-Ready Software.pdf – p.132 Avoid Slow Responses and Fail Fast If your system cannot meet its SLA, inform callers quickly. Don’t make them wait for an error message, and don’t make them wait until they time out. That just makes your problem into their prob- lem. Reserve resources, verify Integration Points early In the theme of “don’t do useless work,” make sure you will be able to complete the transaction before you start. If critical resources aren’t available—for example, a popped Circuit Breaker on a required call out—then don’t waste work by getting to that point. The odds of it changing between the beginning and the mid- dle of the transaction are slim. Use for input validation Do basic user input validation even before you reserve resources. Don’t bother checking out a database connection, fetching domain objects, populating them, and calling validate( ) just to find out that a required parameter wasn’t entered.
  33. Pragmatic Programmers - Release It - Design and Deploy Production-Ready Software.pdf – p.132 Avoid Slow Responses and Fail Fast If your system cannot meet its SLA, inform callers quickly. Don’t make them wait for an error message, and don’t make them wait until they time out. That just makes your problem into their prob- lem. Reserve resources, verify Integration Points early In the theme of “don’t do useless work,” make sure you will be able to complete the transaction before you start. If critical resources aren’t available—for example, a popped Circuit Breaker on a required call out—then don’t waste work by getting to that point. The odds of it changing between the beginning and the mid- dle of the transaction are slim. Use for input validation Do basic user input validation even before you reserve resources. Don’t bother checking out a database connection, fetching domain objects, populating them, and calling validate( ) just to find out that a required parameter wasn’t entered.
  34. Автоматический выключатель
  35. На примере приложения, слои это хорошо! Пример на уровне приложения: приложение падало, когда отваливалась база данных
  36. You need to know if an error is transient or intermittent. Solution: Define your leaky bucket counter Initial value at the system start-up Incrementing wnen specified issue occurs Decrementing over specified peroid but never less than initial value If exceeding a predetermined upper threshold, handle the error as permanent
  37. C4 model System Diagram
  38. Container Diagram
  39. Component Diagram
  40. Technical ARCHITECT’S INFLUENCE Positive experience with technologies and patterns Bad experiences are avoided in new designs Influence by trends Influence by education and training
  41. Выбор технологий всегда идет последним пунктом при принятии проектного решения: “The seven categories of architectural design decisions are these: Allocation of responsibilities 2. Coordination model 3. Data model 4. Management of resources 5. Mapping among architectural elements 6. Binding time decisions 7. Choice of technology
  42. И если в процессе моего доклада вы все-таки начали задумываться о правильной парадигме построения архитектуры в приложениях, то вот вам напоследок еще одна история
  43. В джире у разработчиков не было ни слова написано ни про какие квалити атрибуты Они знать не знали ни про каких стейкхолдеров и рекварименты Они фича за фичей просто топили свое приложение А теперь поднимите руки, у кого на проекте кто-нибудь занимался чем-то подобным при построении архитектуры? Может вы совершаете ту же ошибку, а может она была совершена ранее А может ваше приложение уже утонуло, а вы еще не знаете об этом?