Software Architecture & Technology of Large-Scale Systems
What you'll learn
- Architecting Software Systems and Solutions: We will start with a basic three tier application architecture which we will enhance as we move along.
- How to build a technical stack by getting architectural insights into products like Nodejs, Redis, Cassandra, Kafka, Hadoop, Elastic Search, .. and many more
- Non-Functional Requirements: How to design architecture considering Performance, Scalability, Reliability, and Security
- Deployment of large scale production systems using tools like Docker & Kubernetes
- You are, or have been a good programmer, you can do code design, and write code in at least one programming language
- You understand three tier architecture, and you broadly understand what web apps, services, and databases means
Architecting software systems is a skill that is in huge demand, but it is not a readily available skill. To understand why this skill is rare to find, let's go through a few lines from Martin Fowler's blog on architecture.
He says: Architecture is about the important stuff. Whatever that is. It means that the heart of thinking architecturally about software is to decide what is important, (i.e. what is architectural), and then expend energy on keeping those architectural elements in good condition. For a developer to become an architect, they need to be able to recognize what elements are important, recognizing what elements are likely to result in serious problems should they not be controlled.
It takes a number of years for a developer to learn enough to become an architect. This learning largely depends on the kind of opportunities that you get in your career. Often these opportunities are limited to specific areas of work only. However, to be an architect, you must possess extensive technical knowledge of as many areas as possible. You must understand all the complexities and challenges in different parts of a system. You need the ability to make upfront decisions by understanding various trade-offs. You should be able to foresee or anticipate critical problems that a system can face during its evolution.
This is where the 'Developer To Architect' course can be very useful for you. It assumes that you already have great development skills, and it builds from there. It extensively covers architecting non-functional properties of a system, handling of large-scale deployments, and internal working of popular open-source products for building software solutions.
To give you some details of what is specifically covered:
Architecting non-functional properties like Performance, Scalability, Reliability, Security.
Large-scale deployment and operations using Docker containers and Kubernetes.
Internal working of popular open-source products like Node.js, Redis, Kafka, Cassandra, ELK stack, Hadoop, etc for confidently architecting software solutions.
In short, this course will help you learn everything you need to become a 'true' architect in a very short period of time.
Who this course is for:
- All Software Developers who already know Code Design and now want to learn how to Architect Large-Scale Systems
- All Software Architects who want to polish their Software Architecture and Solution Architecture skills
Anurag has 20 years of experience in developing and architecting large-scale enterprise applications for large businesses with high functional complexity, very high volumes of requests, and enormously large-sized backend data. He has rich experience in making large in-memory analytical batch processes and large-scale real-time transaction systems.
He is a Google Cloud Certified Professional Cloud Architect.
He has done B. Tech from Indian Institute of Technology, Varanasi, India in the year 1999.