For microservices to work in an organization, there must be a business initiative attached to it. Questions arise among IT professionals on whether microservices are suited only for giant Web applications like Google and Facebook. However, scale is only one of the business benefits of microservices.
In today’s computing environment, innovation and speed are critical. The movement toward microservices is generated by the need to create new software that can enhance and improve a monolithic system but is separate from it. This decoupling from the legacy system provides the freedom to experiment with new approaches and rapidly iterate changes and modifications.
Traditional systems cannot move at that speed, and that may leave companies disadvantaged. At the AppSphere ’15 conference, Boris Scholl from Microsoft shared a situation they once had with a monolithic system. It had become so complex that when they added new code, the system would stop working, and it took two days for engineers to figure out why. It is too slow.
Companies are trying to decide where microservices fit in with their traditional systems. Developers used to worry simply about coding, but now with the modular approach to technology, they need to widen their view of all the technologies involved and how they work together. They now share responsibility and accountability for the project as a whole — the micro view of their direct assignment, say coding the UX; and the macro view of the final product, a home banking app for example.
Code must be monitored the minute it is deployed. The feedback loop is instantaneous. DevOps may be monitoring 50 different microservices. The data is available right away, but that means IT teams must also continuously monitor, tweak and adjust on-the-fly. It is a challenge.
The Business Case for Microservices
Allan Naim, Product Manager of Container Engine and Kubernetes at Google, told the audience during the panel discussion at Appsphere 15 that it is not easy for IT organizations to incorporate microservices, so they must have an associated business initiative. Often business objectives originate with CEO and Board of Directors. From there, the CMO or the CSO begin to implement them, and it forces the IT staff to start working with microservices. Naim said he sees a time in the not too distant future where every organization, no matter the industry or segment of the market, will ultimately become a software company. That is because the customer data is becoming as valuable as their product or service.
To leverage that asset, organizations must act quickly, changing their offerings based on a constantly evolving landscape. Legacy apps have a hard time adjusting to the new demands of the market such as mobility and the Internet of Things. Competition, especially in the form of aggressive startups that look to disrupt industries, is forcing organizations to integrate microservices architecture with their legacy systems, whether the data is in a relational database or not.
From Highly Specialized to Highly Adaptable
It comes down to the need to provide the highest-quality software to large amounts of customers as quickly as possible. Microservices are not only changing the way companies write code; they are changing the companies themselves. For example, in a monolithic system, the roles of each team member tended to be highly specialized.
In the world of microservices, that approach is highly devalued. Instead, it is better for each team member to be free to operate on different parts of the application without interruption. Rather than hand off development to the next stage, the application is constantly being monitored and modified as it is being developed.
Homegrown Analytics and Monitoring Tools
Another development resulting from these market pressures is that IT teams have started building their own tools. Netflix created its own monitoring system. In fact, they custom made some non-unified tools, a very different approach than that taken by companies like Facebook and Google.
For example, they built their analytics software to process huge volumes of data. How much volume are we talking about? Consider this eye-opening statistic: Networking provider Sandvine reports that just over 30 percent of the traffic on the Web during prime time are Netflix customers streaming movies.
The development of microservices is changing more than software code itself. It is making an enormous impact on how organizations think through their business processes, what products they bring to market and how they are going to support their products with customers in the marketplace.
Because of the explosion of mobile devices and the always shifting wants and needs of consumers, IT professionals have to adapt just as quickly. Microservices architecture is the vehicle in which they are creating rapid change. It is changing not only the technology but also how organizations evaluate business opportunities. On another level, it is altering the organization of talent, encouraging a culture of innovation, expanding the scope of individual responsibility and empowering smart people to take chances.
Agility and Speed are Paramount
Large firms such as Condé Nast and Gilt have always been able to handle large volumes of customer data. However, they see the future and are adapting their legacy systems to utilize microservices architecture. They want to get rid of dependencies and be able to test and deploy code changes quickly. Similar changes across enterprises are helping them become more adaptable to customer needs. It is also pushing them to adopt greater use of the cloud to operate with more agility and speed.
Microservices architecture has a similar mindset as other fast development methodologies like agile software. Fast-moving Web properties like Netflix are constantly looking for greater simplicity and the ability to make changes rapidly without going through numerous committees. The code is small, and every software engineer makes production changes on an ongoing basis.
Sea Change in Software Development
That is why microservices architecture is a natural fit for Web languages such as Node.js that work well in small components. You want to be able to move rapidly and integrate changes to applications quickly. Because microservices are self-contained, it is easy to make changes to a code base and replace or remove services. Instead of rewriting an entire module and trying to propagate across a massive legacy code base, you simply add on a microservice. Any other services that want to tap into the functionality of the additional service can do so without delay.
This is a sea change in how traditional software development takes place. The speed at which code changes in mobile apps and modern websites is way too fast for the legacy software development system. Constantly evolving apps require a new way of thinking.
Changes in Organizations
Back in the 1980s, the role of IT departments began to change with the debut of the personal computer. Every year, PCs became more powerful, and technology staff not only supported individual business functions, but they also had to maintain complete processes. Technology and data were moving closer to the center of the business.
By the 1990s, the IT department had become a critical system in every major company. If the computer systems were down for any length of time, it created bottlenecks for every department of the company.
With microservices, the data inherent to each microservice can only be tapped through its API. The data in the microservice is private. This allows them to be loosely coupled so they can operate and evolve on an independent basis. This creates two challenges: maintaining consistency across several services and implementing queries that grab information from multiple services. With data-driven design, you can experiment and create transactions that cover multiple services consistently.
Unfortunately, many companies still maintain the old software engineering model. However, today they are under pressure to shorten the time to bring new Web and mobile applications to consumers. Speed has become the “coin of the realm.”
Changing Culture in Traditional IT Departments
The rise of microservices is changing a culture in IT that is deeply ingrained. There has always been a division between software development and operations. Now software development is integrated much more tightly with DevOps. Over many years, IT departments had established standards on which technologies they would run. Since these technologies represented serious investments in time and capital, they budgeted carefully for capacity, upgrades and security.
In the brave new world of microservices, department leaders must make significant changes in their organization, so developers play a bigger role in monitoring the software creation during its lifecycle, from development through to production. Interestingly, a similar development happened decades ago when data centers were so complex; Only a select few IT engineers could operate all of the disparate functions. In many cases, the staff maintaining applications were the same people that built them.
Breaking Down Barriers
In effect, microservices is breaking down barriers between the development of software and its operation. That means that any firm that is considering implementing microservices on any substantial level needs to evaluate if they are ready to operate with this new approach.
It does not mean that legacy systems are being disregarded for the new kid in town. In many cases, the traditional system is doing an excellent job for the organization, so changing it without a business case would be folly.
However, the larger trends of cloud computing, mobile device adoption, and low-cost bandwidth are forever changing the way consumers buy and interact with software applications. The pace of change is dizzying, and the need for speed in application development is greater than ever before.