arrow-left

All pages
gitbookPowered by GitBook
1 of 3

Loading...

Loading...

Loading...

SeMA Deployment Architecture

hashtag
SeMA Logical deployment architecture

Odoo follows a multi-tier architecture, and we can identify three main tiers: Data, Logic, and Presentation:

Odoo logical Architecture

The Data tier is the lowest-level layer, and is responsible for data storage and persistence. Odoo relies on a PostgreSQL server for this. PostgreSQL is the only supported RDBMS, and this is a design choice. So, other databases such as MySQL are not supported. Binary files, such as attachments of documents or images, are usually stored in a filesystem.

The Logic tier is responsible for all the interactions with the data layer, and is handled by the Odoo server. As a general rule, the low-level database should only be accessed by this layer, since it is the only way to ensure security access control and data consistency. At the core of the Odoo server, we have the Object-Relational Mapping (ORM) engine for this interface. The ORM provides the application programming interface (API) used by the addon modules to interact with the data.

The Presentation tier is responsible for presenting data and interacting with the user. It is implemented by a client responsible for all the user experience. The client interacts with the ORM API to read, write, verify, or perform any other action, calling ORM API methods through remote procedure calls (RPCs). These are sent to the Odoo server for processing, and then the results are sent back to the client for further handling.

Ingress Controller: NGINX is web serving, reverse proxying, caching, load balancing, media streaming, and more. It started out as a web server designed for maximum performance and stability. In addition to its HTTP server capabilities, NGINX can also function as a proxy server for email (IMAP, POP3, and SMTP) and a reverse proxy and load balancer for HTTP, TCP, and UDP servers Redis Server: Redis , is a fast, open source, in-memory, key-value data store , All Redis data resides in memory, which enables low latency and high throughput data access. Unlike traditional databases, In-memory data stores don’t require a trip to disk, reducing engine latency to microseconds. Because of this, in-memory data stores can support an order of magnitude more operations and faster response times. The result is blazing-fast performance with average read and write operations taking less than a millisecond and support for millions of operations per second. BI Tool [ MetaBase - SuperSet ]: Business intelligence (BI) tools are types of application software which collect and process large amounts of unstructured data from internal and external systems, including books, journals, documents, health records, images, files, email, video and other business sources

hashtag
SeMA physical Deployment Architecture

Sizing for performance and load requirements is an iterative process that estimates the number of CPUs and corresponding memory required to support the services in the deployed system. When estimating the number of CPUs required to support a service, consider the following:

  • Use cases and corresponding usage analysis that apply to the service

  • System requirements determined during analysis for technical requirements

  • Past experience with the Odoo System components providing the service

The process of sizing for performance typically consists of the following steps. The ordering of these steps is not critical—it simply provides a way to consider the factors that affect the final result.

  1. Determine a baseline CPU estimate for components identified as user entry points to the system.

  2. Make adjustments to the CPU estimates to account for dependencies between components.

  3. Make adjustments to the CPU estimates to reflect security, availability, scalability, and latent capacity requirements.

SeMA Deployment Logical Architecture
SeMA Deployment Architecture

SeMA application sizing-estimation process .

Shown below is a diagram of sizing-estimation process. It is not the only method for sizing deployment, but it should provide useful insight and guidance

1. Estimate user concurrency and throughput

In most use-case scenarios, the number of expected concurrent users is far less than the number of named users of system. A scenario in which all of the named users are simultaneously accessing the system is extremely rare. Normally, a globally distributed organization with users spread out all over the world experience about ⅓ of its named users online at any time during their individual 8-hour work days.

Concurrency typically ranges from 10% to 50+% for App deployments.

2. Estimate SeMA Application HW sizing

circle-check

A- Every CPU core handles 2 Worker B- Worker can handle 5 System Users or 20 Portal users C- Concurrent user = Users use app simultaneously with time session 5 sec D - Best practice of workers per machine from 17 to 33 [Due to processor queuing]

3. Estimate SeMA DB HW sizing Database storage requirements may be estimated roughly using the following calculation:

circle-check

4. Estimate SeMA File Storage HW sizing

circle-info

hashtag
SeMA App file storage can start with 4 TB and extend based on monitoring actual usage of storage

10 % [ Minimum ]

5000

500

20 % [ Average ]

5000

1000

30 % [ Recommended ]

5000

1500

40 % [ Highly Scaled ]

5000

2500

Number of portal Users [5000]
Number of concurrent users =  40 * 5000 / 100 = 2000 
× Number of Woker = 2000 / 20 = 100 Woker 
x Number of Workers / VM = 33
x Number of Core / VM = 16 core 
x RAM cacpity estimation [ 1 core * 4 ] = 16 * 4 = 64 Gb / VM

Minimum 4 VM with 16 core / 64 Gb RAM
Recommended 5 VM x with 16 core / 64 Gb RAM
 
Number of Users [ 5000 ]
× Number of events per host per day [ 15 ]
× 5Kb per event

Number of Users × Number of events per host per day
× 5Kb per event

For example, an organization of 5,000 Users, with each user generating 
an average of 15 events per day, 
requiring a 30 day retention would require a database capacity of:
## DB stoage sizing / Month
      5,000 × 15 × 5 × 30 = 11,250,000Kb, or 11Gb

## DB stoage sizing / Year
      11 GB per Month x 12 = 132 Gb / Year

DB HW sizing for 5000 client connections / sec

# DB Version: 14
# OS Type: linux
# DB Type: web
# Total Memory (RAM): 96 GB
# CPUs num: 24
# Connections num: 5000
# Data Storage: san

max_connections = 5000
shared_buffers = 24GB
effective_cache_size = 72GB
maintenance_work_mem = 2GB
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 1.1
effective_io_concurrency = 300
work_mem = 1258kB
min_wal_size = 1GB
max_wal_size = 4GB
max_worker_processes = 24
max_parallel_workers_per_gather = 4
max_parallel_workers = 24
max_parallel_maintenance_workers = 4
x Number of users  [ 5000 ]
× Number of survey per user  per day  [ 2 ]
× 25 Mb per survey attachment  [ 25 mb ]
Number of Users × Number of survey per user  per day
× 25 Mb per survey attachment

## File storage sizing / Month

      5,000 × 2 x 25 Mb × 30 = 750 Gb

## File storage sizing / Year
 
      750 GB per Month x 12 = 9 TB  / Year

SeMA Deployment Architecture

A deployment architecture depicts the mapping of a logical architecture to a physical environment. The physical environment includes the computing nodes in an intranet or Internet environment, CPUs, memory, storage devices, and other hardware and network devices.

Designing the deployment architecture involves sizing the deployment to determine the physical resources necessary to meet the system requirements specified during the technical requirements phase. You also optimize resources by analyzing the results of sizing the deployment to create a design that provides the best use of resources within business constraints.

hashtag

  1. SeMA application sizing-estimation process .

  2. Deployment Logical Architecture .

  3. HW Sizing Specs .

  4. Deployment Process .

hashtag

hashtag
Phishing simulations

Beside introducing real-world customizable phishing simulations, Entrench offers anti-phishing behavior management feature which allows to measure awareness level of your employees.

hashtag
Training Modules

Entrench training modules are offered in a variety of styles with full animation and narratives in many languages.

hashtag
Filmed Videos

Security awareness sessions are no longer boring or dull. Sessions we offer based on (simplicity, Humor, ease of use and story-telling.

hashtag
Quizzes and Exams

Entrench quizzes and exams can measure level of awareness that has been conveyed to the users.

hashtag
Customized Campaigns

Awareness campaigns can be customized and targeted to either specific group of users or an entire department

Zisoft is composed of several independent modules so you can pick and choose which modules you need to deploy. All modules are accessible from the same familiar user interface. The ZiSoft modules are

  1. Learning Management System

  2. Security Awareness Content

  3. Email Phishing Simulator

hashtag
Learning Management System

Think of Zisoft LMS as your own private 'Coursera' or 'Udemy'. You use it to create courses complete with videos, slides, quizzes, exams, and certificates. Then you assign the courses to your employees and monitor their training in real-time. You can assign as many lessons you need to as many employees you need, and you can generate comprehensive reports in a variety of formats and charts.

hashtag
Security Awareness Content

On top of the LMS, Zisoft offers 's security awareness content. These are predefined courses and exams that target security related topics. It offers 'Email Security', 'Data Leakage', 'Device Security', 'Browser Security', among many others.

hashtag
Email Phishing Simulator

You are under a constant stream of phishing attacks whether you believe it or not. If you want to make sure, try our phishing simulator. With this simulator, you can send a 'controlled' and 'harmless' phishing email to a group of your organization users, and you can monitor in real time how many of them fall victim for those attacks. With the simulator, you can generate a report that tells you the percentage of your organization who is prone to phishing attacks, rank the departments according to their vulnerability, and conduct competitions for the employees to encourage them to be better at spotting phishing attacks.

Zinadarrow-up-right