Today I’d like to raise the following question: How far behind are we on microservices?
Since we are living in a world where microservices have become the “new normal”, what have we been doing to keep us updated? How much do we know about Event-Driven architecture, Serverless, Consumer-Driven Contracts? How are we going about testing our microservices?
These lines below are my highly summarized point of view, which is based on my own experience, about what I strongly believe that all intermediate Java developers should know to keep updated in this “new normal” microservices world.
First, we really need to know the concepts behind microservices. Why not starting, or renew our knowledge, reading some of Martin Fowler’s articles at https://martinfowler.com/.
Besides theory, the developer needs to know how to implement, how to work, or at least how a NATIVE-CLOUD environment looks like. For that I suggest a look at: Spring Cloud and Spring Netflix OSS. With these two we can build and interact with important Native cloud concepts such as: API Gateway, Service Registry, Server Config, Circuit Break, client load balancing and others.
Knowing and keeping updated with concepts and differences between Event-Driven, CQRS, Serverless and others architecture styles could be valuable.
Concepts about CI/CD and practical experience with containers and containers orchestration fit well too.
Regarding microservices and testing, we could quote Consumer-Driven Contract and tools like: Wiremock, Testcontainers and Pact.
Last but not least, a java developer should have a good understanding and practical experience using any Cloud provider services like AWS or Azure. One tip here is, if in your current project it isn’t possible to use any provider, I strongly advise the creation of a simple application using, for example, the Beanstalk console on AWS.
Of course, most probably I missed, or it wasn’t possible to quote some other important technologies or tools. Feel free to make a comment highlighting your opinion to sum in and enhance the topic.
Be aware, knowledge is our weapon and building well-designed software is our fight.
For those who might be interested, I’ve developed an online-training, through Zoom, where I build and deploy an entire Native-Cloud application using all technologies quoted here.
For more information, access my website: https://alissonpedrina.com/ or reach out to agap2. Thanks for all and till the next post!