Categories
Enterprise Application Development

Top 5 aspects to take Micro services – Wavemaker

Agility, scalability and stability, this is the essence of microservices architecture (MSA). For enterprises seeking scalability, for developers seeking application agility, and for change agents seeking support for digital transformation initiatives, MSA is a key enabler.

In the inevitable journey of modernization, what microservices architecture has provided is the agility and scalability needed to make continuous changes rapidly. When transforming monolithic systems, using microservices for one service at a time has made it possible to showcase the business benefits to a broader audience. MSA has proven to be a key enabler to pursue innovation and digital transformation initiatives.

Given the positive business impact, why is microservices positioned in the “trough of disillusionment” in the recently released Gartner Research on Hype Cycle for Application Architecture and Development, 2019? For one thing, because driven by the enthusiasm to adopt what’s trending many have misinterpreted the essence of microservices which has eventually led to unsuccessful implementation.

To take microservices out of the “trough of disillusionment” and to not make the same mistakes made by other application leaders, consider the following aspects before you begin your journey of modernization.

Understand the essence before adopting microservices

The meaning of microservices has been mistaken by many application leaders. The essence of microservices revolves around continuous delivery, stability, and scalability. Applying the principles of service-oriented architecture (SOA), microservices emerge from domain-driven design (DDD) and DevOps. Each microservice is a loosely coupled yet independently scalable and deployable application service that has a single responsibility and focus on delivering one business task.

Any service smaller than monolithic systems does not make a microservice. What many consider microservices is in disguise “headless API SaaS” or pseudo-microservices. Several vendors also resort to “microservice washing” the services they offer. When building solutions, application leaders need to understand and clarify whether genuine microservices are considered and not versions of reusable or shared application components or a version of SOA.

Partition only relevant services

One of the benefits of microservices is agility. By partitioning every service as a microservice, the complexity increases and negates the benefits. Application leaders need to carefully decide which components can be put into services to ensure implementation is done in phases.

To get the most out of microservices, the multiple granularities of applications need to be identified. It would then be easier to decide which components can be partitioned as services. In this way, microservices can provide the granularity of services and the opportunity for better application development and release planning.

Consider the organizational and cultural changes required

Microservices architecture is complex and has disruptive organizational, technical and cultural impact. When the ownership of the entire lifecycle of an application or product is in the hands of developers, application leaders need to ensure the roles and responsibilities are defined and governance practices are established. The organization structure and cultural mindset have to be realigned to enable the successful adoption of this new approach to application development, deployment, and delivery.

Ensure teams are adequately trained

Microservices architecture is fast evolving and new patterns, design principles, concepts, and tools are introduced. With changes in the technology stack used, sharing of knowledge across teams must be encouraged. Developers, architects, and DevOps professionals need to be trained to use new software programs and application lifecycle management techniques. To empower development teams to innovate and deliver more, application leaders are using modern technologies such as low-code platforms to make full-stack development easier.

Improve agile development practices

The prerequisites of microservices architecture is agile DevOps and continuous delivery practices. Before adopting microservices, enterprises must ensure they improve their agile development practices and methodologies. In digital transformation implementations, enterprise agility is a prerequisite. Rapid application development platforms are increasingly being used to improve agile practices because they leverage low-code technologies and use open standards-based technology stack to ensure digital transformation implementations are successful.

Application leaders need to first understand the essence, objectives, and applicability of microservices. Once this is clear, they need to implement microservices iteratively, one service at a time. One of the main reasons why microservices implementations fail is because application leaders have in the past adopted microservices without making changes (organizational, cultural, and technical). To transform enterprises and align them to the main goals of agility and scalability, change is inevitable. Successful microservices implementation requires commitment, discipline, in-depth understanding, and openness to venture into a steep learning curve. Application leaders need to use this formula and embrace change if they wish to move microservices out of the “trough of disillusionment”.

As an application leader or change agent, we understand that an IT modernization initiative is not an easy feat. Continue reading to know how you can add the catalyst to change and to know how and where to start your journey of modernization when migrating from monolith to microservices architecture.

Categories
Insights

How CIOs can Capitalize on the Power of APIs

As soon as the wheels of modernization picked up speed, many new technologies filled up the IT space. Of them, Application Programming Interface or APIs emerged as a key element driving application modernization. APIs are a network of connections that allow systems, applications, and devices to talk to each other by sharing business functionalities; regardless of where it is located or what format they’re in.

With the API space evolving more rapidly than ever before, most executives now regard APIs as the lifeline of their enterprises.

In its report, ‘2019 State of API Integration Report’, Cloud Elements mention that 55% of businesses use APIs to generate revenue.

In fact, the Programmable Web directory accounts for over 22,000 public APIs now. You know what’s more surprising? These numbers are based on publicly available APIs and do not reflect any private or internal API growth at all, which outnumber the public total many times over.

So what’s the big deal about APIs?

The most important aspect of APIs is that they bring in standardization of interfaces in the development process. Developers get to work on structured and standardized APIs that are bound not to change their underlying behavior, irrespective of the technology or components used underneath. APIs also take care of hiding the complexity of underlying implementation, bring in modularity and separation of concerns, which lets independent decoupled services be implemented and tested.

Consider this example – an app developer can write millions of lines of code spending a fortune to create applications with mapping capability. Or, he can import these capabilities from Google maps API, saving money and time and enjoy faster time to market. At the same time, Google enjoys branding benefits as well as earns revenue from millions of developers using its public API.

 

The API Economy 

It is a term that describes the way APIs can positively affect an organization’s profitability. In some organizations like Salesforce.com, APIs contribute to more than 50% of total revenue. There was a time when only software professionals knew about APIs. Today, C-level executives are aware of the financial impact that APIs can have, and companies are generating revenue by exposing APIs as business building blocks for third-party applications. This awareness is a result of the following trends highlighting the API economy:

  • APIs as part of digital transformation strategies

Forrester predicts that, by 2020, companies will invest around $3 billion in API management.

This indicates the importance showered on API management. It highlights a very important fact that at the core of companies’ transformation strategy lies the user experience, and APIs play the meatier role of ensuring that these experiences are consistent among all the different channels of the company. The reason why APIs get the lion’s share of attention is because it enables quick deployment of apps in a repeatable way, leading to the faster pace of delivery. Additionally, APIs can reduce the cost of change and help enterprises achieve operational efficiencies.

  • APIs’ role in creating business models

APIs have made integration so simple that it is no longer an obstacle or a burden to venture into new business models in partnership with others. The simpler integration enables to create business models based on third-party APIs. By using 3rd party APIs for all subsidiary services like user management, logging, dashboard, deployment, etc., IT developers can focus on adding new value propositions to the existing application related to the core offering of the enterprise. The focus of development is purely on the implementation of business logic and not on spending time implementing the skeletal structure of the app.

  • APIs accelerating new digital experiences

APIs make it easy to deliver extremely personalized experiences. Taking an API-driven approach to application development allows building products focused on each customer’s specific needs. In addition, API integrations ensure that all interactions run independently of devices or platforms from where the application is accessed. This keeps user experience consistent throughout their journey, enabling omnichannel strategies.

  • APIs to manage cloud complexities

Apps developed using an API-driven development approach tend to be modular in nature, with every module representing a service (third-party or own). The main application itself seems to be a collection of these loosely coupled services or micro-apps. This app architecture is called microservices. This approach suits today’s enterprises having distributed hybrid cloud and multi-cloud IT infrastructures, but it is not without some challenges. The popular one is how to make all these loosely coupled services work together.

APIs play a big role in solving that complexity. Each of these micro-apps exposes standard APIs so that they can be consumed by other services, in other words, these micro apps talk to each other using APIs. One major benefit of this architecture is that each service can be scaled separately independent of the others. In traditional monolith app architecture, the entire app has to be scaled, though only a part of the app needs scaling.

How CIOs can ensure APIs add business value?

In many cases, jumping into the API ship without a proper strategy can be counter-productive. It may result in a mess, with redundancies, poor maintenance practices, and limited transparency.

To make the app development process simpler, these two things should be considered:

API Taxonomy –

Initially, APIs were considered as intermediaries that integrated and exchanged data between multiple systems. Since mostly the IT department dealt with all things related to APIs, the category used to classify them was usually technical and non-intuitive. This made business stakeholders stay away from API design and prioritization.

But the picture is turning rosy now. Organizations are defining their API taxonomy in a way that can be easily understood by both business and technical users. Categorizing these APIs into those that directly serve the business and those that are technical enablers is the key to realize the business value of APIs. A sound taxonomy can increase value realization by 25 to 50 percent.

Low-code platforms for API-driven Development –

It is necessary to list the right use cases for the APIs, based on your technology feasibility (back-end readiness, for example) and your business requirement before choosing a low-code platform. A good low-code platform enables both API publishing and consumption and has solid collaboration with the API Management platform as well. The following benefits can contribute a lot to business value:

Overcoming technical hurdles of APIs: Modern REST APIs, though simplified, are still quite technical in nature. There is still technology involved in understanding path versus query parameters, headers, auth headers, API key, etc. A smart low-code platform abstracts these complexities and provides you with a nice UI-based connector to work on.

Auto-generation of APIs – Some of the most common APIs that can be auto-generated can include the services from DB, external services, custom coded business logic, security services, etc. More advanced platforms can also APIfy the SQL queries and DB stored procedures allowing total control for the users.

Automatic conversion of SOAP to REST –  APIs these days are mostly REST-based. But there still remains legacy SOAP-based APIs which the modern low-code platform can automatically convert into REST API endpoint for the app. This auto conversion is especially imperative in an enterprise setup, where legacy baggage is stifling. The automatic availability of REST APIs is a crucial factor in modernizing legacy apps.

Ease of design, testing, and sharing in APIs – In a connected app world, it is imperative that your own app should have easy ways to create, design, and share APIs. Inbuilt tools that can design your APIs (for eg, configure path parameters vs query parameters) with ease, test them (through an integrated testing sandbox), and then publish (private, public access) are important features in any modern low-code platforms. There should also be easy integration to publish these APIs into the enterprise API management platform so that it’s instantly available to the API consumers within an enterprise.

Get up, close and personal with APIs

With the proliferation of smart devices, we are heading towards a digital world where everything is connected through APIs. APIs have moved out of the technology bucket and have dived into the bigger picture of business strategy for enterprises. By choosing the right platform, organizations can unlock the true potential of APIs and accelerate their pathway to digital transformation.