This section describe the main steps to optimize an application
To optimize a new application on Akamas you have to follow four steps shown in the following picture and described in the next sections by means of a simple example.
Steps to setup a new optimization
As depicted in the picture above, to optimize a new application you should:
Create a system that models the key parts of your application (e.g. containers, runtimes, APIs) that will be interested in the optimization initiative.
Set up the integration with a monitoring tool via telemetry providers so that Akamas can gather metrics about the performance of your application.
Create a workflow that allows Akamas to configure your application (e.g. write a configuration file, relaunch a process).
Define the optimization study according to your goal and SLOs so that Akamas knows what you want to achieve.
These steps relate to how Akamas integrates with your environment, described in this section, and apply to both offline and live optimization studies.
In the following sections, we will use a simple yet representative web application to illustrate how to onboard a new application on Akamas. The application is called Online Boutique. It is a microservices application composed of 11 microservices that allow users to browse items, add them to the cart, and purchase them in an online store.
Suppose that we are about to deploy a major upgrade to one of the microservices, the Ad Service, that handles the advertisement logic, and we want to reduce the costs of running this service while meeting our SLO on the response time given an increasing number of users.
As shown in the diagram below, our service is built in Java, deployed as a pod in a Kubernetes cluster, and exposes an API using a service. The whole platform is monitored with Dynatrace.
Online Boutique Ad microservice deployment
If your technology stack or optimization need does not fit this example, take a look at the Optimization Guide section where you can find many optimization scenarios for different use cases.
You can now proceed to the first step, creating the system to model this application.