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.
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.
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.
- 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.
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
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.
Tools Technologies and Services Used
Container | Orchestration | Pod Hosts
Cloud Complience and Management
Event Logging and Visualization
Managed Secrets - Part of Zero Trust Framework
Zero Trust Framework Services Why implement zero trust technology? Hashi Corp Inc. has commissioned a study to make a prediction of the total industry losses