SlideShare ist ein Scribd-Unternehmen logo
1 von 74
Downloaden Sie, um offline zu lesen
What does it take to be an architect
Konstantin Slisenko
Solution Architect at EPAM
twitter: @kslisenko
facebook.com/konstantin.slisenko.1
2
My own
experience
● Big company
(not a startup)
● Teams in different
cities and time zones
● Enough time and
money
3
What is
architecture?
4
5
https://dzone.com/articles/spring-cloud-microservices-at-pivotal-platform
Architecture is process of
6
Architecture is process of
7
1. Identifying business goals
Architecture is process of
8
1. Identifying business goals
2. Gathering requirements from stakeholders
Architecture is process of
9
1. Identifying business goals
2. Gathering requirements from stakeholders
3. Making design decisions
Architecture is process of
10
1. Identifying business goals
2. Gathering requirements from stakeholders
3. Making design decisions
4. Documenting
Architecture is process of
11
1. Identifying business goals
2. Gathering requirements from stakeholders
3. Making design decisions
4. Documenting
5. Communicating
12
13
14
Sure!
- I can rewrite it
- Using cool latest technology
- Enhance API
- Improve performance
- Refactor
- And do much more!
15
Trust me,
I’m an architect!
16
“Poor understanding of business
goals is the path to the dark
side.
It leads to wrong design
decisions.
Wrong design decisions lead to
wrong software.
Wrong software leads to
business failure.” 17
Business goals
18
Possible business goals of any company
19
Business goals
1. Reduce costs by moving to cheaper data vendor
2. Avoid expenses for database maintenance
3. Attract more users at a less cost (outsource
strategy tools)
20
21
22
23
- I made design decisions!
- May I start coding now?
24
“Patience you must
have my young
padawan.
You haven’t met
stakeholders.”
25
Stakeholders
26
27
28
29
Stakeholders
1. Responsible for different requirement
areas
2. Sometimes non-technical people
3. Impact on design decisions
30
We need to communicate with
different stakeholders differently!
31
We need to communicate with
different stakeholders differently!
32
Requirements
Constraints
Assumptions
33
Gathering requirements
34
Example requirements
35
1. Time to show up on UI < 3 seconds
2. Uptime should be 99.9%
3. API must stay backward-compatible
4. We are not ready for cloud
deployment yet
Example requirements
36
1. Time to show up on UI < 3 seconds
2. Uptime should be 99.9%
3. API must stay backward-compatible
4. We are not ready for cloud
deployment yet
Example requirements
37
1. Time to show up on UI < 3 seconds
2. Uptime should be 99.9%
3. API must stay backward-compatible
4. We are not ready for cloud
deployment yet
Gathering requirements
38
1. Time to show up on UI < 3 seconds
2. Uptime should be 99.9%
(we assume that automatic connection
failover will be provided by vendor)
Do all requirements
impact architecture?
39
Which requirements impact architecture?
40
1. Time to show up on UI < 3 seconds
2. Uptime should be 99.9%
3. API must stay backward-compatible
4. We are not ready for cloud
deployment yet
Which requirements impact architecture?
41
1. Time to show up on UI < 3 seconds
2. Uptime should be 99.9%
3. API must stay backward-compatible
4. We are not ready for cloud
deployment yet
Architecture
design
42
43
“A Jedi makes design
decisions for achieving
business goals and
requirements
Never chooses
technology just because
it is cool or popular.”
44
Architecture
styles and patterns
45
46
https://martinfowler.com/articles/microservices.html
https://pradeeploganathan.com/architecture/hexagonal-architecture/
https://www.oreilly.com/library/view/software-architecture-patterns/9781491971437/
https://berb.github.io/diploma-thesis/original/054_actors.html
Architecture styles
● Monolith
● Microservices
● Event-driven
● Actor based
● SOA
● Hexagonical
● Serverless
● ...
47
https://docs.microsoft.com/bs-latn-ba/azure/architecture/guide/architecture-styles/cqrs?view=azuremgmtcompute-14.1.0-prerelease
https://dzone.com/articles/layered-architecture-is-good
https://oldworldbaking.co/amp/enterprise-integration-patterns/enterprise-integration-patterns-awesome-integration-patterns-and-practices-for-cloud-and-mobile/
https://martinfowler.com/bliki/CircuitBreaker.html
Architecture patterns
● Layered
● Module-based
● CQRS
● Integration
patterns
● Fault-tolerance
patterns
● ...
Reference
architectures
48
49
Communicating
design decisions
50
“Always pass
on what you
have learned”
51
52
“Understanding
your diagram is
pain.
Terrible pain”
53
54
We need to communicate with
different stakeholders differently!
55
Context view
Architecture views
Component viewContext view
Architecture views
Deployment view
Component viewContext view
Architecture views
Other viewsDeployment view
Component viewContext view
Architecture views
59
Context view
60
Component view
61
Component view
62
Deployment view
63
Architecture
documentation
64
65
What architecture document should have
1. Business goals and stakeholders
2. Requirements, constraints, assumptions (if any)
3. Views (context, component, deployment, other)
4. Architecture decision log
66
Your
architecture
is shitty!
67
Architecture decision log
Jul 10, 2019 Migrating from Expensive Corp to Cheap & Dale as data vendor (cost
savings). We don’t have to use database anymore, as Cheap & Dail provides
API. Data layer have to be rewritten to call it.. Connection failover will be done
on vendor side.
Jul 10, 2019 Cache will be used in data layer to meet response time requirement (< 3s)
Jul 10, 2019 Data layer API must stay backward-compatible (Anakin Skywalker)
Jul 11, 2019 Feature control mechanism will be used for switching users to new services.
(confirmed to front-end teams)
Jul 15, 2019 Decommission strategy tools for recusing maintenance costs. Cool tools, Inc
provides same functionality as API and we will use it instead. We will write
simple request translator service to remain API backward-compatible.
68
Architecture is process of
69
1. Identifying business goals
2. Gathering requirements from stakeholders
3. Making design decisions
4. Documenting
5. Communicating
“Always in
motion is
the future...”
70
71
72
73
Diagrams Documents
Draw.io
MS Visio
Sketchboard.io
Google Docs
Confluence
Bitbucket
Questions?
Konstantin Slisenko
Solution Architect at EPAM
twitter: @kslisenko
facebook.com/konstantin.slisenko.1
74

Weitere ähnliche Inhalte

Was ist angesagt?

Test Automation and Continuous Integration
Test Automation and Continuous Integration Test Automation and Continuous Integration
Test Automation and Continuous Integration
TestCampRO
 
software effort estimation
 software effort estimation software effort estimation
software effort estimation
Besharam Dil
 
Continuous integration testing fundamentals
Continuous integration testing fundamentalsContinuous integration testing fundamentals
Continuous integration testing fundamentals
Cygnet Infotech
 
Complete testing@uma
Complete testing@umaComplete testing@uma
Complete testing@uma
Uma Sapireddy
 

Was ist angesagt? (20)

Evolutionary Architecture And Design
Evolutionary Architecture And DesignEvolutionary Architecture And Design
Evolutionary Architecture And Design
 
Testing AS A Container - Irfan Ahmad
Testing AS A Container - Irfan AhmadTesting AS A Container - Irfan Ahmad
Testing AS A Container - Irfan Ahmad
 
Increasing Quality with DevOps
Increasing Quality with DevOpsIncreasing Quality with DevOps
Increasing Quality with DevOps
 
Addressing Security Regression Through Unit Testing
Addressing Security Regression Through Unit TestingAddressing Security Regression Through Unit Testing
Addressing Security Regression Through Unit Testing
 
Performance Testing Internet of Things
Performance Testing Internet of ThingsPerformance Testing Internet of Things
Performance Testing Internet of Things
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Test Automation and Continuous Integration
Test Automation and Continuous Integration Test Automation and Continuous Integration
Test Automation and Continuous Integration
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test Framework
 
Lap around visual studio alm 2013
Lap around visual studio alm 2013Lap around visual studio alm 2013
Lap around visual studio alm 2013
 
Kalyani_3+wlan_resume(1)
Kalyani_3+wlan_resume(1)Kalyani_3+wlan_resume(1)
Kalyani_3+wlan_resume(1)
 
Building Security in Using CI
Building Security in Using CIBuilding Security in Using CI
Building Security in Using CI
 
Maturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous TestingMaturing your path toward DevOps with Continuous Testing
Maturing your path toward DevOps with Continuous Testing
 
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous IntegrationDelivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration
 
software effort estimation
 software effort estimation software effort estimation
software effort estimation
 
ATAGTR2017 Expanding test horizons with Robot Framework
ATAGTR2017 Expanding test horizons with Robot FrameworkATAGTR2017 Expanding test horizons with Robot Framework
ATAGTR2017 Expanding test horizons with Robot Framework
 
Agile Produktentwicklung in Kombination mit Scrum und V-Modell
Agile Produktentwicklung in Kombination mit Scrum und V-ModellAgile Produktentwicklung in Kombination mit Scrum und V-Modell
Agile Produktentwicklung in Kombination mit Scrum und V-Modell
 
Continuous integration testing fundamentals
Continuous integration testing fundamentalsContinuous integration testing fundamentals
Continuous integration testing fundamentals
 
Software Test Engineer
Software Test EngineerSoftware Test Engineer
Software Test Engineer
 
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demoAgile Software Factory - Cloud Expo / DevOps Summit 2014 demo
Agile Software Factory - Cloud Expo / DevOps Summit 2014 demo
 
Complete testing@uma
Complete testing@umaComplete testing@uma
Complete testing@uma
 

Ähnlich wie What does it take to be architect (for Cjicago JUG)

Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
ghodgkinson
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debt
Fadi Stephan
 
Should healthcare abandon the cloud final
Should healthcare abandon the cloud finalShould healthcare abandon the cloud final
Should healthcare abandon the cloud final
sapenov
 

Ähnlich wie What does it take to be architect (for Cjicago JUG) (20)

State of DevOps - Build the Thing Right
State of DevOps - Build the Thing RightState of DevOps - Build the Thing Right
State of DevOps - Build the Thing Right
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
 
Micro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - PlansoftMicro Front-End & Microservices - Plansoft
Micro Front-End & Microservices - Plansoft
 
Refactoring to Microservices
Refactoring to MicroservicesRefactoring to Microservices
Refactoring to Microservices
 
Managing technical debt
Managing technical debtManaging technical debt
Managing technical debt
 
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
How Cisco is Leveraging MuleSoft to Drive Continuous Innovation​ at Enterpris...
 
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CDMACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
 
roomos_webinar_280923_v2.pptx
roomos_webinar_280923_v2.pptxroomos_webinar_280923_v2.pptx
roomos_webinar_280923_v2.pptx
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
Preparing_for_PCA_Workbook.pptx
Preparing_for_PCA_Workbook.pptxPreparing_for_PCA_Workbook.pptx
Preparing_for_PCA_Workbook.pptx
 
Lightening Talk @Symfony Conference 2016
Lightening Talk @Symfony Conference 2016Lightening Talk @Symfony Conference 2016
Lightening Talk @Symfony Conference 2016
 
Should healthcare abandon the cloud final
Should healthcare abandon the cloud finalShould healthcare abandon the cloud final
Should healthcare abandon the cloud final
 
5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster5 Key Metrics to Release Better Software Faster
5 Key Metrics to Release Better Software Faster
 
Getting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of ConceptsGetting Started with ThousandEyes Proof of Concepts
Getting Started with ThousandEyes Proof of Concepts
 
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...
 
Efficient platform engineering with Microk8s & gopaddle.pdf
Efficient platform engineering  with  Microk8s & gopaddle.pdfEfficient platform engineering  with  Microk8s & gopaddle.pdf
Efficient platform engineering with Microk8s & gopaddle.pdf
 
Getting Demo & POV Ready
Getting Demo & POV ReadyGetting Demo & POV Ready
Getting Demo & POV Ready
 
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
Performance Metrics Driven CI/CD - Introduction to Continuous Innovation and ...
 

Mehr von Constantine Slisenka

Profiling distributed Java applications
Profiling distributed Java applicationsProfiling distributed Java applications
Profiling distributed Java applications
Constantine Slisenka
 

Mehr von Constantine Slisenka (10)

Unlocking the secrets of successful architects: what skills and traits do you...
Unlocking the secrets of successful architects: what skills and traits do you...Unlocking the secrets of successful architects: what skills and traits do you...
Unlocking the secrets of successful architects: what skills and traits do you...
 
Lyft talks #4 Orchestrating big data and ML pipelines at Lyft
Lyft talks #4 Orchestrating big data and ML pipelines at LyftLyft talks #4 Orchestrating big data and ML pipelines at Lyft
Lyft talks #4 Orchestrating big data and ML pipelines at Lyft
 
VoxxedDays Minsk - Building scalable WebSocket backend
VoxxedDays Minsk - Building scalable WebSocket backendVoxxedDays Minsk - Building scalable WebSocket backend
VoxxedDays Minsk - Building scalable WebSocket backend
 
Building scalable web socket backend
Building scalable web socket backendBuilding scalable web socket backend
Building scalable web socket backend
 
Latency tracing in distributed Java applications
Latency tracing in distributed Java applicationsLatency tracing in distributed Java applications
Latency tracing in distributed Java applications
 
Distributed transactions in SOA and Microservices
Distributed transactions in SOA and MicroservicesDistributed transactions in SOA and Microservices
Distributed transactions in SOA and Microservices
 
Best practices of building data streaming API
Best practices of building data streaming APIBest practices of building data streaming API
Best practices of building data streaming API
 
Database transaction isolation and locking in Java
Database transaction isolation and locking in JavaDatabase transaction isolation and locking in Java
Database transaction isolation and locking in Java
 
Networking in Java with NIO and Netty
Networking in Java with NIO and NettyNetworking in Java with NIO and Netty
Networking in Java with NIO and Netty
 
Profiling distributed Java applications
Profiling distributed Java applicationsProfiling distributed Java applications
Profiling distributed Java applications
 

Kürzlich hochgeladen

%+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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
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
 

Kürzlich hochgeladen (20)

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...
 
%+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...
 
%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
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%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
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
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...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security ProgramWSO2CON 2024 - How to Run a Security Program
WSO2CON 2024 - How to Run a Security Program
 
%+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...
 
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
%in Rustenburg+277-882-255-28 abortion pills for sale in Rustenburg
 
%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
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 

What does it take to be architect (for Cjicago JUG)