Architect SaaS Applications - Unique Challenges & Solutions

Github Repositories

The Architect SaaS Applications - Unique Challenges & Solutions Udemy course is an intro to SaaS, scalability, multi-tenancy, provisioning, security, APIs, management, maintenance.

Table of contents

What I've learned

  • Architect Scalable SaaS applications
  • Implement multi-tenancy models
  • Design SaaS management and monitoring frameworks

Section 1 Introduction 23min

1. Course Overview & Expectations 6min

CourseOverviewExpectations8

2. Introduction to SaaS 6min

3. SaaS Elements 3min

4. SaaS vs IaaS vs PaaS 3min

5. Architecting SaaS - Challenges 5min

Quiz 1: @Review - SaaS Basics

Section 2 Course Use Cases - An Introduction 16min

6. Introduction to the Use Cases 3min

7. ITS - Functionality 2min

8. ITS - Functional Architecture 3min

9. LCS - Functionality 3min

10. LCS - Functional Architecture 5min

11. Use Case Process for the Course 1min

Section 3 Multi-tenancy Architecture 41min

12. Intro to Multi-tenancy 4min

13. Tenant Resource Allocation 4min

14. Architecting Resource Allocation 11min

15. Tenant Context Awareness 6min

16. Intro to Tenant State 5min

17. Architecting Stateless Services 4min

18. Architecting Stateful Services 8min

Quiz 2: @Review - Multi-tenancy architecture

Assignment 1: - ITS Use Case - Multi-tenancy

Questions for this assignment

For each of the following components listed, answer the questions below.

Components:

a. ITS UI - Yes. b. Business Server - No. c. Control Server - Yes.

Things to architect:

a. Type of network : Farmed, Shared or Exclusive - The three of them. b. Will the component be tenant aware? - Yes. c. Will the component be stateful? No. d. Why type of scaling will you use? N + 1 or Primary-Backup? N+ 1

Assignment 2: - LCS Use Case - Multi-tenancy

Questions for this assignment For each of the following components listed, architect the following elements.

Components:

a. Agent UI b. Agent Manager c. Popup Gateway d. Messaging Manager

Things to architect:

a. Type of network : Farmed, Shared or Exclusive b. Will the component be tenant aware? c. Will the component be stateful? d. Why type of scaling will you use? N + 1 or Primary-Backup?

Response:

a. Agent UI

  • Type of network : Shared
  • Will the component be tenant aware? Yes
  • Will the component be stateful? Stateless
  • Why type of scaling will you use? N + 1

b. Agent Manager

  • Type of network : Farmed
  • Will the component be tenant aware? Yes
  • Will the component be stateful? Stateless
  • Why type of scaling will you use? N + 1

c. Popup Gateway

  • Type of network : Farmed
  • Will the component be tenant aware? Yes
  • Will the component be stateful? Stateful
  • Why type of scaling will you use? N + 1

d. Messaging Manager

  • Type of network : Exclusive
  • Will the component be tenant aware? No
  • Will the component be stateful? Stateful
  • Why type of scaling will you use? Primary-Backup?

Section 4 Data Services Architecture 39min

19. Intro to SaaS Data 5min

20. Database Partitioning 9min

21. Real time Cache 5min

22. Machine Logs 7min

23. Inter-component messaging 7min

24. Multi-component Messaging 6min

Assignment 3: - ITS Use Case - Data Services

Questions for this assignment For the ITS application, architect data services. Please answer the following questions

  1. What kind of tenant partitioning scheme will data services use?
  2. What type of cache will be used?
  3. How will machine logs be captured and propagated?
  4. What is the messaging scheme for inter-component messaging?
  5. Will you use a Data Bus? If so, which technology?

Response:

  1. What kind of tenant partitioning scheme will data services use?
  • One table with mutiple tenants
  • 1 Db Cluster assigned to a tenant group.
  1. What type of cache will be used?
  • One structure for one tenant group
  1. How will machine logs be captured and propagated?
  • Use starndarized format.
  • Use best-of-breed products.
  1. What is the messaging scheme for inter-component messaging?
  • REST/JSON
  • Graphql/JSON
  1. Will you use a Data Bus? If so, which technology?
  • Yes, RabbitMQ or something similar.

Assignment 4: - LCS Use Case - Data Services

Questions for this assignment For the LCS application, architect data services. Please answer the following questions

  1. What kind of tenant partitioning scheme will data services use?
  2. What type of cache will be used?
  3. How will machine logs be captured and propagated?
  4. What is the messaging scheme for inter-component messaging?
  5. Will you use a Data Bus? If so, which technology?

Response:

  1. What kind of tenant partitioning scheme will data services use?
  • One table with mutiple tenants
  • 1 Db Cluster assigned to a tenant group.
  1. What type of cache will be used?
  • One structure for one tenant group
  1. How will machine logs be captured and propagated?
  • Use starndarized format.
  • Use best-of-breed products.
  1. What is the messaging scheme for inter-component messaging?
  • REST/JSON
  • Graphql/JSON
  1. Will you use a Data Bus? If so, which technology?
  • Yes, RabbitMQ or something similar.

Section 5 Provisioning Architecture 30min

25. Intro to SaaS Provisioning 5min

26. Templates and Automation 5min

27. Custom & API based Provisioning 6min

28. Change Propagation 10min

29. Local Cache 4min

Assignment 5: - ITS Use Case - Provisioning

Questions for this assignment Please answer the following questions for ITS provisioning.

  1. Will there be a provisioning service in ITS?
  2. Will you use templates?
  3. Will there be automation?
  4. How will changes be propagated for provisioning to the individual components?
  5. Will there be a local cache?

Answer:

  1. Will there be a provisioning service in ITS
  • Yes.
  1. Will you use templates?
  • Yes.
  1. Will there be automation?
  • Yes.
  1. How will changes be propagated for provisioning to the individual components?
  • It depends on the model the tenant purchases.
  1. Will there be a local cache?
  • If the service is offered globally probably yes.

Assignment 6: - LCS Use Case - Provisioning

Questions for this assignment Please answer the following questions for LCS provisioning.

  1. Will there be a provisioning service in LCS ?
  2. Will you use templates?
  3. Will there be automation?
  4. How will changes be propagated for provisioning to the individual components?
  5. Will there be a local cache?

Answer:

  1. Will there be a provisioning service in ITS
  • Yes.
  1. Will you use templates?
  • Yes.
  1. Will there be automation?
  • Yes.
  1. How will changes be propagated for provisioning to the individual components?
  • It depends on the model the tenant purchases.
  1. Will there be a local cache?
  • If the service is offered globally probably yes.

Section 6 Monitoring and Upgrades - Architecture 29min

30. Service Levels 4min

31. Types of failures 6min

32. Architecting SaaS monitoring 8min

33. Upgrades in SaaS 6min

34. Architect for Upgrades 5min

Assignment 7: - ITS Use Case - Monitoring and Upgrades

Questions for this assignment Please answer the following questions for ITS monitoring and upgrades. Which of the following elements will be needed in the ITS architecture?

a. In-Process monitoring agent b. External monitoring agent c. a central monitoring system d. Rolling upgrades

Response: a. In-Process monitoring agent - Yes b. External monitoring agent - Yes c. a central monitoring system - Yes d. Rolling upgrades - Yes

Assignment 8: - LCS Use Case - Monitoring and Upgrades

Questions for this assignment Please answer the following questions for LCS monitoring and upgrades. Which of the following elements will be needed in the LCS architecture?

a. In-Process monitoring agent b. External monitoring agent c. a central monitoring system d. Rolling upgrades

Response: a. In-Process monitoring agent - Yes b. External monitoring agent - Yes c. a central monitoring system - Yes d. Rolling upgrades - Yes

Section 7 Security and Integrations - Architecture 23min

35. Security in SaaS 4min

36. Architect for Security 8min

37. Intro to SaaS Integrations 6min

38. Architecting Integrations 4min

Security Assertion Markup Language 2.0 (SAML 2.0) is a version of the SAML standard for exchanging authentication and authorization data between security domains. SAML 2.0 is an XML-based protocol that uses security tokens containing assertions to pass information about a principal (usually an end user) between a SAML authority, named an Identity Provider, and a SAML consumer, named a Service Provider. SAML 2.0 enables web-based, cross-domain single sign-on (SSO), which helps reduce the administrative overhead of distributing multiple authentication tokens to the user.

SAML 2.0 was ratified as an OASIS Standard in March 2005, replacing SAML 1.1. The critical aspects of SAML 2.0 are covered in detail in the official documents SAMLCore, SAMLBind, SAMLProf, and SAMLMeta.

Some 30 individuals from more than 24 companies and organizations were involved in the creation of SAML 2.0. In particular, and of special note, Liberty Alliance donated its Identity Federation Framework (ID-FF) specification to OASIS, which became the basis of the SAML 2.0 specification. Thus SAML 2.0 represents the convergence of SAML 1.1, Liberty ID-FF 1.2, and Shibboleth 1.3

Assignment 9: Integrating ITS and LCS Use Cases

Questions for this assignment Let us say there is a tenant who wants to use both LCS and ITS for customer service. The tenant desires integration between both these SaaS applications. The tenant's customer service agents use ITS for Issue tracking & LCS for chatting with customers. Hence the following features need to be supported.

•Agent should use ITS UI. Agent LCS chat window plugs into ITS UI. An agent receives the chat request from a user through his chat window. As he chats with the user, he also creates /updates issues in ITS.

•The integration should provide Single-sign on for agents. When an agent logs in, the agent should be logged into both systems.

•Agent Chat transcript should be posted to ITS comments so that the transcript is available in both applications.

Please answer the following questions.

  1. Who will perform single-signon?
  2. Will this be a server-side integration / client-side integration or both?
  3. What happens when a tenant or an agent gets created on one application? Will it automatically create them on the other application also?
  4. How will chat transcript be posted from the chat window to ITS application?

Responses:

  1. Who will perform single-signon? ITS
  2. Will this be a server-side integration / client-side integration or both? Both.
  3. What happens when a tenant or an agent gets created on one application? Will it automatically create them on the other application also? Yes.
  4. How will chat transcript be posted from the chat window to ITS application? Browser integration using SAML 2.0.

Section 8 Conclusion 1min

39. Closing Remarks 1min

40. BONUS LECTURE - Other Courses and Coupons 1min

BONUS LECTURE - Other Courses and Coupons V2 Maestros is constantly putting out outstanding courses in Data Science and Analytics. Checkout exclusive discounts at V2 Maestros coupons.