Transforming BSS - OSS Systems To Microservices Architecture
Transforming BSS - OSS Systems To Microservices Architecture
Abstract
Present day telecommunication service providers are under immense pressure to constantly reinvent
themselves to adapt their product and service lines to satisfy the modern-day customers, be it residential
or large enterprise-scale organizations. Today, IT organizations of almost all telecom players, big and
small, make use of smart analytics platforms to make sense of their voluminous and diverse business and
operational data. These intelligent solutions help consultants and analysts to draw insights into market
behaviour, sales order distributions and other interesting trends and patterns. In this context, there is a
need, stronger than ever before, for these telecom companies to focus on optimizing their ‘concept to
market’ (C2M) and ‘order to activate’ (O2A) strategies to emerge as clear differentiators in this fiercely
competitive industry. C2M and O2A processes rely heavily on the operational agility and architecture
robustness of the companies’ BSS/OSS ecosystem. In this whitepaper we discuss the features, merits and
methodologies for adopting Microservices Architecture when transforming today’s telecom BSS/OSS IT
stacks, equipping them to be ready to take on the volatile and vibrant business needs of tomorrow.
Introduction
In a typical telecom service provider organization, BSS/OSS ecosystem is a complex environment
consisting of a plethora of systems. These systems are quite heterogeneous in nature. Some may be COTS
products, some custom-built over COTS products, some built in-house and some may be built by third-
party vendors. The differences do not end there. Implementation technology could be vastly different.
Some built using languages adhering to standard specifications while some maybe using vendor
proprietary languages. To add to the mix, there would be applications that are generations apart – one
could be a legacy application built using Mainframe while another one could be based on server side java
script code running on node.js backed by a NoSQL database. To compound matters even further, these
systems do not stay the same. Many of the constituent systems evolve enormously over time to cater to
the business and IT needs of the organization. As a result, the IT stack, once envisaged by the enterprise
architect as a conglomeration of neatly defined IT systems, COTS as well as custom built, integrated using
well-documented interface contracts, has evolved into a group of unmanageable tightly coupled
monoliths.
The order to activate cycle in a typical OSS/ BSS ecosystem could be explained as follows: A CRM system
manages the customer management and product management functions. The CRM interfaces with the
Enterprise Catalog to retrieve the details of products those are to be sold through the stack. Inter product
association details, business rules, pricing details and relevant product attribute details are also fetched
from the catalog. A sales user is a typical user of this system. The CRM creates product orders and passes
1
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
them to the Order Manager for performing product to service decomposition, perform service design and
generate work orders for work force management system to schedule work allocation. The Order
Manager fetches the service and resource specifications from the Enterprise Catalog to perform its
actions. As a step in service design, order manager interacts with Network Design System that performs
functions such as IP address allocation, network topology definition and other design activities. The Order
Manager also acts as the orchestration engine for sending order requests to Procurement system for
purchase of bill of materials when required. Once the service and resource configuration steps are
completed, the provisioning staff uses Order Manager to invoke the Activation system for activating the
service in the network. The applicable billing codes are also sent to the Billing system for sending purchase
orders to the customer. As a final step in the fulfilment flow, the Order Manager sends a response to the
CRM indicating the order status as completed.
Fulfilment processes for major telecom companies in the real world could be much more complex. There
could be more systems involved, comprising of complicated workflows and a much higher magnitude of
data flow between systems. But the fundamental principles on which these systems operate remain the
same. Any additional complexity only accentuates the need for IT transformation.
As shown in the above figure, a lot of forces act on these IT systems. Over time, the consequences of these
forces lead to the degradation of qualities that the enterprise architect and other stakeholders, at the
time of inception, had deemed appropriate to ensure the architecture robustness.
A brief look at these forces would indicate that people or processes drive most of them. But a further
glance would show that these are mostly enterprise architecture concerns and not a lot can be attributed
to specific people or process issues.
2
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
to spend for a product upgrade that involves hefty license costs. Why fix something that is not broken? In
this case, the developer would have to settle for a suboptimal solution by choosing an older version of the
software that is compatible with the overall solution.
The users of the system also contribute to the set of forces. Over time, as the applications undergo wear
and tear, user frustrations tend to increase. In software terms, wear and tear generally refers to more
load, increasing response times, increased usage complexity, more bugs, data correctness issues,
increased defect resolution times and increased frequency of system crashes. Even though it is not proper
to generalize, operation teams of most of the large enterprise scale systems that have been in production
for a few years face these challenges. It is not uncommon for these frustrated users to try and bypass
these flawed system components and define an alternate un-written business process by themselves.
These may lead to serious ramifications for both business and operations. These alternate business
processes might involve manual steps that lengthen the order to activate cycle times. Also, it can increase
chances of mistakes resulting in higher workload for operations support. Operations support face the
headache of resolving all data integrity issues that could emerge.
As systems tend to become bigger and bigger with new functionalities, the team responsible for
supporting and managing the systems also grows. Also, new stakeholders could come in, there could be
change requests that require modifications not aligned to the original system architecture. It is not
reasonable to expect the same stakeholders who built the architecture to be around for the lifetime of
these systems. People move and so should systems. But when systems become large monoliths,
impermeable governance becomes extremely difficult. Some changes can slip under the radar.
As shown in the figure, even for a well-managed group of systems, architecture decay occurs due to the
various forces that act on these systems. Some of these applications might grow into unmanageable
monoliths due to the proliferation of suboptimal modules. Functionalities that need to reside elsewhere
might be added to the application. Conversely, due to the complexity of the solution, functionality that
needs to fit into the solution might be pushed out. The common pattern emerging from this traditional
approach of defining enterprise architecture is rigidity. The lack of flexibility of these systems forces
developers to design and implement new functions as enforced by the architecture. As a result
development teams could reject proposals for changes to the system due to scalability concerns. The user
3
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
community also would be averse to making changes to the system, as they fear it would further
deteriorate the system.
In this context, what we need is a transformation strategy that addresses the problem areas of all
stakeholders of the OSS/ BSS ecosystem – business, users, operations, developers, architecture group and
marketing. A strategy that transforms the enterprise architecture to loosely coupled systems that are
easier to build, test, manage, integrate, use and monitor. These agile systems should also have sufficient
intelligence built-in to help analytics platforms to quickly retrieve relevant data patterns for smarter
decision-making, be it for operations or for business.
Traditional approach for transforming BSS/ OSS architecture to loosely coupled systems
Traditionally, the transformation of enterprise IT stack to loosely coupled systems would point to service-
oriented architecture built around a complex middleware system such as an Enterprise Service Bus. To
make the architecture complete, a Business Process Management (BPM) system sits above the ESB to
compose business processes out of the published coarse-grained services.
This approach follows a layered architecture pattern consisting of three layers. A bottom-up approach
would be the best choice for implementing this architecture. The layers are identified by the
functionalities they perform:
Service enablement
This layer represents the lowest layer representing the fine-grained services published by the various
applications in the BSS/ OSS ecosystem. The first activity of transformation is to identify and extract
functional units of each of the applications as services. This activity is referred to as service enablement.
Service orchestration
An Enterprise Service Bus resides in this middle layer that performs orchestration of the fine-grained
services developed and published by the lower layer to form coarse-grained services. The functionality
achieved in this layer is referred to as Service orchestration.
Two popular open source software, Mule by Mulesoft, which is a popular open source ESB implementation
as well as Activiti, a widely used open source BPM implementation, are put to use for representing the
reference architecture for this service-oriented approach. Both Mule and Activiti are widely used in
production scale environments.
4
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
The technical architecture explained earlier is illustrated in the above diagram. The lowest layer is
constructed first. The functional capabilities of each of the systems are extracted as web services in this
layer. For example, CRM system, which does customer management and product order management
functions, publishes appropriate fine-grained web services. In reality, this may consist of many fine-
grained APIs such as retrieveCustomer, retrieveCustomerLocation, createProductOrder,
validateProductOrder etc.
Similarly, the other applications in the ecosystem also extract and publish appropriate fine-grained APIs.
The architecture does not force fit any particular protocol for these services. They can be represented as
SOAP based services adhering to WS-* standards or relatively lighter REST services. The fine-grained
services published by the various applications need to collaborate and perform a logical unit of work for
the corresponding business process. The middle tier performs this service orchestration. This is achieved
using mule ESB. Mule supports a host of protocols including and not limited to TCP, HTTP, SMTP, (S) FTP,
AMQP, and JMS. Mule flows are used to compose the coarse-grained services. For the BSS/ OSS problem
domain, the key mule flows are identified as Product Order Management for creation of product orders,
Service Order Management for service order creation, Network Design for network topology creation,
Device Procurement for bill of material procurement request, Network Provisioning for device
configuration and validation and Service Activation for service activation functions.
5
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
Business Activity Monitoring and Complex Event Processing: Mule has a built in Business Analyzer
module to keep track of all business events happening during the lifetime of an application. Mule
also integrates well with Complex Event Processing engines like Esper.
Cloud support: Mule Cloud Hub is an IPaaS (Integration Platform as a Service) offering. It has a
robust set of connectors for connecting both on premise and cloud-based applications.
The top layer in the stack comprises of Activiti BPM for orchestrating business processes. BPM helps
streamline manual business processes that play an important role in improving the overall operational
efficiency. Activiti provides the option to configure boundary timer events that serve as an excellent
mechanism for jeopardy management. Activiti BPM supports BPMN 2.0 standard for defining business
processes. Activiti comes with a designer component that helps to model business processes intuitively.
Activiti Explorer that is bundled with the Activiti installable is a web application that can help with the
administration and monitoring of Activiti processes.
One of the founding principles of Service Oriented Architecture is to build large systems as a collection of
loosely coupled services that collaborate over the web. The emergence of ESB paradigm in this space can
be attributed to address some of the cross cutting requirements such as security, mediation, monitoring
etc. Over the years, attempts to productize ESB has resulted in adding too many features into this
middleware leading to highly complex architectures. Subsequently, development projects adopting this
architecture have steep learning curves resulting in slower development and release cycles. The ESB layer
often ends up having complex business logic built into them for message enrichment, transformation and
routing. As more and more applications/services in the enterprise use the ESB for integration, the ESB
becomes bulky with a lot of application specific logic. Over time, ESB loses its scalability and becomes
more and more difficult to maintain. It becomes a bottleneck and a single point of failure, which can bring
down the entire enterprise. Consequently, the ESB emerges as the most critical component in the
architecture, leading developers to implement services to align to the middleware rather than the other
way around. Services tend to lose their autonomy, the fundamental principle of SOA.
SOA was envisaged to be built around reusable business services. When SOA is implemented using
business process orchestration approach, it is likely that a few central services end up handling important
business logic that it should not ideally contain. This leads to higher coupling and lower cohesion. In short,
in practice, the architecture will end up having a few bulky services doing a lot of things and a few anaemic
services doing very little.
6
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
Before attempting to map our problem domain to Microservices architecture, it might be worthwhile to
examine the reason why this architecture has generated so much interest in the technology world. As we
have seen earlier, the various forces that continuously act on the enterprise architecture eventually make
some of the applications in the system huge, bloated and rigid. These are commonly referred to as
monolithic applications. These monoliths suffer from obvious drawbacks:
The whole monolith needs to be built as a whole – even a small change has to go through a
rigorous release and deployment cycle
Scaling is expensive – Horizontal scaling can be applied to a monolithic system only in its entirety.
Limiting scaling just to the affected module might not be feasible.
Locked into a technology stack – It might not be possible to adopt the most suitable technology
for a particular functionality resulting in a suboptimal solution
Intimidated developers – Codebase size may put off development teams from working with those
systems.
These limitations have led to the evolution of Microservices architecture. Since microservices are built
around business capabilities they enable y-axis scaling. Also, since microservices are deployed in their own
processes, x-axis scaling can also be easily achieved. Since each of microservices are independently
deployable, polyglot programming approach can be adopted where the most appropriate technology
stack can be chosen for satisfying each business capability.
As opposed to the traditional SOA approach, microservices should be designed as fine-grained services
communicating over lightweight protocols. So, we prefer REST to the comparatively heavier SOAP-based
web services. The business capabilities of systems such as CRM, Order Manager, Network Designer,
Enterprise Catalog and other systems in the IT stack are transformed to fine-grained functional units
published using Restful API. REST is not the only communication medium for microservices. As we briefly
mentioned earlier, choreography is the preferred approach for data flow through the system.
7
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
based deployments is the environment consistency it offers. Once Docker image for a microservice is
generated using Docker file, the Docker image can be deployed to any environment. The ideal deployment
strategy is to deploy a single Microservice instance per Docker container. For achieving horizontal scaling,
the same microservice can be deployed on multiple Docker containers. Continuous delivery of
Microservices on Docker containers in development, test and production environments is facilitated using
configuration management systems such as Puppet.
Service Discovery
In a typical Microservices Architecture, we have many instances of Microservices running on Docker
containers in a multitude of operating platforms. The ability to dynamically discover services in such an
ecosystem is critical to the success of the Architecture. Service Discovery component is responsible for
discovering the services that are online and available for consumption. Service Discovery becomes more
important in a highly dynamic environment where services are spun up and torn down quite frequently.
Several open source service discovery solutions such as Apache ZooKeeper, etcd, Eureka are available in
the market.
8
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
9
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
The fulfilment service follows the choreography model for managing the order workflows. The fulfilment
service, inventory service and the service designer follow the publisher subscriber model using the
message bus to achieve this choreography. This is in line with microservices philosophy of ‘smart end
points and dumb pipes’.
In this section, we look at two important characteristics that play a vital role in fulfilling the envisaged
goals of Microservices Architecture namely polyglot portfolio adoption and DevOps adoption.
The conventional approach to enterprise application development is to rely on proven technology stacks
such as Java/ J2EE or Microsoft based stack for application development and any RDBMS such as Oracle
or MySQL for the backend. There are numerous frameworks and best practices that are available for these
technology stacks. Microservices development can continue to happen on these technologies seamlessly.
Alternatively, microservices can also be developed on any other technology stack that may be more
aligned to the problem domain.
Below table lists some of such technology options that can be evaluated for implementing microservices.
10
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
11
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
Once the applications are ranked, we apply the suitability assessment model. The model determines the
degree of suitability of the application to be transformed to microservices using a ‘Goals vs. Challenges’
graph that has Goals on the y-axis and Challenges on the x-axis. The graph is divided into four quadrants
to help the model categorize the applications according to its readiness of moving to Microservices
Architecture. This model consists of a set of criteria parameters that would be applied to each of the
applications to assess the application’s perceived readiness to move to Microservices Architecture. Each
criterion may belong to either of the two categories – Goals or Challenges. The criteria belonging to goals
would be assessed in terms of ‘Extremely Important’, ‘Moderately Important’, ‘Less Important’ and
‘Unimportant’ in the decreasing order of business value. Similarly, the criteria belonging to challenges
would be assessed in terms of ‘Trivial’, ‘Easy’, ‘Medium’ and ‘Difficult’ in the increasing order of
complexity. The application subject matter expert completes the assessment for a particular application
and applies the report to the assessment model. The model applies the following rule to determine on
which quadrant the concerned application belongs to.
A sample assessment model for a classic enterprise application is given below for reference. This criteria
set is not all-encompassing and should be extended or pruned as appropriate for the enterprise context.
12
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
13
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
The Suitability Assessment Model provides an excellent reference point for evaluating the readiness of
the enterprise architecture to move to microservices.
As a rule of thumb, if three of the five top-ranked monolithic applications in the IT stack fall in quadrant
III, then transformation to Microservices Architecture might be difficult to achieve. It might be better to
go with the centralized SOA approach; the ESB and BPM based one. Even though we recommend
Microservices architecture as the strategic route to take, this is one scenario where it might be wiser to
go with the centralized orchestration approach. Having loosely coupled SOA is better than tightly coupled
point-to-point connected architectures anyway.
Migration of applications in quadrant I to microservices offer the highest value in the transformation
exercise. These applications are classified as ‘most suited’ because the value offered by their
transformation to Microservices Architecture is of highest importance to organization’s business goals as
14
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
well as they offer least challenges for migration to Microservices Architecture. The following sequence of
steps indicates the recommended methodology for achieving the desired transformation for these
applications.
15
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
Split database
Now, the bounded contexts that we have identified in step 1 along with the newer bounded contexts that
we have derived subsequently have logically become more cohesive. But the code should not yet be split
physically. Based on the information gathered from the previous step, we are ready to split the database.
This is a good time to analyse whether the data model representation is appropriate. For example, if the
data model were representing hierarchical relationships then a graph DB such as Neo4J would be more
suited than an RDBMS. At the end of this step, we would have a single monolithic application layer that is
logically divided into bounded contexts at design time, consisting of independent database schemas each
representing data for the corresponding bounded context. If a decision had been made to change the
database technology for a service, then the data model as well as the data access layer of that service also
needs to be modified in this step.
16
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
Manage security
At this stage, the single monolithic application has been split into multiple microservices. From a security
perspective, the complexity of the architecture has increased. Monolithic applications would typically
have a single entry point where the user is authenticated and authorized. Once the user is authorized, the
user would be free to access the backend services accordingly. This approach is impractical and inefficient
for securing microservices. Microservices are not designed to maintain user principal information across
API invocations. This information can be passed around in the form of access tokens, cookies or session
attributes. In addition, microservices should also take care of inter-service authentication.
A few popular and open standards-based methods to implement security in microservices are given
below:
OAuth 2.0
JSON Web Tokens (JWT)
OpenID Connect which is built on top of the OAuth Protocol
SAML
Two way TLS
Handle reporting
Typically, in large enterprise applications, secondary database is used for generating large reports. This is
done so as to limit the impact to primary database due to long running reports. Also the schema in this
database is organized to facilitate quick retrieval of reporting data. The data from primary database will
be periodically synchronized to secondary database to ensure consistency. It is advisable to leave the
schema in reporting database unchanged. Since schema in both the databases is different, the replication
logic should change. Suitable approach is to implement an event pump in each service that listens for a
change of data in its domain in primary database and subsequently propagate the change to the secondary
database. Even if the application does not maintain a separate schema for reporting, it might be
worthwhile to consider introducing one as part of the transformation program.
Containerization of microservices
This is an important step where we split the deployment model for the services. In this step, Docker files
for the services are created and are used to generate the corresponding Docker images. Docker images
17
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
ensure the deployment readiness of the services on to the various environments such as development,
test and production. Best practice would be to maintain a single service instance within a Docker
container.
This concludes the sequence of steps that need to be followed for migrating the ‘Most suited’ applications
to Microservices Architecture.
The set of applications that fall under this category are most critical to the transformation project. Like
the applications in quadrant I, their transformation to Microservices Architecture are of highest value to
the organization’s business goals. But contrary to ‘Most suited’ applications, the challenges involved in
the migration of these applications are quite difficult to overcome. Hence, project team should take
maximum care in executing the transformation of these applications.
The steps involved in methodology 1 are comprehensive, but not all of them can be applied in
methodology 2. In this section are listed the steps that are difficult to achieve for this group of
applications. Alternate strategies to be adopted for these steps are also discussed.
18
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
The two steps mentioned above are most likely to appear as high difficulty challenges for applications in
this category, but depending on the enterprise context, there could be other scenarios that appear as
difficult challenges. But the general idea is to split the application as granularly as possible by business
capabilities.
These applications belong to the quadrant IV that is characterized by low importance and relatively lesser
challenges. The fact that these applications fall under ‘easier’ challenges category makes them eligible for
all the steps mentioned in methodology 1. But, since the transformation of these applications is not
important from business goals perspective, either of the following two approaches can be taken:
Transform them first - Consider these as pilot applications for transformation project. Since the
challenges involved are mild they can be easy to adopt for a team new to Microservices
Architecture. Similarly, since the goals are not critical, it provides some leeway if things go wrong.
Create Service wrappers - Since these applications are not strategically important, do bare
minimum work on them. Create coarse-grained service wrappers so that they can collaborate in
a microservices ecosystem.
As the name suggests these applications are not suitable for following Microservices Architecture. But to
make the whole ecosystem work, they need to collaborate with the rest of the services when needed.
Like in the previous case, one of the following two approaches can be taken:
Decommission them - Phase out these applications, as they are not aligned to strategic
architecture road map. Revisit their functions and evaluate if they are really required. Very often
legacy systems reside in the IT stack for a very long time doing things that do not serve any useful
purpose.
Create Service wrappers - Since these applications are not strategically important, do bare
minimum work on them. Create coarse-grained service wrappers so that they can collaborate in
a microservices ecosystem. There is not much value in spending effort in splitting the database
for these applications.
19
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
This concludes our discussion on the various methodologies for transforming different types of
applications to Microservices Architecture. The methodologies defined above help to technically
transform monolithic applications to a bunch of microservices. But to derive the true benefits of
Microservices Architecture, work still has to be done. Code within the services needs to be refactored to
improve cohesion and reduce coupling. Microservices need to be inherently designed for failure. Also, an
important benefit offered by microservices is their ability to scale independently of the rest of the system.
Microservices derived by splitting a monolithic application may not have these characteristics. Also, for
the sake of simplicity, changing service implementation technology was not discussed as part of the
methodologies. Most teams would not prefer to bring in a lot of disruption mid-way through a
transformation project. Once we have a working Microservices Architecture in place, it might be
worthwhile to evaluate this aspect and take an appropriate call. A continuous evolution of microservices
by applying best practices is important in the transformation journey of an enterprise.
20
Transforming BSS/ OSS systems to Microservices Architecture October 28, 2015
Conclusion
The introductory part of this whitepaper attempts to unearth some of the major pain points encountered
in BSS/ OSS ecosystem of typical telecom enterprises. The paper then moves on to define a microservices-
based transformation strategy that intents to help organizations adapt and evolve their IT stack. The paper
also explores some of the key features and design principles of Microservices Architecture that are
fundamental to making the transformation program successful. The paper proposes an open source
adoption approach to develop microservices using a reference architecture. The paper also defines a
Suitability Assessment Model for assessing the readiness of enterprise applications to be migrated to
microservices. Finally, the paper defines various methodologies for transforming applications in the legacy
stack to Microservices Architecture by making use of the Suitability Assessment Model as a basis.
21