Distributed Systems Technical Audit
Loading...
Date
2020
Authors
Gorokhovskyi, Kyrylo
Zhylenko, Oleksii
Franchuk, Oleh
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
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 архітектури. Описано процес технічного аудиту та уточнено аспекти системи, які потрібно враховувати під час аудиту. Розглянуто атрибути якості. Наведено контрольні списки для аудиту, основані на найкращих практиках у галузі, що допомагає підготуватися до технічного аудиту.
У статті наведено визначення розподілених систем і розглянуто Monolithic, Microservice та Serverless архітектури. Описано процес технічного аудиту та уточнено аспекти системи, які потрібно враховувати під час аудиту. Розглянуто атрибути якості. Наведено контрольні списки для аудиту, основані на найкращих практиках у галузі, що допомагає підготуватися до технічного аудиту.
Description
Keywords
Distributed systems, Monolithic, Microservices, Serverless, Quality attributes, Observability, Portability, Security, Maintainability, Technical audit, Checklist, article, розподілена система, Monolithic, Microservice, Serverless, Quality атрибут, спостережливість, портативність, безпека, ремонтопридатність, аудит, контрольний список
Citation
Gorokhovskyi K. Distributed System Technical Audit / K. Gorokhovskyi, O. Zhylenko, O. Franchuk // Наукові записки НаУКМА. Комп'ютерні науки. - 2020. - Т. 3. - С. 69-74.