3 important components of a software solution
Regardless of a Microsoft Teams governance solution, we would first like to introduce you to the building blocks of a software solution so that you can familiarise yourself with important terminology.
We take as a reference Martin Kleppmann's book on „Designing Data-intensive Applications“ to establish a successful solution architecture.
When designing a software architecture, the following points must be considered:
- Reliability – Reliability of a software shows that in case of errors, a software can continue to function and cope with the errors that have occurred. The cause of the errors can be based on hardware, software and people.
- Scalability – Scalability of a software shows that the software does not prevent the growth of the system, but can adapt to larger data volumes. Scalability must be considered in terms of number of requests "traffic", number of users "data" and complexity of operations "complexity".
- Maintainability -Maintainability of a software shows that the software system can be quickly deployed and updated. It is also an important indicator that several experts can work productively on the system and that it is easy to make changes and expand the system.
Why the vision of a software solution is important
Microsoft is pushing the Microsoft 365 environment every day. It is challenging even for the experts to know all the news and specialise everywhere.
Choosing a Microsoft Teams governance solution represents an investment in this.
A product that can't follow the vision of Microsoft 365 can quickly slow you down.
Therefore, when choosing a governance solution, it is important to know the product vision so that your investment remains sustainable.
It is especially important to check whether the product manufacturer reacts to the new features of Microsoft and adapts and develops its product accordingly.
Extension options of a software solution
Especially if you have several thousand employees, you will certainly have requirements that need to be customised for your company.
Therefore, when selecting a Microsoft Teams governance solution, check whether the extension options of the solution can map your specific requirements.
By checking the following extension options, you can avoid additional costs in the future:
- Does a REST API exist for the governance solution?
- Can you extend the governance solution based on Power Platform?
- Does the governance solution offer WebHooks?
- Does the governance solution offer a PnP integration that allows you to deploy your additional component?
A typical scenario is that the governance solutions are consumed by internal IT shop systems such as Service Now.
Therefore, validate whether the governance solution you want to buy supports such scenarios.
10 technical challenges in implementing an enterprise Microsoft Teams governance tool.
As a company with several thousand employees, you will consume Microsoft 365 resources differently compared to a company with 100 employees.
Therefore, the governance solution must be designed to work with larger volumes of data and traffic.
Here are the specific challenges for implementing a Microsoft Teams governance solution.
1. Queued Operations
In an environment with thousands of users, it is not a good idea to perform operations synchronously.
The whole solution must therefore be designed in such a way that the high number of operations can be processed without problems.
The architectural decision has an effect on the implementation effort because the complexity of the solution increases.
2.Microsoft Thresholds & Limitations
A governance solution uses Azure, Microsoft Graph, Microsoft Teams, Microsoft SharePoint technologies.
Each technology has its own limitations.
Developing an optimal solution that can work around all the limitations of these technologies is a challenging task.
Therefore, it is important to pay attention to how the data is stored. Retry mechanisms must also be built in for all technologies.
E.G.: If a team cannot be created, the system should identify the case and try to create the team again through retries.
The challenge is to identify the occurrences where retry mechanisms are needed. This has an impact on the effort.
3. Multi-Geo Capability
Depending on the hosting location of the solution, latency issues may arise.
Depending on the corporate structure, the governance solutions must be designed as multi-geo solutions.
4. Load Balancing
Based on the requests your governance solution receives, a front-end server / REST API service may not be sufficient to handle the entire load.
Therefore, the Enterprise Microsoft Teams Governance solution must support the case if you generate high traffic due to your number of users.
5. response times
In a governance solution, there are write and read operations.
You can hardly influence the performance of write operations; this depends largely on the complexity of the workspace you want to provision.
On the other hand, you can influence the read operations. For example, if a governance solution wants to read everything on-demand from Microsoft 365 without caching or using databases, performance problems will occur.
To improve the performance of governance solutions, you need a layer between your client and Microsoft 365 to execute the queries in a performant way.
This architectural decision makes the implementation more complex.
6. Integration of PnP Framework
A governance solution without using PnP Provisioning Framework is unthinkable.
Many solution providers try to offer integration based on WebHooks to avoid implementation costs. However, WebHooks offer a poor user experience at this point.
Offering a governance solution with a native PnP integration is costly.
A company with several thousand employees usually has several locations on different continents.
Multilingualism is therefore often a requirement of Enterpreises to speed up the user adoption process.
Multilingualism can come in two forms in governance solutions.
The multilingual user interface is the first option. The governance solution must present the user interface with the appropriate language based on the selected language in the Teams client.
The second type of multilingualism is data translation. Data presented in the solution component will be displayed according to the selected language.
There are governance solutions that support multilingual user interface, but only a few solutions can support data translation.
Therefore, enterprize governance solutions are usually more complex to implement.
8. Hosting Model
Enterprise organisations have more complex security requirements that need a self-hosted governance solution.
Many enterprises try to make a choice between self-hosted or SaaS-based governance solutions.
Enterprising organisations are more likely to choose a self-hosted solution.
9. Data Protection
How data is stored in the database is very important to know. Especially during implementation, care should be taken to ensure that email addresses and user names are not stored as plain text in the database.
Instead of email addresses and user names, user IDs can be read from the Graph API and stored in the database. This puts you in a better position for auditing.
The transformation from email addresses to user IDs makes the implementation of the governance solution more complex but privacy-ready.
You also need to make sure that the database is hosted in Europe and especially on your tenant (not on the product vendor's environment).
10. Bulk Updates
Ideas and decisions often change as the environment changes.
E.g.: Your collaboration concept may change, so you have to apply the changes to the existing teams afterwards.
Every change in your collaboration concept and every new requirement means a migration project for you.
An Enterpreis governance solution can support you in applying the changes to the existing Microsoft Teams workspaces.
This means that the governance solution is able to roll out mass changes especially the differences to the existing teams.
Implementing bulk updates is enormously costly.
The governance solutions that support bulk updates can drastically reduce internal efforts through automation.
Reasons why enterprise companies prefer Teams Center
Teams Center was conceived by four former Avanade employees who developed individual governance solutions for DAX corporations in the past.
Co-founder Arthur Neufeld still holds the "Microsoft Solutions Master" title in the field of Microsoft SharePoint.
The other co-founder Cagdas Davulcu is one of the most active contributors to the generator-teams Open Source Project.
The solution architects Benjamin Stierle (CTO Valprovia) and Mykhailo Bratukha have many years of experience in developing governance solutions.
The core Valprovia team and the development team of over 20 people have combined their experience, used their deep SharePoint and Microsoft Teams knowledge to develop the best governance solution and bring it to market.
Enterprise companies using Teams Center have solved the 10 challenges mentioned above.
In addition, Teams Center offers numerous other features that support companies with their day-to-day challenges in the area of Microsoft 365 governance.
High-level architecture of Teams Center
It is important to us to create transparency about the Teams Center solution. Therefore, we are happy to share with you the following architecture diagram to answer your questions about Teams Center.
Architecture of the Teams Center governance tool
Teams Center consists of the following 6 components:
- Teams Center Client - Teams Center Client is an SPFx based SharePoint WebPart. The SPFx WebPart is hosted in Microsoft Teams as an app through SharePoint. Through the SharePoint Site Collection, you can control access to the App. In addition to this, you have the option to control permissions through the Microsoft Teams Admin Portal. Teams Center Client (SPFx WebPart) communicates with a REST API called Teams Center API to not retrieve the information directly from SharePoint or Microsoft Graph. The Teams Center REST API structure allows you to query the information tremendously fast.
- Teams Center Admin Portal - Through Teams Center Admin Portal, you can perform your administrative tasks for your Microsoft Teams and SharePoint environment. In particular, you can define your templates for automation on the Teams Center Admin Portal and make them available to end users. Through the Teams Center Admin Portal, you don't create Teams that will later be a corpse in the system, but provides an elegant templating mechanism.
- Teams Center API - Teams Center API takes the end user requests. Teams Center API is designed in such a way that you can enable load balancing mechanisms in front of it to serve large amount of requests. Teams API contains the business logic of the application. Behind the Teams Center API are numerous job mechanisms that process many tasks asynchronously. The Teams Center API handles the lifecycle management for the teams.
- Productivity Core Engine -Valprovia Productivity Engine is a comprehensive provisioning engine that allows you to provision various Microsoft Teams and SharePoint artefacts. You can easily provision Microsoft Teams Channels, Microsoft Teams Apps, SharePoint Content Types, SharePoint Site Columns, Documents, Document Libraries, etc. with the Productivity Core Engine.
- Teams Center Admin API -Teams Center Admin API is mainly responsible for creating Teams and SharePoint templates. Contains the business logic for template creation, template versioning, external user management, bulk updates, etc.
- Teams Center DB -Teams Center DB is responsible for caching information and storing configurations. Since retrieving everything from Microsoft services would not be a high-performance operation, the information for the Teams Center client (SPFx WebPart) is read from the database and returned. In addition to the database, the information is written to the cache in order to be able to offer maximum reading speed.
- Teams Center uses data encryption in the REST APIs and when transporting data (data in transit).
- The security modules of Teams Center were implemented by security experts.
- All Teams Center keys are stored in Azure Key Vault.
- All modern security mechanisms have been used in the implementation.
- Teams Center is hosted on your tenant.
- All Teams Center resources are protected by firewalls.
- Your data is stored directly on your tenant and the product vendor has no access to your data.
- No one can access logs and telementry except you: the customer.
- Teams Center was developed with the "least privileges" approach, so the solution does not require global administrator rights.
- Teams Center is built on top of Microsoft 365 Security & Compliance standards.
- The Teams Center solution architecture simplifies internal reconciliations on DSGVo, so you have faster approval processes for your governance solution.
Description of Teams Center with the 3 components of a software solution
At the beginning of our article we talked about three aspects to be able to evaluate a software architecture.
We would like to evaluate the solution architecture of Teams Center from our point of view based on the following three aspects:
- (Reliability) –Teams Center has built-in retry mechanisms in several places. Teams Center's retry mechanisms allow the entire system to function even though internal errors occur. In Teams Center, different test automation mechanisms are used to avoid the errors. In particular, the regression tests are automated. In addition, the solution is tested with automated UI tests.
- Scalability – In Teams Center, no operation is synchronous. All requests landing at Teams Center are stored in multiple queues to accommodate several thousand requests per second. Teams Center also offers a load balancing option. For the multi-geo companies, it is possible to host Teams Center on different data centres. The solution's caching and DB layers allow information to be retrieved at maximum speed.
- Maintainability -Teams Center is fully automated and deployed to your tenant within minutes using ARM templates. In addition, the solution's update process is seamless. Because the solution is built in such a modular way, new features can be implemented more easily by the Valprovia GmbH software team. Customers do not have to wait long for new features. Teams Center also offers an extensibility model that allows the implementation partners to map the customers' requirements with a manageable effort.
Teams Center Performance
To get an overview of the performance of Teams Center, we have prepared the following tables. You will quickly find that the performance of Teams Center is satisfactory.
Five example calls on an environment with 1400 teams.
Via Teams Center UI
Via Postman - Teams Center Back-End
Important Teams Center features for Enterprises
Enterprises prefer the Teams Center solution for the following reasons:
- Bulk Updates
- Retry mechanisms
- Native PnP Integration
- Sensitivity and Retention Label Provisioning Support
- Governance and Lifecycle Management for SharePoint (without Microsoft Teams teams)
- Implemented for the requirements of the D-A-CH region
- Self-hosted solution
- The Teams Owners have no administrator rights for the SharePoint Site Collection.
- Elegant templating engine
How Teams Center is deployed on your Microsoft 365 environment
Teams Center is deployed to your environment based on ARM templates.
The deployment process is simple and takes just a few minutes.
As the ARM templates are used in the deployment, the Teams Center solution update process is just as simple.
ARM Templates is Microsoft's recommended approach to deployment.
There are numerous criteria and different challenges that the governance solution must master.
The criteria you should evaluate when choosing an enterprice governance solution can be transparently understood step by step above.
The Teams Center solution is the only solution in the D-A-CH region that can fulfil the requirements for an Enterpreis governance solution.
American product manufacturers in the area of Microsoft Teams Governance, which have been on the market for years, are still taboo for companies in German-speaking countries due to data protection.
Teams Center was developed in Germany for companies that place special value on data protection. That is why the solution is the sole preference of large companies that want to automate and simplify the administration of Microsoft Teams and SharePoint.