Microservices in the Brightspace Cloud

Contents

Document Change History

Microservices in the Brightspace Cloud

Microservices and the Brightspace Data Platform

Microservices and data

Microservices and on-premise clients

Microservices architecture

Overview of released microservices

Activity Feed Service

Authentication Service

Brightspace Assignment Grader Transcoding Service

Brightspace Binder Data Store

Brightspace Event Flow Service

Brightspace Polling Service

Content Service

Course Image Catalog Service

Dates Service

Document Conversion Service

EduDentity Authentication Service

Feed Service

Hypermedia Proxy Service

IPSIS Service

Landlord Service

Learning Outcomes Registry Service (LOReS)

LMS Discovery Service

Notification Scheduler Service

Reflex Service

User Info Service

Video Analysis Service

Video Note Service

Virtual Classroom and Video Assignments service

Wiggio Service

About D2L

Document Change History

This version of the document replaces all previous versions. The following table describes the most recent changes to this document.

Revision Date / Summary of Changes
January 4, 2017 /
  • Updated the Overview of released microservices topic to add the new Notification Scheduler Service.
  • Added the Notification Scheduler Service topic used by Brightspace for Parents.

December 7, 2017 /
  • Updated the Overview of released microservices and Brightspace Polling Service topics to include South America (São Paulo) and Europe (Ireland) support.
  • Updated the Overview of released microservices and Video Note topics to include Canada Central (Montreal) support.

November 2, 2017 /
  • Updated the Reflex ServiceandOverview of released microservices topics with new AWSlocations.

October 5, 2017 /
  • Updated the Landlord Service, Microservices and the Brightspace Data Platform, Content Service, and Overview of released microservices topics to replace the Distributed Event Framework Service with the new Brightspace Event Flow Service.
  • Renamed the Distributed Event Framework Service topic to Brightspace Event Flow Service.
  • Updated the Overview of released microservices topic to include Brightspace Portfolio in the list of tools that use specific microservices.
  • Updated the Overview of released microservices topic to include information on the Reflex Service.
  • Added a Reflex Service topic.

September 7, 2017 /
  • Update the Dates Service, Feed Service, and User Info Service topics to update the underlying database to AWSDynamoDB.

August 3, 2017 /
  • Updated the Overview of released microservices, Learning Outcomes Registry Service (LOReS), Content Service, and Microservices and the Brightspace Data Platform topics to add AWS Canada Central support.
  • Added Virtual Classroom and Video Assignments service topic and updated the Overview of released microservices to include information on the Virtual Classroom and Video Assignments service.

Microservices in the Brightspace Cloud

As the Brightspace platform continues to improve and evolve, some of its functionality is now delivered using a pattern known as Microservice Architecture. This architecture involves separating software otherwise bundled together into independent and lightweight components (microservices or simply known as services) that communicate across a network (typically, via https) rather than being bundled directly together. The location of each microservice in the Brightspace Cloud is based on many factors including expected usage patterns, availability, resiliency, and dependencies on other microservices. As a result, some microservices reside in D2L data centers or Amazon Web Services™ (AWS). For the most part, the locations of microservices have no end-user impact on how the Brightspace platform is used. Some Brightspace products also use microservices that store data outside of D2L data centers. For example, the Brightspace Data Platform uses AWS for data storage and the Dates Service uses IBM® Cloudant® for database storage. If applicable, data storage considerations are covered as part of the D2L master agreement (MA) and/or amendments.

Development and operations teams at D2L experience many of the direct benefits of microservices, but that change and renewal also lets us further improve experiences and functionality for our users. These benefits flow from one key idea: narrowly focused system components that exchange functional services with other components via well-defined network API boundaries.

The narrowly focused and separated components give our teams the option to employ a variety of technologies and scalability strategies, rather than settling for those intended for combined application. For example, the Brightspace Data Platform takes advantage of the distributed processing provided by Apache™ Hadoop® clusters when performing its aggregation and analysis. This technique would not be relevant to other Brightspace product areas such as discussion posts.

Additionally, the separation also helps our teams effectively and quickly adapt to new technologies and approaches as they become available. For example, we have been able to create new user interfaces that leverage specialized web-side user interface frameworks and interact directly with microservices. This flexibility allows our teams to develop and refine new workflows for our users using the most effective technology.

Our test-focused staff also can make effective use of this architectural change because they can take advantage of alternatives around testing microservices that emerge because of the formal service boundaries. Our Brightspace developer platform community can also take advantage of these boundaries, because each of them naturally becomes an API candidate for users looking to develop custom workflows or tools that integrate into the Brightspace platform.

The implementation of microservices and the coordination of development and operations teams has enriched D2L's approach to network infrastructure and deepened our expertise in a variety of more specialized technology platforms.

Microservices and the Brightspace Data Platform

Description

The Brightspace Data Platform is D2L’s analytics solution. The Brightspace Data Platform stores raw events, and computes and stores aggregated data which can be accessed through an API.

Location

One instance per region in AWS:

  • U.S. East (N. Virginia)
  • Canada Central (Montreal)

Dependencies

  • Depends on the Brightspace Event Flow Service, Landlord Service, and Authentication Service.
  • Depended on by Brightspace Insights.

Data Transmitted/Stored

The Brightspace Data Platform stores and transmits analytics events and aggregated data. Events provide information about actions performed by the user. For example, a content visit event is triggered when a user opens a content topic. These events are aggregated across meaningful dimensions, for example, course access by all students in a course. The aggregated data can be transmitted via the Data API, for example, to a Brightspace Insights report.

Events contain programmatic identifiers for the user, the context of the event, and the type of the event. For example:

  • A programmatic identifier for the user such as User ID = 123.
  • A programmatic identifier for courses such as Course ID = 987.
  • A programmatic identifier for the event type such as Login = 4545.

Stored data is encrypted with unique keys generated by D2L and are unique to each region.The data is stored on encrypted volumes to guard against back-end services being compromised. When transmitting data, the Brightspace Data Platform uses the HTTPS networking protocol. While in transit, all events are encrypted. Data access is restricted on a per-customer basis using the TenantID of the originating Brightspace instance. API access is governed by user and system-level permissions.

How the Service Works

  1. User events are generated in Brightspace Learning Environment. For example, when a user logs in to the system, a Login Event is generated.
  2. The Brightspace Event Flow Service sends events to the Brightspace Data Platform.
  3. Events are stored in Brightspace Data Platform (BDP) Storage.
  4. The Brightspace Data Platform aggregates data, and stores the aggregated data in BDP Storage. For example, Login Events could be aggregated along hourly, daily, and weekly dimensions.
  5. Aggregated data is sent to Brightspace Learning Environment in response to API requests. For example, API requests could be used to generate a report showing the Login Events generated for learners in a course.

Microservices and data

Depending on its function, transmission and storage of data is a consideration for microservices. The location of each data store is based on many factors, including the location of the microservice itself, security of the data, availability of the data, and dependencies on other microservices. D2L works with customers in many regions, jurisdictions, and markets with different needs and requirements around data privacy. We provide information on the data that is transmitted and stored for each microservice, allowing organizations to review it as needed.

Microservices and on-premise clients

On-premise clients access the same D2L microservices in AWS as hosted clients, but they access them through their on-premise Brightspace instances. D2L microservices in AWS do not require any installation. D2L microservices in AWS cannot be hosted in on-premise environments.

To access certain features in Brightspace platform 10.6, on-premise clients must agree to permit access to centrally hosted microservices. For example, the Landlord Service and Authentication Service are required for accessing Brightspace Insights and Brightspace Pulse. Specifics on how to do this depend on how each client's environment is configured.For example, a client may have specific firewall restrictions that their IT department must adjust to permit traffic to D2L microservices in AWS.

Health checks that report on the availability of D2L microservices in AWS are monitored by D2L and are not available to on-premise clients.

Microservices architecture

The following architecture diagram displays current D2L microservices, their deployment locations in the Brightspace Cloud, and the dependencies among them with new Brightspace products and other microservices.For detailed information, refer to the sections for individual microservices in this guide.

Overview of released microservices

Microservice Name / Role / Released In / Instance / Location / Depends On / Depended On By
Activity Feed Service / Provides the ability to use the Activity Feed widget. / 10.7.0 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS Canada Central (Montreal)
AWS EU (Ireland)
AWS Asia Pacific (Sydney)
AWS Asia Pacific (Singapore) / Authentication Service
Landlord Service / Lessons tool
Brightspace Assignment Grader Transcoding Service / Converts files from one format to another for Brightspace Assignment Grader to consume. / Pre 10.3 / 1 global instance / Azure (West U.S.) / EduDentity Authentication Service / Brightspace Assignment Grader
Authentication Service / Provides user and service-level authentication and authorization via the OAuth2 protocol. / 10.5.0 / 1 global instance / AWS U.S. East (N. Virginia) / Landlord Service / Brightspace Pulse
Brightspace Insights
Brightspace Data Platform
Caliper Gateway
Brightspace Portfolio
Brightspace Binder Data Store / Not a service but a storage area for Binder documents. / Pre 10.3 / 1 global instance / Azure (South Central U.S., West U.S.) / N/A / Brightspace Pulse
Content Service / Houses Brightspace content, and currently provides and standardizes functions such as import/export, storage, preview, permissions, and basic search of SCORM objects in the Brightspace platform. / 10.6.11 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS EU (Ireland)
AWS Asia Pacific (Sydney, Singapore)
AWSCanada Central (Montreal) / Authentication Service
LTI Outcomes v2 / The new Brightspace SCORM solution, Brightspace Portfolio
Course Image Catalog Service / Provides a catalog of images available that can be associated with a course. / 10.6.8 / 1 global instance / AWS U.S. East (N. Virginia) / N/A / My Courses widget when Daylight is enabled
The course image banner, which may be added to widget-based homepages when Daylight is enabled.
Dates Service / Provides an API for learners' personal dates. Currently, only used by Brightspace Pulse. / 10.5.1 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS - EU (Ireland) / Landlord Service
Authentication Service
User Info Service / Brightspace Pulse
Brightspace Event Flow Service / Provides awareness of Brightspace Learning Environment events for other Brightspace services such as Brightspace Insights. / Available to clients on 10.6.10+ / 1 instance per region / AWS U.S. East (N. Virginia)
AWS Asia Pacific (Sydney)
AWS EU (Ireland) / Landlord Service
Authentication Service
Brightspace Portfolio / Brightspace Data Platform
Content Service
Brightspace Portfolio
Document Conversion Service / Converts documents uploaded to the Content tool, Assignments tool, Brightspace Learning Repository, or Brightspace ePortfolio into PDFs, which display inline in the tool or product. / 10.7.0 / 1 instance per region / U.S. East (N. Virginia)
Canada Central (Montreal)
Asia Pacific (Sydney) / Landlord Service
Authentication Service / Content tool
Lessons tool
Assignments tool
Brightspace Learning Repository
Brightspace ePortfolio
Brightspace Assignment Grader for iOS and Android
EduDentity Authentication Service / Stores, manages, and authenticates users independent of Brightspace Learning Environment. / Pre 10.3 / 1 global instance / Azure (South AWS Central U.S., West U.S.) / N/A / Brightspace Binder Data Store
Feed Service / Provides an API for learner updates to the Announcements, Grades, Content, and Discussions tools. Currently, only used by Brightspace Pulse. / 10.5.0 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS - EU (Ireland) / Landlord Service
Authentication Service
User Info Service / Brightspace Pulse
Hypermedia Proxy Service / Acts as a proxy or mediator to learning paths within Brightspace platform. / 10.5.7 / 1 global instance / AWS U.S. East (N. Virginia) / Landlord Service
Authentication Service / Brightspace platform
IPSIS Service / A queue for IPSIS-formatted data. Allows new IPSIS adapters to be added quickly and with minimal changes to the existing infrastructure. / 10.7.3 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS Asia Pacific (Sydney)
AWS EU (Ireland) / Authentication Service
Landlord Service / OneRoster adapter
Landlord Service / Provides each Brightspace instance with a TenantId, a permanent globally unique identifier. / 10.5.0 / 1 global instance / AWS U.S. East (N. Virginia) / N/A / Authentication Service
Distributed Event Framework Service
Brightspace Insights
Brightspace Data Platform
Brightspace Portfolio
Learning Outcomes Registry Service (LOReS) / Provides the ability to create and edit required learning outcomes for a course offering. / 10.7.2 / 1 instance per region / AWS U.S. East (N.Virginia)
AWS Canada Central (Montreal) / Authentication Service
Landlord Service / Lessons tool
LMS Discovery Service / Provides a list of Brightspace instances so app users (such as Brightspace Pulse) don't need to know their instance URL. / 10.5.1 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS - EU (Ireland) / N/A / Brightspace Pulse
Notification Scheduler Service / The Notification Scheduler service maintains a user digest of activity in Brightspace. Based on notification preferences, the service makes the necessary calls to send email notifications on a weekly basis. / 10.7.9 / 1 instance per region / AWS U.S. East (N. Virginia)
AWSCanada Central (Montreal)
AWS EU (Ireland)
AWS Asia Pacific (Singapore)
AWS Asia Pacific (Sydney) / Authentication Service
Landlord Service / Brightspace for Parents
Brightspace Polling Service / Enables organizations to do quick surveys. The first integration is with Brightspace Capture for Live Events. / 10.6.3 and Brightspace Capture 9.4 / 1 instance per region / U.S. East (N. Virginia)
Europe (Ireland)
Canada Central (Montreal)
Asia Pacific (Sydney)
South America (São Paulo) / N/A / Brightspace Capture
Reflex Service / The Reflex Service is an internal service used to evaluate rules and perform actions. Currently used by Manager Dashboard and Activity Feed scheduled posts. / 10.7.1 / 1 instance per AWSregion / AWS U.S. East (N. Virginia)
AWSCanada Central (Montreal)
AWS EU (Ireland)
AWS Asia Pacific (Singapore)
AWS Asia Pacific (Sydney) / Enrollment Service
Groups service
Brightspace Event Flow service / Manager Dashboard
Activity Feed scheduled posts
User Info Service / Provides storage of user preferences and filters user information between Brightspace Pulse and Brightspace Learning Environment. / 10.5.5 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS - EU (Ireland) / N/A / Brightspace Pulse
Dates Service
Feed Service
Video Analysis Service / Acts as a conduit between Brightspace Capture and the Brightspace Data Platform. / 10.6.3 / 1 instance per region / U.S. East (N. Virginia)
Canada Central (Montreal)
Asia Pacific (Sydney) / Brightspace Capture and Brightspace Learning Environment / Brightspace Data Platform
Video Note Service / Enables learners and instructors to record short videos with a webcam. These videos can be added where video attachments are supported and when the HTML Editor’s Insert Stuff option is available. / Pre 10.3 / 1 instance per region / AWS U.S. East (N. Virginia)
AWS - EU (Ireland)
AWS Asia Pacific (Sydney, Singapore)
Canada Central (Montreal) / N/A / N/A
Virtual Classrooms and Video Assignments / Provides the ability to use Virtual Classrooms and Video Assignments in Brightspace Learning Environment. / Pre 10.7 / Virtual Classroom and Video Assignment data is hosted outside of D2L’s infrastructure. / Virtual Classroom and Video Assignment data is hosted outside of D2L’s infrastructure. YouSeeU provides data hosting/storage locations in the following areas using Amazon AWS:
Canada (AWS-Montreal)
United States (AWS-Northern Virginia)
South America (AWS-Sao Paulo)
Europe (AWS-Ireland) Australia (AWS-Sydney) / N/A / Virtual Classroom and Video Assignments
Wiggio Service / Enables learners and instructors to collaborate in an informal setting. / 10.3 / 1 global instance / AWS (U.S. East) / N/A / N/A

Activity Feed Service

Description

The Activity Feed Service provides the ability to use the Activity Feed homepage widget. The Activity Feed widget creates a unique "feed" or "stream" for a course. The feed is a way for instructors to provide access to activities learners need to complete, deliver information they need to know, and facilitate learner engagement using simplified workflows in an intuitive and friendly interface.

Location

One instance per region in AWS:

  • U.S. East (N. Virginia)
  • Canada Central (Montreal)
  • EMEA (Ireland)
  • Sydney
  • Singapore

Dependencies

  • Depends on Authentication Service and Landlord Service.

Data Transmitted/Stored

Data related to the Brightspace Learning Environment and course that launched the service:

  • TenantId
  • OrgUnitId

Data related to the user generated post or comment: