Over a million developers have joined DZone.

Sapho Uses Microservices to Help Employees Make Better-Informed Decisions

DZone 's Guide to

Sapho Uses Microservices to Help Employees Make Better-Informed Decisions

The best advice Sapho CTO Peter Yared has for developers is to ''keep it micro.'' Learn how he and his company view and make use of microservices.

· Microservices Zone ·
Free Resource

Thanks to Peter Yared, CTO, Sapho for sharing his insights on the current and future state of microservices.

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

We provide a modern portal for employees to make the best possible decisions for their business. We use microservices to integrate data from existing enterprise systems and deliver that data to employees on the endpoint (device, intranet, messenger client) of their choice.

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

Microservices are a way to get data. Micro apps are small single purpose visual units that allow users to interact with that data. Micro flow is the process that takes place once a user performs an action, it’s like a micro version of a business process. This is a sharp contrast to monolithic applications with complicated user interfaces and long business processes. Sapho takes an existing app and breaks down the API calls into small actions. This shift to micro is a part of the architecture shift – for example, companies will still need ERP and CRM systems, but also need ways to be agile.

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

We use Java on the backend, and micro apps use JavaScript on the front-end. We use the best available API to integrate with systems. For example, we integrate with SAP using Java Connector (JCO) to SAP BAPI. We integrate with GitHub with a GitHub REST API.

How have microservices changed application development?

Microservices themselves are easy to program. However, this is an architectural shift that changes the way you program. Microservices are event-driven and often need to call each other. Once you have a microservices architecture it’s much more efficient with isolated service calls. Serverless as a development platform makes microservices much easier to deploy and manage. The new way of building web applications is progressive web apps callings microservices.

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

The best way is to have an API gateway, and of course SSL at the transport layer. You can also use client certificates and whitelist IPs that can access the microservices.

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

We have up-leveled microservices into micro apps and micro flows. The microservices are an enabling technology that enables us to roll up an event-driven interface for expense reports, KPIs, service desk requests. One pane of glass powered by microservices, micro apps, and micro flows.

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

It’s really hard to deploy, manage, update, and scale microservices in an existing corporate environment. One option here is to use virtual private clouds in Amazon, Microsoft Azure, and Google. These are secure and provide a lot of the infrastructure for microservices.

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

I think people are doing microservices for the sake of doing microservices. We really need to think about solving a business problem beyond technical architecture. For example, asking yourself if the microservices are enabling employees to do things they could not do with their existing applications?

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

It’s a shift from big “A” Applications and the old way of doing things. Employees want their information fast, quick, and easy. The consumer internet is enabling consumers to consume data feeds with push notifications based on what their interested in, and is giving them simple actions to perform tasks. Enterprise applications need to provide the same experience.

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

Keep it micro. Focus on how it manifests to the user. Think about security from the beginning. Try to separate the persistence layer from the microservice so that you can focus on the logic rather than storing data.

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

What languages are developers using for microservices? What’s the granularity of the microservices – all invoices, some invoices, one invoice? How much do the microservices they are building call each other?

microservices ,enterprise ,software architecture

Opinions expressed by DZone contributors are their own.

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

{{ parent.tldr }}

{{ parent.urlSource.name }}