Service-oriented architecture (SOA) is a style of software design where services are provided to the other components by application components, through a communication protocol over a network. A SOA service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online
- Enterprise application integration is the process of linking such applications within a single organization together in order to simplify and automate business processes to the greatest extent possible, while at the same time avoiding having to make sweeping changes to the existing applications or data structures. Applications can be linked either at the back-end via APIs.
- In contrast, RPA systems develop the action list by watching the user perform that task in the application’s graphical user interface (GUI), and then perform the automation by repeating those tasks directly in the GUI. This can lower the barrier to use of automation in products that might not otherwise feature APIs for this purpose
- Business process management (BPM) is a discipline in operations management in which people use various methods to discover, model, analyze, measure, improve, optimize, and automate business processes.
We focus in this area meanly on the below subjects:
- Cloud adoption is a strategy used by enterprises to improve the use and scalability of Internet-based capabilities while reducing cost and risk, on premise on the internet or in a hybride solution.
- CI/CD
- Continuous integration (CI) is the practice of merging all developers’ working copies to a shared mainline several times a day.
- Continuous delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually.[1][2] It aims at building, testing, and releasing software with greater speed and frequency. The approach helps reduce the cost, time, and risk of delivering changes by allowing for more incremental updates to applications in production. A straightforward and repeatable deployment process is important for continuous delivery.
- CD contrasts with continuous deployment, a similar approach in which software is also produced in short cycles but through automated deployments rather than manual ones.
- GitOps literally means using Git everywhere from development to deployment.
- Code : Write your application code and push it to Git
- Build (Pipeline as Code): Write a pipeline in Git to build your code on the fly using CI tools
- Provision (Infrastructure as Code): Write a terraform file or Ansible playbook in Git to provision a kubernetes cluster or server i.e.compute instances on cloud
- Deploy : Write or template a deployment manifest for kubernetes or based on the type of application/artifact, use a CD Pipeline to deploy it on a VM or kubernetes using an Artifact Repository
Setting up a service mesh means a dedicated infrastructure layer for facilitating service-to-service communications between microservices, often using a sidecar proxy. Having such a dedicated communication layer can provide a number of benefits, such as:
- providing observability into communications
- providing secure connections
- or automating retries and backoff for failed requests
Data mesh is an architectural and organizational paradigm that challenges the age-old assumption that we must centralize big analytical data to use it, have data all in one place or be managed by a centralized data team to deliver value