2014-09-18 4 views
0

Je me demande si quelqu'un pouvait partager leurs réflexions sur ma question concernant les API basées sur le Web (nous utilisons Microsoft piles) ..conseils pour la conception d'une API Web Infrastructure

Nous sommes en train de construire une infrastructure pour accueillir web apis à travers nos affaires.

En tant qu'organisation, nous avons des zones d'activité distinctes qui fournissent des services à nos clients. Ces différents domaines de notre activité ont généralement leur propre système informatique. L'offre d'API est quelque chose que nous avons longtemps pensé et nous avons commencé le processus de conception. Les API que nous visons à offrir doivent être basées sur le Web (.NET/webAPI/WCF, etc.) et seront en grande partie (99%) consommées au sein de notre organisation mais certaines peuvent être exposées à l'avenir si nécessaire (nouvelle application mobile peut avoir besoin d'utiliser les services, etc.)

J'aimerais connaître vos pensées et vos expériences sur la façon dont vous avez conçu votre ferme. Je comprends sa question tout à fait ouverte sans comprendre les escrocs de nos exigences mais ses conseils plus généraux/expériences que j'aimerais entendre.

En particulier, nous essayons de décider si nous devons concevoir la infrastrcuture par:

1) Fournir chaque zone de l'entreprise avec leur propre serveur API par lequel nous déployons chaque API Web dans une nouvelle application dans IIS.

ou

2) Configuration une batterie dont la charge api web équilibrée par lequel nous avons dire 2/3 iis serveurs web, tous construits de la même, hébergeant les mêmes APIs Web, mais les zones d'affaires partagent tous le même serveur efficacement. Chaque zone aura un site séparé dans iis et de nouvelles API seront configurées sous de nouvelles applications dans leurs sites Web respectifs. Je ne prévois pas que nous ayons des milliers d'API, mais certaines seront critiques pour l'entreprise, donc je pense à la résilience, c'est pourquoi j'aime autant que chaque secteur d'activité ait son propre serveur API, je suis influencé par l'option d'avoir une ferme à charge équilibrée que partage l'ensemble de l'entreprise.

Quelqu'un at-il des pensées, des expériences, etc.?

Merci!

Répondre

0

C'est une question très intéressante, et j'aimerais entendre ce que les autres pourraient penser. Je ne suis pas un grand expert, mais voici mes deux cents.

Il me semble que la réponse devrait être quelque part entre les deux options que vous avez spécifiées. Plus particulièrement, chaque secteur d'activité critique doit disposer de sa propre batterie de serveurs résiliente et à charge équilibrée, tandis que les services moins critiques peuvent utiliser des déploiements de machines uniques. Un domaine d'activité critique peut ne pas signifier une seule API, mais peut en réalité être un groupe d'API, avec une forte cohésion entre eux. L'utilisation de l'option 1 environnement dans son intégralité peut être difficile à maintenir, tout en utilisant l'option 2 entièrement, peut être inefficace en termes de redéploiement si (ou mieux encore, quand) la logique métier change. De plus, je pense qu'il sera possible pour les API gourmandes d'accaparer des ressources dans les pics de trafic, rendant les autres services temporairement moins performants (sauf si vous avez un mécanisme de mise à l'échelle dynamique).

Questions connexes