Moving to a new role - Microservices
One of the biggest challenges when moving to a new role is getting used to how the new company "does things".
However for many Developers, that's the exact reason they are choosing to move in the first place!
So how do we approach moving from a role, working on a Legacy Monolithic architecture system to a new role working in Microservices?
What is a Microservices Architecture?
At it's core, Microservices are simply applications broken into smaller pieces that work together, making maintaining and adding to the application simpler.
Microservices work together to allow a whole application to operate using APIs to pass information from one service to another.
Each component will have it's own CPU, runtime environment and often Team dedicated to working on it. This ability to separate and recombine protects the system and better facilitates Agile processes, making it more desirable for larger organisations.
Cloud Services
The adoption of Microservices architecture has gone hand-in-hand with Cloud services and Containerisation tools.
Even if your current Company / Role doesn't utilise Cloud services you should be able to discuss them at a high level.
Some basic terms you'll want to be familiar with:
领英推荐
Pros of Microservices
Developer independence - Small teams that are working in parallel can iterate faster than larger teams. When a single service takes off in popularity, the smaller team can also scale the services on their own without having to wait for a larger and more complex team.
Isolation & resilience - If one of the components should fail, developers are able to spin up another component while the rest of the application continues to function independently.
Scalability - Because microservices are made of much smaller components, they can take up fewer resources and therefore more easily scale to meet increasing demand of that specific component.
Autonomously developed - As opposed to monoliths, individual components are much easier to fit into continuous delivery pipelines and complex deployment scenarios.
Microservices are a particular advantage when companies become more distributed and workers more remote.
Relationship to the business - Microservice architectures are split along business domain boundaries, organized around capabilities such as logistics, billing, etc. This increases independence and understanding across the organization.
Evolutionary - Microservices are an excellent option for situations where developers can’t fully predict what devices will be accessed by the application in the future.
DevOps
In the end, microservices are part of the?comprehensive shift to DevOps?that many organizations are working towards. DevOps environments promote strong collaborations between development and operations teams to make IT become more Agile, so the business is Agile, too!
But DevOps is an article for another day.