Welcome!

Microservices Expo Authors: Pat Romanski, Elizabeth White, Steve Wilson, Stackify Blog, Derek Weeks

Related Topics: Microservices Expo, Containers Expo Blog, @DevOpsSummit

Microservices Expo: Blog Feed Post

Navigating the Politics of Microservices | @DevOpsSummit #Microservices

Microservices do far more than simply keep the project manageable

Navigating the Politics of Microservices
By John Mueller

Microservices has the potential of significantly impacting the way in which developers create applications. It's possible to create applications using microservices faster and more efficiently than other technologies that are currently available. The problem is that many people are suspicious of microservices because of all the technology claims to do. In addition, anytime you start moving things around in an organization, it means changing the status quo and people dislike change. Even so, microservices present a way to create great applications quickly, but first you must overcome the politics that prevent people from using it.

Considering the Need for Microservices
A problem with current development techniques is that the developer needs to work with a large number of design patterns in order to produce a quality result. The application development environment continues to become more complex with each passing year. Even with good development practices and the employment of the appropriate design patterns, today's applications can become inefficient and difficult to maintain due to the ball of mud problem, where one task ends up taking on most of the processing needs or it becomes so huge that it starts to work outside its originally designed areas of expertise. Microservices avoids these problems by using just a few patterns and keeping the size of each task small.

However, microservices do far more than simply keep the project manageable. By using microservices, you can avoid making as many application design decisions up front. It's entirely possible to be tasked with an application development project one Monday and have a working model the following Monday. The working model may consist of just a login and a main screen, but you have something to show people – a sign of progress. Thereafter, each Monday will show another update in the application development process. Even using agile techniques, you can't obtain this result. It's essential to remember that development speed wins every time in the marketplace, so creating an environment in which it's possible to work quickly (and with few errors) is important.

There is also the issue of rolling out updates. Using current techniques, you need to lock down the system, roll out the new version, and hope that it works properly in the production environment. When working with microservices, you can roll out an update a little at a time by transferring traffic gradually to the new version of the microservice. As the new version takes more of the load, you can watch for potential problems and fix them before the user even notices. Consequently, updates don't occur at strict time frames and users are unlikely to even notice that they've taken place.

Defining Organizational Goals
The goals of using microservices are to make an organization more efficient and to allow updates in a timely fashion. In addition, using microservices allows better application designs where a single piece of code doesn't end up doing everything. Companies such as Nike, Netflix, and Twitter are using microservices to create better applications in far less time than would normally be possible. In order to achieve these goals, an organization must:

  • Incorporate new disciplines into the development process.
  • Obtain new tools to use when creating the applications.
  • Change the team dynamics in order to make microservices workable.

These sorts of changes don't occur overnight, so it's important to set realistic milestones when adding microservices to your development cycle. It may very well be that you'll continue to use older techniques for existing applications and employ microservices with new development-at least, at the outset.

Overcoming Fiefdoms
It's fine to say that there are all sorts of good reasons to adopt microservices as a strategy. You can spend a great deal of time demonstrating their superiority and even point out the need for these solutions in order to progress with organizational goals. In a perfect world, pointing these things out would be enough to convince anyone of the purity of your insights and they'd likely go along with you to some extent. Unfortunately, this is the real world and the real world is ruled by managers jealously guarding their fiefdoms. Siloed applications present a real threat to your organization. In fact, I've discussed this issue before in Breaking Down the Walls of the Siloed Application. The problem with microservices is that they represent a new way of accomplishing tasks that will threaten people's stranglehold on a piece of the pie, which makes microservices a very hard sell indeed.

The push for using microservices comes from ambitious vice presidents who have authority to fund large programming projects. These people see how long it takes to create applications using older approaches and know that waiting that long in today's environment simply won't work. Using microservices provides an effective and quick method for creating applications that actually do everything they promise. The payback for the vice president is the potential for advancement or other perks. Once a vice president is able to deliver applications more quickly and with fewer problems, the organization as a whole gets behind using microservices as the preferred approach. The problem is getting those early successes and overcoming the inertia of the siloed application environment.

It's important to understand that microservices won't become a major contributor to application development in any organization quickly. You need to start small and build on your successes to overcome the inertia of monolithic application development in most organizations. Even if the organization is ready to start development today, you need to build the required expertise to make microservices successful. In order to overcome objections from the various individuals in an organization who currently control development of one or more monolithic applications, begin by building a small application that starts out as a microservices project. The success you have will provide a reason for others to believe in the ability of microservices to deliver on its promises.

Creating Workable Solutions
When considering a microservice ramp-up for your organization, it's important to remember that you already have a considerable code base defined around existing technologies. In addition, using microservices involves fundamentally changing how an organization performs development. You can see how Microservices affects your development team here. Here are some other things to consider in order to create a workable solution.

  • Create a few course-grained microservices for new application features to start.
  • Keep the development team that is responsible for microservices development separate from the team that currently maintains the monolithic application.
  • As development progresses with the initial microservices and you can see where changes need to be made, create finer-grained microservices to produce better results.
  • Provide enough time for existing teams to discover how to use microservices and begin incorporating them into existing applications.
  • Develop microservices that provide self-contained business features at the outset so that you don't have to worry about interactions as much.
  • Obtain the tools required to perform granular monitoring, log aggregation, application metrics, automated deployment, and status dashboards for data such as system status and log reporting.
  • Slowly cross-train individuals so that the sharp divisions between skill sets diminishes.
  • Break down the silos between various groups.
  • Standardize service templates so that it's possible to create microservices with a minimum of chatter between groups.
  • Slide development from the existing monolithic application to one designed around microservices. However, don't make an existing monolithic application your first project-start with an application that uses microservices from the outset.
  • Prune older microservices from the system as you replace them with finer-grained and more functional replacements.

What Do You Think?
While implementing microservices presents certain political and cultural problems in an organization, it also holds the chance to create new opportunities in teams that earnestly want to build better software faster than ever. Coworkers not only build more scalable software in the process of properly implementing microservices, but also build more efficient group dynamics at the same time.

What challenges are you facing in your journey with microservices? We'd like to hear your stories, your experiments, and your opinions on the matter.

Read the original blog entry...

More Stories By SmartBear Blog

As the leader in software quality tools for the connected world, SmartBear supports more than two million software professionals and over 25,000 organizations in 90 countries that use its products to build and deliver the world’s greatest applications. With today’s applications deploying on mobile, Web, desktop, Internet of Things (IoT) or even embedded computing platforms, the connected nature of these applications through public and private APIs presents a unique set of challenges for developers, testers and operations teams. SmartBear's software quality tools assist with code review, functional and load testing, API readiness as well as performance monitoring of these modern applications.

@MicroservicesExpo Stories
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, discussed how to use Kubernetes to set up a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace. H...
When you focus on a journey from up-close, you look at your own technical and cultural history and how you changed it for the benefit of the customer. This was our starting point: too many integration issues, 13 SWP days and very long cycles. It was evident that in this fast-paced industry we could no longer afford this reality. We needed something that would take us beyond reducing the development lifecycles, CI and Agile methodologies. We made a fundamental difference, even changed our culture...
As many know, the first generation of Cloud Management Platform (CMP) solutions were designed for managing virtual infrastructure (IaaS) and traditional applications. But that’s no longer enough to satisfy evolving and complex business requirements. In his session at 21st Cloud Expo, Scott Davis, Embotics CTO, will explore how next-generation CMPs ensure organizations can manage cloud-native and microservice-based application architectures, while also facilitating agile DevOps methodology. He wi...
Docker is sweeping across startups and enterprises alike, changing the way we build and ship applications. It's the most prominent and widely known software container platform, and it's particularly useful for eliminating common challenges when collaborating on code (like the "it works on my machine" phenomenon that most devs know all too well). With Docker, you can run and manage apps side-by-side - in isolated containers - resulting in better compute density. It's something that many developer...
These days, change is the only constant. In order to adapt and thrive in an ever-advancing and sometimes chaotic workforce, companies must leverage intelligent tools to streamline operations. While we're only at the dawn of machine intelligence, using a workflow manager will benefit your company in both the short and long term. Think: reduced errors, improved efficiency and more empowered employees-and that's just the start. Here are five other reasons workflow automation is leading a revolution...
We have Continuous Integration and we have Continuous Deployment, but what’s continuous across all of what we do is people. Even when tasks are automated, someone wrote the automation. So, Jayne Groll evangelizes about Continuous Everyone. Jayne is the CEO of the DevOps Institute and the author of Agile Service Management Guide. She talked about Continuous Everyone at the 2016 All Day DevOps conference. She describes it as "about people, culture, and collaboration mapped into your value streams....
Cloud adoption is often driven by a desire to increase efficiency, boost agility and save money. All too often, however, the reality involves unpredictable cost spikes and lack of oversight due to resource limitations. In his session at 20th Cloud Expo, Joe Kinsella, CTO and Founder of CloudHealth Technologies, tackled the question: “How do you build a fully optimized cloud?” He will examine: Why TCO is critical to achieving cloud success – and why attendees should be thinking holistically ab...
Docker is on a roll. In the last few years, this container management service has become immensely popular in development, especially given the great fit with agile-based projects and continuous delivery. In this article, I want to take a brief look at how you can use Docker to accelerate and streamline the software development lifecycle (SDLC) process.
We define Hybrid IT as a management approach in which organizations create a workload-centric and value-driven integrated technology stack that may include legacy infrastructure, web-scale architectures, private cloud implementations along with public cloud platforms ranging from Infrastructure-as-a-Service to Software-as-a-Service.
Did you know that you can develop for mainframes in Java? Or that the testing and deployment can be automated across mobile to mainframe? In his session and demo at @DevOpsSummit at 21st Cloud Expo, Dana Boudreau, a Senior Director at CA Technologies, will discuss how increasingly teams are developing with agile methodologies, using modern development environments, and automating testing and deployments, mobile to mainframe.
As DevOps methodologies expand their reach across the enterprise, organizations face the daunting challenge of adapting related cloud strategies to ensure optimal alignment, from managing complexity to ensuring proper governance. How can culture, automation, legacy apps and even budget be reexamined to enable this ongoing shift within the modern software factory?
While some vendors scramble to create and sell you a fancy solution for monitoring your spanking new Amazon Lambdas, hear how you can do it on the cheap using just built-in Java APIs yourself. By exploiting a little-known fact that Lambdas aren’t exactly single-threaded, you can effectively identify hot spots in your serverless code. In his session at @DevOpsSummit at 21st Cloud Expo, Dave Martin, Product owner at CA Technologies, will give a live demonstration and code walkthrough, showing how ...
There are several reasons why businesses migrate their operations to the cloud. Scalability and price are among the most important factors determining this transition. Unlike legacy systems, cloud based businesses can scale on demand. The database and applications in the cloud are not rendered simply from one server located in your headquarters, but is instead distributed across several servers across the world. Such CDNs also bring about greater control in times of uncertainty. A database hack ...
@DevOpsSummit at Cloud Expo taking place Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center, Santa Clara, CA, is co-located with the 21st International Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. 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 ...
API Security is complex! Vendors like Forum Systems, IBM, CA and Axway have invested almost 2 decades of engineering effort and significant capital in building API Security stacks to lockdown APIs. The API Security stack diagram shown below is a building block for rapidly locking down APIs. The four fundamental pillars of API Security - SSL, Identity, Content Validation and deployment architecture - are discussed in detail below.
With Cloud Foundry you can easily deploy and use apps utilizing websocket technology, but not everybody realizes that scaling them out is not that trivial. In his session at 21st Cloud Expo, Roman Swoszowski, CTO and VP, Cloud Foundry Services, at Grape Up, will show you an example of how to deal with this issue. He will demonstrate a cloud-native Spring Boot app running in Cloud Foundry and communicating with clients over websocket protocol that can be easily scaled horizontally and coordinate...
In his session at 20th Cloud Expo, Scott Davis, CTO of Embotics, discussed how automation can provide the dynamic management required to cost-effectively deliver microservices and container solutions at scale. He also discussed how flexible automation is the key to effectively bridging and seamlessly coordinating both IT and developer needs for component orchestration across disparate clouds – an increasingly important requirement at today’s multi-cloud enterprise.
DevOps at Cloud Expo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. 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 w...
IT organizations are moving to the cloud in hopes to approve efficiency, increase agility and save money. Migrating workloads might seem like a simple task, but what many businesses don’t realize is that application migration criteria differs across organizations, making it difficult for architects to arrive at an accurate TCO number. In his session at 21st Cloud Expo, Joe Kinsella, CTO of CloudHealth Technologies, will offer a systematic approach to understanding the TCO of a cloud application...
Most companies are adopting or evaluating container technology - Docker in particular - to speed up application deployment, drive down cost, ease management and make application delivery more flexible overall. As with most new architectures, this dream takes a lot of work to become a reality. Even when you do get your application componentized enough and packaged properly, there are still challenges for DevOps teams to making the shift to continuous delivery and achieving that reduction in cost ...