Azure Best Practices and Frameworks

Find guidance for your cloud adoption journey

Industry best practices will help you migrate your infrastructure and build reliable, scalable, and secure applications on Azure.

Cloud adoption: requires technical change, but to digitally transform to the cloud requires more than just legacy IT. Creating new products and services in the cloud requires a different approach. The Innovating methodology of the Azure Cloud Adoption Framework establishes an approach that guides the development of new products and services. Use these Microsoft guides to accelerate migration and innovation efforts.

Once you are familiar with those, how do you actually implement this? How do you actually create an App and move it to the Cloud using infrastructure as code or DevOps.

Cloud adoption antipatterns

Companies often experience cloud adoption antipatterns. These missteps commonly occur in design, planning, or implementation when migrating to the cloud. Antipatterns can block innovation and prevent businesses from adopting and realizing goals. Microsoft describe many of this antipatterns in the CAF.

”The biggest pitfall in cloud adoption? Running cloud IT the same way as legacy IT”

Microsoft: Use cloud engineers for the implementation phase

Remember that engineers are essential for properly implementing cloud automation and landing zone concepts. Responsibilities and tasks can shift significantly when you adopt service models. You can use technical decision makers (TDMs) for decision making, but use capable cloud engineers for tasks that require deep engineering knowledge. Then you'll realize the advantages that the cloud provides.

Googles Validated DevOps practices

The Role of Culture: You don’t “do” DevOps with just a tool. DevOps is about people working together in a culture where collaboration is central to delivering value. It’s about breaking down barriers between groups. In DevOps, development and operations collaborate through a sense of shared responsibility. In traditional development models, individuals focus on their own small part of the process and care little what happens after they hand their piece off to the next stage and its team. But DevOps’ spirit of shared responsibility means that every member of the team stays involved with the solution over its entire lifetime.

Learning culture: is one of a set of capabilities that drive higher software delivery and organizational performance. These capabilities were discovered by the DORA State of DevOps research program, an independent, academically rigorous investigation into the practices and capabilities that drive high performance.

“Wisdom is not a product of schooling but of the lifelong attempt to acquire it.” – Albert Einstein

Version control: Implement the right version control practices using using practical Git for reproducibility and traceability.

Continuous integration: Learn about common mistakes, ways to measure, and how to improve on your continuous integration efforts.

Deployment automation: Best practices and approaches for deployment automation and reducing manual intervention in the release process.

Continuous testing: Improve software quality by building reliable automated test suites and performing all kinds of testing throughout the software delivery lifecycle.

Continuous delivery: Make deploying software a reliable, low-risk process that can be performed on demand at any time.

Architecture: Learn about moving from a tightly coupled architecture to service-oriented module or microservice architecture without re-architecting everything at once.

Test data management: Understand the right strategies for managing test data effectively along with approaches to provide fast, secure data access for testing.

Shifting left on security: Build security into the software development lifecycle without compromising delivery speed.

Database change management: Make sure database changes don't cause problems or slow you down.

Cloud infrastructure: Find out how to manage cloud infrastructure effectively with automation so you can achieve higher levels of agility, availability, and cost visibility.

Code maintainability: Make it easy for developers to find, reuse, and change code, and keep dependencies up-to-date.