The FGL development and runtime environment fully supports microservices architectures as well as monolithic, distributed cloud, and standalone hybrid configurations.
All Inclusive Microservices Stack
FGL's fully integrated platform makes it easy to create, deploy, and maintain microservices at scale. The minimum core FGL package consists of a single 5MB executable (plus optional configuration files) and provides unlimited physical and virtual high-performance application servers (limited only by port availability), dynamic content generation, security, advanced caching, logging, remote administration, synchronization, integrated database, and more. Full functionality, including core package plus cryptography, server-side json/xml/soap, ODBC support and more is less than 20MB.
FGL's integrated microservices solutions can operate completely standalone, in a distributed cluster, and can extend and enhance existing Spring/Kubernetes/Other microservices installations.
Hybrid Enhancements to Microservice Architectures
Microservices provide a great way to abstract application functionality across distributed resources and diverse platforms. It's also a great mechanism for providing unique targeted functionality to broader distribution.
To fully gain the benefit of microservices in apps of all complexities and configurations, FGL provides a number of configurations designed to optimize creation, deployment, scalability, and maintenance, including:
The FGL microservices core package makes it easy to deploy everything needed to create a standalone microservice perfect for API integration of high-speed data access and dynamic content generation. Microservices can also be added to existing FGL cloud systems utilizing the platform's ability to rapidly spin-up multiple physical and virtual application servers.
Full Microservice App Decoupling
Entire applications can be decoupled (or created new) and rendered using microservice architectures. These types of apps are known as microservice-first applications and are designed to operate without the decentralization of a typical monolithic component. FGL's full microservice stack provides all the core functionality necessary and can also extend and enhance existing microservice installations.
FGL's tight full stack integration also provides service-to-service in-process communications thereby optimizing overall performance and scalability while reducing latency and complexity.
Microservices with Monolithic Optimizations
Microservices provide lots of benefits, including modularity, scalability, integration, and distributed development across multiple platforms, however benefits can decrease as complexity increases.
Microservices by their very nature are typically highly targeted abstracted individual components. They do not lend themselves efficiently to process consolidation and complexity. As a result, a single complex web app page could make dozens of calls across a microservice architecture to render, or just one to a monolithic stack.
FGL provides a balanced solution that lets you lead with microservices, but enhance and optimize through monolithic distributed cloud consolidation. This can be accomplished by consolidating services directly within the monolithic component, or through dynamic service aggregation using FGL's optimized in-process server-side communications.
Monolithic Apps with Microservice Optimizations
The full FGL stack provides optimized solutions for large complex web and desktop applications. As these applications grow in size and complexity, they can often benefit from offloading some of the complexity to microservices. This has the added benefit of embracing diverse developer skills and varied development platforms.
Additionally, integrating the traditional FGL stack with FGL microservice functionality provides a single scalable distributed architecture that optimizes both elements. This is further enhanced by FGL's in-process server-side communications, aggregation, and dynamic content generation.
Local Resource Sharing with Microservices
FGL's standalone application functionality makes it easy to integrate local desktop/laptop/tablet resources with web apps and microservices. Standalone executables with integrated app functionality provide a secure bridge between the local resources and web-based elements.
For example, a local FGL app can securely monitor a local directory and notify a web app via monolithic or microservice components when something changes. The web component can then do server-side processing and then hand the results back to the local app for local processing – all independent from local user interface or interaction.
Specifically, a user could edit a document on their desktop computer, the local app could securely upload and version the document, then provide redaction services for the user which in turn would automatically upload and version the redacted copy to the larger web application making it available to authorized users in real-time.
Advanced Web Apps with Offline Options, Standalone Versions, and Microservice Synchronization
Advanced complex web applications (with and without integrated microservices) continue to gain popularity in this connected real-time world. Sometimes, however, these connected applications have to operate fully or partially when connectivity is intermittent or even when there is no internet connection available.
A whole host of users and related applications fall into this category, including remote and rural users as well as police, fire, and other first responders.
Previously, the most likely solution to this problem was creating a completely separate standalone program that provided the offline functionality. More often than not this involved reduced functionality and, at the very least, a completely separate code base.
The FGL platform is fully capable of providing a complete localized offline version of advanced web applications with the exact same code base. Synchronization functionality can then be used to integrate offline data with the larger online real-time data stores. This synchronization applies to microservices as well.