[JAVA] How Microservices Change the Way of Developing Applications

Microservices are gaining popularity for their potential to deliver scalability, resilience, and agility that wasn't possible with service-oriented architecture. Over 70% of organizations are investigating microservices adoption, but many are encountering challenges to success in achieving these goals with the additional strain on IT to be more agile, adopt new technology, and embrace DevOps. The Open Group defines Microservices Architecture (MSA) as "a style of architecture that defines and creates systems through the use of small independent and self-contained services that align closely with business activities." In contrast to monolithic applications, where deployed software and infrastructure are centralized, MSA is highly distributed and requires new approaches to the development lifecycle as well as infrastructure monitoring and management. "In particular with microservices, there are serious consequences for operations, who now have to handle an ecosystem of small services rather than a single, well-defined monolith. Consequently, if you don't have a certain baseline competencies, you shouldn't consider using the microservice style." He goes on to list the need for rapid provisioning, basic monitoring and rapid application deployment as prerequisites for microservices. But the changes within IT needed for MSA is greater than just operations. A survey of over 2,000 software engineers by Lightbend found the greatest obstacle to microservice adoption was corporate culture - as cited by 46% of respondents. Also, the immaturity of operations tools was listed as a concern for 34% of IT professionals. A culture shift to an Agile development lifecycle and a DevOps approach is needed for MSA to achieve the goals of scalability, resilience, and agility. And the operational tools needed to monitor and manage microservices must be integrated as part of the underlying platform architecture. Given the complexity of MSA and the need for an IT culture shift to implement microservices, it is helpful to assess where you are on your MSA journey and make plans to mature your MSA related people, processes and platforms. The following sets of criteria can be used to assess your current MSA capabilities and to develop a roadmap, maturity model and KPIs needed for improvement. MSA Platform Assessment Many IT organizations lack or have gaps in the culture and processes needed for MSA. Criteria to assess IT organization and governance include: • IT alignment to business drivers and imperatives • Roadmap for legacy systems and data - modernization, cloud-native, and monolith migration • Agile development lifecycle • Engineering skills and skill gaps • CI/CD automation and a DevOps culture • Test first and API first development approaches • API management and light-weight governance MSA requires a platform for building and operating cloud-native services that automate and integrates the concepts of DevOps, continuous delivery and containers. Criteria to assess platform architecture capabilities includes: • Service provisioning and auto-wiring • Service discovery • Elastic scaling • Resource scaling • Integration with the infrastructure • Multi-node cluster configuration and management • High-availability • Security issues like single sign-on • Multi-tenancy and isolation • Monitoring • Logging • Routing • Load balancing • Instant rollback and versioning • Service naming and URL mapping • Polyglot language and persistence support • Authentication service integration • Application configuration management • Orchestration API management is a critical component for MSA to manage secure assess, monitor component availability and enforce governance and change management. Criteria to assess API management capabilities includes: • Developer Portal • Administrative Portal • Security • Traffic management • Transformation • Proxy • Analytics • Versioning • Lifecycle management • Metadata Documentation / Content Management • Social media support/blogs • Throttling • Service level management Perficient's Microservices Health Check Perficient has built a practical approach to implementing microservices. We create a roadmap to modernize and mature IT people, process, and platforms needed for effective microservices strategy. To this end, we have developed a Microservices Heath Check to assess IT's current state and make a series of actionable recommendations within program tracks to modernize IT for microservices. The intent of the health check is to create a set of actionable tasks to get microservices processes and projects on track to ensure you achieve the desired technical and business objectives. The Microservice Health Check provides the following benefits: • Solidifies the microservices business case • Provides a benchmark of your current microservices approach to industry best-in-class • Validates architecture concerns such as platform capabilities, security, operations, and API management • Helps to define your microservices roadmap to mature people, process, and platforms along program tracks • Leverages Perficient's microservices architecture, agile methodology, and DevOps guidelines • Delivers a set of actionable tasks to get your microservices to program on track

related blog:

Java collection tutorial

Recommended Posts

How Microservices Change the Way of Developing Applications
[Rails] How to change the column name of the table
How to change the setting value of Springboot Hikari CP
How to change the contents of the jar file without decompressing
[Swift] Change the textColor of UIDatePicker
How Dubbo-based Microservices Change Insurer Architecture
[Swift] How to dynamically change the height of the toolbar on the keyboard
[Rails] How to change the page title of the browser for each page
[chown] How to change the owner of a file or directory
[Eclipse] Change the color of the vertical ruler
How to determine the number of parallels
Bootstrap4 Change the color of the hamburger menu
How to change the timezone on Ubuntu
[Rails] Change the label name of f.label
How to sort the List of SelectItem
How to change the value of a variable at a breakpoint in intelliJ
[Swift] Change the color of SCN Node
[swift5] How to change the color of TabBar or the color of item of TabBar with code
[Swift] How to change the order of Bar Items in Tab Bar Controller [Beginner]
How to find the cause of the Ruby error
Customize how to divide the contents of Recyclerview
Change the URL of the application of Eclipse project (Maven).
Change the timezone of the https-portal container to JST
Output of how to use the slice method
How to display the result of form input
[AndroidStudio] Change the color of the ActionBarDrawerToggle hamburger menu
http: // localhost: How to change the port number
Change the location folder of Docker image & container
[Java] How to get the authority of the folder
[Java] How to get the URL of the transition source
How to change the action with multiple submit buttons
How to delete / update the list field of OneToMany
CI the architecture of Java / Kotlin applications with ArchUnit
How to write Scala from the perspective of Java
[Ruby] How to find the sum of each digit
[Ruby on Rails] How to change the column name
A rough explanation of how Java-based web applications work
How to install the root certificate of Centos7 (Cybertrust)
<Android> Change the background color of the List row of ListView
[Java] How to get the maximum value of HashMap
[Rails] Cancel / change the default password validation of devise
[SwiftUI] How to specify the abbreviated position of Text
[Android] How to get the setting language of the terminal
Change the storage quality of JPEG images in Java
[Rails] How to get the contents of strong parameters
How to judge the click of any area of the image
How to download the old version of Apache Tomcat
[Swift] How to get the document ID of Firebase
How is the next value of the Time object correct?