Developer Dimension


The Developer Dimension

 

While flexible architectures may be built from Microservices, flexible Microservices must in-turn be based on flexible implementations, and so flexible code!

OSGi – Enabling Real Microservices (µServices)

Microservices are an increasingly popular approach to architecting applications. To realize the full benefit of Microservices the runtime platform must itself be agile and maintainable.

Not only does OSGi™, the open industry standard for Java Modularity, provide a compelling open standards approach to realizing Microservice based architectures, but OSGi also provides the necessary mechanisms to enforce strong isolation, self-describing modules (known as bundles) and semantic versioning. All of these capabilities are essential prerequisites for effective code level modularity.

Tooling & Continuous Delivery

The journey from brittle, high maintenance, monolithic software to flexible, maintainable, evolvable, Microsystem-based solutions need not be arduous as long as fit for purpose IDE’s and effective development release Tool Chains are available to make this easier.

Appreciating the importance of this, Paremus has been leading the open source Bndtools project: the stated aim of which is to make it easier for Java Developers to develop with OSGi than not.Building upon these open source efforts, Paremus provide an optimized Bndtools centric tool chain including integration to your chosen build server and code repository infrastructure. In addition to helping you establish an optimized OSGi continuous delivery environment and processes, we can advise on the various options with respect to meeting regulatory, change management and software asset management (SAM) requirements.

Paremus Consulting and Training services are also available to help you avoid some of the common pitfalls when starting a migration to a more modular development environment. These can speed your delivery of significant business benefit to your organization.

What About The Service Fabric?

The Paremus Service Fabric is a distributed Microservices OSGi based runtime environment.

Importantly, it is transparent to your applications; deploying, configuring and maintaining both traditional monolithic or highly modular applications alike.

The Fabric:

  • Is language agnostic, supporting both non-Java languages that run in the JVM like Scala, and also non-JVM languages like C or C++.
  • Can concurrently support both synchronous RPC and REST based Microservices.
  • Supports the dynamic deployment, configuration and management of popular infrastructure services such as NGINX, ZooKeeper, Apache Kafka, Cassandra and Spark.

In all cases, the Service Fabric dynamically deploys and configures these either as standalone services, or as components within larger heterogeneous Systems. For an example see our Redis example and also the video demo (24m 30s in).

For those interested in light-weight asynchronous Microservices, the Service Fabric also supports the new OSGi Alliance asynchronous services specification, (Paremus Engineers led this specification and delivered the Reference Implementation). Our implementations builds upon the Service Fabric’s low latency Asynchronous Remote Services transport. Service Fabric extensions are also included to enable, without code change, the composition of dynamic load balancing, configurable throttling and circuit breaker behaviors.