This video talks about the architecture of a simple cloud-native application and the mechanism through which an application architecture approaches. can be migrated to a cloud-native.
In addition, this video covers the DevOps consideration required for the migration. In a simple application, the user interface (UI) accesses the back-end which in-turn accesses the microservice or the back-end layer. For large-scale applications, the back-end layer might need to access additional databases or artificial intelligence capabilities. At 1:31, it is recommended to initiate the migration by breaking a component into a pipeline that will enable you to offer discipline. The pipeline will consist of a number of stages.
Steps to migrate to a cloud-native solution
At 1:54, the speaker briefs that the first step towards migration to a cloud-native solution is to clone the code from the source-code management, which is typically Git. The next step is to build the application. Typically there will be one pipeline per component. At 2:36, it is mentioned that we need to use web-pack to build the UI typescript code. To build a Spring boot application, you need to build the app with Maven or Gradle. The third step is to run the tests. Unit tests can be run against the code along with the code-coverage validation. The testing stage is then followed by code scanning or vulnerability scanning or security scanning. If vulnerabilities are found, the build would fail.
At 5:27, the speaker explains that with vulnerability scanning, we are actually validating that there are no security holes in the Docker image or the container images. The fifth step involved in migrating to the cloud-native solution is to build the application that is tested and scanned into an image. At 6:02, it is briefed that once an image is built, it is stored in an image registry with the tagged version. The next step will be to deploy the image inside an OpenShift managed platform. There are different techniques like Helm, using operators to perform the deployment.
At 8:00, the speaker talks about the final step in the migration process. The final step is to validate the health. At this stage, we verify if the container is running and check if the container is sending back operational information. Health input is extremely important because you can hook that into operational tools like SysDig and LogDNA. At 9:09, the speaker talks about the ‘’GitOps’ process which is now common in the industry.
This process involves updating the Git repo with a build number, tagged version, and the reference point to the image registry. The GitOps can then trigger a deployment of that image out into the test environment with all the other components. ‘Argo CD’ is a common GitOps tool. Overall, this video talks in detail about the different steps involved in the migration of an application to a cloud-native solution.