Distributed Systems Technical Audit

Thumbnail Image
Gorokhovskyi, Kyrylo
Zhylenko, Oleksii
Franchuk, Oleh
Journal Title
Journal ISSN
Volume Title
Modern enterprise systems consist of many deployment artifacts, thus, microservices architecture is extremely popular now. The use of distributed systems is rapidly growing despite the increased complexity and the difficulty of building. The main reason for such a trend is that the advantages of distributed systems outweigh their disadvantages. Nevertheless, product release into the market is not a final step of software development lifecycle. Next important step is maintenance that continues much longer than development. System failures and delays in finding and fixing a problem can cause huge financial and reputational expenses. In addition, the new features introduced due to changes on the market should take place on time. Prior to releasing a product to market, we would like to know in advance possible technical gaps to understand what we can expect and maybe fix some issues in order to save time and money in future. In other words, we should be able to make a decision, if the product is ready for launch or not, relying on some data. Such analysis is as well necessary when we obtain ownership for an existing product. Technical audit helps to find out technical debt and assess risks related to maintenance and extension of the system. It should be considered as mandatory activity during release preparation and ownership transfer. Well-defined criteria would help to conduct an audit smoothly and find out most of the technical debt. Properly conducted technical audit reduces risks of problems after release but it does not guarantee commercial success of product or absence of problems at all. In this article we will define what distributed systems are, we will review Monolithic, Microservices and Serverless architectures, describe what are quality attributes and what should be taken into account during technical audits. Next, we will deep dive into the technical audit process, specify what aspects of the system must be considered during an audit. Then we will iterate over checklists items in order to provide guidelines based on the best practices in industry which helps to prepare for software system audit.
У статті наведено визначення розподілених систем і розглянуто Monolithic, Microservice та Serverless архітектури. Описано процес технічного аудиту та уточнено аспекти системи, які потрібно враховувати під час аудиту. Розглянуто атрибути якості. Наведено контрольні списки для аудиту, основані на найкращих практиках у галузі, що допомагає підготуватися до технічного аудиту.
Distributed systems, Monolithic, Microservices, Serverless, Quality attributes, Observability, Portability, Security, Maintainability, Technical audit, Checklist, article, розподілена система, Monolithic, Microservice, Serverless, Quality атрибут, спостережливість, портативність, безпека, ремонтопридатність, аудит, контрольний список
Gorokhovskyi K. Distributed System Technical Audit / K. Gorokhovskyi, O. Zhylenko, O. Franchuk // Наукові записки НаУКМА. Комп'ютерні науки. - 2020. - Т. 3. - С. 69-74.