Microservices: Digital Transformation cannot do without them
Microservices allow to quickly react to market changes
Thanks to this architecture, each service can be updated, distributed and resized independently to respond to the request for specific functions in an application. The resulting scalability allows companies to be faster in their time-to-market. In addition, microservices enable continuous integration and distribution, because the deployment, changes and updates of the code are done for the individual microservices. Teams work in an agile and autonomous way and can experiment with new ideas in a simpler way, validating the best ones and discarding the less convincing ones, in a process of continuous innovation that does not compromise the overall functioning of the application and does not weigh on costs.
Ultimately, the management of workloads in microservices architectures is essential to compete. Users are online – often on mobile – and it is in these environments that business takes place. Companies must necessarily focus on speed, performance and Customer Experience, as the digital native giants and the pure-plays of the web have shown.
Tools are needed to nimbly create new digital apps and services to respond to the ever-changing market, acting in a timely manner to seize opportunities and face threats. In this context, long application development cycles based on traditional infrastructures can represent a disadvantage.
Containers, Kubernetes orchestration and the ABC of implementation
An application organized in microservices guarantees the best performance if it is installed on a container. Containers are software environments that contain the application code and all the related components that are necessary for the operation of a microservice. In this way, the application is portable and executable in any infrastructure, both on premise and on the cloud (private, public, hybrid), even from different providers (multicloud).
Containers can connect to communicate with each other and also orchestrate through technologies such as Kubernetes, a software capable of automating the deployment and scalability of containerized services as needed. Simply put, the number of running servers adjusts in real-time according to the workload. With Kubernetes, you can run any type of containerized applications using the same tools both on-premises and in the cloud.
A further step forward for enterprises is Modern Application, a transformation towards cloud-native enterprise applications. In this path, applications created for legacy systems are gradually integrated with cloud-native apps. IT departments are incrementally modernizing apps and workloads and moving towards a new, more agile architecture, leveraging the opportunities brought by containers, microservices architectures and Kubernetes.
As an alternative to solutions like Kubernetes today microservice programmers can use serverless containers, such as AWS Fargate. This way businesses can focus on building applications without having to manage servers. Solutions like this make it even faster to build and deploy application, API, and microservice architectures because enterprises and their IT departments focus on application development without having to think about server management.
AWS Fargate, in particular, is a serverless engine compatible with both Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS), with which the virtualized image of the container is built. The memory and computing resources that are necessary are then defined and the applications are run and managed here, each independently (isolation by design of the applications). The required computing resources are paid for only when they are used, with no upfront costs. Companies also immediately obtain the scalability necessary to improve server capacity, without over-provisioning, to train, test and implement their own machine learning models.
Microservices and containers: some use cases
A few years ago, a New York startup launched a brilliant business model: a mobile platform where the user can find delicious recipes to try at home. On the same platform, while the user navigates between ingredients and instructions, links pop up that connect to shops where you can buy raw materials, kitchen utensils and anything else related to shopping and food brands. The recipe is thus associated with online and physical stores, including proximity ones. Such a business model would not be feasible without microservices architecture.
This mobile platform, in fact, is able to link together contents, purchases, maps, localization, payments and mobile technology and necessarily relies on a flexible management of workloads: the solution must be able to process billions of data points almost in real time and respond to whatever number of users – one or thousands – might be connected at the same time, guaranteeing the same performance and without generating unsustainable costs for the business. Containerization with Kubernetes and microservices solve these problems because they allow a faster and lighter implementation, facilitate scalability and preserve the User Experience.
Another typical example of implementation of microservices architectures concerns omnichannel retail: the flexibility of the software is a strategic factor to ensure resilience in times of crisis. But the benefits go beyond that: microservices allow to modify, reassemble and resize existing features as needed and therefore help companies to take advantage of market opportunities that require timeliness, constantly guaranteeing an optimal Customer Experience on multiple channels. Another use of microservices architecture is for the management of logistics and home deliveries, which are also subject to significant fluctuations.
Similarly, microservices support the international expansion of companies by simplifying the implementation of the infrastructure to operate in new markets. The cloud, of course, underpins the portability and scalability of applications, but the benefits are greatest if they are flexibly designed to optimize performance, time-to-market, and maintenance costs.
What DuneD does for its customers: a concrete project for IT modernization that makes business agile
The sectors and areas of application of microservices architectures are truly numerous. Among the concrete cases in which DuneD is helping its customers to leverage the innovation of IT architectures and the modernization of applications, we will mention a company that operates internationally in construction and that has chosen AWS Modern Application and DuneD to move towards an integrated management of the budgeting, planning and final accounting functions of construction sites and of the CRM and HR functions. For this customer of ours we are developing the management system that handles the orders and the related processing processes.
The company in question turned to DuneD and AWS with a specific need: to support the growth of the business, which is happening at an exceptionally fast pace, in the only way that is possible today, namely by modernizing its technological systems. These appeared, in fact, as no longer meeting the needs of the business and the growth of users. They also did not allow for the rapid and efficient implementation of new features. This is why DuneD has developed a project divided into several activities, which starts with the adoption of cloud computing and ends with microservices architecture.
The basis is therefore represented by the use of AWS cloud computing services, with the result of giving the customer a modern, scalable and secure architecture, with 100% uptime SLA.
A second activity envisaged is the centralization of authentication and authorization with AWS Cognito, which allows the customer to adapt the access security policies and to have centralized control of the profiles and data domains accessed by the various users.
A further step is the creation of specific microservices for functional areas through AWS Elastic Container Service (ECS) and Fargate, which have, among several and significant advantages, the benefit of allowing the reuse of already existing “highly specific” know-how.
A key aspect of this project is its step-by-step structure: once the release timeline has been defined, the approach adopted by DuneD, in line with the customer’s requests, is to “cover” portions of existing software with microservices and, once the structure has been implemented, to move on to the “refactoring” of the various components according to company priorities. This software engineering technique allows, in fact, to modify the internal structure of portions of code without modifying their external behavior but increasing essential characteristics that give the business great agility.
Food for thought…