Lesson 1 Introduction.pdf
Document Details
Uploaded by LongLastingVerdelite
DMMMSU
Tags
Full Transcript
(SYSTEM INTEGRATION AND Manny R. Hortizuela Instructor/Programmer/Network Administrator ARCHITECTURE II) SYSTEM INTEGRATION The process of creating a complex information system that may include designing or building a customized architecture or applic...
(SYSTEM INTEGRATION AND Manny R. Hortizuela Instructor/Programmer/Network Administrator ARCHITECTURE II) SYSTEM INTEGRATION The process of creating a complex information system that may include designing or building a customized architecture or application, integrating it with new or existing hardware, packaged and custom software, and communications. ARCHITECTURE ❑the organization of a system ❑this organization includes all components, how they interact with each other, the environment in which they operate, and the principles used to design the software. In many cases, it can also include the evolution of the software into the future. APPLICATION PROGRAM INTERFACES WORKING WITH API API USES JSON OR XML JSON is a standard text-based format for representing structured data based on JavaScript object syntax commonly used for transmitting data in web applications (e.g., sending some data from the server to the client, so it can be displayed on a web page, or vice versa) Extensible Markup Language (XML) lets you define and store data in a shareable manner. XML supports information exchange between computer systems such as websites, databases, and third-party applications EXAMPLE JSON FORMAT API MIDDLEWARE APPLICATION API FIRST DEVELOPMENT API-first, also called the API-first approach, prioritizes APIs at the beginning of the software development process, positioning APIs as the building blocks of software. API-first organizations develop APIs before writing other code, instead of treating them as afterthoughts. HOW DOES API WORKS? API-first development model, they need to prioritize APIs, recognize the role of public, private, and partner APIs in organizations, and understand the API lifecycle and the tooling needed to become API-first. API LIFE CYCLE The series of steps that teams must take in order to successfully design, develop, deploy, and consume APIs. Teams that follow a clearly defined API lifecycle are more productive and better equipped to deliver a high-quality API BENEFITS OF API LIFECYCLE MANAGEMENT ❑Increased productivity: API lifecycle management is about establishing tried-and-true processes for designing, developing, and deploying APIs. These processes improve collaboration by reducing confusion and unnecessary work, which can lead to substantial and sustainable productivity gains. ❑Greater visibility: API lifecycle management creates a clear roadmap for every API-related project, which gives leaders better visibility into an API's trajectory. It also lays the groundwork for an effective API monitoring strategy, which can be used to keep tabs on every API's health, performance, and usage. ❑Organizational alignment: API lifecycle management establishes a common vocabulary for all API-related work within an organization. This not only helps teams communicate more effectively, but also improves morale by ensuring that everyone is working towards a shared goal. API LIFECYCLE STAGE 1-DEFINE Stage 1: Define In the first stage of the API lifecycle, product managers and other stakeholders must define the operational, business, and security requirements for a single API or group of APIs. This requires them to agree on the API's intended use case—and identify the team members who will move it through each subsequent stage of the lifecycle. They should also create and configure a dedicated workspace where team members can collaborate, as well as a GitHub repository that is connected to a CI pipeline. These steps help stabilize the rest of the API lifecycle and establish locations and tooling for stage-specific work. STAGE 2-DESIGN Stage 2: Design API design involves making intentional decisions about how an API will expose data to consumers. These decisions are then captured in an API definition, which is a human- and machine-readable representation of an API's intended functionality. API definitions adhere to API specifications, such as OpenAPI and AsyncAPI, which provide a standardized format and vocabulary for API definitions and lay the foundation for API contracts, documentation, mocks, and tests. STAGE 3-DEVELOP Stage 3: Develop After the API has been designed, developers are tasked with writing code that implements its intended functionality. Most development teams use Git for version control, which enables them to safely manage changes and revert to previous iterations if necessary. They also typically use GitHub or GitLab repositories to store their source code, keep track of code-related issues, and conduct code reviews. Development workflows vary widely, so it's important for leaders to clearly define these processes in order to standardize their team's approach. STAGE 4-TEST Stage 3: Test API testing, which occurs during the “develop,ˮ “secure,ˮ and “deployˮ stages of the API lifecycle, enables developers and QA teams to confirm that an API is working as expected. API tests can be executed manually, or they can be automatically run from multiple geographic regions or within CI/CD pipelines. Testing early and often helps teams surface and remediate issues before they become ingrained or reach production. There are many different types of API tests, and each one serves a unique purpose. For instance, contract tests are used to ensure that any changes do not cause the API to deviate from what was promised during the design stage. Performance tests, in contrast, can help confirm that an API is able to deliver responses in an appropriate amount of time. STAGE 5-SECURE Stage 5: Secure The “secureˮ phase of the API lifecycle involves checking an API for common security vulnerabilities that can compromise an application's overall security posture. For instance, it's important to confirm that an API's authentication logic only allows legitimate users to interact with the API and access its data. These API security checks can be run manually or automatically within CI/CD pipelines, and they help ensure that every API within an organization's portfolio follows the same security standards. STAGE 6-DEPLOY Stage 6: Deploy The “deployˮ stage of the API lifecycle refers to the process of publishing APIs to development, staging, and production environments. Many teams leverage CI/CD pipelines and API gateways to standardize the deployment process and ensure that every batch of changes is properly tested and secured before it reaches consumers. Consistent processes make deployments more predictable, which is particularly important for agile teams that ship new code several times a week. STAGE 7-OBSERVE Stage 7: Observe The “observeˮ stage of the API lifecycle involves collecting, visualizing, and alerting on API telemetry data in production. During this stage, SREs and DevOps engineers will configure monitors to automatically notify them of API performance and security issues—and leverage APM tools that place API performance data in context. API observability plays a crucial role in surfacing errors, latency, and security vulnerabilities before they negatively impact dependent services, partners, and customers. STAGE 8-DISTRIBUTE Stage 8: Distribute During the “distributeˮ stage, teams will focus on improving their API's discoverability. API catalogs play a crucial role in this stage. Public API catalogs help API producers reach and support third-party consumers, while private API catalogs make it easier for internal teams to collaborate and consume one another's APIs. Every API should also include a detailed description and relevant tags, which will help ensure it can be surfaced by the catalog's search engine. LABORATORY TOOLS XAMPP-https://www.apachefriends.org/index.html NOTEPAD++-https://notepad-plus-plus.org/downloads/ SQLyOG Community-https://github.com/webyog/sqlyog-community THUNDER CLIENT-VSCODE Plugin SLIM FRAMEWORK-https://www.slimframework.com/ COMPOSER-https://getcomposer.org/ DOCUMENTATION Jsend-https://github.com/omniti-labs/jsend