Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How Endpoint Solutions Is Using Microservices to Reduce Latency and Boost Performance

DZone's Guide to

How Endpoint Solutions Is Using Microservices to Reduce Latency and Boost Performance

In our interview with Lucas Vogel, founder of Endpoint Systems, we found out that APIs are critical to integrating microservices to backend legacy systems.

· Microservices Zone ·
Free Resource

Learn how modern cloud architectures use of microservices has many advantages and enables developers to deliver business software in a CI/CD way.

Thanks to Lucas Vogel, Founder, Endpoint Systems for sharing his insights on the current and future use of containers.


How is your company involved in the creation or use of microservices?

We’re very involved – we use the Nancy framework and Berkeley DB to provide data-driven microservices to Oracle and .NET customers. We’re currently beta testing Oracle Berkeley DB for .NET Core, giving .NET developers cross-platform development compatibility to one of the world’s oldest, most ubiquitous data sources on the Unix platform.


What do you see as the most important elements of microservices?

It is our strongly held belief that microservices would benefit the most by having they're own autonomous, local data source. Not only does it make microservices perform much faster, but it also gives them proper scoping so they’re not doing too much ‘behind the scenes’ thereby keeping them simple and easy to use. When using the Berkeley DB database engine as a data source, you can also add high availability by configuring your microservices in a master/read-replica configuration, so that writes to one data store are replicated everywhere – or replicate only the data you need – to the other services. And that’s just one of the configuration options – the possibilities are pretty endless with the Berkeley DB database engine. Why build a database server when you can drop a couple of libraries in your application and save your network configuration some headaches?


Which programming languages, frameworks, and tools do you, or your company use, to build out microservices?

As mentioned before, our key components are the Nancy framework as well as our Oracle Berkeley DB builds. The ASP.NET Core platform is outstanding in its own right too – now we can read Berkeley DB databases built on other platforms using other programming languages.  Using these two together helps us build extremely high performant services for customers. On the developer tools side of the equation, we’ve found that the JetBrains family of IDEs and developer tools to build out our services gives us the best value for tooling and platform coverage, hands down.


How have microservices changed application development?

Microservices provide the biggest benefit to service-driven applications where the service facets require frequent change or modification. When abstracting microservices from the API definition(s) itself, this gives organizations benefit tremendous flexibility to adapt their back end to whatever it needs to be, without platform lock-in or other constraints found in traditional service or integration platforms. 


What kind of security techniques and tools do you find most effective for securing microservices?

For starters, we’re able to greatly reduce the attack vector for our microservice architecture by using local data storage. Not only is our exposure to internal systems greatly reduced, but the data is encrypted at rest with a password stored in key vault services, so anyone able to compromise our microservice wouldn’t get much. Outside of that, we like to use API gateways as our public interface to manage and monitor access, and OpenID/OAuth for our internal security processes.


What are some real-world problems you, or your clients, are solving with microservices?

When we started in 2007, our focus at the time was BizTalk and web service consulting. We’ve very much been involved and interested in integration and APIs since our founding. The biggest differentiator microservices bring to the table is, where APIs used to be more monolithic and all-encompassing, microservices allow architecture and implementation to go in the exact opposite direction.

Of course, there are a lot of technology changes that have heralded the era of microservices. Instead of WSDLs we now build OpenAPI specs, and there’s a tremendous focus on formatting all data as JSON, which for many customers not leveraging Javascript for all development can introduce as many new problems as it solves old.

So we focus on what we’ve focused on in the past – helping new businesses design and build great APIs, and helping more established customers bring their existing public interfaces in line with the demands of newer technology, and correcting previous design choices.


What are the most common issues you see affecting the implementation of microservices?

The most common issue we see is the common archetype of technology upgrade where a client slaps new technology onto an existing system or architecture and calls it done. Fortunately, customers looking at cloud migration are starting to understand that won’t cut it anymore and we see an overall decline in that trend.


Do you have any concerns regarding the current state of microservices?

My greatest concern is that companies will continue to neglect the experience of the customers consuming their microservices. We live in an API economy, and even more importantly – it’s an API consumer economy. The success level of many businesses will depend almost entirely on the experience they give to those consuming their APIs, so the art of getting it can’t be expressed enough.


What’s the future for microservices from your point of view - where do the greatest opportunities lie?

The greatest opportunities lie in reducing resource overhead for microservices – and other resources too, like web apps. Think of it this way – if you can containerize a database server, then why do you even need the server in the first place? Why can’t you simply use local storage and save a ton of overhead? Why not just drop a database engine library in your application and start saving your data locally?

We think the greatest opportunities lie in helping developers re-discover the value of existing technologies like embedded databases, and in saving technical and financial resources in web-related solution architectures.


What do developers need to keep in mind when working on microservices?

Know what the twelve-factor application methodology is, and know how to use it in all of the applications and services you build. Developers should also keep in mind the 13th factor – build and maintain a full and rich set of sample data. This data should include ‘bad’ or erroneous data to the fullest possible extent, especially in services that consume data from external sources. Having a good stable of quality data enhances testing, helps developers find ‘gotcha’ issues in their code, and contributes greatly to the all-around stability of the service as a whole.


Is there anything you’d like to know what software developers are doing with regards to microservices?

I’d like to know how developers are using microservices to create composite, or composable apps – or even APIs.

Discover how to deploy pre-built sample microservices OR create simple microservices from scratch.

Topics:
microservices ,api ,legacy ,integration

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}