Welcome!

Microservices Expo Authors: Liz McMillan, Elizabeth White, Zakia Bouachraoui, Jason Bloomberg, Pat Romanski

Related Topics: @DevOpsSummit, Microservices Expo, @CloudExpo

@DevOpsSummit: Blog Feed Post

Software Design with #Microservices | @DevOpsSummit #DevOps #APM #DX

Microservices embody both engineering and operational elements within its design

Microservices and the Revival of Software Design
By JP Morgenthal

Back in February of 2017, Andrew Clay Schafer of Pivotal tweeted the following: “seriously tho, the whole software industry is stuck on deployment when we desperately need architecture and telemetry.” Intrigue in a 140 characters. For me, I hear Andrew saying, “we’re jumping to step 5 before we’ve successfully completed steps 1-4.”

Microservices is an industry response to the need for more design in what we are putting into this pipeline.

I have to agree with Mr. Shafer that it does seem like the IT industry has a fascination with the part of the process that releases new capabilities into production. I personally hear the words “continuous delivery (CD)” at least 3-4 times a day. However, CD is the result of multiple iterations on a delivery pipeline to remove bottlenecks and consistently optimize and improve. Enterprises that believe they can get this right on the first attempt will be at a very high risk for failure.

I believe a key driver enabling users to make this leap is the emergence of the microservice. Because microservices embody both engineering and operational elements within its design, it’s possible for businesses to just focus on the operationalization of a microservice without even requiring any engineering effort. For example, operations can take an existing application component and package it up in a container (e.g., Docker) and deploy ten instances of that container.

This now suffices in some businesses as a microservice. However, it’s not really a microservice, it’s just a repackaged application component that now is easier to manage and deploy. I don’t mean to belittle this effort. The ability to automate management and deployment of existing applications goes a long way to reducing IT overhead. However, to Andrew’s point, it’s missing the architecture and telemetry.

Microservices: A Key Element of DevOps Strategy
The last few decades of software engineering have heavily emphasized design without equal consideration for operationalization of the software being developed. As a visualization, perhaps you have seen the meme with the young girl and the house on fire in the background with the text, “it worked fine in development.” That’s because it’s easy to make a distributed application work in a properly engineered development environment; it’s when we release it into production (the wild?) that we begin to see its flaws.

The response to the above trend has been the emergence of DevOps and a focus on adopting lean principles that facilitate rapid and continuous deployment of small numbers of changes. The rationale behind this is sound; limit the number of changes in control variables, leverage an automated and highly-repeatable process that has been thoroughly tested to push into production, and lower overall risk.

However, to Mr. Shafer’s point, it seems there is a bit of extremism that has swung the pendulum too much to the side of operationalization without having first mastered the art of the design. I believe the results of this effect can be summarized as moving garbage faster into production. I also believe microservices is an industry response to the need for more design in what we are putting into this pipeline.

All distributed computing archetypes recognize deployment architecture in some way, shape or form, but microservices is really the first of these distributed object computing archetypes to address packaging and distribution as a first-class attribute of the design goals. Isolation, decentralized data management and implicit tolerance for failure are central design goals for microservices. However, the key is to design the microservices in such a way as to amplify the business value of the entity, fulfilling the second part of Mr. Shafer’s statement.

In the past we have taught architects to think component design. But components are a part of something larger and don’t have value outside of the larger entity. For example, a gear is a component of an engine. The engine needs the gear to operate, but the gear has little value outside of the engine. We must now teach architects to think in terms of designing services, which have innate value without being part of something larger, but still can participate in a larger context, increasing it’s value. Hence, the service can be part of a larger application, or it can simply deliver on a single goal.

Microservices, then, are an integral and key element of any DevOps strategy. It is a common model that application development and operations can share and clearly establishes deployment boundaries and pathways. For engineering, the microservice represents a bounded set of business logic and data supporting a business capability. For operations, the microservice represents the unit of deployed business capabilities.

The post Microservices and the Revival of Software Design appeared first on XebiaLabs.

More Stories By XebiaLabs Blog

XebiaLabs is the technology leader for automation software for DevOps and Continuous Delivery. It focuses on helping companies accelerate the delivery of new software in the most efficient manner. Its products are simple to use, quick to implement, and provide robust enterprise technology.

Microservices Articles
The now mainstream platform changes stemming from the first Internet boom brought many changes but didn’t really change the basic relationship between servers and the applications running on them. In fact, that was sort of the point. In his session at 18th Cloud Expo, Gordon Haff, senior cloud strategy marketing and evangelism manager at Red Hat, will discuss how today’s workloads require a new model and a new platform for development and execution. The platform must handle a wide range of rec...
CloudEXPO New York 2018, colocated with DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City and will bring together Cloud Computing, FinTech and Blockchain, Digital Transformation, Big Data, Internet of Things, DevOps, AI, Machine Learning and WebRTC to one location.
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. 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.
Adding public cloud resources to an existing application can be a daunting process. The tools that you currently use to manage the software and hardware outside the cloud aren’t always the best tools to efficiently grow into the cloud. All of the major configuration management tools have cloud orchestration plugins that can be leveraged, but there are also cloud-native tools that can dramatically improve the efficiency of managing your application lifecycle. In his session at 18th Cloud Expo, ...
"We do one of the best file systems in the world. We learned how to deal with Big Data many years ago and we implemented this knowledge into our software," explained Jakub Ratajczak, Business Development Manager at MooseFS, in this SYS-CON.tv interview at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
All zSystem customers have a significant new business opportunity to extend their reach to new customers and markets with new applications and services, and to improve the experience of existing customers. This can be achieved by exposing existing z assets (which have been developed over time) as APIs for accessing Systems of Record, while leveraging mobile and cloud capabilities with new Systems of Engagement applications. In this session, we will explore business drivers with new Node.js apps ...
Digital Transformation is well underway with many applications already on the cloud utilizing agile and devops methodologies. Unfortunately, application security has been an afterthought and data breaches have become a daily occurrence. Security is not one individual or one's team responsibility. Raphael Reich will introduce you to DevSecOps concepts and outline how to seamlessly interweave security principles across your software development lifecycle and application lifecycle management. With ...
Two apparently distinct movements are in the process of disrupting the world of enterprise application development: DevOps and Low-Code. DevOps is a cultural and organizational shift that empowers enterprise software teams to deliver better software quicker – in particular, hand-coded software. Low-Code platforms, in contrast, provide a technology platform and visual tooling that empower enterprise software teams to deliver better software quicker -- with little or no hand-coding required. ...
Using new techniques of information modeling, indexing, and processing, new cloud-based systems can support cloud-based workloads previously not possible for high-throughput insurance, banking, and case-based applications. In his session at 18th Cloud Expo, John Newton, CTO, Founder and Chairman of Alfresco, described how to scale cloud-based content management repositories to store, manage, and retrieve billions of documents and related information with fast and linear scalability. He addres...
While some developers care passionately about how data centers and clouds are architected, for most, it is only the end result that matters. To the majority of companies, technology exists to solve a business problem, and only delivers value when it is solving that problem. 2017 brings the mainstream adoption of containers for production workloads. In his session at 21st Cloud Expo, Ben McCormack, VP of Operations at Evernote, discussed how data centers of the future will be managed, how the p...