Posted Date: May 30, 2023 by:
Sidney Antommarchi

Microservices

After its introduction around 2004, Microservices have gained much traction in Industry and Government. Some primary adopters of Microservices include Industry giants Netflix, Uber, Spotify, Amazon, and Meta. In Government, adopters include the Environmental Protection Agency (EPA), General Services Administration (GSA), and the Department of Agriculture (USDA). Industry businesses such as Netflix are run in their entirety with Microservices. Microservices provide a basis for modern custom Cloud-First/Native applications. This article will examine Microservices’ definition, benefits, uses, and architecture.

Microservice architecture is a variant of the Service-Oriented Architecture (SOA) structural style in Software Engineering. Microservices are an architectural pattern that arranges an application as a collection of independent, loosely-coupled, fine-grained services communicating through lightweight protocols. A Microservice stands on its own; in other words, Microservices are independent. A Microservice can also be used along with other Microservices to accomplish broader tasks; in other words, Microservices are loosely coupled. The scope of a Microservice has small/limited functionality and is hence termed fine-grained. This means that, for example, if an application needs to keep track of customer orders, then a possible Microservice scope would keep track of just customer contact information. Methodologies such as Domain-Driven Design (DDD) are used to find the right balance for Microservices functionality. Microservices also communicate through lightweight protocols such as Hypertext Transfer Protocol Secure (HTTPS) with Representation State Transfer (REST) Application Programming Interfaces (APIs), e.g., https://domain/version/microservice/data. An overall application is built using several or many Microservices – essentially breaking the application up into pieces that can operate independently rather than as a single entity.

One of the goals for Microservices architecture is to have small self-contained teams that can develop and deploy their microservice independently. This is achieved by reducing dependencies, allowing developers to evolve their Microservices with limited user restrictions, and for additional complexity to be hidden from users. Consequently, organizations can develop software with fast growth and size and use off-the-shelf services more efficiently. Communication requirements are reduced. These benefits come at a cost to maintaining the decoupling. Interfaces need to be designed carefully and treated as public APIs. One technique used is having multiple interfaces for the same service or various versions of the same service to not disrupt existing service users. Microservices architectures make applications easier to scale and faster to develop, enabling innovation and accelerating time-to-market for new features.

Microservices stand in contrast to monolithic architectures, where all processes are tightly coupled and run as a single service. This means that the entire architecture must be scaled if one application process experiences a spike in demand. Adding or improving a monolithic application’s features becomes more complex as the code base grows. This complexity limits experimentation and makes it challenging to implement new ideas. Monolithic architectures add risk for application availability because many dependent and tightly coupled processes increase the impact of a single process failure.

In contrast, in a Microservices architecture, an application is built as independent components that run each application process as a service. These services communicate via a well-defined interface using lightweight APIs. Services are made for business capabilities, and each service performs a single function. Because they are independently run, each service can be updated, deployed, and scaled to meet the demand for specific tasks of an application.

Microservices do not compete with or replace Low/No Code solutions. Rather, Microservices and Low/No Code can be seen as complementary technologies. In contrast to Low/No Code solutions, Microservices are used when a high degree of customization is needed, e.g., Section 508 full compliance. However, Microservices and Low/No Code have areas of overlap. In fact, in some cases, Microservices are as cost-effective based on Total Cost of Ownership (TCO) as Low/No Code with Analysis of Alternatives (AoA) with similar time-to-market characteristics. A Microservices Reference Architecture is shown in Figure 1 below. Within the architecture, a front-end web application makes a REST API call via a browser to a Microservice. The Back-end Web service then handles the browser’s HTTPS request. Back-end Web service can be implemented with open-source commercial-off-the-shelf (COTS) components like Apache. The Back-end Web service then routes the request to an API Gateway, which maps the request to a particular Microservice for processing.

Figure 1 Microservices Reference Architecture

API Gateways can be implemented with open-source COTS components such as Netflix Zuul or services such as the Azure App Service. Depending on the level of reliability needed, Microservices can be run in dual-redundant mode with failover. This is true of data services for the Microservice itself. For the API Gateway to map a request to a Microservice, the Registration

Common Service is used. A Registration Common Service can be implemented with open-source COTS components like Netflix Eureka. The API Gateway also monitors the heartbeat of a Microservice and determines if a failover needs to be triggered. Microservices make use of Common Services such as:

· Directory for Authentication and Authorization can be implemented with services such as Azure Active Directory.

· Web Analytics for usage data can be implemented with services such as Azure Monitor.

· Serverless Computing for small, infrequently used functionality scheduled on-demand and can be implemented with services such as Amazon Web Services (AWS) Lambda.

· Secrets/Certificates for connection/communication can be implemented with services such as Azure Key Vault.

· Storage for long-term data retention can be implemented with services such as AWS S3 Glacier.

· Distributed Logging/Tracing for application debugging can be implemented with services such as Azure Monitor or Amazon MQ or open-source COTS such as ActiveMQ and Elasticsearch, Logstash, and Kibana (ELK) stack.

· Artificial Intelligence / Machine Learning (AI/ML) for metadata tagging and other functionality can be implemented with services such as AWS ML.

· Messaging between Microservices and Common Services can be implemented with services such as Azure Service Bus.

· Agile Management to manage development projects/programs and can be implemented with services such as Jira or Azure DevOps.

· Continuous Integration / Continuous Delivery (CI/CD) to automate release and deployment and can be implemented with services such as AWS Pipeline.

· Containers for faster deployment and resource efficiency and can be implemented with services such as Azure Kubernetes Service (AKS).

Centennial Technologies Inc. has applied Microservices at the Environmental Protection Agency (EPA) and other Federal agencies. We have the experience and subject matter experts to help your organization analyze, architect, implement, develop, deploy, and operate Microservices. We can also help you tailor the implementation of Microservices to your organization’s needs with the right balance between open-source COTS, Software as a Service (SaaS), and Platform as a Service (PaaS) to yield faster time-to-market, scalable, and resilient applications.

Point of Contact
Sidney Antommarchi
Director of Solutions
sidney.antommarchi@centennial-tech.com

sunitha

Sunitha Ravi

Vice President of Operations and Delivery

Sunitha Ravi is the Vice President of Operations and Delivery at Centennial Technologies Inc. In her role, she focuses on building trusted relationships with senior federal clients while driving innovative and customer-centric solutions. Using over 26 years of experience supporting both the public and private sectors, Sunitha aligns technology with strategic business and operational goals while managing operations and technology teams to deliver excellent customer service.

Before Centennial, Sunitha was a Director at VMWare public sector and led various programs for federal clients through agile and scrum practices while meeting growth and profitability goals. Before VMWare, Sunitha held various leadership positions at Verizon, Terramark, and Tetra Tech. She managed the delivery of financial and technology solutions and served as a trusted advisor to executive and management stakeholders. She successfully led teams of over 200 staff and agency portfolios with ~$100M in annual revenue. She supported financial teams and improved the finance function by driving more efficient processes and streamlining financial reporting.

She holds a Master’s degree in environmental engineering and is an Earned Value Practitioner (EVP), Project Management Professional (PMP), and Information Technology Infrastructure Library (ITIL) certified. She lives in Ashburn, Virginia, with her husband and two daughters and enjoys traveling, spending time with friends and family, and cooking.

Ben Marglin

Vice President of Business Development

Ben Marglin is Vice President of Business Development at Centennial Technologies, focused on developing and leading the growth strategy for Centennial. With over 25 years of experience in public sector management and technology consulting, Ben’s strengths include building strong client relationships with both existing and prospective clients, and serving as a people leader across the organization, helping to promote a strong and healthy company culture. Ben leads the growth team to identify and capture new opportunities across the business development lifecycle, working to expand Centennial’s business in the Federal and commercial space. 

Before Centennial, Ben was a Senior Vice President at Karsun Solutions, where he led client delivery for a ~$130M portfolio across several Federal civilian agencies and led a team of over 500 folks providing support to Federal clients. He spent 17 years with Booz Allen Hamilton, mainly in Federal Civilian market leadership roles where he had full P&L responsibility for a portfolio of Federal agencies, and he also spent two years in BAH’s Strategic Innovation Group (SIG) helping to lead the Digital Solutions practice area. Earlier, Ben worked for American Management Systems (AMS) providing IT and management solutions to state and local clients, and he spent three years on Capitol Hill working in the U.S. Senate.

Ben’s areas of expertise include digital strategy and transformation, acquisition, change management, and IT program management. He has a master’s degree in public policy from Duke University and a bachelor’s degree from Colby College and has professional certifications in Program Management (PMP), AWS Cloud, Agile (SAFe and ICAgile), Change Management (CMAP), ITIL, and Technology Business Management (TBM). Ben lives in Northern Virginia with his wife, son, and goldendoodle Sophie, and when he’s not doing yard work, he enjoys golf, running and biking, and following his native Boston sports teams. You can connect with him on LinkedIn or Twitter.

ned

Ned Blackburn

Director of Growth and Client Success

Ned Blackburn is the Director of Sales and Business Development at Centennial Technologies Inc. In his role, he focuses on exceeding clients’ expectations through delivering innovative solutions, advising customers, and working with solution partners. Ned brings 25 years of experience in strategic account management, program management, and business development in the federal and commercial sectors to Centennial.

Before Centennial, Ned was a Director at Grant Thornton, providing subject matter expertise on IT modernization, financial management, and business transformation initiatives. He focused on building resilient and agile teams to support various federal agencies. Prior to Grant Thornton, Ned held several leadership positions in small and large businesses where he led business development, capture management, and vendor partnerships. He built and managed large teams specializing in Enterprise Resource Planning (ERP), Business Intelligence, and Data Warehousing solutions.

Ned earned his Bachelor of Business Administration from Ohio University, is a Project Management Professional (PMP), Certified Scrum Master (CSM), and ITIL4 certified. He lives in Ashburn, Virginia, with his wife and three children. He enjoys coaching little league baseball, playing golf, and cheering for Cleveland sports teams.

tony

Antonio "Tony" Hylton

Cheif Strategy Officer​

Antonio “Tony” Hylton is Chief Strategy Officer for federal and state sectors at Centennial Technologies Inc. In this role, he develops service offerings, establishes strategic partnerships, and supports acquisitions. Tony brings over 30 years of public and private sector experience with business transformation, organizational change management, and innovative solutions to Centennial.

Before Centennial, Tony held various leadership positions at Verizon and managed over $100 million per quarter in sales. He guided the relationships with the National Association of State CIOs, National Association of State Technology Directors, US Conference of Mayors, and numerous state, local, and public safety agencies. Before Verizon, Tony served as Chief Information Officer (CIO) of Cook County, IL, where he led budget planning and execution, process optimizations, and technology innovation. Before Cook County, Tony held a variety of leadership positions with the Center for Digital Government (CDG), Dell-EMC, AT&T, and MCI.

Tony earned his bachelor’s degree from Northeastern University, is an accomplished Lean Six Sigma Black Belt, and Certified Scrum Master. He loves golf and watersport activities. He is a home chef with a specialty in Asian-Fusion and Japanese Cuisines.

mani

Mani Allu

Founder and Chief Executive Officer

Mani Allu is the Founder and Chief Executive Officer of Centennial Technologies Inc. With over 25 years of experience providing financial and technical solutions, Mani provides overall direction to the corporate growth strategies, differentiated capabilities, and company culture. He works directly with customers, employees, and partners daily and fosters the work environment to develop and deliver highly innovative solutions.

Before founding Centennial, Mani held leadership positions at Verizon, where he led operations and delivery of enterprise services for public and commercial sectors, supporting $240M in revenue. He focused on solutions that drove efficiency and effectiveness, including financial transformation, organizational development, business intelligence, data analytics, application and system modernization, cloud enablement, and cybersecurity. Before Verizon, Mani served as the Vice President at ADS Inc. and supported the telecommunications, financial, retail, and media sectors. He orchestrated the creation and management of service offerings, supervised partnerships, and supported mergers and acquisitions.

He earned his Master’s degree from West Virginia University and lives in Ashburn, Virginia, with his wife and kids. He enjoys tennis and supporting his home sports teams.