Service Oriented Architecture (SOA) is not really a new thing, but growing popularity of private and public cloud-based microservices pushes this idea to the next level of software architecture and design. This article explores what microservices are, why their use is increasing and how using them may change the role of traditional software developers.
A couple of years ago a colleague of mine said, “My IT administrator is a button in the cloud.”. Is this true? No it is not and we all know that. However, the truth is that public and private cloud scenarios have changed the way we use IT and it also changed the job of IT administrators. There is no longer a “backup day” and no administrator is spending his time checking for hard disk failures, etc. Those activities are performed by intelligent solutions or they have shifted to cloud services as part of a business strategy. IT departments do more and more jobs such as internal consulting or supporting business process design from a technical perspective. The IT department is becoming more and more of an internal services and support division, taking care of security, compliance and system performance.
These are trends a “normal” software developer did not care about. He writes code – why? Because he can and he has to because it is his job to do so. However, at this point we now see a revolution coming up: Someday soon my developer may be a microservice in the cloud.
What are microservices?
Wikipedia defines microservices, “In computing, microservices is a software architecture style in which complex applications are composed of small, independent processes communicating with each other using language-agnostic APIs. These services are small, highly decoupled and focus on doing a small task, facilitating a modular approach to system-building.”
This idea is not new—it´s what we already know from a paradigm called Service Oriented Architecture. In this paradigm, software is not built as one big block, but is instead built using independent artefacts with standardized interfaces that let them work together. A change in one of the artefacts will not harm the complete solution. It’s a wonderful, brave new world, but we all know that this is sadly not the truth at all. The idea and the paradigm are definitely interesting and we can actually see a lot of implementations and services working like this.
Based on standards like REST, OData or claims based authentication, we can combine independent services as we need. It is a little bit like playing with Legos, but does not means that it is a gimmick. A good friend of mine, Damir Dobric, talks about this microservices idea at the University of Applied Sciences in Frankfurt as part of his lecture about cloud computing based on Windows Azure. He shows an example based on a SQL database hosted in Azure. Depending on a value in this database, a text message is generated and sent to a special recipient. The solution is based on microservices working together. The app, Twilio, is used to send the text message, the rest are Azure services like Azure Logic Apps and the out-of-the-box Twilio Connector for Azure. No service needs to be developed; only the interaction between the independent services had to be set up.
Which companies are using microservices?
Microsoft announced that they were integrating Dropbox into the Office suite. This is the same idea of integrating independent microservices based on standard protocols and techniques and let them work together.
Microsoft PowerApps also follow this idea. PowerApps are a new enterprise service using standards and protocols to work with different systems and data. A lot of systems and endpoints can be used directly. For example, Azure Mobile Services, Office 365, social networks such as Facebook and Twitter, etc. In addition, we can use CRUD APIs for many popular services in the cloud and on-premises like CRM, Salesforce, SQL Server, Excel in Dropbox or Google Sheets. Based on simple dialogs and drag & drop, we can create a UI that is responsive by design. It is absolutely clear to everyone that such a service cannot replace individual software development, which is focused on your company’s needs. However, to create a smart and quick solution for some non-critical use cases, it can definitely be useful to save time and money.
What solutions do users tend to create using microservices?
Always mobile, always moving, collaboration and trends like dynamic teams is what we see in business and also in the private sector. These are not IT trends but they definitely have an impact on what people expect from IT-based services. As a result of this, the most popular scenarios and use cases for microservices are connecting apps and services like Google Sheets and Calendar, Trello, Facebook or Dropbox, to easily move data between them. It is about using the “best in class” solutions for your needs and let them work together. We also see this in the enterprise with microservices connecting Salesforce, Office 365 or SAP together.
But just ask yourself what happens if a microservice you use in your solution stops working or something changes. Discussing those questions will show the limitation of these ideas. Users might want the option to use standard services for standard jobs such as sending a text message as described above, and for them, microservice can be an option, because not every function must be developed from scratch.
If you are familiar with the website, “If-This-Than-That,” you know that this website is offering a service that is doing exactly what you expect when you hear the name. With If-This-Than-That, you can create an event-based solution using different services like Facebook, Twitter, Salesforce, etc. You can also use the service to connect to your home or to sync data across different cloud providers. Based on services like If-This-Than-That, the microservices idea can also be used in the public Internet and not only for the enterprise. What does this mean? Can everyone connect every system with each other and wouldn´t that end up causing mass chaos? Maybe yes and maybe no. I believe in the self-regulation of complex systems.
“Business finds its way” and “The user is going to find what he needs to get the job done in an App Store” are popular trends. The point of view that everyone can now use the app or the service he wants to, is a very popular one. Let’s look at another example. Using the Twilio Connector for Azure to send a text message based on the value of an SQL database table value is nothing an end-user would do. But let’s see what the website Zapier is offering. With Zapier, you can connect popular services including Wunderlist and Trello, and Zapier promotes this with the slogan, “If you use both Wunderlist and Trello, you’ve probably thought about bringing the two together. Luckily, with Zapier, it’s now a real possibility! The best part is you don’t need to be a programmer to make it happen.” They are focusing on users, not on developers or IT people. And what the users loves most is that there is a “Sign up FREE today” button.
So is this the deathblow for the “traditional” software developer?
To answer this question, let’s have a deeper look at the PowerApps service. As described, there are a bunch of out-of-the-box interfaces and APIs that can be used directly. PowerApps will also let you develop your own API if needed. Building and deploying an API for PowerApps is just like creating any API. You can choose your favorite programming language and framework and you can also choose to host your API wherever you want to. At the beginning of this article I wrote, “A software developer writes code – why? Because he can and he has to because it is his job to do so.” With services like PowerApps, developers can still write code, but maybe they don’t always need to.
What about security?
When using microservices, what about data privacy and data security? If you think power users are going to use microservices to create little solutions without waiting for developers to create them or the IT department to deploy them and take care of security, what is the risk? This is definitely a big problem in this brave new world where everyone can connect themselves and their data to so much else. Using public cloud services like Zapier or If-This-Than-That means giving your account details to those services. Depending on the use case, a user’s personal or corporate data may be cached on the transport layer, or the user’s data might be used for commercial purposes. Remember that every time a service or a product is free, you and your interests might be the products for those companies to earn money.
Enterprise services like Azure App Service or Microsoft PowerApps are the way to offer microservices based on a proven, secure and trusted platform. In the Azure Marketplace you can see apps like Salesforce or, as described above, apps like Twilio Connector, focusing on SOA-based business solutions. You can use these apps and services with your secure Microsoft online ID and as part of secure and proven Microsoft cloud platforms like Microsoft Azure and Office 365.
Using services like If-This-Than-That, Microsoft PowerApps or Azure Logic Apps, we can easily build powerful solutions for the enterprise and some business processes. To put all these interfaces and services together into a well working end-to-end process, we still need developers and solution architects. The slogan, “Someday soon my developer will be a microservice in the cloud” is not true in the same way as, “My IT administrator is a button in the cloud” is not true. We all know this, but it is also true that the “traditional” job of a software developer is changing the same way the cloud is changing the “traditional” job of an IT administrator.