Let’s be clear and honest, nothing can replace experience, but learning architecture by reading books and taking courses can help you to get where you want to be much faster.
The following are some free courses that I found helpful to learn and improve my architecture skills:
Software Architecture course from Coursera: In this course offered by the University of Alberta you will study what perspectives need to be considered, and how to communicate architecture using UML. You will have the opportunity to examine the different architecture styles that you can choose from to design your software.
In addition, this course explains the quality attributes that you have to consider during architectural design implementation and deployment and how to analyze and evaluate the architecture of your application using the Architecture Tradeoff Analysis Method (ATAM).
This course is part of Software Design and Architecture Specialization. You can take other courses that are part of this architecture specialization if you want.
Design Your Software Architecture Using Industry-Standard Patterns from OpenClassrooms: This course presents the major architecture models that can be used in a variety of different situations. You’ll learn when to use these architectures, what level of maintainability they require, and what their limitations are. You’ll review examples of how to represent these different architectures.
Microservices, Serverless, OpenShift by edX: this course is offered by IBM through the edX MOOC platform. As for the Coursera course above, you can take this course free. If you want to get gain access to graded assignments and get a certification, you need to pay monthly (around 49$) until you complete the course.
I would recommend that you focus mostly on the first module that introduces nicely Microservices architecture, patterns, and anti-patterns. In addition, you will have the opportunity at the end of each module to practice with a hands-on lab and pass a quiz to test your knowledge.