From Silos to Services: Cloud Computing for the Enterprise

Jan 16 2017   10:07PM GMT

Evolving Monoliths vs. Microservices

Brian Gracely Brian Gracely Profile: Brian Gracely

Tags:
containers
DevOps
Java
Kubernetes
Microservices
Software

mainlandFor the last couple years, the idea of “software eating the world” has gathered quite a bit of traction. While software-lead companies (Uber, AirBnB, Netflix, Facebook, etc.) have created considerable disruption in many vertical industries, the vast majority of companies are still struggling to managing the transition from existing monolithic applications to more agile microservices implementations.

Over the last couple weeks, I’ve had the opportunity to dig into what it means to balance monoliths and microservices with several industry thought-leaders (here, here). From those discussions, a few important considerations come through:

  1. Not every application needs to be built using microservices. Plenty of existing applications can be improved by rethinking the sprint process (length, frequency).
  2. Instead of focusing on monoliths vs. microservices, the focus should be on what is needed to build and ship software more rapidly. The focus should be on making the overall business more agile, and able to react to digital feedback loops about how users interact with those applications.
  3. The testing and deploying processes are just as important as the application building process. Many companies should initially be focused on how well they are organized and prepared (automated testing systems) to test and integrate software. This is often focused on CI/CD tools like Jenkins.
  4. The culture aspects of more to more modular, microservices-based platforms should not be under-estimated. It requires a different understanding about what it means to build an “independent service”, both from a technology perspective and an internal communications perspective.
  5. It’s critical to have a platform in place that provides developers with self-service access to agile infrastructure resources, and the platform should abstract many of the complexities (service discovery, high availability, networking, storage, auto-scaling and load-balancing) that developers face.

Managing a portfolio of applications can be complicated, especially as it goes through an evolution that involves more than just technology updates. Cultural shifts like DevOps, and organizational shifts like “2-pizza teams” can seems extremely complicated and uncertain in the early stages. Sometimes they require breaking out new organizations to prototype the new habits for a large organization. It’s often the willingness to adapt the culture and process to a more iterative model that lays the foundation for faster monoliths and more agile microservices applications.

 Comment on this Post

 
There was an error processing your information. Please try again later.
Thanks. We'll let you know when a new response is added.
Send me notifications when other members comment.

Forgot Password

No problem! Submit your e-mail address below. We'll send you an e-mail containing your password.

Your password has been sent to:

Share this item with your network: