During the recent Amazon Web Services 2019 Summit in Santa Clara, California, there were a number of invaluable lectures, insightful discussions, and learning opportunities. Given that knowledge is power, I took a seat. Hearing the story of how AWS transformed its monolithic approach of application development to a “decomposed” micro-services model, all in an effort to achieve “nimbleness,” led me to ask, what are micro-services anyway, and how do they fit within the sphere of application development.
Micro-services are a software architecture using small, decoupled processes that communicate through different Application Programming Interfaces – APIs. There are many advantages to using micro-services as part of your software architecture, including agility and scalability. Enterprises have a greater ability to meet the rapid and evolving business line and market demands by leveraging a micro-service architecture.
Micro-services provide a means of enabling additional agility to the enterprise by capturing both common and business specific functions. They complement the Data as a Service (DaaS) process and allow the enterprise to move from rigid legacy solutions to a series of nimble services. They typically function independently from one another, as discreet processes, and through their combination, allow the rapid creation of tailored solutions to meet exacting business needs.
The analysis of which micro-services are required, typically fall into two categories:
1) A generic set of services that are common across all identified needs;
2) Services that are specific to a particular operational or functional category.
Using micro-services, enterprises can create a library of reusable capability. It is important to be able to distinguish between what is common across the business, and what is specific to an operational need. The more common the functionality, the greater the re-use. This reduces the number of micro-services required and managed. The most important step in creating the micro-service library is in the analysis of the business requirements within the overall business strategy. Devoting time to this analysis will reduce the burden of maintenance, and increase the return on investment made in delivering an agile enterprise.
One thing that is commonly overlooked in defining and creating a micro-services library is an understanding of those services that already exist in the public market. Vendors such as Google, Microsoft, IBM and Amazon provide a variety of useful micro-services that can be easily leveraged in the creation of solutions. These services are typically specific in nature, but often provide access to systems that an enterprise is likely already using.
The library creation of micro-services can be done in an iterative – or repetitive manner. If an enterprise is made up of numerous systems and processes, it can take a great deal of time to create a comprehensive set of micro-services to meet the enterprise’s complete set of needs. To achieve true agility, however, the enterprise must not only empower those micro-services that are closest to the business line requirements, but also ensure integrity of data, and the robustness of solutions.
Crowd Machine is a native cloud No-Code platform that embraces the “micro-services” architecture. The Crowd Machine platform also includes an expert systems-driven true zero-code rules engine for the rapid creation of enterprise class and IoT solutions. And, the platform ensures security, and integrity compliance with any foundational legacy system.
At Crowd Machine, we refer to “micro-services” as “Patterns.” All applications exhibit behaviors, where each behavior represents some form of functionality. Crowd Machine allows developers to model behaviors as a Pattern rather than writing code.
Crowd Machine technology enables an app to be constructed and distributed as ‘fragments’ across a peer network. Rather than deploying an entire binary object, each fragment can be deployed and executed individually. The fragments are the Patterns, or set of instructions that define a desired app behavior – and can be a diagrammatic presentation of logic representing an app requirement. Patterns themselves are composed of Activities – specialized subsets of instructions, that act on one or more sets of data. The data containers applied to an Activity are known as Packages (intelligent containers holding attributes of data that can be sourced externally and represented virtually within the Activity). Each Pattern contains at least one activity which in turn contains one or more packages. The approach allows a representation to be modeled, against which, executable logic can be applied. The modeling of relationships causes automated linking of data and functionality. By combining a set of Patterns, an app is created.
Crowd Machine’s unique approach removes the requirement to understand any form of computer language or the traditional intricacies of app development. This speeds the pace of app delivery by removing the development and unit testing steps of the app lifecycle, allowing a developer to go directly from requirements to user acceptance testing.
Crowd Machine also offers Crowd Share, an already existing GitHub-like source repository of complete applications, data definitions, APIs, as well as ready to use, plug and play Patterns, (aka micro-services), allowing apps to be assembled, rather than created from the ground up. Crowd Share contains a growing list of industry vendors including APIs by Google, Salesforce, IBM and Microsoft. In this app market-place, the Crowd Machine developer can download, use and modify any content, as needed, to construct an application. Crowd Machine sets aside a percentage of revenue generated by its customers to compensate the Crowd Machine developer community.
Crowd Machine’s no-code platform was specifically designed to deliver upon the need to go from legacy to agility. Utilizing the “micro-services” aka “Pattern” architecture, Crowd Machine is ramping up developer velocity, and rapidly becoming the answer for those enterprises looking to deliver meaningful outcomes to the business enterprise and its customers, at unprecedented speed.