A modern approach for productivity and scalability

Enterprise development has changed drastically from the early days of public internet use. Now, instead of satisfying the needs of thousands or tens of thousands, applications can serve millions of users — and potentially even more devices. To remain competitive, businesses must innovate in ever shorter cycles. This rapid increase in the pace and volume of demand motivates a different approach; one that takes full advantage of cloud and hybrid environments and enables nimble development response to changing business needs.

Microservices have arisen as a pattern for dealing with these challenges. However, more than a technical solution, microservices offer a way of organizing teams around independent services that expose data and functionality through service interfaces. The microservices technique rediscovered by Amazon in the early 2000s influenced the evolution of AWS, and has been successfully adopted by many companies at inception, such as Netflix and Twitter.

microservices-team

These early adopters had large pools of resources and designed their own solutions from the ground up. Now communities of practice, tools, and frameworks have emerged so that an organization doesn’t have to start from scratch when adopting microservices. However, this also has led to varying opinions on the definition of microservices and microservice architectures.

If you are new to microservices, we recommend reading Martin Fowler’s description. He discusses the architectural style of developing applications as suites of lightweight services and the organizational impacts of doing so. However, the purpose of our Microservices section is to introduce key concepts that have been success factors for many Akka customers who have turned to microservices to solve their business problems.

Microservices are well suited to cloud and hybrid environments. They enable independent, focused teams to deliver new functionality more frequently and to respond more quickly to new opportunities. Since microservice architectures differ fundamentally from that of traditional highly coupled application server-based architectures, initial adoption can be disruptive, both in the structure of the development organization and in the implementation concerns that arise from dealing with hundreds or thousands of services instead of one or more monolithic applications. It helps to be aware of potential challenges when contemplating a move to microservices.