Aperture in Action: How We Solved PostgreSQL Performance Challenges
Principal Architect ( Data & AI) Over 22 yrs. of experience in IT. Global Delivery Models.
Monday, October 16, 2023
References
Sunday, March 26, 2023
Azure , AWS and GCP
Compute:
- AWS EC2
- GCP Compute Engine
Containerization and Orchestration:
- Azure Kubernetes Service (AKS)
- AWS Elastic Kubernetes Service (EKS)
- GCP Kubernetes Engine (GKE)
Serverless Computing:
- Azure Functions
- AWS Lambda
- GCP Cloud Functions
Database:
- Azure SQL Database
- AWS RDS
- GCP Cloud SQL
Big Data and Analytics:
- Azure HDInsight
- AWS EMR
- GCP Dataproc
Storage:
- Azure Storage
- AWS S3
- GCP Cloud Storage
Networking:
- Azure Virtual Network
- AWS VPC
- GCP VPC
Identity and Access Management:
- Azure Active Directory
- AWS IAM
- GCP Identity and Access Management (IAM)
API Management:
- Azure API Management
- AWS API Gateway
- GCP Cloud Endpoints
Load Balancing:
- Azure Load Balancer
- AWS ELB (Elastic Load Balancer)
- GCP Cloud Load Balancing
Friday, January 20, 2023
Sunday, December 4, 2022
AWS Control Tower Enrollment
The AWSControlTowerExecution role is required in the target account for the Control Tower management account to perform various activities. In the above case the item which failed was a service-linked role creation. I have reviewed AWSControlTowerExecution in my test environment for the default logging account and see it has the AdministratorAccess managed policy atached and the following trust relationship: { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::< Control Tower management account ID >:root" }, "Action": "sts:AssumeRole" } ] } In one of the accounts which enrolled correctly please review the AWSControlTowerExecution role and compare with the role in the account which failed to enroll to confirm they are aligned and have the same permissions. - More Information - From the Control Tower documentation - please see resources [1] and [2] Before you can enroll an existing AWS account into AWS Control Tower you must give permission for AWS Control Tower to manage, or govern, the account. AWS Control Tower requires permission to establish trusted access between AWS CloudFormation and AWS Organizations on your behalf, with this trusted access, the AWSControlTowerExecution role conducts activites required to manage each account. To enroll an existing account - these prerequisites are required before you can enroll an account in AWS Control Tower: 1. The AWSControlTowerExecution role must be present in the account you're enrolling. 2. We recommend that the account should not have an AWS Config configuration recorder or delivery channel. These may be deleted or modified through the AWS CLI before you can enroll an account. If you do have a Config Recorder with data which cannot be deleted you can 3. The account that you wish to enroll must exist in the same AWS Organizations organization as the AWS Control Tower management account. The account that exists can be enrolled only into the same organization as the AWS Control Tower management account, in an OU that already is registered with AWS Control Tower. 4. Before you can enroll an existing account in AWS Control Tower, the account must have the following roles, permissions, and trust relationships in place. Otherwise, enrollment will fail. - Role Name: AWSControlTowerExecution - Role Permission: AdministratorAccess (AWS managed policy) - Role Trust Relationship - as above
Thursday, September 1, 2022
Friday, August 26, 2022
Thursday, August 25, 2022
Snowflake - Architecture
Snowflake
It is an analytic data warehouse provided as Software-as-a-Service (SaaS). There is no hardware (virtual or physical) to select, install, or configure, there is no software to install, all ongoing maintenance and tunning is handled by Snowflake.
Database Storage
When data is loaded into Snowflake, Snowflake organizes the data into multiple micro partitions that are structured as an internal optimized, compressed, columnar format. Snowflake stores this optimized data in cloud storage. Data is stored in the cloud storage and works as a shared-disk model thereby providing simplicity in data management. This makes sure users do not have to worry about data distribution across multiple nodes in the shared-nothing model. Snowflake manages all aspects of how this data is stored — the organization, file size, structure, compression, metadata, statistics, and other aspects of data storage are handled by Snowflake.
Query Processing
Query execution is performed in the processing (compute) layer. Snowflake is processing queries using “virtual warehouses”. Snowflake separates the query processing layer from the disk storage. Each virtual warehouse is a Massively Parallel Processing (MPP) compute cluster composed of multiple compute nodes allocated by Snowflake from a cloud provider. Each virtual warehouse is an independent compute cluster that does not share compute resources with other virtual warehouses. As a result, each virtual warehouse has no impact on the performance of other virtual warehouses.
Cloud Services
The cloud services layer is a collection of services that coordinate activities across Snowflake. These services tie together all of the different components of Snowflake in order to process user requests, from login to query dispatch. The cloud services layer also runs on compute instances provisioned by Snowflake from the cloud provider.
Among the services in this layer:
Authentication
Infrastructure management
Metadata management
Query parsing and optimization
Access control
Row-based vs Columnar-based storage organization