27 Şubat 2023 Pazartesi

Solution Architect (Çözüm Mimarı)

Giriş
Solution Architect belirli bir alanda uzmanlığı olan . Uzmanlık alanına göre şöyle unvanlar da olabilir
Data solution architect
Security solution architect
Cloud solution architect
Integration solution architect

Solution Architect bir iş problemine (business problem) çözüm bulan kişidir. Bu süreçte bir sürü şeye dahil olur. Örneğin
- Analyzing business requirements
- Evaluating technologies
- Designing the solution
- Creating tech documentation
- Managing the development team
- Solving technical problems
vs gibi şeylere dahil olur

Ancak en önemli olarak şu işleri yapar

1. Technical Vision
Açıklaması şöyle
..., solution architecture creates the overall technical vision for a specific solution to a business problem defined in the enterprise architecture under the domain
2. Overseeing the development
Açıklaması şöyle
Simply put, a solution architect is responsible for designing and overseeing the development of a company’s technical infrastructure. This includes everything from the systems and software that run a business to the networks and servers that support them. In short, solution architects are the masterminds behind a company’s technical operations, ensuring that everything runs smoothly and efficiently.
Yani ortaya bir çözüm konulur ve ona ulaşmak için gayret gösterilir. Geri kalan şeyler de destekleyici faaliyetler olarak takımdaki diğer roller tarafından yerine getirilir.

3. Devamı
Bir örnek şöyle. Devam eden bir projeye sonradan katılan Solution Architect kendi kararları olmasa bile halen sorumlu olabiliyor.
Let’s say you are a Solution Architect who joined a new project and team, and you find that they use Sharding Pattern to improve performance for some critical queries of your application. You also get papers showing how it works: Architecture Views and Diagrams, some notes explaining what kind of data must be stored in each shard, and even more, you got some examples on Java. The team implemented everything according to the guidelines and wrote automation tests to ensure performance was good enough for the declared values. Also, the solution works very well, and end-users get what they need.

Time goes by, and you work on something else. Still, eventually, you get a call from Project Sponsors saying that one Architecture Consultancy recommended decreasing the number of database instances for cost optimizations. Your gut feeling tells you that if you do so, you will break something for the end-users, but you cannot explain why you believe that Sharding Pattern is the best choice here. You also realize there were many other ways to improve Performance: Cache, CQRS, Event Sourcing, and different patterns. Why is the solution based on Sharding? Why not something else? 

Chief Enterprise architect vs Solution architect
Şeklen şöyle
Açıklaması şöyle. Yani Solution Architect daha özelleşmiş durumda
Enterprise architect: Plan for a wide view on required components for the enterprise at strategic level with big picture for long term development

Solution architect: Plan for a particular solution / building block within the big picture (e.g. the enterprise data warehouse solution)
Solution Architect İçin Mülakat Soruları
Solution Architect uçtan uca her şey için biraz da olsa malumat sahibi olmak zorunda. Bazı mülakat soruları şöyle
1. Describe the architecture of a high-performance and scalable data pipeline 
2. Explain how you would design a real-time streaming solution to process and analyze large datasets.
3. Describe your experience with containerization and how you would design a container-based solution.
4. Explain how you would design a distributed system that is fault-tolerant and highly available.
5. Describe your experience with cloud computing and how you would design a cloud-native solution.
6. Explain how you would design a microservices architecture and the challenges you have faced in implementing it.
7. Describe your experience with service-oriented architecture and how you would design a SOA solution.
8. Explain how you would design a solution to handle high-volume, low-latency data processing.
9. Describe your experience with data warehousing and how you would design a data warehousing solution.
10. Explain how you would design a solution for data governance and compliance.
11. Describe your experience with data modeling and how you would design a data model for a specific use case.
12. Explain how you would design a solution for data integration and data quality.
13. Describe your experience with data security and how you would design a solution for data security and privacy.
14. Explain how you would design a solution for data analytics and business intelligence.
15. Describe your experience with machine learning and how you would design a machine learning solution.
16. Explain how you would design a solution for real-time analytics and reporting.
17. Describe your experience with search and how you would design a search solution.
18. Explain how you would design a solution for data archiving and data retention.
19. Describe your experience with data replication and how you would design a data replication solution.
20. Explain how you would design a solution for data backup and disaster recovery.
21. Describe your experience with data governance and how you would design a data governance solution.
22. Explain how you would design a solution for data lineage and data provenance.
23. Describe your experience with data quality and how you would design a data quality solution.
24. Explain how you would design a solution for data governance and data stewardship.
24. Describe your experience with data governance and data management and how you would design a data governance and data management solution.
Solution Engineer
Açıklaması şöyle
... a Solutions Engineer tends to be trying to make a company's proposed solution the technology option for a potential customer.

Yazılım Mimarından (Software Architect) Çözüm Mimarına Geçiş (Solution Architect)
Açıklaması şöyle. Yani bu doğal bir şey.
I transitioned from Software Architect to Solution Architect long ago. It’s a reasonably common career move. 
Ancak her geçişte olduğu gibi eski yetenekleri yeni işte uygulama isteği de oluyor ve bu bazen sıkıntı getiriyor. Açıklaması şöyle
The problem in this situation is two-fold:

1. You know perfectly well software libraries
2. You don’t know well infrastructure components

It seems logical that people in this situation try to solve problems with the solutions they are most familiar with. However, it doesn’t mean it’s the best approach. It’s a bad one in most cases.


Hiç yorum yok:

Yorum Gönder