Book Image

A Developer's Guide to Cloud Apps Using Microsoft Azure

By : Hamida Rebai Trabelsi
Book Image

A Developer's Guide to Cloud Apps Using Microsoft Azure

By: Hamida Rebai Trabelsi

Overview of this book

Companies face several challenges during cloud adoption, with developers and architects needing to migrate legacy applications and build cloud-oriented applications using Azure-based technologies in different environments. A Developer’s Guide to Cloud Apps Using Microsoft Azure helps you learn how to migrate old apps to Azure using the Cloud Adoption Framework and presents use cases, as well as build market-ready secure and reliable applications. The book begins by introducing you to the benefits of moving legacy apps to the cloud and modernizing existing ones using a set of new technologies and approaches. You’ll then learn how to use technologies and patterns to build cloud-oriented applications. This app development book takes you on a journey through three major services in Azure, namely Azure Container Registry, Azure Container Instances, and Azure Kubernetes Service, which will help you build and deploy an application based on microservices. Finally, you’ll be able to implement continuous integration and deployment in Azure to fully automate the software delivery process, including the build and release processes. By the end of this book, you’ll be able to perform application migration assessment and planning, select the right Azure services, and create and implement a new cloud-oriented application using Azure containers and orchestrators.
Table of Contents (20 chapters)
1
Part 1 – Migrating Applications to Azure
6
Part 2 – Building Cloud-Oriented Applications Using Patterns and Technologies in Azure
10
Part 3 – PaaS versus CaaS to Deploy Containers in Azure
14
Part 4 – Ensuring Continuous Integration and Continuous Deployment on Azure
17
Assessments

Application lifecycles

The term application lifecycle refers to the cyclical software development process, which includes planning and monitoring, development, testing, deployment, operation, monitoring, collaboration, and communication.

Figure 1.3 – Application lifecycle

Figure 1.3 – Application lifecycle

Application Lifecycle Management (ALM) entails the use of a set of tools, teams, and processes to manage the lifecycle of an application, from requirements management, project management, design and software architecture, development, unit and integration testing, maintenance, update requirement management, CI, delivery integration, deployment, and release management to the end of life.

ALM consists of the following five stages.

Stage 1 – application governance

Application governance is the initial stage of decision-making and includes requirements management. During this stage, the team begins to define the functions and functionalities of the application that are required to achieve the objectives defined by the client. This involves designing the concept of an app based on these user requirements.

Stage 2 – development

This is the most important stage in the application lifecycle because this stage determines the creation of the application. The developers take the functionalities planned in the previous step and prepare a development plan to achieve them. In most cases, these functionalities will be broken down into chunks and then assigned to the appropriate teams to develop a schedule for the release of each phase. After creating the application, the teams then start implementing code and integrating it according to the plan.

Stage 3 – quality assurance – software testing

Once the application has been implemented in line with the requirements, the next stage is the testing phase to ensure that the application actually meets all the requirements, works without errors, and provides an appropriate user experience. Test scenarios and environments are prepared and application performance testing is performed. The testers provide feedback at the end and publish reports on errors encountered, including unconfirmed ones and even bugs, and the development team updates the product based on this feedback.

Stage 4 – deployment

This stage begins when the product is ready to be deployed to production for end users. This can be done via several methods, depending on the needs of the customers. A continuous deployment strategy can be put in place to facilitate the automation of this process.

Stage 5 – operations and maintenance

The ALM process does not stop at the point of product deployment to users – it continues with the ongoing operation and maintenance of the product. To confirm that the software is meeting the business objectives, in-use performance monitoring should be put in place to prevent overloads or service downtime issues. This also allows the team to find and resolve any problems encountered, along with providing updates and improvements.

The final phase of this stage involves the withdrawal of the product according to criteria defined in advance by the team. This details the reason for the decision to withdraw the software and move to a new version or a new product.

Now we have discussed the application lifecycle model, let’s now move on to the Twelve-Factor Application design methodology.