Chapter 19: Enterprise Design Considerations
In the previous chapter, we began looking at Azure design from an everyday working perspective, looking at examples of how to engage with customers, and then gather, map, and document requirements.
In this final chapter, we complete the beyond the exam theme by looking at what specific considerations we need to make when designing enterprise architectures.
First, we will examine two types of organization – the large-scale enterprise versus the small start-up, and how the size, age, and internal structure of a company can have an impact on our designs.
We'll then investigate some strategies for ensuring that we get the best value from cloud solutions by looking at cost optimization techniques.
We will then explore what Azure landing zones are, and how they can help us manage the Azure platform in enterprise systems that involve multiple subscriptions and individual solutions.
Finally, we will finish off the chapter...
Understanding your customer
Each organization can be very different, not just in terms of goals, but also the levels of risk, security, and resilience they are prepared to accept.
To highlight such differences, it is helpful to compare two very different types of company – a well-established, multi-national corporation with thousands of employees around the world, versus a newly formed start-up, with just a handful of staff.
Looking at process differences
A multi-national company will have existing processes and ways of working that have been built up over many years. The IT department will more than likely follow industry patterns such as the Information Technology Infrastructure Library (ITIL), which is itself a framework and set of practices for Information Technology System Management (ITSM), which defines how an organization manages their IT services. In other words, larger companies generally have a set of processes that everyone must follow for managing the companies...
Optimizing costs
Cloud solutions can be built with incredible flexibility around the resources they consume. We can create systems that dynamically respond to usage so that they scale automatically as needed. Serverless options also allow for solutions that cost near zero when not being used. By way of an example, services such as Azure functions are billed per execution – if there's no execution, there is no cost.
This flexibility, however, leads to a problem with cost management – how do you define how much a service will cost? In a traditional on-premises architecture, projects will normally be costed based on the hardware and software licenses that need to be purchased. Whether the system is used a little or a lot, the costs will be the same.
Business leaders will often want to know how much a service will cost to run so that they can decide whether it is worth the expenditure. However, how can we state what a solution will cost until we can see how much it...
Creating landing zones
Using subscriptions is a useful way of segregating duties and application workloads. However, if you wish to use that model, you need to consider how this affects your security and governance posture.
For example, you may wish to ensure that all network traffic is routed through a central firewall, or to centralize logging and monitoring. We therefore need to ensure that any new subscription is set up correctly and in line with your overall design strategy.
Defining a landing zone methodology is concerned with leveraging the various Azure components and tools to create consistency and compliance across all your subscriptions in an automated fashion. The latter point is crucial – ideally, your patterns should be implemented automatically with as little manual intervention as possible.
When designing a landing zone, you must keep in mind that it needs to be scalable – changing how landing zone patterns work later can be time-consuming and costly...
Building with continual iteration
Building cloud solutions can be a complex process, especially when trying to build for large enterprises. One option when first developing your cloud adoption is to fully define and build your management tooling upfront; however, this can take some time and delay your ability to realize the cost benefits.
Another approach is to build a core baseline of services – decide what is most important and must be implemented before you can begin your cloud journey. This is a minimal viable product (MVP) and defines the absolute bare minimum solution.
From there, you can build upon that solution, adding new services or improving existing ones as you develop your cloud offering. Agile methodologies can help here and are ideally suited to building cloud solutions due to the modular nature of Azure's components.
Once you have a baseline environment, you can iteratively define, design, and build your platform. Each iteration will increase security...
Summary
This chapter completes the beyond the exam topic, and the book. Whereas most of the book has focused on the skills needed to pass the AZ-304 exam, these final two chapters have been a more general look at design considerations required to create and deliver successful designs for Azure-based solutions.
Each organization is very different, and we began the chapter by exploring the differences between two extreme examples – a multi-national corporation with existing systems and governance processes, versus a newly formed start-up. Each type of organization has its own challenges and opportunities, and so we explored some of the more common examples.
Next, we learned how cost management is a critical aspect of running any solution in the cloud, especially when building dynamic systems that respond and scale to usage, rather than more traditional infrastructure whose costs are fixed.
We have seen how Azure landing zones can impact our overall designs and looked at different...
Further reading
Refer to the following links for more information on the topics covered in this chapter: