Building Resilient Systems: Cell-Based Architecture with the AWS Well-Architected Framework

Building Resilient Systems: Cell-Based Architecture with the AWS Well-Architected Framework

Cloud resilient architecture based on cells is an approach to designing and building highly available and fault-tolerant systems on AWS. It involves breaking down a monolithic application into smaller, isolated components called cells. Each cell is responsible for a specific set of functionalities and can be scaled, deployed, and managed independently. Building Resilient Cloud Architectures with Cell-Based Design on AWS The cell-based architecture promotes resilience by isolating failures within individual cells, preventing them from cascading and affecting the entire system. If one cell fails, the others can continue operating, ensuring overall system availability. This design also facilitates easier maintenance, updates, and scaling of individual components without impacting the entire application. ...

December 17, 2024 · 24 min · Vadzim Belski
What is the role of Solutions Architect in pre-sales

What is the role of Solutions Architect in pre-sales

A solutions architect plays a critical role in pre-sales activities for a technology company. They bridge the gap between the customer’s business needs and the technical capabilities of the company’s products or services. This article will explore the key responsibilities of a solutions architect in the pre-sales phase. Solutions Architect Responsibilities in Pre-Sales The solutions architect is responsible for understanding the customer’s requirements, designing an appropriate solution, and effectively communicating its value proposition. Their primary responsibilities in the pre-sales stage include: ...

November 18, 2024 · 28 min · Vadzim Belski
Software Project Estimation: stop playing casino, just follow best practices

Software Project Estimation: stop playing casino, just follow best practices

Software projects can often go over budget and past deadlines if not estimated properly. Accurate estimation is crucial for successful project planning and execution. This blog post will cover best practices for estimating software projects effectively. Software Project Estimation Best Practices Estimating software projects accurately requires a systematic approach and following proven methodologies. We’ll explore techniques like breaking down requirements, utilizing historical data, considering risk factors, and leveraging estimation tools and models. The goal is to provide practical tips and insights to help teams deliver projects on time and within budget. ...

November 16, 2024 · 29 min · Vadzim Belski
AWS Multi-Tenant Cloud Architectures: How to Choose the Right One for

AWS Multi-Tenant Cloud Architectures: How to Choose the Right One for

Introduction Building a multi-tenant architecture on AWS is a complex undertaking that requires careful planning and implementation. Multi-tenancy allows you to serve multiple customers or clients from a single instance of your application, maximizing resource utilization and reducing costs. However, it also introduces challenges around data isolation, security, and performance. In this blog post, we’ll explore best practices for designing and deploying a robust, scalable, and secure multi-tenant architecture on AWS. ...

November 16, 2024 · 37 min · Vadzim Belski
Software Design principles

Software Design principles

Intro Any architectect and software developer should be aware of and follow best practeces established by many generations of software developers. This article is a recap of the best practices and the most important ones for software developers. Whenever you came to interview with me - you should definitely read this article and know by heart many of the principles. Design principles A brief overview over common design principles SOLID Single Responsibility Principle (SRP): A class should only have a single responsibility, that is, only changes to one part of the software’s specification should be able to affect the specification of the class. Open/Closed Principle (OCP): “Software entities … should be open for extension, but closed for modification.” Liskov Substitution Principle (LSP): “Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.” Interface Segregation Principle (ISP): “Many client-specific interfaces are better than one general-purpose interface.” Dependency Inversion Principle (DIP): One should “depend upon abstractions, [not] concretions.” DRY (Don’t Repeat Yourself) “Every piece of knowledge must have a single, unambiguous, authoritative representation within a system” ...

July 29, 2022 · 3 min · Vadzim Belski