Modern Software Development

“Innovate faster with agile, modern software development.”

Table of Contents

What is Modern Application Development

Modern application development approach that enables you to innovate rapidly by using cloud-native architectures with loosely coupled microservices, managed databases, AI, DevOps support, and built-in monitoring.

app-mod-data
Elements that make up the modern application environment

Key Design Factors

  • Utilize systems fully leverage the cloud service model using PaaS compute infrastructure and managed services.
  • Systems should continue to run as infrastructure scales in or out without worrying about the back- end infrastructure because those elements are fully managed.
  • Systems and Services should have auto scaling, self-healing, and monitoring capabilities.
  • Modern Design is highly effective in part due to the standard practices Application method, which is a set of principles that developers follow to construct applications optimized for modern cloud environments.

Critical Considerations for Modern Design

  • Communication — How front ends communication with back-end services, and how back-end services communicate with each other.
  • Resiliency — How services in your distributed architecture respond in less-than-ideal scenarios due to the in-process, out-process network communications of microservices architecture.
  • Distributed Data — How do you query data or implement a transaction across multiple services?
  • Identity — How does your service identify who is accessing it and their designated permissions?

What are Microservices?

Microservices are built as a distributed set of small, independent services that interact through a shared fabric or container.

micro-svc

Agility with Microservices

  • Each microservice has an autonomous lifecycle and can evolve independently and deploy frequently.
  • Each microservice can scale independently, enabling services to scale to meet demand. Those microservices are then packaged a container image, those images are stored in container registry. When needed you transform the container into a running container instance, to utilize the stored microservices.

Benefits of Containers

  • Provide portability and guarantee consistency across environments.
  • Containers can isolate microservices and their dependencies from the underlying infrastructure.
  • Smaller footprints than full virtual machines (VMs). That smaller size increases density, the number of microservices, that a given host can run at a time.
container-dia
Cloud native solutions also increase application speed and agility via well designed network infrastructure

Automation Benefits

  • Infrastructure and Code (IaC) avoid manual environment creation and delivers stable configuration to rapidly scale.
  • Application code development leverages CI/CD technologies to increase efficiency and quality of the final product.

Integrations

Why is integration needed, and how is it accomplished?

Integration is needed to integrate applications by connecting multiple independent systems. The four core cloud services to meet integration needs are:

  • Publish and manage application programming interfaces (APIs).
  • Create and run integration logic, typically with a graphical tool for defining the workflow’s logic.
  • A method for applications and integration technologies to communicate in a loosely coupled way via messaging.
  • A technology that supports step logic communication via events

CI/CD Methodology

Blue/Green Deployment Pattern

This is a method of continuous deployment that is commonly used to reduce downtime. This is where traffic is transferred from one instance to another. In order to include a fresh version of code, we must replace the old code with a new code version. 

The new version exists in a green environment and the old version exists in a blue environment. After making changes to the previous version, we need a new instance from the old one to execute a newer version of the instance.

dev-ops-process

Tools Technologies and Services Used

Container | Orchestration | Pod Hosts

Apache Tomcat®

Tomcat 10 Software The Apache Tomcat® software is an open source implementation of the Jakarta Servlet, Jakarta Server Pages, Jakarta Expression Language, Jakarta WebSocket, Jakarta

Read More »

Docker

Docker makes development efficient and predictable Docker takes away repetitive, mundane configuration tasks and is used throughout the development lifecycle for fast, easy and portable

Read More »

Kubernetes

Production-Grade Container Orchestration Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications. Vendor Website

Read More »

Nomad by HashiCorp

Orchestration Made Easy A simple and flexible scheduler and orchestrator to deploy and manage containers and non-containerized applications across on-prem and clouds at scale. Vendor

Read More »

Docker Containers

Nexus 3 – Image Repository

Server Description A Dockerfile for Sonatype Nexus Repository Manager 3, starting with 3.18 the image is based on the Red Hat Universal Base Image while earlier versions

Read More »

Application Monitoring

API Resources

Automation Tools

CI/CD Platforms

Cloud Complience and Management

AWS CloudTrail

Overview AWS CloudTrail monitors and records account activity across your AWS infrastructure, giving you control over storage, analysis, and remediation actions.

Read More »

AWS CloudWatch

Overview Amazon CloudWatch collects and visualizes real-time logs, metrics, and event data in automated dashboards to streamline your infrastructure and application maintenance.

Read More »

AWS Control Tower

Overview AWS Control Tower simplifies AWS experiences by orchestrating multiple AWS services on your behalf while maintaining the security and compliance needs of your organization.

Read More »

AWS Organizations

Overview AWS Organizations lets you create new AWS accounts at no additional charge. With accounts in an organization, you can easily allocate resources, group accounts,

Read More »

AWS Service Catalog

Overview AWS Service Catalog lets you centrally manage deployed IT services, applications, resources, and metadata to achieve consistent governance of your infrastructure as code (IaC)

Read More »

Directory Services

AWS Directory Service

Overview Are you struggling with the complexities of managing your own directory service? Look no further than AWS Directory Services! AWS Directory Services is a

Read More »

AWS IAM Identity Center

Overview Are you struggling with managing the access and permissions of your AWS resources and applications? Look no further than AWS IAM Identity Center! AWS

Read More »

Drawing Tools

Developer Interfaces

Developer Launguages

Event Logging and Visualization

Identity-based networking

Proxies

Managed Secrets - Part of Zero Trust Framework

Message Brokers

Project Management - Collboration

Remote Access Tools

Repositories

Thanks for your submission