AWS for Industries
BlackBerry QNX on AWS workshop is released! – Get started with QNX OS deployment and development on AWS in two hours.
We are pleased to announce the release of the BlackBerry QNX on AWS workshop to help AWS customers easily get started with embedded software development on AWS Cloud. This workshop provides a hands-on lab experience to help AWS customers quickly grasp embedded software development with QNX® OS on AWS.
In January 2023, BlackBerry Limited announced the general availability of the following QNX Operating Systems on AWS via the AWS Marketplace:
BlackBerry® QNX® has been widely used to build mission-critical embedded systems across industries such as automotive, robotics, aerospace, avionics, energy and medical.
With the combination of new QNX Amazon Machine Image (AMI) and Amazon EC2 instances powered by AWS Graviton Processors (an Arm-based processor developed by AWS), AWS customers can use the agility, flexibility and scalability of the AWS Cloud to support their embedded software development.
Benefits of QNX OS on AWS
By using the QNX OS on AWS, customers may have the following benefits:
Early stage software development (Shift Left): Developers can quickly start development without worrying about the purchase of physical devices, tedious setting up and installation effort.
Development without physical device limitations: Developers are liberated from device constraints and can use QNX OS environment without resource limitations, enabling a more efficient development and testing experience for customers. Consequently, software with higher quality may be developed by customers.
Automate development tasks and improve development efficiency: Developers can automate the customization deployment of development environments, and more quickly scale resources as needed. Developers can also automate a variety of development tasks with CI/CD pipelines on AWS.
Environmental parity between development and production environments: With the availability of the QNX OS and AWS-provided ARM-based Graviton instances, developers can benefit from parity in the cloud and in a physical testing environment. This helps ensure a consistency between development and production environments of customers.
QNX on AWS workshop
The QNX on AWS workshop is designed to provide participants with the knowledge and practical experience to support their development of embedded software on the AWS Cloud using the QNX OS. The workshop emphasizes a hands-on approach, allowing participants to engage in lab exercises. In the workshop, we use QNX® Software Development Platform (SDP) and QNX® Momentics® Integrated Development Environment (IDE) on a development host. QNX SDP and QNX Momentics can be installed on a local machine and support Linux, Windows and macOS. They also can be installed on an EC2 instance.
Architecture overview
In the workshop, we will deploy AWS resources based on the following architecture.
- AWS account, users and resources
- The workshop resources are deployed in a single AWS account.
- Each user in the AWS account is authenticated by a unique user ID.
- The workshop deploys resources such as VPC, EC2 Ubuntu instance, EC2 QNX instance etc. for each user.
- QNX development host
- If you choose to use the EC2 development host (QNX SDP installed on an EC2 instance), each user securely establishes a connection with AWS Systems Manager (SSM) port forwarding using Session Manager, and logs into Ubuntu Linux using Remote Desktop client from the client PC. EC2 Ubuntu instance private key is securely managed in a Secret Manager secret.
- If you choose to use the local development host (QNX SDP installed on your client PC), each user logs into the client PC.
- QNX target
- EC2 QNX instance (QNX target) is deployed in an isolated secure VPC network on AWS.
- To securely access the EC2 QNX instance, each user securely establishes a connection with SSM port forwarding using Session Manager, and logs into the EC2 QNX instance using an SSH client. EC2 QNX instance private key is securely managed in a Secrets Manager secret.
- CI pipeline
- The workshop creates CodeBuild project, CodeCommit repository, CodePipeline pipeline and VPC endpoints to run Continuous Integration (CI) pipeline with EC2 QNX instances.
- CodeBuild container deploys CI pipeline resources such as EC2 QNX instances, and runs pre-defined CI tasks. It automatically destroys the created resources once the CI tasks are completed.
Developer use cases
Here is how developers typically use QNX on AWS for embedded software development.
In the workshop, we support two development configurations, depending on where you install and use QNX SDP. It is designed to allow developers to log into the development host and use EC2 QNX securely from a remote location over an encrypted network connection without exposing any network ports to the public Internet.
EC2 development host: QNX SDP is installed on an EC2 instance. Developers log into the EC2 development host using Remote Desktop client and SSH from their client PC, and access the EC2 QNX instance from QNX SDP on the EC2 development host.
Local development host: QNX SDP is installed on a local client PC. Developers log in to the local development host (client PC), and access to EC2 QNX instance from QNX SDP using SSM port forwarding.
Workshop steps
You can find more detailed workshop steps and codes at BlackBerry QNX on AWS workshop.
Conclusion
In this article, we introduced the BlackBerry QNX on AWS workshop. By using the QNX OS on AWS, you can take advantage of the agility, flexibility, and scalability of the AWS Cloud in order to help support their development and testing activities. BlackBerry QNX on AWS is designed to help customers engaging in embedded software development across various industries, gain (1) the benefits from early software development that is not restricted by physical devices, (2) development efficiency by automating development work, and (3) environmental parity between their development and production environments in order to support customer developing and testing activities.
References
Workshop: BlackBerry QNX on AWS workshop
GitHub: aws-samples/qnx-on-aws-workshop
Related AWS Blog: Accelerate embedded software development using QNX® Neutrino® OS on Amazon EC2 Graviton | AWS for Industries