Events

Revolutionizing Software Dev with Amazon Q & CodeNOW | AWS Prague 2024

Insights from AWS Prague 2024 on revolutionizing software development with Amazon Q and CodeNOW.

AWS Prague 2024 - Amazon Q and CodeNOW

Overview

At AWS Day Prague, CodeNOW's CEO Petr Svoboda demonstrated rapid microservices development. In just 20 minutes, he constructed two microservices using Amazon Q and the CodeNOW platform, showcasing how modern tools can dramatically accelerate cloud-native application delivery.

The Microservices Adoption Challenge

Many enterprises hesitate to adopt microservices architecture, perceiving it as overly complex or resource-intensive. However, the real obstacles emerge during implementation:

  • Testing and deployment complexity
  • Transitioning between on-premises and cloud environments
  • Increased automation and monitoring demands

Unlike monolithic systems, "microservices require these tasks to be repeated for every service" without automation, creating significant operational overhead that diverts developer focus from business-critical features.

Building Two Microservices in 20 Minutes

The Three-Tier Application Structure

Svoboda's demonstration showcased an omnichannel application architecture comprising:

  • Front-end layer
  • Back-end for front-end (BFF) layer
  • Core back-end component

This structure handles diverse client requirements while maintaining unified business logic across all channels.

Development Environment Strategy

Personal Cloud Development Spaces

The platform employs a "share-nothing" approach, providing developers with isolated, cloud-based environments. This enables:

  • Independent schema management
  • Isolated feature testing
  • Productivity regardless of physical location

Component Stack

Development environments typically include:

  • Back-end-for-front-end exposing REST APIs
  • Kafka for messaging and event streaming
  • PostgreSQL for data persistence

Managed Services for Production

Higher environments (staging/production) transition to managed cloud services:

  • AWS RDS for PostgreSQL
  • Managed Kafka instances

These services provide built-in scalability, monitoring, and disaster recovery capabilities.

Streamlined Workflow: From Coding to Deployment

Five-Stage Pipeline

The standard delivery process follows these steps:

  1. Coding
  2. Versioning
  3. Release management
  4. Deployment
  5. Testing

Infrastructure as Code Implementation

Svoboda demonstrated creating new development environments using Kubernetes namespaces. Application components were initialized from golden templates and scaffolded to Git repositories with project-specific configurations.

Following "12-factor app principles," external service connections were dynamically configured during deployment, ensuring seamless transitions across environments.

Leveraging AI for Code Generation

Amazon Q Integration

Despite limited Python expertise, Svoboda used Amazon Q to generate frontend code, including:

  • Form rendering functionality
  • External BFF connections
  • Backend HTTP response handling (200 for success, 400 for validation errors)

CI/CD and GitOps Workflow

Git-Centric Development

The entire workflow centered on Git repositories, where code changes automatically triggered CI pipelines. Integration with GitHub Actions ensured:

  • Seamless component management
  • Consistent pipeline orchestration
  • Enforced permission controls

Release Automation

The process involved:

  • Creating releases by satisfying dependencies
  • Synchronizing state to target environments using Argo CD
  • Automating deployments via Infrastructure as Code tools (Terraform)

Performance Validation

Load Testing and Observability

Amazon Q generated K6 load testing scripts targeting the BFF endpoint. Results were monitored through:

  • Grafana dashboards for metrics visualization
  • Log aggregation and live tails
  • End-to-end code tracing for troubleshooting

Key Takeaways

Svoboda emphasized critical architectural principles:

  • Domain-Driven Design (DDD): Ensures appropriate software component sizing and logical separation
  • Self-service platforms: Minimize unnecessary development-operations communication
  • Immutable infrastructure: Strengthens reliability and simplifies disaster recovery
  • Integrated platforms: "Unify the developer experience across the entire software development lifecycle"

Resources

Written by CodeNOW