[$] Rust code review and netdev

Post Syndicated from jake original https://lwn.net/Articles/949270/

A fast-moving patch set—seemingly the norm for Linux networking
development—seeks to add some Rust abstractions for physical layer
(PHY) drivers. Lots of
review has been done, and the patch set has been reworked
frequently in response to those comments. Unfortunately, the Rust-for-Linux developers are
having trouble keeping up with that pace. There
is, it would appear, something of a disconnect between the two communities’
development practices.

Things That Used to Be Science Fiction (and Aren’t Anymore)

Post Syndicated from Yev original https://www.backblaze.com/blog/things-that-used-to-be-science-fiction-and-arent-anymore/

A decorative image showing a spaceship beaming up the Backblaze logo.

The year is 2023, and the human race has spread across the globe. Nuclear powered flying cars are everywhere, and the first colonies have landed on Mars! [Radio crackles.] 

Okay, so that isn’t exactly how it’s gone down, but in honor of Halloween, the day celebrates the whimsy of all things being possible, let’s talk about things that used to be science fiction and aren’t anymore.

Artificial Intelligence (AI)

Have we gotten reader fatigue from this topic yet? (As technology people by nature, we’re deep in it.) The rise of generative AI over the past year or so has certainly brought this subject into the spotlight, so in some ways it seems “early” to judge all the ways that AI will change things. On the other hand, there are lots of tools and functions we’ve been using for a while that have been powered by AI algorithms, including AI assistants. 

Shout out to this content creator for a hilarious video.

At the risk of not doing this topic justice in this list, I’ll say that there’s plenty of reporting on—and plenty of potential for—AI now and in the future. 

Aliens

This year, the U.S. House Oversight Committee was conducting an investigation on unidentified flying objects (UFOs). While many UFOs turn out to be things like weather balloons and drones designed for home use, well, some apparently aren’t. Three military veterans, including a former intelligence officer, went on record saying that the government has a secret facility where it’s been reverse engineering highly advanced vehicles, and that the U.S. has recovered “non-human biologics” from these crash sites. (Whatever that means—but we all know what that means, right…) 

Here’s the video, if you want to see for yourself. 

Weirdly, the public response was… not much of one. (The last couple of years have been “a year”.) But, chalk this one up as confirmed. 

Space Stations

The list of sci-fi shows and books set on space stations is definitely too long to list item by item. Depending on your age (and we won’t ask you to tell us), you may think of Isaac Asimov’s Foundation series (the books), Star Wars, Zenon, Girl of the 21st Century (or maybe the Zequel?), Babylon 5, or the Expanse. 

Back in the real world, the International Space Station (ISS) has been in orbit since 1998 and runs all manner of scientific experiments. Notably, these experiments include the Alpha Meter Spectrometer (AMS-02) which is designed to detect things like dark matter and antimatter and solve the fundamental mysteries of the universe. (No big deal.) 

For those of us stuck on Earth (for now), you can keep up with the ISS in lots of ways. Check out this map that lets you track whether you can see it from your current location. (Wave the next time it floats over!) And, of course, there are some fun YouTube channels streaming the ISS. Here’s just one:  

Universal Translators

Okay, universal translators is the cool sci-fi name, but if you want the actual, machine learning (ML) name, folks call that interlingual machine translation. Translation may seem straightforward at first glance, but, as this legendary Star Trek episode demonstrates, things are not always so simple. 

And sure, it’s easy to say that this is an unreasonable standard given that most human languages are known—but are they? Native language reclamation projects like those from the Cherokee and Oneida tribes demonstrate how easy it is to lose the nuance of a language without those who natively speak it. Advanced degrees in poetry translation, like this Masters of Fine Arts from the University of Iowa (go Hawks!), help specialists grapple with and capture the nuance between smell, scent, odor, and stench across different languages. And, add to those challenges that translators also have to contend with the wide array of accents in each language. 

With that in mind, it’s pretty amazing that we now have translation devices that can be as small as earbuds. Most still require an internet connection, and some are more effective than others, but it’s safe to say we live in the future, folks. Case in point: I had a wine tasting in Tuscany a few months ago where we used Google Translate exclusively to speak with the winemaker and proprietor. 

iPads

“What?” you say. “iPads are so normal!” Sure, now you’re used to touch screens. But, let me present you with this image from a show that is definitely considered science fiction:

Shockingly, not an iPad.

Yes, folks, that’s Captain Jean Luc Picard from Star Trek: The Next Generation. And here’s a later one, from Star Trek: Deep Space Nine. 

These are plans for the arboretum, so Keiko is probably dropping some knowledge.

Star Trek wikis describe the details of a Personal Access Display Device, or PADD, including a breakdown of how they changed over time in the series. Uhura even had a “digital clipboard” in the original Star Trek series: 

We’d have to revisit the episode to see what this masterful side-eye is about.

And, just for the record, we’ll always have a soft spot in our heart for Chief O’Brien’s love of backups.

Robot Domestic Laborer

If you were ever a fan of this lovely lady—

Rosie the Robot, of course, longtime employee and friend of The Jetsons.

—then you’ll be happy to know that your robot caretaker(s) have arrived. Just as Rosie was often seen using a separate vacuum cleaner, they’re not all integrated into one charming package—yet. If you’re looking for the full suite of domestic help, you’ll have to get a few different products. 

First up, the increasingly popular (and, as time goes on, increasingly affordable) robot vacuum. There are tons of models, from the simple vacuum to the vacuum/mop. While they’re reportedly prone to some pretty hilarious (horrific?) accidents, having one or several of these disk-shaped appliances saves lots of folks lots of time. Bonus: just add cat, and you have adorable internet content in the comfort of your own home. 

Next up, the Snoo, marketed as a smart bassinet, will track everything baby, then use that data to help said baby sleep. Parents who can afford to buy or rent this item sing its praises, noting that you can swaddle the baby for safety and review the data collected to better care for your child. 

And, don’t forget to round out your household with this charming toilet cleaning robot. 

Robot Bartenders

In this iconic scene from The Fifth Element, Luc Besson’s 1997 masterpiece, a drunken priest waxes poetic about a perfect being (spoiler: she’s a woman) to a robot bartender. “Do you know what I mean?” the priest asks. The robot shakes its head. “Do you want some more?”

Start at about 2:00 minutes.

These days, you can actually visit robot bartenders in Las Vegas or on Royal Caribbean cruise ships. Or, if you’re looking for a robot bartender that does more than serve up a great Sazerac, you can turn to Brillo, a robot bartender powered by AI who can also engage in complex dialogue. 

Please politely ignore that his face is the stuff of nightmares…it’s what’s on the inside (and in the glass) that counts.

And, if leaving your house sounds terrible, don’t worry: you can also get a specialized appliance for your home. 

It’s a Good Time to Be Cloud Storage

One thing that all these current (and future) tech developments have in common: you never see them carting something trailing wires. That means (you guessed it!) that they’re definitely using a central data source delivered via wireless network, a.k.a the cloud.

After you’ve done all the work to, say, study an alien life form or design and program the perfect cocktail, you definitely don’t want to do that work twice. And, do you see folks slowing down to schedule a backup? Definitely not. Easy, online, always updating backups are the way to go.

So, we’re not going to say Backblaze Computer Backup makes the list as a sci-fi idea that we’ve made real; we’re just saying that it’s probably one of those things that people leave off-stage, like characters brushing their teeth on a regular basis. And, past or future, we’re here to remind you that you should always back up your data.

Backup Is Past, Present, and Future 

Things We Still Want (Get On It, Scientists!) 

Everything we just listed is really cool and all, but let’s not forget that we are still waiting for some very important things. Help us out scientists; we really need these: 

  • Flying cars
  • Faster than light space travel
  • Teleportation 
  • Matter replicators (3D printing isn’t quite there)

We feel compelled to add that, despite our jocular tone, the line between science and science fiction has always been something of a thin one. Studies have shown and inventors like Motorola’s Martin Cooper have gone on record pointing to their inspiration in the imaginative works of science fiction. 

So, that leaves us standing by for new developments! Let’s see what 2024 brings. Let us know in the comments section what cool tech in your life fits this brief.

The post Things That Used to Be Science Fiction (and Aren’t Anymore) appeared first on Backblaze Blog | Cloud Storage & Cloud Backup.

Use Snowflake with Amazon MWAA to orchestrate data pipelines

Post Syndicated from Payal Singh original https://aws.amazon.com/blogs/big-data/use-snowflake-with-amazon-mwaa-to-orchestrate-data-pipelines/

This blog post is co-written with James Sun from Snowflake.

Customers rely on data from different sources such as mobile applications, clickstream events from websites, historical data, and more to deduce meaningful patterns to optimize their products, services, and processes. With a data pipeline, which is a set of tasks used to automate the movement and transformation of data between different systems, you can reduce the time and effort needed to gain insights from the data. Apache Airflow and Snowflake have emerged as powerful technologies for data management and analysis.

Amazon Managed Workflows for Apache Airflow (Amazon MWAA) is a managed workflow orchestration service for Apache Airflow that you can use to set up and operate end-to-end data pipelines in the cloud at scale. The Snowflake Data Cloud provides a single source of truth for all your data needs and allows your organizations to store, analyze, and share large amounts of data. The Apache Airflow open-source community provides over 1,000 pre-built operators (plugins that simplify connections to services) for Apache Airflow to build data pipelines.

In this post, we provide an overview of orchestrating your data pipeline using Snowflake operators in your Amazon MWAA environment. We define the steps needed to set up the integration between Amazon MWAA and Snowflake. The solution provides an end-to-end automated workflow that includes data ingestion, transformation, analytics, and consumption.

Overview of solution

The following diagram illustrates our solution architecture.

Solution Overview

The data used for transformation and analysis is based on the publicly available New York Citi Bike dataset. The data (zipped files), which includes rider demographics and trip data, is copied from the public Citi Bike Amazon Simple Storage Service (Amazon S3) bucket in your AWS account. Data is decompressed and stored in a different S3 bucket (transformed data can be stored in the same S3 bucket where data was ingested, but for simplicity, we’re using two separate S3 buckets). The transformed data is then made accessible to Snowflake for data analysis. The output of the queried data is published to Amazon Simple Notification Service (Amazon SNS) for consumption.

Amazon MWAA uses a directed acyclic graph (DAG) to run the workflows. In this post, we run three DAGs:

The following diagram illustrates this workflow.

DAG run workflow

See the GitHub repo for the DAGs and other files related to the post.

Note that in this post, we’re using a DAG to create a Snowflake connection, but you can also create the Snowflake connection using the Airflow UI or CLI.

Prerequisites

To deploy the solution, you should have a basic understanding of Snowflake and Amazon MWAA with the following prerequisites:

  • An AWS account in an AWS Region where Amazon MWAA is supported.
  • A Snowflake account with admin credentials. If you don’t have an account, sign up for a 30-day free trial. Select the Snowflake enterprise edition for the AWS Cloud platform.
  • Access to Amazon MWAA, Secrets Manager, and Amazon SNS.
  • In this post, we’re using two S3 buckets, called airflow-blog-bucket-ACCOUNT_ID and citibike-tripdata-destination-ACCOUNT_ID. Amazon S3 supports global buckets, which means that each bucket name must be unique across all AWS accounts in all the Regions within a partition. If the S3 bucket name is already taken, choose a different S3 bucket name. Create the S3 buckets in your AWS account. We upload content to the S3 bucket later in the post. Replace ACCOUNT_ID with your own AWS account ID or any other unique identifier. The bucket details are as follows:
    • airflow-blog-bucket-ACCOUNT_ID – The top-level bucket for Amazon MWAA-related files.
    • airflow-blog-bucket-ACCOUNT_ID/requirements – The bucket used for storing the requirements.txt file needed to deploy Amazon MWAA.
    • airflow-blog-bucket-ACCOUNT_ID/dags – The bucked used for storing the DAG files to run workflows in Amazon MWAA.
    • airflow-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries – The bucket used for storing the Snowflake SQL queries.
    • citibike-tripdata-destination-ACCOUNT_ID – The bucket used for storing the transformed dataset.

When implementing the solution in this post, replace references to airflow-blog-bucket-ACCOUNT_ID and citibike-tripdata-destination-ACCOUNT_ID with the names of your own S3 buckets.

Set up the Amazon MWAA environment

First, you create an Amazon MWAA environment. Before deploying the environment, upload the requirements file to the airflow-blog-bucket-ACCOUNT_ID/requirements S3 bucket. The requirements file is based on Amazon MWAA version 2.6.3. If you’re testing on a different Amazon MWAA version, update the requirements file accordingly.

Complete the following steps to set up the environment:

  1. On the Amazon MWAA console, choose Create environment.
  2. Provide a name of your choice for the environment.
  3. Choose Airflow version 2.6.3.
  4. For the S3 bucket, enter the path of your bucket (s3:// airflow-blog-bucket-ACCOUNT_ID).
  5. For the DAGs folder, enter the DAGs folder path (s3:// airflow-blog-bucket-ACCOUNT_ID/dags).
  6. For the requirements file, enter the requirements file path (s3:// airflow-blog-bucket-ACCOUNT_ID/ requirements/requirements.txt).
  7. Choose Next.
  8. Under Networking, choose your existing VPC or choose Create MWAA VPC.
  9. Under Web server access, choose Public network.
  10. Under Security groups, leave Create new security group selected.
  11. For the Environment class, Encryption, and Monitoring sections, leave all values as default.
  12. In the Airflow configuration options section, choose Add custom configuration value and configure two values:
    1. Set Configuration option to secrets.backend and Custom value to airflow.providers.amazon.aws.secrets.secrets_manager.SecretsManagerBackend.
    2. Set Configuration option to secrets.backend_kwargs and Custom value to {"connections_prefix" : "airflow/connections", "variables_prefix" : "airflow/variables"}.                      Configuration options for secret manager
  13. In the Permissions section, leave the default settings and choose Create a new role.
  14. Choose Next.
  15. When the Amazon MWAA environment us available, assign S3 bucket permissions to the AWS Identity and Access Management (IAM) execution role (created during the Amazon MWAA install).

MWAA execution role
This will direct you to the created execution role on the IAM console.

For testing purposes, you can choose Add permissions and add the managed AmazonS3FullAccess policy to the user instead of providing restricted access. For this post, we provide only the required access to the S3 buckets.

  1. On the drop-down menu, choose Create inline policy.
  2. For Select Service, choose S3.
  3. Under Access level, specify the following:
    1. Expand List level and select ListBucket.
    2. Expand Read level and select GetObject.
    3. Expand Write level and select PutObject.
  4. Under Resources, choose Add ARN.
  5. On the Text tab, provide the following ARNs for S3 bucket access:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID (use your own bucket).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID (use your own bucket).
    3. arn:aws:s3:::tripdata (this is the public S3 bucket where the Citi Bike dataset is stored; use the ARN as specified here).
  6. Under Resources, choose Add ARN.
  7. On the Text tab, provide the following ARNs for S3 bucket access:
    1. arn:aws:s3:::airflow-blog-bucket-ACCOUNT_ID/* (make sure to include the asterisk).
    2. arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID /*.
    3. arn:aws:s3:::tripdata/* (this is the public S3 bucket where the Citi Bike dataset is stored, use the ARN as specified here).
  8. Choose Next.
  9. For Policy name, enter S3ReadWrite.
  10. Choose Create policy.
  11. Lastly, provide Amazon MWAA with permission to access Secrets Manager secret keys.

This step provides the Amazon MWAA execution role for your Amazon MWAA environment read access to the secret key in Secrets Manager.

The execution role should have the policies MWAA-Execution-Policy*, S3ReadWrite, and SecretsManagerReadWrite attached to it.

MWAA execution role policies

When the Amazon MWAA environment is available, you can sign in to the Airflow UI from the Amazon MWAA console using link for Open Airflow UI.

Airflow UI access

Set up an SNS topic and subscription

Next, you create an SNS topic and add a subscription to the topic. Complete the following steps:

  1. On the Amazon SNS console, choose Topics from the navigation pane.
  2. Choose Create topic.
  3. For Topic type, choose Standard.
  4. For Name, enter mwaa_snowflake.
  5. Leave the rest as default.
  6. After you create the topic, navigate to the Subscriptions tab and choose Create subscription.
    SNS topic
  7. For Topic ARN, choose mwaa_snowflake.
  8. Set the protocol to Email.
  9. For Endpoint, enter your email ID (you will get a notification in your email to accept the subscription).

By default, only the topic owner can publish and subscribe to the topic, so you need to modify the Amazon MWAA execution role access policy to allow Amazon SNS access.

  1. On the IAM console, navigate to the execution role you created earlier.
  2. On the drop-down menu, choose Create inline policy.
    MWAA execution role SNS policy
  3. For Select service, choose SNS.
  4. Under Actions, expand Write access level and select Publish.
  5. Under Resources, choose Add ARN.
  6. On the Text tab, specify the ARN arn:aws:sns:<<region>>:<<our_account_ID>>:mwaa_snowflake.
  7. Choose Next.
  8. For Policy name, enter SNSPublishOnly.
  9. Choose Create policy.

Configure a Secrets Manager secret

Next, we set up Secrets Manager, which is a supported alternative database for storing Snowflake connection information and credentials.

To create the connection string, the Snowflake host and account name is required. Log in to your Snowflake account, and under the Worksheets menu, choose the plus sign and select SQL worksheet. Using the worksheet, run the following SQL commands to find the host and account name.

Run the following query for the host name:

WITH HOSTLIST AS 
(SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'"','') AS HOST
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT_REGIONLESS';

Run the following query for the account name:

WITH HOSTLIST AS 
(SELECT * FROM TABLE(FLATTEN(INPUT => PARSE_JSON(SYSTEM$allowlist()))))
SELECT REPLACE(VALUE:host,'.snowflakecomputing.com','') AS ACCOUNT
FROM HOSTLIST
WHERE VALUE:type = 'SNOWFLAKE_DEPLOYMENT';

Next, we configure the secret in Secrets Manager.

  1. On the Secrets Manager console, choose Store a new secret.
  2. For Secret type, choose Other type of secret.
  3. Under Key/Value pairs, choose the Plaintext tab.
  4. In the text field, enter the following code and modify the string to reflect your Snowflake account information:

{"host": "<<snowflake_host_name>>", "account":"<<snowflake_account_name>>","user":"<<snowflake_username>>","password":"<<snowflake_password>>","schema":"mwaa_schema","database":"mwaa_db","role":"accountadmin","warehouse":"dev_wh"}

For example:

{"host": "xxxxxx.snowflakecomputing.com", "account":"xxxxxx" ,"user":"xxxxx","password":"*****","schema":"mwaa_schema","database":"mwaa_db", "role":"accountadmin","warehouse":"dev_wh"}

The values for the database name, schema name, and role should be as mentioned earlier. The account, host, user, password, and warehouse can differ based on your setup.

Secret information

Choose Next.

  1. For Secret name, enter airflow/connections/snowflake_accountadmin.
  2. Leave all other values as default and choose Next.
  3. Choose Store.

Take note of the Region in which the secret was created under Secret ARN. We later define it as a variable in the Airflow UI.

Configure Snowflake access permissions and IAM role

Next, log in to your Snowflake account. Ensure the account you are using has account administrator access. Create a SQL worksheet. Under the worksheet, create a warehouse named dev_wh.

The following is an example SQL command:

CREATE OR REPLACE WAREHOUSE dev_wh 
 WITH WAREHOUSE_SIZE = 'xsmall' 
 AUTO_SUSPEND = 60 
 INITIALLY_SUSPENDED = true
 AUTO_RESUME = true
 MIN_CLUSTER_COUNT = 1
 MAX_CLUSTER_COUNT = 5;

For Snowflake to read data from and write data to an S3 bucket referenced in an external (S3 bucket) stage, a storage integration is required. Follow the steps defined in Option 1: Configuring a Snowflake Storage Integration to Access Amazon S3(only perform Steps 1 and 2, as described in this section).

Configure access permissions for the S3 bucket

While creating the IAM policy, a sample policy document code is needed (see the following code), which provides Snowflake with the required permissions to load or unload data using a single bucket and folder path. The bucket name used in this post is citibike-tripdata-destination-ACCOUNT_ID. You should modify it to reflect your bucket name.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObject",
        "s3:GetObjectVersion",
        "s3:DeleteObject",
        "s3:DeleteObjectVersion"
      ],
      "Resource": "arn:aws:s3::: citibike-tripdata-destination-ACCOUNT_ID/*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "s3:ListBucket",
        "s3:GetBucketLocation"
      ],
      "Resource": "arn:aws:s3:::citibike-tripdata-destination-ACCOUNT_ID"
    }
  ]
}

Create the IAM role

Next, you create the IAM role to grant privileges on the S3 bucket containing your data files. After creation, record the Role ARN value located on the role summary page.

Snowflake IAM role

Configure variables

Lastly, configure the variables that will be accessed by the DAGs in Airflow. Log in to the Airflow UI and on the Admin menu, choose Variables and the plus sign.

Airflow variables

Add four variables with the following key/value pairs:

  • Key aws_role_arn with value <<snowflake_aws_role_arn>> (the ARN for role mysnowflakerole noted earlier)
  • Key destination_bucket with value <<bucket_name>> (for this post, the bucket used in citibike-tripdata-destination-ACCOUNT_ID)
  • Key target_sns_arn with value <<sns_Arn>> (the SNS topic in your account)
  • Key sec_key_region with value <<region_of_secret_deployment>> (the Region where the secret in Secrets Manager was created)

The following screenshot illustrates where to find the SNS topic ARN.

SNS topic ARN

The Airflow UI will now have the variables defined, which will be referred to by the DAGs.

Airflow variables list

Congratulations, you have completed all the configuration steps.

Run the DAG

Let’s look at how to run the DAGs. To recap:

  • DAG1 (create_snowflake_connection_blog.py) – Creates the Snowflake connection in Apache Airflow. This connection will be used to authenticate with Snowflake. The Snowflake connection string is stored in Secrets Manager, which is referenced in the DAG file.
  • DAG2 (create-snowflake_initial-setup_blog.py) – Creates the database, schema, storage integration, and stage in Snowflake.
  • DAG3 (run_mwaa_datapipeline_blog.py) – Runs the data pipeline, which will unzip files from the source public S3 bucket and copy them to the destination S3 bucket. The next task will create a table in Snowflake to store the data. Then the data from the destination S3 bucket will be copied into the table using a Snowflake stage. After the data is successfully copied, a view will be created in Snowflake, on top of which the SQL queries will be run.

To run the DAGs, complete the following steps:

  1. Upload the DAGs to the S3 bucket airflow-blog-bucket-ACCOUNT_ID/dags.
  2. Upload the SQL query files to the S3 bucket airflow-blog-bucket-ACCOUNT_ID/dags/mwaa_snowflake_queries.
  3. Log in to the Apache Airflow UI.
  4. Locate DAG1 (create_snowflake_connection_blog), un-pause it, and choose the play icon to run it.

You can view the run state of the DAG using the Grid or Graph view in the Airflow UI.

Dag1 run

After DAG1 runs, the Snowflake connection snowflake_conn_accountadmin is created on the Admin, Connections menu.

  1. Locate and run DAG2 (create-snowflake_initial-setup_blog).

Dag2 run

After DAG2 runs, the following objects are created in Snowflake:

  • The database mwaa_db
  • The schema mwaa_schema
  • The storage integration mwaa_citibike_storage_int
  • The stage mwaa_citibike_stg

Before running the final DAG, the trust relationship for the IAM user needs to be updated.

  1. Log in to your Snowflake account using your admin account credentials.
  2. Open your SQL worksheet created earlier and run the following command:
DESC INTEGRATION mwaa_citibike_storage_int;

mwaa_citibike_storage_int is the name of the integration created by the DAG2 in the previous step.

From the output, record the property value of the following two properties:

  • STORAGE_AWS_IAM_USER_ARN – The IAM user created for your Snowflake account.
  • STORAGE_AWS_EXTERNAL_ID – The external ID that is needed to establish a trust relationship.

Now we grant the Snowflake IAM user permissions to access bucket objects.

  1. On the IAM console, choose Roles in the navigation pane.
  2. Choose the role mysnowflakerole.
  3. On the Trust relationships tab, choose Edit trust relationship.
  4. Modify the policy document with the DESC STORAGE INTEGRATION output values you recorded. For example:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::5xxxxxxxx:user/mgm4-s- ssca0079"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "AWSPARTNER_SFCRole=4_vsarJrupIjjJh77J9Nxxxx/j98="
        }
      }
    }
  ]
}

The AWS role ARN and ExternalId will be different for your environment based on the output of the DESC STORAGE INTEGRATION query

Trust relationship

  1. Locate and run the final DAG (run_mwaa_datapipeline_blog).

At the end of the DAG run, the data is ready for querying. In this example, the query (finding the top start and destination stations) is run as part of the DAG and the output can be viewed from the Airflow XCOMs UI.

Xcoms

In the DAG run, the output is also published to Amazon SNS and based on the subscription, an email notification is sent out with the query output.

Email

Another method to visualize the results is directly from the Snowflake console using the Snowflake worksheet. The following is an example query:

SELECT START_STATION_NAME,
COUNT(START_STATION_NAME) C FROM MWAA_DB.MWAA_SCHEMA.CITIBIKE_VW 
GROUP BY 
START_STATION_NAME ORDER BY C DESC LIMIT 10;

Snowflake visual

There are different ways to visualize the output based on your use case.

As we observed, DAG1 and DAG2 need to be run only one time to set up the Amazon MWAA connection and Snowflake objects. DAG3 can be scheduled to run every week or month. With this solution, the user examining the data doesn’t have to log in to either Amazon MWAA or Snowflake. You can have an automated workflow triggered on a schedule that will ingest the latest data from the Citi Bike dataset and provide the top start and destination stations for the given dataset.

Clean up

To avoid incurring future charges, delete the AWS resources (IAM users and roles, Secrets Manager secrets, Amazon MWAA environment, SNS topics and subscription, S3 buckets) and Snowflake resources (database, stage, storage integration, view, tables) created as part of this post.

Conclusion

In this post, we demonstrated how to set up an Amazon MWAA connection for authenticating to Snowflake as well as to AWS using AWS user credentials. We used a DAG to automate creating the Snowflake objects such as database, tables, and stage using SQL queries. We also orchestrated the data pipeline using Amazon MWAA, which ran tasks related to data transformation as well as Snowflake queries. We used Secrets Manager to store Snowflake connection information and credentials and Amazon SNS to publish the data output for end consumption.

With this solution, you have an automated end-to-end orchestration of your data pipeline encompassing ingesting, transformation, analysis, and data consumption.

To learn more, refer to the following resources:


About the authors

Payal Singh is a Partner Solutions Architect at Amazon Web Services, focused on the Serverless platform. She is responsible for helping partner and customers modernize and migrate their applications to AWS.

James Sun is a Senior Partner Solutions Architect at Snowflake. He actively collaborates with strategic cloud partners like AWS, supporting product and service integrations, as well as the development of joint solutions. He has held senior technical positions at tech companies such as EMC, AWS, and MapR Technologies. With over 20 years of experience in storage and data analytics, he also holds a PhD from Stanford University.

Bosco Albuquerque is a Sr. Partner Solutions Architect at AWS and has over 20 years of experience working with database and analytics products from enterprise database vendors and cloud providers. He has helped technology companies design and implement data analytics solutions and products.

Manuj Arora is a Sr. Solutions Architect for Strategic Accounts in AWS. He focuses on Migration and Modernization capabilities and offerings in AWS. Manuj has worked as a Partner Success Solutions Architect in AWS over the last 3 years and worked with partners like Snowflake to build solution blueprints that are leveraged by the customers. Outside of work, he enjoys traveling, playing tennis and exploring new places with family and friends.

Prepare your AWS workloads for the “Operational risks and resilience – banks” FINMA Circular

Post Syndicated from Margo Cronin original https://aws.amazon.com/blogs/security/prepare-your-aws-workloads-for-the-operational-risks-and-resilience-banks-finma-circular/

In December 2022, FINMA, the Swiss Financial Market Supervisory Authority, announced a fully revised circular called Operational risks and resilience – banks that will take effect on January 1, 2024. The circular will replace the Swiss Bankers Association’s Recommendations for Business Continuity Management (BCM), which is currently recognized as a minimum standard. The new circular also adopts the revised principles for managing operational risks, and the new principles on operational resilience, that the Basel Committee on Banking Supervision published in March 2021.

In this blog post, we share key considerations for AWS customers and regulated financial institutions to help them prepare for, and align to, the new circular.

AWS previously announced the publication of the AWS User Guide to Financial Services Regulations and Guidelines in Switzerland. The guide refers to certain rules applicable to financial institutions in Switzerland, including banks, insurance companies, stock exchanges, securities dealers, portfolio managers, trustees, and other financial entities that FINMA oversees (directly or indirectly).

FINMA has previously issued the following circulars to help regulated financial institutions understand approaches to due diligence, third party management, and key technical and organizational controls to be implemented in cloud outsourcing arrangements, particularly for material workloads:

  • 2018/03 FINMA Circular Outsourcing – banks and insurers (31.10.2019)
  • 2008/21 FINMA Circular Operational Risks – Banks (31.10.2019) – Principal 4 Technology Infrastructure
  • 2008/21 FINMA Circular Operational Risks – Banks (31.10.2019) – Appendix 3 Handling of electronic Client Identifying Data
  • 2013/03 Auditing (04.11.2020) – Information Technology (21.04.2020)
  • BCM minimum standards proposed by the Swiss Insurance Association (01.06.2015) and Swiss Bankers Association (29.08.2013)

Operational risk management: Critical data

The circular defines critical data as follows:

“Critical data are data that, in view of the institution’s size, complexity, structure, risk profile and business model, are of such crucial significance that they require increased security measures. These are data that are crucial for the successful and sustainable provision of the institution’s services or for regulatory purposes. When assessing and determining the criticality of data, the confidentiality as well as the integrity and availability must be taken into account. Each of these three aspects can determine whether data is classified as critical.”

This definition is consistent with the AWS approach to privacy and security. We believe that for AWS to realize its full potential, customers must have control over their data. This includes the following commitments:

  • Control over the location of your data
  • Verifiable control over data access
  • Ability to encrypt everything everywhere
  • Resilience of AWS

These commitments further demonstrate our dedication to securing your data: it’s our highest priority. We implement rigorous contractual, technical, and organizational measures to help protect the confidentiality, integrity, and availability of your content regardless of which AWS Region you select. You have complete control over your content through powerful AWS services and tools that you can use to determine where to store your data, how to secure it, and who can access it.

You also have control over the location of your content on AWS. For example, in Europe, at the time of publication of this blog post, customers can deploy their data into any of eight Regions (for an up-to-date list of Regions, see AWS Global Infrastructure). One of these Regions is the Europe (Zurich) Region, also known by its API name ‘eu-central-2’, which customers can use to store data in Switzerland. Additionally, Swiss customers can rely on the terms of the AWS Swiss Addendum to the AWS Data Processing Addendum (DPA), which applies automatically when Swiss customers use AWS services to process personal data under the new Federal Act on Data Protection (nFADP).

AWS continually monitors the evolving privacy, regulatory, and legislative landscape to help identify changes and determine what tools our customers might need to meet their compliance requirements. Maintaining customer trust is an ongoing commitment. We strive to inform you of the privacy and security policies, practices, and technologies that we’ve put in place. Our commitments, as described in the Data Privacy FAQ, include the following:

  • Access – As a customer, you maintain full control of your content that you upload to the AWS services under your AWS account, and responsibility for configuring access to AWS services and resources. We provide an advanced set of access, encryption, and logging features to help you do this effectively (for example, AWS Identity and Access Management, AWS Organizations, and AWS CloudTrail). We provide APIs that you can use to configure access control permissions for the services that you develop or deploy in an AWS environment. We never use your content or derive information from it for marketing or advertising purposes.
  • Storage – You choose the AWS Regions in which your content is stored. You can replicate and back up your content in more than one Region. We will not move or replicate your content outside of your chosen AWS Regions except as agreed with you.
  • Security – You choose how your content is secured. We offer you industry-leading encryption features to protect your content in transit and at rest, and we provide you with the option to manage your own encryption keys. These data protection features include:
  • Disclosure of customer content – We will not disclose customer content unless we’re required to do so to comply with the law or a binding order of a government body. If a governmental body sends AWS a demand for your customer content, we will attempt to redirect the governmental body to request that data directly from you. If compelled to disclose your customer content to a governmental body, we will give you reasonable notice of the demand to allow the customer to seek a protective order or other appropriate remedy, unless AWS is legally prohibited from doing so.
  • Security assurance – We have developed a security assurance program that uses current recommendations for global privacy and data protection to help you operate securely on AWS, and to make the best use of our security control environment. These security protections and control processes are independently validated by multiple third-party independent assessments, including the FINMA International Standard on Assurance Engagements (ISAE) 3000 Type II attestation report.

Additionally, FINMA guidelines lay out requirements for the written agreement between a Swiss financial institution and its service provider, including access and audit rights. For Swiss financial institutions that run regulated workloads on AWS, we offer the Swiss Financial Services Addendum to address the contractual and audit requirements of the FINMA guidelines. We also provide these institutions the ability to comply with the audit requirements in the FINMA guidelines through the AWS Security & Audit Series, including participation in an Audit Symposium, to facilitate customer audits. To help align with regulatory requirements and expectations, our FINMA addendum and audit program incorporate feedback that we’ve received from a variety of financial supervisory authorities across EU member states. To learn more about the Swiss Financial Services addendum or about the audit engagements offered by AWS, reach out to your AWS account team.

Resilience

Customers need control over their workloads and high availability to help prepare for events such as supply chain disruptions, network interruptions, and natural disasters. Each AWS Region is composed of multiple Availability Zones (AZs). An Availability Zone is one or more discrete data centers with redundant power, networking, and connectivity in an AWS Region. To better isolate issues and achieve high availability, you can partition applications across multiple AZs in the same Region. If you are running workloads on premises or in intermittently connected or remote use cases, you can use our services that provide specific capabilities for offline data and remote compute and storage. We will continue to enhance our range of sovereign and resilient options, to help you sustain operations through disruption or disconnection.

FINMA incorporates the principles of operational resilience in the newest circular 2023/01. In line with the efforts of the European Commission’s proposal for the Digital Operational Resilience Act (DORA), FINMA outlines requirements for regulated institutions to identify critical functions and their tolerance for disruption. Continuity of service, especially for critical economic functions, is a key prerequisite for financial stability. AWS recognizes that financial institutions need to comply with sector-specific regulatory obligations and requirements regarding operational resilience. AWS has published the whitepaper Amazon Web Services’ Approach to Operational Resilience in the Financial Sector and Beyond, in which we discuss how AWS and customers build for resiliency on the AWS Cloud. AWS provides resilient infrastructure and services, which financial institution customers can rely on as they design their applications to align with FINMA regulatory and compliance obligations.

AWS previously announced the third issuance of the FINMA ISAE 3000 Type II attestation report. Customers can access the entire report in AWS Artifact. To learn more about the list of certified services and Regions, see the FINMA ISAE 3000 Type 2 Report and AWS Services in Scope for FINMA.

AWS is committed to adding new services into our future FINMA program scope based on your architectural and regulatory needs. If you have questions about the FINMA report, or how your workloads on AWS align to the FINMA obligations, contact your AWS account team. We will also help support customers as they look for new ways to experiment, remain competitive, meet consumer expectations, and develop new products and services on AWS that align with the new regulatory framework.

To learn more about our compliance, security programs and common privacy and data protection considerations, see AWS Compliance Programs and the dedicated AWS Compliance Center for Switzerland. As always, we value your feedback and questions; reach out to the AWS Compliance team through the Contact Us page.

If you have feedback about this post, submit comments in the Comments section below. If you have questions about this post, start a new thread on the Security, Identity, & Compliance re:Post or contact AWS Support.

Margo Cronin

Margo Cronin

Margo is an EMEA Principal Solutions Architect specializing in security and compliance. She is based out of Zurich, Switzerland. Her interests include security, privacy, cryptography, and compliance. She is passionate about her work unblocking security challenges for AWS customers, enabling their successful cloud journeys. She is an author of AWS User Guide to Financial Services Regulations and Guidelines in Switzerland.

Raphael Fuchs

Raphael Fuchs

Raphael is a Senior Security Solutions Architect based in Zürich, Switzerland, who helps AWS Financial Services customers meet their security and compliance objectives in the AWS Cloud. Raphael has a background as Chief Information Security Officer in the Swiss FSI sector and is an author of AWS User Guide to Financial Services Regulations and Guidelines in Switzerland.

Идва ли краят на атаките срещу медиите в България? Адвокатът на Биволъ представи съдебните дела срещу медията пред International Press Institute

Post Syndicated from Николай Марченко original https://bivol.bg/ipi_webinar_media.html

вторник 31 октомври 2023


Съдебните дела тип „Шамар“ (т.нар. SLAPP-ове*) срещу Сайта за разследващата журналистика „Биволъ“ и колегите от BIRD.bg, „Медиапул“ и „Капитал“ бяха представени по време на уебинара на International Press Institute (IPI)…

Security updates for Tuesday

Post Syndicated from corbet original https://lwn.net/Articles/949391/

Security updates have been issued by Debian (jetty9, node-browserify-sign, request-tracker4, and request-tracker5), Fedora (golang-github-altree-bigfloat, golang-github-seancfoley-bintree, golang-github-seancfoley-ipaddress, kitty, slurm, and thunderbird), Gentoo (ConnMan, libxslt, and Salt), Mageia (chromium-browser-stable), Red Hat (firefox, libguestfs-winsupport, and thunderbird), SUSE (clamav, gcc13, gstreamer-plugins-bad, icu73_2, java-17-openjdk, nodejs10, poppler, python-Werkzeug, redis, thunderbird, webkit2gtk3, xorg-x11-server, and xwayland), and Ubuntu (kernel, linux-aws, linux-azure, linux-gcp, linux-oracle, linux-raspi, linux-iot, linux-raspi, linux-raspi-5.4, and mysql-8.0).

Coding futures: Celebrating our educational partnership in Telangana

Post Syndicated from Mamta Manaktala original https://www.raspberrypi.org/blog/tswreis-coding-academy-computing-education-partnership-telangana/

On September 29 2023, amidst much excitement and enthusiasm, a significant event took place at a unique school in Moinabad, Telangana: the teams of the Raspberry Pi Foundation and Telangana Social Welfare Residential Educational Institutions Society (TSWREIS) gathered to celebrate our partnership on the esteemed Coding Academy of TSWREIS.

This event marked a special project for us where we are piloting a distinctive, progression-based computing curriculum in a government school and a degree college in India.

A group of female students at the Coding Academy in Telangana.

Partnering with TSWREIS to bring computing education to Telangana

At the Foundation, our goal is to work closely with schools, tailoring our offerings to their contexts. Our objective is to design and evaluate unique learning experiences by integrating content from our diverse range of high-quality educational products. Through these efforts, we aim to drive significant advancements in education and technology, benefiting both students and education systems across the world.

TSWREIS manages 268 residential educational institutions in Telangana, with a primary focus on delivering quality education to under-resourced young people, particularly children from scheduled castes and tribes in rural areas. Among these institutions is the Coding Academy school, located in Moinabad, which operates as a fully residential co-ed school for grades 6 to 12, accommodating around 800 students. Additionally, TSWREIS oversees another centre of excellence, the Coding Academy degree college in Shamirpet catering to 600 undergraduate female students.

We joined forces with TSWREIS to form a collaborative partnership with their Coding Academy units at both high school and college. We’re committed to sharing our expertise in computing and coding curriculum for students from Grade 6 to intermediate at the school, and across all courses at the college.

Our computing curriculum encompasses computer science, information technology, and digital literacy, and all its materials have been thoroughly researched and tested in the UK. Based on our 12 pedagogical principles, our curriculum ensures a project-based and holistic approach to learning. We also plan to provide national and international avenues for the Coding Academy students to showcase their learnings, for example through Coolest Projects, the world-leading, global technology showcase for young creators that we host every year. 

The exciting model for our partnership with TSWREIS

We took on the challenge of directly delivering a comprehensive curriculum at the Coding Academy school and college through our own educators, exclusively hired and trained for this project. This is an exciting new approach for us, because up to this point, we have never directly delivered a curriculum anywhere in the world. However, we know we have created a world-class computing curriculum for educators in formal (and non-formal) settings, and we have many years’ experience of training teachers, so we are well-prepared to face this project and its potential challenges head-on and make it a success.

A group of people from the Raspberry Pi Foundation at the Coding Academy in Telangana.

To begin the project, our team members based in India conducted a thorough study of the Coding Academy students’ interests and learning levels. Based on this, our Curriculum team in the UK and India customised and localised the content in our curriculum. We will be observing the curriculum’s delivery in classrooms and collecting students’ responses, and based on this data we’ll further refine the localised curriculum. 

Throughout the project’s lifespan, we’ll measure the effectiveness of our curriculum and the impact of learning on the students. To do this, we’ll collect data from classroom observations, periodic assessments, and focused group discussions with students and educators.

A group of male students at the Coding Academy in Telangana.

Starting from the second year of the project, we will build capacity within the system. In collaboration with TSWREIS, we’ll select teachers from within the organisation based on their interest and competence, and initiate their training. Our objective is that by the project’s fifth year, TSWREIS will have achieved self-sufficiency in delivering computing education to students at the Coding Academy as well as other institutions in its purview.

The promise of this project for our work in India

We began delivering lessons at the Coding Academy college and school in July, and it’s worth mentioning that it’s been a rollercoaster ride so far. We’ve been working closely with the TSWREIS team to equip both the academic units with the resources needed for seamless implementation of the project. Our India-based team has been able to ensure continuity in the project’s momentum and plug every gap, and is working tirelessly to make this big, challenging, and exciting project blossom and succeed. When it comes to the students’ energy, enthusiasm, and the sparkle in their eyes for their learning, it’s unmatched, and everyone feels proud of their achievements so far.

Three female students at the Coding Academy in Telangana.

This work with TSWREIS holds immense importance for us, representing our dedication to shaping a brighter educational landscape especially for young people from under-resourced communities. We hope to replicate similar initiatives across various regions in India, enabling widespread access to quality education. We also aspire to take forward our initiatives in much larger dimensions for the entirety of India. 

Students welcome Rachel Bennett at the Coding Academy in Telangana.

In addition to our partnership with TSWREIS, we are actively engaged in several other impactful projects in India, such as our partnership with Mo School Abhiyan in Odisha to serve the government’s schools across Odisha state, and our collaboration with Pratham Foundation, which is helping us reach under-resourced communities and furthering our commitment to enhancing educational experiences.

We look towards the future

In reflection, the voices at the launch event on September 29 echoed the anticipation and optimism that filled the air on that memorable day. Chief guests who graciously attended the event were Shri. E Naveen Nicholas, IAS, Secretary at TSWREIS & TTWREIS, and Rachel Bennett, our Managing Director at the Raspberry Pi Foundation. Heartfelt gratitude to them for their presence and blessings. We also extend our thanks to our funding partner in this work, Ezrah Charitable Trust, and our delivery partners for their invaluable support.

The group of people from the Raspberry Pi Foundation and TSWREIS at the Coding Academy in Telangana.

The energy felt on the event day continues to drive our determination to do the work that lies ahead. As we look forward to the future, our hope and the hope of both the Coding Academy team and students are aligned: hope for a brighter, technologically empowered future, where education becomes a beacon of opportunity for all.

The post Coding futures: Celebrating our educational partnership in Telangana appeared first on Raspberry Pi Foundation.

Introducing notifications for HTTP Traffic Anomalies

Post Syndicated from Cathy Chi original http://blog.cloudflare.com/introducing-http-traffic-anomalies-notifications/


Introducing notifications for HTTP Traffic Anomalies

When it comes to managing Internet properties, the difference between a small technical hiccup and major incident is often a matter of speed. Proactive alerting plays a crucial role, which is why we were excited when we released HTTP Error Rate notifications — giving administrators visibility into when end users are experiencing errors.

But what if there are issues that don’t show up as errors, like a sudden drop in traffic, or a spike?

Today, we’re excited to announce Traffic Anomalies notifications, available to enterprise customers. These notifications trigger when Cloudflare detects unexpected changes in traffic, giving another valuable perspective into the health of your systems.

Unexpected changes in traffic could be indicative of many things. If you run an ecommerce site and see a spike in traffic that could be great news — maybe customers are flocking to your sale, or you just had an ad run on a popular TV show. However, it could also mean that something is going wrong: maybe someone accidentally turned off a firewall rule, and now you’re seeing more malicious traffic. Either way, you might want to know that something has changed.

Similarly, a sudden drop in traffic could mean many things. Perhaps it’s Friday afternoon and all of your employees are signing off and no longer accessing your company website. Or maybe a link to your site is broken, and now potential customers aren’t able to access it. You could be losing potential revenue every minute that traffic is low, so you’d want to know as soon as possible to investigate.

How can we tell when to alert?

Calculating anomalies in time series datasets is difficult to do well. The simplest way to do it is to use basic thresholds. However, as we’ve previously blogged about, simple thresholds aren’t very accurate when trying to determine when things are actually going wrong. There are too many edge cases for them to work effectively.

Calculating anomalies in HTTP errors is relatively easy. We know that in general there should be a very low number of errors, so any spike is bad and therefore alertable. That’s why we use Service Level Objectives (SLOs) to calculate anomalies for our HTTP Error Rate notifications.

However, analyzing overall HTTP traffic behaves more similarly to Cloudflare Security Events: there’s some general baseline of events that is computed from historical trends. Any deviation from that baseline is alertable. Because of those similarities, we decided to use the same calculations for Traffic Anomalies notifications as we have previously used for Security Event notifications: z-scores. This involves comparing the current value to the average over a period of time. However, many standard deviations away from the average the current value is, is the z-score.

Plot of HTTP traffic against z-scores. The blue is the HTTP traffic, purple is the positive z-score bound of the traffic, and green is the negative z-score bound of the traffic

For Traffic Anomalies notifications, we’re comparing the traffic over the past 5 minutes (the short window) to the average of the traffic over the past 4 hours (the long window). Positive z-scores indicate a spike, and negative z-scores indicate a drop. If the current value is more than 3.5 standard deviations away from the average, we alert. We measure every 5 minutes, so we can alert on any traffic spike or drop in a timely fashion.

Green bucket is the long window and the red bucket is the short window

While our Security Event notifications only trigger when there is a spike in security events (a drop is almost always a good thing), in the case of Traffic Anomalies we send notifications for both spikes and drops. This is because a drop of HTTP traffic is likely indicative of a problem, and a surge could be good or bad.

As with Security Events, Traffic Anomalies notifications support minimum thresholds. This means that, even if we determine that an event is outside 3.5 standard deviations, if the number of events is insignificant, we don’t alert. A spike must be at least 200 requests, and a drop must fall by at least 200 requests. This makes the notifications less noisy, since we aren’t alerting on small spikes and drops.

Digging a little deeper

Cloudflare stores sampled statistics on requests that go through its network in Clickhouse. Every minute, we take HTTP traffic from Clickhouse and store it in an instance of VictoriaMetrics, a time-series data storage solution. VictoriaMetrics gives us out-of-the-box algorithmic functions for free, and it has been a good fit for our use case. We chose VictoriaMetrics for a few reasons.

Firstly, it’s easy to configure and operate. As a team, we want to optimize for low operational burden and VictoriaMetrics has been great thus far. Secondly, VictoriaMetrics has the ability to scale horizontally, meaning we can run it in a highly available mode. For a system such as this where we want something reliable to compute time sensitive information for our customers, the high availability requirement is essential. Finally, in our tests, we found that VictoriaMetrics used around ⅓ of the memory that Prometheus, a similar alternative product, did for the same use case.

Once we have data in VictoriaMetrics, we can run queries against it and determine whether we need to alert our customers or not, based on notification configurations they have created ahead of time. To do this we leverage our existing Alert Notification System, which we blogged about initially in 2019. We know we can count on our current notification system for the last mile to deliver these critical notifications to our customers.

Data flow from HTTP request to notification
Setting up the Notification

To configure this notification, navigate to the “Notifications” tab of the dashboard. Select Traffic Anomalies as your notification type. As with all Cloudflare notifications, you’re able to name and describe your notification, and choose how you want to be notified.

Traffic Anomalies notification in the Dashboard

You can choose which domains you want monitored for Traffic Anomalies, whether you want to include traffic that’s already been mitigated by Cloudflare DoS or WAF products, and whether there are specific status codes you want included or excluded. You can also choose whether you want to be alerted on traffic spikes, drops, or both.

We’re excited to use this system to help serve our Enterprise customers with invaluable notifications regarding the overall health of their systems. Head over to the Notifications tab in the dash to check this new notification out now!

Терзиев vs. Григорова. Два свята, три извода

Post Syndicated from Емилия Милчева original https://www.toest.bg/terziev-vs-grigorova-dva-svyata-tri-izvoda/

Терзиев vs. Григорова. Два свята, три извода

През 1978 г. в София се раждат много деца, две от които, вече зрели хора, ще се изправят един срещу друг на балотажа за кмет на столицата на 5 ноември. 45-годишният Васил Терзиев, израснал в идеалния център на София, и 45-годишната Ваня Григорова, чието детство е преминало в населения с роми квартал „Христо Ботев“. 

Първият – развивал се единствено в сферата на частния бизнес, добре образован и успешен инвеститор в софтуерната индустрия, без ярки политически изяви до издигането му за кандидат-кмет. Втората – с биография на човек, преминал през нископлатени работи, синдикалист, антиглобалист, ярък социален популист. И двамата са съзрявали като личности по време на Прехода, разполовил и даже разтроил България, живяла дотогава в привидностите на „равенството и братството“ и на номенклатурната клептокрация. Терзиев стартира с фамилия на високи позиции в системата на бившите тайни служби и като част от алумните на Американския университет в Благоевград. Стартът на Григорова е като на мнозинството обикновени българи, утежнен допълнително от произхода ѝ.

На 45 днес, и двамата слагат начало на политическа кариера – той за кмет (но така и не поведе листата с общински съветници) и може би за премиер след това, тя – за кмет, но и за нова левица. Пълни противоположности са – като южните и северните квартали на София. Терзиев е възпитан и сдържан, Григорова е твърде напориста и емоционална, също и жизнена. 

Зададената като че ли по подразбиране прогноза от социолозите за първите двама в София – Васил Терзиев, кандидат на по-скоро либералната градска общност, срещу номинацията на десноцентристката и консервативна ГЕРБ Антон Хекимян – не се сбъдна. Срещу Терзиев се оказа кандидатът на обединената левица Ваня Григорова. А случващото се в София винаги е сигнализирало за промяна, макар и по-бавна, в останалата част на страната. 

Избирателната активност в столицата, където гласоподавателите са 1,1 млн., е обидно ниска дори и сред разгневилите се заради активното мероприятие с машините софийски избиратели на ПП–ДБ, „Спаси София“ и „Екипът на София“. В навечерието на вота Държавна агенция „Национална сигурност“ с помощта на парламентарно представени партии – и партньорите, и противниците на ПП–ДБ – гръмна справка, с която пробва да уличи замeстник-министър на ПП–ДБ, ерго самата управляваща коалиция, в манипулация на машинния вот. В резултат на скандала ЦИК отмени гласуването с машини и в София излязоха на протест. 

ДАНСwithme 2023 даде тласък за повече гласове, но въпреки това на предишните местни избори на първия тур за Йорданка Фандъкова гласуваха 161 909 души, а сега Терзиев е подкрепен от близо 119 000. Тогава съперничката на Фандъкова – Мая Манолова, обедини голяма част от анти-ГЕРБ вота и получи 123 714 гласа още на първи тур, а на втори надхвърли този резултат с близо 65 000 гласа. 

По БНР социоложката от „Галъп интернешънъл болкан“ Яница Петкова коментира, че на 29 октомври са излезли да гласуват по-скоро представители на възрастовата група от 30 до 60 години и 

хората с висше образование и по-висок социален статус са решили изборите в столицата. 

За втория тур обаче ще е необходима много по-сериозна мобилизация. Големият въпрос е къде ще отидат гласовете на ГЕРБ и „Възраждане“, чийто кандидат – депутатът Деян Николов, е спечелил близо 29 000 гласа. Дори и лидерът на ГЕРБ Бойко Борисов да призове своите да подкрепят Терзиев, едва ли всички ще го направят, както не му се подчиниха и за Хекимян, чийто резултат се оказа по-нисък – неизненадващо, – отколкото на общинската листа на ГЕРБ–СДС. 

Предстоящият сблъсък за София, изправил един срещу друг Терзиев и Григорова, налага някои изводи.

Автентичност 

Притежават я и Терзиев, и Григорова – и като личности, и като политическо представителство. Автентичност липсваше на кандидата на ГЕРБ Антон Хекимян, който би могъл да изиграе кандидат на която и да е политическа сила, стига да му бъде поръчано, и до края изглеждаше като дубльор на истински кандидат. Нищо от биографията на журналиста не го свързва с десните консерватори на ГЕРБ – ако не броим репортажите за мъжкото хоро в Тунджа. 

Васил Терзиев е автентичен представител на градските либерали, известни и като градска десница, от които всеки следващ избор отмива дясното. Социологическите данни показват, че митът за „синя София“ е заличен – кандидатът на „Възраждане“ Деян Николов е изпреварил кандидата на старата десница Вили Лилков. Едва 1,3% от гласувалите за ПП–ДБ, където са и десните консерватори от ДСБ, са пуснали бюлетина за Лилков. 

Ваня Григорова също е автентичен ляв човек и нейната кандидатура, обединила БСП, „Левицата“, също „Атака“ и още леви формации, e попадение. Но и отглас от европейските тенденции, където се забелязва радикализиране на лявото в комбинация с национализъм и с „ортодоксален социализъм“ – определение, дадено преди пет години за германското движение „Изправи се“ и проруски настроената му лидерка Сара Вагенкнехт. Григорова, която беше от защитниците на преговори с „Газпром“ след спрените доставки на руски газ миналата година, в кампанията заглуши проруските теми и заложи на идеите си за повече община, срещу лошите частници и още от „късния социализъм“, както ги нарече „Сега“. 

В действителност е все едно какво иска Григорова, защото структурата на СОС е ясна – най-голямата група в него е на ПП–ДБ, следвана от ГЕРБ–СДС, а тази на „БСП за България“ е трета благодарение на мажоритарния избор за Ваня Григорова. 

Двата свята

През резултатите в София може да се чете и „няма ляво, няма дясно“, както при резултатите, които познаваме в цяла България. Изборът на Терзиев и слабият резултат за Вили Лилков показа, че СДС и неговите отломки остават в историята, в столицата има нова генерация избиратели, за които неизвършената лустрация и Държавна сигурност са скелети, които е най-добре да останат в гардероба. А за парите на задграничните дружества не са и чували. 

В търсене на работа и по-добро заплащане към София се стекоха десетки хиляди от вътрешността на страната и социалната стратификация на столицата се промени. Кварталите „спални“ се разраснаха, а вълната от прииждащи в града, в който безработицата е изключително ниска, а средната заплата най-висока, наруши и идейния баланс. Старото дясно се характеризираше с идеологеми, а и нямаше как да бъде иначе, след като все още не беше изградило база, а само антикомунизъм и усилия за разграждане на тоталитарната държава. Новото обаче е бизнес ориентирано.

Изстрелването на Григорова към балотаж ще се отрази и на БСП. Наблюдателни журналисти забелязаха, че в изборната нощ триумфиращата лидерка на социалистите Корнелия Нинова така и не събра сили да назове името на същинската победителка. Дали пък Нинова няма да провали синдикалистката, която заплашва не шефския пост в партията, а съществуването на самата партия в настоящия ѝ вид. Вчера дойде новината за договорена подкрепа с „Има такъв народ“, спечелили близо 12 000 гласа с кандидата си Ивайло Вълчев. Но резервоарът на гласове все пак остават ГЕРБ и „Възраждане“, а партията на Костадин Костадинов се е колаборирала с БСП – подкрепи я за вота на недоверие например, а на няколко пъти вече координират действия.

Ваня Григорова на практика зашлеви Нинова и всичките досегашни подгласници на „Позитано“ 20, типични апаратчици от хайверената левица, за които лявото не е нищо повече от концесия до живот. Фактът обаче, че те стоят зад номинацията ѝ, показва, че вълкът иска да си смени кожата – нищо повече. 

Идеалният кмет

Идеалният кмет на българския град-държава София би бил хибрид между технократа с рационален ум и сдържаност Терзиев и Григорова с нейната емпатия и социални умения. Но това е невъзможно, така че изборът на 5 ноември е неизбежен.

Страхове, власт и популизъм: САЩ, Полша, България

Post Syndicated from Яна Хашъмова original https://www.toest.bg/strahove-vlast-i-populizum-sasht-polsha-bulgaria/

Страхове, власт и популизъм: САЩ, Полша, България

На пръв поглед странни политически събития се случиха през последните седмици в САЩ и Полша. В американския Конгрес три седмици републиканците се бориха със себе си, докато успеят да изберат председател на Конгреса (Speaker of the House), а в Полша управляващата от осем години партия „Право и справедливост“ загуби изборите, въпреки че приложи всички позволени и непозволени методи по време на предизборната кампания, подкрепена от недемократичните закони, които сама си прокара.

На фона на тези събития състоянието на нашия политически живот направо изглежда нормално. Предварителните резултати от местните избори не донесоха особени изненади, с малки изключения, докато президентът и други политически сили и партии упорито и системно продължаваха да защитават и лансират руските икономически и политически интереси в България и да подронват демокрацията. А скандалите относно местните избори се въртяха около познатите вече теми: гласуването с машини, изборния туризъм и купуването на гласове. 

И все пак има ли допирни точки между политическите явления в тези страни?

В САЩ Републиканската партия продължава да бъде манипулирана и контролирана от бившия президент Доналд Тръмп. Нейното крайнодясно крило, най-тясно свързано с Тръмп, но и най-малобройно, успя да свали бившия председател и да подкрепи и издигне новия – Майк Джонсън, не без помощта на Тръмп, който или отхвърляше, или подкрепяше кандидат след кандидат.

Бившият радиоводещ Джонсън се ръководи от радикалноконсервативни възгледи (социални и финансови), които повечето американци не споделят. Доказателство за това са не само обществените проучвания, но и предишните избори, в които немалко републикански кандидати за представители в Конгреса загубиха, след като гръмко поддържаха политика за цялостна забрана на абортите и също така гръмко бяха поддържани от Тръмп. 

Разбира се, някои представители не се страхуват от избори, защото изкуствено начертаните изборни карти им гарантират успех, но все пак на доста места крайнодесните кандидати загубиха и очакваната червена вълна не се надигна изобщо. Състоянието на Републиканската партия е доста хаотично и нестабилно, но нейните политически представители продължават да са подвластни на стремежа си към власт и на крайни идеологически възгледи, които в момента се движат от страха и несигурността на хората. Тази несигурност, причинена от продължителното обедняване на работническата класа и подклаждана от реторика като „Америка първа“, се превръща в страх от променящия се начин на живот и в омраза към другия (обикновено имигранти, бежанци и ЛГБТИ+). 

За това без съмнение допринесоха и проблемите на глобалната икономика, но големите корпорации продължават да печелят, а техният растеж се поддържа от същата тази консервативна идеология, която сега тръби „Америка първа“. Трудно е да се предсказват избори, когато резултатите често се определят от активни манипулации и ирационални чувства. В САЩ представителите в Конгреса (The House of Representatives) се избират на всеки две години на база на райони, чиито граници се определят от сената на всеки щат. 

Всеки район избира представител и партията, която е на власт, обикновено чертае границите така, че да разводни гласовете на противниковата партия. Например населени места, за които се знае, че са демократично настроени, се делят на части, които след това се присъединяват към по-големи райони с население, гласуващо предимно за Републиканската партия. Така демократичните гласове се губят.

След като Върховният съд отхвърли преначертаването на изборните райони в Алабама като незаконно, понеже по този начин се отнемаха гласовете на афроамериканците там, в Северна Каролина съвсем наскоро се създадоха нови граници. Анализаторите твърдят, че при тези граници най-вероятно жителите ще изберат десет републиканци и четирима демократи в сравнение със седем републиканци и седем демократи при старите избирателни карти. Следващите избори ще покажат доколко подклажданият страх и предизборните манипулации ще надделеят или ще загубят в полза на по-здрава демокрация и по-категорично разпознаване на тези страхове.

Така се случи неочаквано в Полша. 

Независимо от агресивната медийна кампания в услуга на управляващата партия и нейната фокусирана реторика, насочена срещу заплахата от имигранти и бежанци, поляците успяха да разпознаят манипулациите и не се изплашиха. Може би защото „Право и справедливост“ премина всякакви граници на балансираната предизборна кампания, в която все пак трябва да се чуе и гласът на опозицията. Силното ограничаване на правата на жените и опасността от напускане на Евросъюза при евентуално следващо управление на „Право и справедливост“ също вероятно допринесоха за загубата. Пътят на възстановяване на демократичните процеси обаче ще е труден заради изградената вече недемократична мрежа от институции и заради настоящия президент от „Право и справедливост“, който, като нашия, най-вероятно ще се опитва да възпрепятства възстановяването на демократичните институции и процеси в Полша.

Последните конфликти между нашия президент и управляващите се развиха по повод таксите на „Лукойл“ и ядрената енергетика. Реториката на Радев, доста празна, но може би затова и успешна, обикновено атакува или корупцията сред управляващите, или безхаберието им за благосъстоянието на хората. По отношение на развитието на ядрената енергетика президентът настоява за „устойчив, ефективен и ефикасен процес“, и още: 

Трябва да се проучат, анализират и съпоставят всички възможни варианти по редица важни параметри – локация, лицензи, безопасност и най-вече време и средства за изграждане. 

Въпреки че правителството се ангажира в точно такъв процес, подобна критика работи, защото е по-гръмко заявена и разпространена. Относно закона за енергетиката реториката е приблизително същата: 

Националната сигурност изисква управлението да гледа отвъд постовете, отвъд своите интереси и мандати и да върне фокуса си върху проблемите на обществото. 

Този път се използват сигурността и проблемите на обществото, като се атакуват безсъвестността и кариеризмът на политиците. Много общи приказки, както често казваме, но те успокояват хора, които са загубили вяра във функциите на държавата, страхуват се за ежедневието си и проектират страховете си върху неспособността на правителството да подобри живота им. 

Няма да продължавам с други примери, в които политическите партии манипулират чувство за несигурност, лансирайки лозунги като „България за българите“, или градят изкуствено национално самочувствие, селективно представяйки историята на България и нейното величие и издигайки пилони и знамена. Може да прозвучи странно на читателите, но ще цитирам Чехов, който преди повече от 100 години неведнъж критично се е отнасял към собственото си общество: 

Когато нещо не е наред в нас, ние търсим причини извън нас и скоро ги намираме. „Французинът, евреите, Вилхелм…“ – това са призраци, но затова пък те така облекчават нашето безпокойство. 

А що се отнася до местните избори, анализаторите тепърва ще обобщават доколко манипулациите с купуване на гласове и изборен туризъм, пък и липсата на машинното гласуване са допринесли за резултатите. Но сега, когато довършвам тези мисли в края на изборния ден, е ясно, че гласоподавателите не повярваха на скандала с машинното гласуване и Васил Терзиев получи повече гласове от прогнозите. А междувременно Върховният административен съд отмени решението на Централната избирателна комисия и на втори кръг избирателите ще ползват машини. Интересно е да се види дали хартиените бюлетини са помогнали на партиите, които настояваха за тях. Притеснителна е ниската активност при такова голямо недоволство, но цинизмът и нихилизмът са силни фактори. От друга страна, слабото представяне на „Възраждане“ води до умерен оптимизъм. 

В САЩ местните власти чертаят изборни граници, в Полша медиите се преработиха да обслужват интересите на „Право и справедливост“, а у нас се борим с машини, купуване на гласове и изборен туризъм. Кой с каквото може, а резултатите невинаги са пряко свързани с манипулации. Дано с по-сериозно образование, критично мислене и овладени страхове да постъпваме по-често като поляците.

The Future of Drone Warfare

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2023/10/the-future-of-drone-warfare.html

Ukraine is using $400 drones to destroy tanks:

Facing an enemy with superior numbers of troops and armor, the Ukrainian defenders are holding on with the help of tiny drones flown by operators like Firsov that, for a few hundred dollars, can deliver an explosive charge capable of destroying a Russian tank worth more than $2 million.

[…]

A typical FPV weighs up to one kilogram, has four small engines, a battery, a frame and a camera connected wirelessly to goggles worn by a pilot operating it remotely. It can carry up to 2.5 kilograms of explosives and strike a target at a speed of up to 150 kilometers per hour, explains Pavlo Tsybenko, acting director of the Dronarium military academy outside Kyiv.

“This drone costs up to $400 and can be made anywhere. We made ours using microchips imported from China and details we bought on AliExpress. We made the carbon frame ourselves. And, yeah, the batteries are from Tesla. One car has like 1,100 batteries that can be used to power these little guys,” Tsybenko told POLITICO on a recent visit, showing the custom-made FPV drones used by the academy to train future drone pilots.

“It is almost impossible to shoot it down,” he said. “Only a net can help. And I predict that soon we will have to put up such nets above our cities, or at least government buildings, all over Europe.”

Science fiction authors have been writing about drone swarms for decades. Now they are reality. Tanks today. Soon it will be ships (probably with more expensive drones). Feels like this will be a major change in warfare.

Apple M3 Family of CPUs Launched with Some Shaky Performance Claims

Post Syndicated from Patrick Kennedy original https://www.servethehome.com/apple-m3-family-of-arm-cpus-launched-with-some-shaky-performance-claims/

The Apple M3 family of chips launched with some advancements but also intentionally shaky performance claims that should warrant a look by consumer protection agencies

The post Apple M3 Family of CPUs Launched with Some Shaky Performance Claims appeared first on ServeTheHome.

Sending and receiving webhooks on AWS: Innovate with event notifications

Post Syndicated from James Beswick original https://aws.amazon.com/blogs/compute/sending-and-receiving-webhooks-on-aws-innovate-with-event-notifications/

This post is written by Daniel Wirjo, Solutions Architect, and Justin Plock, Principal Solutions Architect.

Commonly known as reverse APIs or push APIs, webhooks provide a way for applications to integrate to each other and communicate in near real-time. It enables integration for business and system events.

Whether you’re building a software as a service (SaaS) application integrating with your customer workflows, or transaction notifications from a vendor, webhooks play a critical role in unlocking innovation, enhancing user experience, and streamlining operations.

This post explains how to build with webhooks on AWS and covers two scenarios:

  • Webhooks Provider: A SaaS application that sends webhooks to an external API.
  • Webhooks Consumer: An API that receives webhooks with capacity to handle large payloads.

It includes high-level reference architectures with considerations, best practices and code sample to guide your implementation.

Sending webhooks

To send webhooks, you generate events, and deliver them to third-party APIs. These events facilitate updates, workflows, and actions in the third-party system. For example, a payments platform (provider) can send notifications for payment statuses, allowing ecommerce stores (consumers) to ship goods upon confirmation.

AWS reference architecture for a webhook provider

The architecture consists of two services:

  • Webhook delivery: An application that delivers webhooks to an external endpoint specified by the consumer.
  • Subscription management: A management API enabling the consumer to manage their configuration, including specifying endpoints for delivery, and which events for subscription.

AWS reference architecture for a webhook provider

Considerations and best practices for sending webhooks

When building an application to send webhooks, consider the following factors:

Event generation: Consider how you generate events. This example uses Amazon DynamoDB as the data source. Events are generated by change data capture for DynamoDB Streams and sent to Amazon EventBridge Pipes. You then simplify the DynamoDB response format by using an input transformer.

With EventBridge, you send events in near real time. If events are not time-sensitive, you can send multiple events in a batch. This can be done by polling for new events at a specified frequency using EventBridge Scheduler. To generate events from other data sources, consider similar approaches with Amazon Simple Storage Service (S3) Event Notifications or Amazon Kinesis.

Filtering: EventBridge Pipes support filtering by matching event patterns, before the event is routed to the target destination. For example, you can filter for events in relation to status update operations in the payments DynamoDB table to the relevant subscriber API endpoint.

Delivery: EventBridge API Destinations deliver events outside of AWS using REST API calls. To protect the external endpoint from surges in traffic, you set an invocation rate limit. In addition, retries with exponential backoff are handled automatically depending on the error. An Amazon Simple Queue Service (SQS) dead-letter queue retains messages that cannot be delivered. These can provide scalable and resilient delivery.

Payload Structure: Consider how consumers process event payloads. This example uses an input transformer to create a structured payload, aligned to the CloudEvents specification. CloudEvents provides an industry standard format and common payload structure, with developer tools and SDKs for consumers.

Payload Size: For fast and reliable delivery, keep payload size to a minimum. Consider delivering only necessary details, such as identifiers and status. For additional information, you can provide consumers with a separate API. Consumers can then separately call this API to retrieve the additional information.

Security and Authorization: To deliver events securely, you establish a connection using an authorization method such as OAuth. Under the hood, the connection stores the credentials in AWS Secrets Manager, which securely encrypts the credentials.

Subscription Management: Consider how consumers can manage their subscription, such as specifying HTTPS endpoints and event types to subscribe. DynamoDB stores this configuration. Amazon API Gateway, Amazon Cognito, and AWS Lambda provide a management API for operations.

Costs: In practice, sending webhooks incurs cost, which may become significant as you grow and generate more events. Consider implementing usage policies, quotas, and allowing consumers to subscribe only to the event types that they need.

Monetization: Consider billing consumers based on their usage volume or tier. For example, you can offer a free tier to provide a low-friction access to webhooks, but only up to a certain volume. For additional volume, you charge a usage fee that is aligned to the business value that your webhooks provide. At high volumes, you offer a premium tier where you provide dedicated infrastructure for certain consumers.

Monitoring and troubleshooting: Beyond the architecture, consider processes for day-to-day operations. As endpoints are managed by external parties, consider enabling self-service. For example, allow consumers to view statuses, replay events, and search for past webhook logs to diagnose issues.

Advanced Scenarios: This example is designed for popular use cases. For advanced scenarios, consider alternative application integration services noting their Service Quotas. For example, Amazon Simple Notification Service (SNS) for fan-out to a larger number of consumers, Lambda for flexibility to customize payloads and authentication, and AWS Step Functions for orchestrating a circuit breaker pattern to deactivate unreliable subscribers.

Receiving webhooks

To receive webhooks, you require an API to provide to the webhook provider. For example, an ecommerce store (consumer) may rely on notifications provided by their payment platform (provider) to ensure that goods are shipped in a timely manner. Webhooks present a unique scenario as the consumer must be scalable, resilient, and ensure that all requests are received.

AWS reference architecture for a webhook consumer

In this scenario, consider an advanced use case that can handle large payloads by using the claim-check pattern.

AWS reference architecture for a webhook consumer

At a high-level, the architecture consists of:

  • API: An API endpoint to receive webhooks. An event-driven system then authorizes and processes the received webhooks.
  • Payload Store: S3 provides scalable storage for large payloads.
  • Webhook Processing: EventBridge Pipes provide an extensible architecture for processing. It can batch, filter, enrich, and send events to a range of processing services as targets.

Considerations and best practices for receiving webhooks

When building an application to receive webhooks, consider the following factors:

Scalability: Providers typically send events as they occur. API Gateway provides a scalable managed endpoint to receive events. If unavailable or throttled, providers may retry the request, however, this is not guaranteed. Therefore, it is important to configure appropriate rate and burst limits. Throttling requests at the entry point mitigates impact on downstream services, where each service has its own quotas and limits. In many cases, providers are also aware of impact on downstream systems. As such, they send events at a threshold rate limit, typically up to 500 transactions per second (TPS).

Considerations and best practices for receiving webhooks

In addition, API Gateway allows you to validate requests, monitor for any errors, and protect against distributed denial of service (DDoS). This includes Layer 7 and Layer 3 attacks, which are common threats to webhook consumers given public exposure.

Authorization and Verification: Providers can support different authorization methods. Consider a common scenario with Hash-based Message Authentication Code (HMAC), where a shared secret is established and stored in Secrets Manager. A Lambda function then verifies integrity of the message, processing a signature in the request header. Typically, the signature contains a timestamped nonce with an expiry to mitigate replay attacks, where events are sent multiple times by an attacker. Alternatively, if the provider supports OAuth, consider securing the API with Amazon Cognito.

Payload Size: Providers may send a variety of payload sizes. Events can be batched to a single larger request, or they may contain significant information. Consider payload size limits in your event-driven system. API Gateway and Lambda have limits of 10 Mb and 6 Mb. However, DynamoDB and SQS are limited to 400kb and 256kb (with extension for large messages) which can represent a bottleneck.

Instead of processing the entire payload, S3 stores the payload. It is then referenced in DynamoDB, via its bucket name and object key. This is known as the claim-check pattern. With this approach, the architecture supports payloads of up to 6mb, as per the Lambda invocation payload quota.

Considerations and best practices for receiving webhooks

Idempotency: For reliability, many providers prioritize delivering at-least-once, even if it means not guaranteeing exactly once delivery. They can transmit the same request multiple times, resulting in duplicates. To handle this, a Lambda function checks against the event’s unique identifier against previous records in DynamoDB. If not already processed, you create a DynamoDB item.

Ordering: Consider processing requests in its intended order. As most providers prioritize at-least-once delivery, events can be out of order. To indicate order, events may include a timestamp or a sequence identifier in the payload. If not, ordering may be on a best-efforts basis based on when the webhook is received. To handle ordering reliably, select event-driven services that ensure ordering. This example uses DynamoDB Streams and EventBridge Pipes.

Flexible Processing: EventBridge Pipes provide integrations to a range of event-driven services as targets. You can route events to different targets based on filters. Different event types may require different processors. For example, you can use Step Functions for orchestrating complex workflows, Lambda for compute operations with less than 15-minute execution time, SQS to buffer requests, and Amazon Elastic Container Service (ECS) for long-running compute jobs. EventBridge Pipes provide transformation to ensure only necessary payloads are sent, and enrichment if additional information is required.

Costs: This example considers a use case that can handle large payloads. However, if you can ensure that providers send minimal payloads, consider a simpler architecture without the claim-check pattern to minimize cost.

Conclusion

Webhooks are a popular method for applications to communicate, and for businesses to collaborate and integrate with customers and partners.

This post shows how you can build applications to send and receive webhooks on AWS. It uses serverless services such as EventBridge and Lambda, which are well-suited for event-driven use cases. It covers high-level reference architectures, considerations, best practices and code sample to assist in building your solution.

For standards and best practices on webhooks, visit the open-source community resources Webhooks.fyi and CloudEvents.io.

For more serverless learning resources, visit Serverless Land.

ASRock Rack ALTRA-NAS Ampere Altra Arm NAS at OCP Summit 2023

Post Syndicated from Patrick Kennedy original https://www.servethehome.com/asrock-rack-altra-nas-ampere-altra-arm-nas-at-ocp-summit-2023/

We spotted the ASRock Rack ALTRA-NAS an Ampere Altra Max 128 Arm core NAS with PCIe Gen4, 10GbE, and IPMI, that will be a hit if launched

The post ASRock Rack ALTRA-NAS Ampere Altra Arm NAS at OCP Summit 2023 appeared first on ServeTheHome.

The collective thoughts of the interwebz