Since we are all now in a lockdown, I am starting this series for those who want to learn the fundamental of Oracle Cloud Infrastructure(OCI). This first part of the series is about the architecture.
Let’s get started.
In the architecture of OCI, there are several main components which are important for anyone who is getting started with it. Here is a list of them,
- Availability Domains
- Fault Domains
OCI regions are available in a geographical area. Based on where you are from, there may be a local region available for you or there may be a region near to you. To see the list of the regions available at this moment, check the below link
Now how do you choose a region? Well, it depends on several factors. To start from, choose a region that’s closest to you. Though region is a logical term(sort of) and each region contains something called Availability Domainds(AD)( discussed next), choosing a region far away can impact greatly in the performance and latency. Another aspect is to check what are the compliance requirements of your country about data. Most of the countries have strict data residency requirements so choosing a region abiding that is very crucial. Another important aspect is to check the availability of the service. Though most of the common cloud services are available but many times, certain services will be offered based on factors like regulations, demand etc.
Each region contains three distinct datacenters , separated physically from each other. This cluster of three datacenters is called AD. Since AD’s are physically separated from each other and also, act as silos(AD’s don’t share any hardware infrastructure), it’s highly unlikely that all 3 of AD’s are going to be unavailable at the same time. It also means that if one(or even two) of the AD’s are going to fail, their unavailability won’t be impacting the surviving AD’s.
It’s important to mention that though most regions are going to have 3 AD’s but it’s not a must and some regions, may have, for the time being just 1 or 2 AD’s. For example, currently in India there is one AD. Though it may be is possible that your region currently may have just one AD but soon the count may increase to 3.
Each AD has 3 Fault Domains(FD). FD’s act as logical datacenters within an AD. Use of FD’s within an AD reduces the impact of failures within it. Since FD’s are logical datacenters within an AD, thus resources, within one AD can be placed in different FDs . These resources won’t be sharing the physical hardware and thus will be immune from the impact of physical hardware failures i.e. power supply etc.
Since each Region has 3 AD’s and each AD has 3 FD’s , it means that you get 6 logical data centers within one region where your resources are placed. In order to ensure that housekeeping tasks won’t interrupt the business, any such activity done in an AD is carried over to one FD and then to the next one and so on and so forth. So if there is a problem that occurs, for example at the time of patching within a FD won’t impact the other 2 FDs. Do note that all of this is done and maintained by Oracle. Now, we as customers, will create our compute and/or database instances at FD level.
It’s very obvious that all of this is done to ensure that there is high availability of services/resources. Thus it’s important to ensure that we are going to design our architecture in such a way that we can perform our tasks in either different FDs within one AD or if we can, should configure the tasks in different ADs across different Regions.
Compartment in OCI architecture is not really a physical entity but rather a logical one. A compartment is a logical collection of resources which are related to each other. You use a compartment to basically isolate and provide more fine granular access to your resources. Here resources are the entities which you are using in your compute environment e.g. network resources or storage. So what you do with compartment is you put these resources in different compartments to isolate them, for example a compartment of network and then another compartment of storage. And by doing so, you can control who can access the resources within your compartments, for example who can be allowed to access your storage or network. Now it’s important to mention that resources can only be a part of one compartment and resources of one compartment can interact with other resources of another compartment. Of course, resources can be added, removed, moved from one compartments. And most importantly, resources from different regions can be in the same compartment. It’s possible to make a hierarchy of compartments with access policies on resources to each compartment.
Hope this helps.