Welcome!

Machine Learning Authors: Zakia Bouachraoui, Liz McMillan, Roger Strukhoff, Pat Romanski, Carmen Gonzalez

Related Topics: Mobile IoT, Microservices Expo, @CloudExpo, @DevOpsSummit

Mobile IoT: Blog Post

To Do or Not to Do: Microservices | @CloudEXPO @Wipro #DevOps #AI #IoT #Microservices #DigitalTransformation

The goal of microservices is to improve software delivery speed and increase system safety as scale increases

Microservices: To Do or Not to Do

As enterprise business moves from monoliths to microservices, adoption and successful implementations of microservices become more evident. The goal of microservices is to improve software delivery speed and increase system safety as scale increases. Documenting hurdles and problems for the use of microservices will help consultants, architects and specialists to avoid repeating the same mistakes and learn how and when to use (or not use) microservices at the enterprise level. The circumstance when microservices is an appropriate solution described in this article and based on the authors' work experiences, best practices available in the microservices community. However, using microservices architecture does not guarantee success to the enterprise.

Introduction
In software development, smaller is usually better. More minor things are easier to code, easier to maintain, simpler to test, and easier to deploy. Systems built this way can be more scalable, more flexible, and deliver value with greater speed. Microservices supports this kind of development.

However, adoption of microservices architecture requires an enterprise to undergo changes across various areas.  The major changes are,

  1. Organizational Cultural Changes
  2. Architectural Changes
  3. Operational Changes
  4. Governance Changes

The following diagram describes the changes in details.

Figure 1: Changes affecting the Enterprise

Today, enterprises are adopting technologies like analytics, mobility, social media, IoT and smart embedded devices to change customer relationships, internal processes and value propositions. Microservices acts as building blocks for building modern distributed enterprise systems and become one of the enablers in the digital transformation journey. Microservices provides the agility, reliability, maintainability, scalability and deploy ability that aid enterprises through their digital transformation process. It helps the enterprise in achieving the following factors,

  • Focus on Business Need
  • Agility, enterprises can introduce new products or enhancements into the market quickly
  • Enhancing the customer experience
  • Reliability, If a service is down, the customer will not be able to use the functionality provided by that specific service, but the rest of the system is still usable
  • Scalability, the system can be configured to auto-scale (up / out) and during off-peak hours, it can go back to its normal configuration resulting in a better customer experience and cost-savings for the customer
  • Can be developed & deployed independently of other services

There exists, numerous articles and blogs on Microservices best practices, designing good services, and a robust supporting backbone [1-3]. The following sections of the paper summarizes, when to adopt Microservices and when not to use Microservices. It also highlights enterprise adoption of Reference Architecture using Microservices.

Characteristics of Microservices
Microservices is an architecture style, in which software systems or applications are composed of one or more independent and self-contained services. It is not a product, framework, or platform. It is a strategy for building large distributed systems. Microservices are loosely coupled and deployed independently of one another.

Microservices can be developed in any programming language, each running in its own process and communicating with lightweight mechanisms like HTTP resource API such as REST. Each Microservices focuses on completing one task and that one task represents a small business capability. There exist no criteria on how small a microservice must be. These services lead the application decomposition into smaller pieces. This helps to scale up parts of applications rather than scaling up the entire application.  The below diagram depicts the major characteristics of Microservices which are classified as,

  • Business
  • Technology
  • Process
  • People

Figure 2: Characteristics of Microservices

Business

  • Service Independent: As microservices are autonomous, each microservice can change in its lifecycle in an independent manner with other services.
  • Self-Contained: Services are easily replaceable and upgradeable. It promotes single ownership of the service. To achieve self-containment proper granularity in decomposition is essential.

Technology

  • Decentralized: Microservices decentralizes architectures, patterns, languages, standards, components and data responsibility and governance because of its architectural style.
  • Resiliency: If one of the microservices goes down, it won't necessarily bring the whole application down as it would with a monolithic
  • Polyglot: Microservices architecture supports multiple technologies, to be specific, a technology that is most fit for the purpose.
  • Single Responsibility: A Service is aligned to a single business activity and is responsible for that business activity and deliver the complete business logic necessary to fulfill the business activity
  • Scalability: Microservices can be deployed and scaled independently of each other.
  • Decoupled: Microservice should implement a single atomic business function. This helps in maintaining minimum dependency on other services

Process

  • Implementation Agnostic: Implementation shall support multiple development platforms and technologies and can be deployed in any of the containers
  • Blackbox: Microservice shall be a black box (no internal details will be exposed outside the service boundary) for other components / systems using / invoking it.
  • Bounded Context: This is one of the important characteristic of Microservices. Other services do not need to know anything about underlying implementation or architecture of other Microservices.
  • Innovation: New versions of small independent services can be deployed more rapidly, making it easier to experiment and innovate.
  • Quality: Composability and responsibility, more maintainable code, better scaling and optimization.

People

  • End-to-End Ownership: This is a cultural shift for the project team. The development team will maintain each project built using microservices architecture as opposed to the regular practice (of handing it over to the support and maintenance team).
  • Independent Governance: A single team owns the complete ownership of the microservice life cycle. This team owns the all the aspects of the microservices including governance. Governance is decentralized and autonomous.
  • Manageability: Smaller microservices code bases are easier for developers to understand, making changes and deployments easier.

Microservices Modeling - Example
Below is an example of microservices identification in e-Governance domain, the License Management application consists issue of license for various categories like starting of business, trading, weapon license etc. The application consists of several components including the LicenseFrontUI, which implements the user interface, along with some backend services for tracking, calculate fee, inspection etc. The application consists of following set of services. The below diagram depicts the sample application of License Management System using Microservices,

Figure 3: Microservices Modeling-Sample Application

SOA vs Microservices
Microservices Architecture is based on SOA vision, which is decomposition of software systems into loosely coupled services. Microservices extends the principles of SOA like business alignment, dependency minimization, and service contracts. Each Microservice has its own data store, and centralized governance.

SOA is preferred for an enterprise having plenty of legacy systems, heavy weight middleware and diverse applications.  The environment for Microservices architecture is the borderless enterprise: end-to-end, cloud-centric digital applications leveraging virtualized infrastructure.

Microservices use continuous integration (CI) and continuous delivery (CD) methodologies and practices, as well as several critical components that were not as common in SOA, such as:

  • Polyglot programming and persistence.
  • Containers or immutable virtual machines (VMs).

The following table summarizes the difference between SOA and Microservices.

Service Oriented Architecture

Microservice Architecture

SOA started as a conceptual architecture, SOA technologies have evolved from the concepts.

Microservice architecture was derived from real software development patterns observed within numerous organizations

SOA is limited to few aspects of an enterprise such as technology and governance

Microservice architecture is broad, covering the patterns, principles, culture, and enterprise governance and  technologies

SOA was aiming to control and standardize enterprise application integration

Microservices goal is to be as responsive as possible to customer needs while maintaining high levels of software quality and system availability

Focus on standardization at enterprise level and follows the monolithic approach.

Allows different applications / teams to evolve autonomously.

More complex protocols like BPEL, WS-Choreography are used

Uses representational static transfer (REST) protocol

Loose or decoupled services

Atomicity is main feature of Microservices

In SOA data service layers are implemented using web-services-based data services. The exposed legacy data create-read-update-delete (CRUD) queries as web service operations.

Microservices abstract data services as RESTful resources, where individual microservices respond to RESTful calls by abstracting underlying CRUD operations.

Replacement of existing applications is complex and requires business case evaluation

Replacement is easy and most cost effective

Based on heavy weight technologies (SOAP, ESB etc) and not highly scalable

Based on lightweight technologies and is very scalable.

Application development and deployment takes longer time and its complex

Application development and deployment is rapid and simple. Less overhead

Centralized Governance. Does not support multiple development teams

Local and distributed governance. Supports multiple development teams working simultaneously and independently

Services need not be independent

Service has to be independent of other service

When to Do Microservices
The following are the factors, which drive the enterprise to use Microservices as their solution.

  • Development for cloud based systems. Ie when enterprise decides to move from traditional SOA to cloud based applications, Microservices are preferred
  • To develop highly distributed systems
  • When the enterprise primary businessrevolves around extremely high volumetransactions
  • If the functionality to be highly available. Deploy the functionality as service in multiple, redundant providers so that some are available even when others are not.
  • For the solutions that require the integration of business capability from disparate systems and programming models
  • For aligning business and IT functionality
  • For business and technology agility
  • Better ROI
  • For incremental development (Agile) and continuous deployment of business software

When Not to Do Microservices
The following are the factors, which negates the usage of Microservices.

  • Scenarios where monolithic and centralized application architecture make more sense (for more simple, small and low available application development)
  • For applications where consistency is high priority over eventual consistency
  • Small enterprises with homogeneous network and technology confined to the single vendor.
  • Scenarios where standards based integration not needed. The solution might be simple data exchange between applications and external systems.
  • When there is no frequent release because of changing requirements
  • Non cloud based development
  • Re-Architecting data platforms. If service relies upon a system of record (Mainframe, Oracle database, SAP system, and others), then Microservices do not fit the definition.
  • Scenarios where there is no product like ownership is required from the project teams
  • Cultural shift in enterprise in terms of team autonomy, long-term commitment to a technical / product stack is not possible or required.

Microservices Patterns
There are many patterns related to the Microservices Architecture. Following are some popular patterns used by applications built using Microservices architecture.

  1. Circuit Breaker: Circuit breaker pattern used in Microservices for fault tolerance to ensure that the failed service does not adversely affect the entire system.
  2. Gateway: API Gateway is responsible for aggregating data or, in some cases, acting as a simple routing layer for appropriate services. The API gateway seen as a single point of failure. A better approach may be to create multiple API gateways for the different platform or frontends that your application needs to support.
  3. Bounded Context: A bounded context contains models describing the domain and a boundary for the meaning of these models.
  4. CQRS: Command and Query Responsibility Segregation is a pattern that segregates the operations that read data (Queries) from the operations that update data (Commands) by using separate interfaces
  5. Orchestration or choreography used to execute and manage business processes or workflows.
  6. Bulkhead: This pattern is to use to avoid faults in one part of a system to take the entire system down.

The following diagram shows the holistic view of the Microservices Pattern commonly used across the enterprise.

Figure 4: Microservices Patterns

Benefits of Microservices
Microservices are build using lightweight framework, open source technologies. It offers quick time to market.

  • Improves fault isolation, larger applications can remain largely unaffected by the failure of a single module.
  • Provides business agility, supports Continuous Delivery. New Functionality can be added easily and quickly. Development teams work independently
  • Eliminates long-term commitment to a single technology stack, develop the code independently using whatever technology the developer feels right for delivering business function. Different part of systems can use different technology stack if needed for better performance.  Technology heterogeneity or polyglot programming is one essential benefit of Microservices.
  • Developer perspective, makes it easier for a new developer to understand the functionality of a service
  • Smaller codebases help developers focus and have a higher empathic relationship with the users of their product, leading to a better motivation and clarity in their work
  • Ease of deployment, one part of the system can move to another machine or to another cloud while rest of the service could stay on premise

Conclusion
This article narrates the situations, when to use Microservices and when not to use. Microservices are recommended for the usage at enterprise level.  Adoption of Microservices by an enterprise provides the extreme time to Market and establishes the bridge between Business and IT of the enterprise. Microservices implementation provides interoperability and flexibility to the enterprise.

In Microservices the functional logic is modeled and exposed as software service and is available on demand to other applications. Microservices is recommended cautiously, when the performance is important requirement, functionality is highly available and security is important.

Extensive use of Microservices and "compositional development" by assembling services rather than low-level programming can eventually leave IT with a collection of Microservices and not really a collection of applications.

Microservices are deployable on independent technology stacks. While they leverage Cloud models to deploy and orchestrate Microservices, individual Microservices can still reside on legacy platforms, as per the requirement.

To achieve success with Microservices, enterprises must first build a well-designed application according to existing platform standards; refactor the application into a collection of Microservices as necessary to meet business needs. With the right people, processes, and tools, Microservices can deliver faster development and deployment, easier maintenance, improved scalability, and freedom from long-term technology commitment.

Finally, do not create too many Microservices.  Every new Microservice uses multiple resources. Split larger services into Microservices only when the demand is for scaling, lifecycle, or data. Making them too small transfers complexity from the Microservices into the service integration task. Also, avoid sharing Microservices between systems.

It is up to the Enterprise IT architecture team to decided, when to adopt Microservices and when not to go for Microservices based on IT strategy assessment.

References

  1. "Microservices". martinfowler.com. Retrieved 2017-02-06
  2. S. Newman, Building Microservices - Designing Fine-Grained Systems, O'Reilly, 2015
  3. E. Wolff, Microservices: Flexible Software Architecture, Addison-Wesley, 2016

Glossary of Terms

Acronym/Abbreviation

Definition

SOA

Service Oriented Architecture

HTTP

Hyper Text Transfer Protocol

REST

Representational State Transfer

API

Application Programing Interface

ROI

Return On Investment

IOT

Internet Of Things

SOAP

Simple Object Access Protocol

ESB

Enterprise Service Bus

BPEL

Business Process Execution Language

WS

Web Services

Acknowledgements
The authors would like to thank Hari Kishan Burle, Raju Alluri of Global Enterprise Architecture

Group of Wipro Technologies for giving the required time and support in many ways in bringing

Up the article as part of Global Enterprise Architecture Practice efforts.

Disclaimer
The views expressed in this article/presentation are that of authors and Wipro does not subscribe to the substance, veracity or truthfulness of the said opinion.

At CloudEXPO Silicon Valley, June 24-26, 2019, Digital Transformation (DX) is a major focus with expanded DevOpsSUMMIT and FinTechEXPO programs within the DXWorldEXPO agenda. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of business. Only 12% still survive. Similar percentages are found throughout enterprises of all sizes.

Register Today and SAVE ▸ Here

Speaking Opportunities ▸ Here

Sponsorship & Exhibit Opportunities ▸ Here

Silicon Valley Faculty ▸ Here

Silicon Valley Schedule ▸ Here

CloudEXPO Has Been the M&A Capital For Cloud Companies

CloudEXPO has been the M&A capital for Cloud companies for more than a decade with memorable acquisition news stories which came out of CloudEXPO expo floor. DevOpsSUMMIT New York faculty member Greg Bledsoe shared his views on IBM's Red Hat acquisition live from NASDAQ floor. Acquisition news was announced during CloudEXPO New York which took place November 12-13, 2019 in New York City.

Our Silicon Valley 2019 schedule will showcase 200 keynotes, sessions, general sessions, power panels, and hands on tutorials presented by 150 rockstar speakers in 10 hottest conference tracks of 2019:

» CloudEXPO
» DevOpsSUMMIT
» ServerlessSUMMIT
» Kubernetes at CloudEXPO
» FinTechEXPO Blockchain
» DXWorldEXPO Digital Transformation
» AI | ML | DL | Artificial Intelligence
» Big Data | Analytics
» IoT | IIoT | Smart Cities
» Mobility | Security
» Enterprise Cloud Hot Topics

CloudEXPO Silicon Valley 2019 Show Prospectus ▸ HERE

Prospectus At-a-Glance ▸ HERE
Attendee Profile ▸ HERE
Keynote Opportunities ▸ HERE
General Session Opportunities ▸ HERE
Diamond Sponsorship Opportunity ▸ HERE
Platinum Sponsorship Opportunity ▸ HERE
Gold and Silver Sponsorship Opportunities ▸ HERE
Bronze Sponsorship and Exhibitor Packages ▸ HERE
Benefits of Exhibiting at CloudEXPO 2019 ▸ HERE

CloudEXPO is the single event where technology buyers and vendors meet to experience and discus cloud computing and all that it entails. For more than a decade, sponsors and exhibitors of CloudEXPO benefit from unmatched branding, profile building and lead generation opportunities through our following unique tools. For more information on sponsorship, exhibit, and keynote opportunities call us at 954 242-0444 or contact us ▸ Here

  • Featured on-site presentation and ongoing on-demand webcast exposure to a captive audience of industry decision-makers
  • Showcase exhibition during our new extended dedicated expo hours
  • Breakout Session Priority scheduling for Sponsors that have been guaranteed a 40-minute technical session
  • Online advertising on 4,5 million article pages in SYS-CON's leading i-Technology Publications
  • Capitalize on our Comprehensive Marketing efforts leading up to the show with print mailings, e-newsletters and extensive online media coverage
  • Unprecedented PR Coverage: Unmatched editorial coverage on Cloud Computing Journal
  • Tweetup to over 184,000 plus Twitter followers
  • Press releases sent on major wire services to over 500 industry analysts

FinTech and Blockchain Are Now Part of CloudEXPO 2019 Program

Financial enterprises in New York City, London, Singapore, and other world financial capitals are embracing a new generation of smart, automated FinTech that eliminates many cumbersome, slow, and expensive intermediate processes from their businesses.

Accordingly, attendees at the upcoming 23rd CloudEXPO, June 24-26, 2019 at Santa Clara Convention Center in Santa Clara, CA will find fresh new content in full new FinTech & Enterprise Blockchain track.

ServerlessSUMMIT & Kubernetes at CloudEXPO Silicon Valley

As you know, enterprise IT conversation over the past year have often centered upon the open-source Kubernetes container orchestration system. In fact, Kubernetes has emerged as the key technology -- and even primary platform -- of cloud migrations for a wide variety of organizations. Kubernetes is critical to forward-looking enterprises that continue to push their IT infrastructures toward maximum functionality, scalability, and flexibility.

Kubernetes is critical to forward-looking enterprises that continue to push their IT infrastructures toward maximum functionality, scalability, and flexibility.



As they do so, IT professionals are also embracing the reality of Serverless architectures, which are critical to developing and operating real-time applications and services. Serverless is particularly important as enterprises of all sizes develop and deploy Internet of Things (IoT) initiatives.

Serverless and Kubernetes are great examples of continuous, rapid pace of change in enterprise IT. They also raise a number of critical issues and questions about employee training, development processes, and operational metrics.

DevOpsSUMMIT at CloudEXPO Celebrates Its 12th Event in Six Years

Cloud-Native thinking and Serverless Computing are now the norm in financial services, manufacturing, telco, healthcare, transportation, energy, media, entertainment, retail and other consumer industries, as well as the public sector.

The widespread success of cloud computing is driving the DevOps revolution in enterprise IT. Now as never before, development teams must communicate and collaborate in a dynamic, 24/7/365 environment. There is no time to wait for long development cycles that produce software that is obsolete at launch. DevOps may be disruptive, but it is essential.

ServerlessSUMMIT and DevOpsSUMMIT at CloudEXPO expands the DevOps community, enable a wide sharing of knowledge, and educate delegates and technology providers alike.

There's a real need for serious conversations about Serverless and Kubernetes among the people who are doing this work and managing it.

So we are very pleased today to announce the ServerlessSUMMIT at CloudEXPO.

DXWorldEXPO Showcases Cutting-Edge IoT, Artificial Intelligence, Machine Learning, and Digital Transformation

Now is the time for a truly global DX event, to bring together the leading minds from the technology world in a conversation about Digital Transformation. DX encompasses the continuing technology revolution, and is addressing society's most important issues throughout the entire $78 trillion 21st-century global economy.

DXWorldEXPO® has organized these issues along 10 tracks, 22 keynotes and general sessions, and a faculty of 222 of the world's top speakers.

DXWorldEXPO® has three major themes on its conference agenda:

Technology - The Revolution Continues
Economy - The 21st Century Emerges
Society - The Big Issues

Global 2000 companies have more than US$40 trillion in annual revenue - more than 50% of the world's entire GDP. The Global 2000 spends a total of US$2.4 trillion annually on enterprise IT. The average Global 2000 company has US$11 billion in annual revenue. The average Global 2000 company spends more than $600 million annually on enterprise IT. Governments throughout the world spend another US$500 billion on IT - much of it dedicated to new Smart City initiatives.

For the past 10 years CloudEXPO® helped drive the migration to modern enterprise IT infrastructures, built upon the foundation of cloud computing. Today's hybrid, multiple cloud IT infrastructures integrate Big Data, analytics, blockchain, the IoT, mobile devices, and the latest in cryptography and enterprise-grade security.

Digital Transformation is the key issue driving the global enterprise IT business. DX is most prominent among Global 2000 enterprises and government institutions.

About DXWorldEXPO LLC

DXWorldEXPO LLC is a Lighthouse Point, Florida-based trade show company and the creator of DXWorldEXPO - Digital Transformation Conference & Expo. The company produces and presents the world's most influential technology events including CloudEXPO, DevOpsSUMMIT, and FinTechEXPO.

More Stories By Gopala Krishna Behara

Dr. Gopala Krishna Behara is a Senior Enterprise Architect in the Enterprise Architecture & Solutions division of Wipro. He has a total of 16 years of IT experience. He can be reached at [email protected]

More Stories By Sridhar Chalasani

Sridhar Chalasani is an Architect in the Global Enterprise Architecture Practice division of Wipro. He has a total of 12 years of IT experience. He can be reached at [email protected]

More Stories By Tirumala Khandrika

Tirumala Khandrika is a Senior Architect in the Global Enterprise Architecture Practice division of Wipro. He has a total of 16 years of IT experience. He can be reached at [email protected]

CloudEXPO Stories
The precious oil is extracted from the seeds of prickly pear cactus plant. After taking out the seeds from the fruits, they are adequately dried and then cold pressed to obtain the oil. Indeed, the prickly seed oil is quite expensive. Well, that is understandable when you consider the fact that the seeds are really tiny and each seed contain only about 5% of oil in it at most, plus the seeds are usually handpicked from the fruits. This means it will take tons of these seeds to produce just one bottle of the oil for commercial purpose. But from its medical properties to its culinary importance, skin lightening, moisturizing, and protection abilities, down to its extraordinary hair care properties, prickly seed oil has got lots of excellent rewards for anyone who pays the price.
The platform combines the strengths of Singtel's extensive, intelligent network capabilities with Microsoft's cloud expertise to create a unique solution that sets new standards for IoT applications," said Mr Diomedes Kastanis, Head of IoT at Singtel. "Our solution provides speed, transparency and flexibility, paving the way for a more pervasive use of IoT to accelerate enterprises' digitalisation efforts. AI-powered intelligent connectivity over Microsoft Azure will be the fastest connected path for IoT innovators to scale globally, and the smartest path to cross-device synergy in an instrumented, connected world.
There are many examples of disruption in consumer space – Uber disrupting the cab industry, Airbnb disrupting the hospitality industry and so on; but have you wondered who is disrupting support and operations? AISERA helps make businesses and customers successful by offering consumer-like user experience for support and operations. We have built the world’s first AI-driven IT / HR / Cloud / Customer Support and Operations solution.
ScaleMP is presenting at CloudEXPO 2019, held June 24-26 in Santa Clara, and we’d love to see you there. At the conference, we’ll demonstrate how ScaleMP is solving one of the most vexing challenges for cloud — memory cost and limit of scale — and how our innovative vSMP MemoryONE solution provides affordable larger server memory for the private and public cloud. Please visit us at Booth No. 519 to connect with our experts and learn more about vSMP MemoryONE and how it is already serving some of the world’s largest data centers. Click here to schedule a meeting with our experts and executives.
Darktrace is the world's leading AI company for cyber security. Created by mathematicians from the University of Cambridge, Darktrace's Enterprise Immune System is the first non-consumer application of machine learning to work at scale, across all network types, from physical, virtualized, and cloud, through to IoT and industrial control systems. Installed as a self-configuring cyber defense platform, Darktrace continuously learns what is ‘normal' for all devices and users, updating its understanding as the environment changes.