Skip to main content

My 2cents on the future of Integration - With Service Mesh/Istio and Serverless/KNative


It's been a year and half since I blogged about "Agile Integration architecture" (Gosh, time just flies). With the "microservices" and "cloud-native" hype, I was especially curious on how all these new concept and technology affect us on how to architect the integration systems. If you ever pay close attention to all the latest and greatest news from the Kubernetes community, I am sure you will hear a lot about the new "Service Mesh". And rumor has it that this is how integration can/should be done in cloud native world, but, is that so? Anyone who has ever worked on an integration project would tell you, it's a LOT more COMPLEX and can get worst overtime. I did a talk with Christian Posta in Red Hat Tech Exchange coming from a more comprehensive view of how different Red Hat technologies are applied under different patterns when building integration solutions. In fact he also did a great blog about it.


Since then, another topics has been brought up numerous time, what about Serverless, how would it impact integration? Does it mean the death of services?  If we have all Microservices connected via Serviceless mechanism in service mesh, does that mean we go back to the old days of writing all the integration transformation logics in our application again? Obviously, this is complicated question to answer, and the new features keeps popping up, I am going to try to give my best to try and explain how I see everything fits into Agile Integration vision. Honestly, there is no exact right answer when it's about architecting system, it requires constant refactoring, my thought is to give a more general and flexible way of doing it that has less impact when change and being able to adapt change quickly. (That is what I call Agile Integration).

Service Mesh 

I remember last time, I started the agile integration reference architecture simply because the lack of organization of Microservices, and it still stand today. JUST because we have service mesh, doesn't mean it will magically solve the spaghetti connectivity if you are not being careful. To set the ground, what service mesh helps is to relief developer from dealing with repetitive, boring work in a distributed environment. Yes. Being cloud native with Microservices, means the system is more vulnerable to chain reaction disaster if not designed correctly, as you are working with small bots and gears in the system, that you never know how any small missed-handle can impact the entire system. Therefore we need to make each component more robust, failure proof and ideally damage recoverable. And Service Mesh helps you with getting the BASICs ready by adding a sidecar next to your running application. For every Microservices you create, no matter what they do, core business or content orchestration, they all need some kind of failure proof. Service Mesh gives you all that, from an application networking level. So that as a developer you will no longer have to wrap every single one of your Microservices with the circuit breaker, error retry and even handling version, deployment routing, and apply authorization,  those that has NOTHING to do with what the actually app is responsible for. These are often common rules that applies to the whole cluster. And service mesh is best for that, as these common policies are detached from actual application, can be managed centrally and apply individual on the sidecar so the microservice running your app is protected behind it.

Another great feature with service mesh, is to ability to trace and observe the incoming request for the entire system. This will certainly help developer/operation have more insight into the complex spider web-like connectivity.

Dealing with REAL Life Integration
But when it comes to actually application implementation, some folks thinks we can now rely on Service Mesh to configure and connect. MAYBE, if you are developing only a couple of small microservices, you can probably get away from that. BUT that is not what's happening in real life. For instance, formatting the data to the right granularity (Splitting/Aggregation), routing base on processing outcome of some content, a more complex orchestration of services call that requires precise rollback and business handling (Saga) , collection of events triggering, we can't possibly write all these into the Service Mesh config yml file (I am just being practical :p). So, I am sure now we have mutual agreement that integration logic still needs be written somewhere, DON'T tried to do it in your microservice with the business logic. That is why we need the conceptual layer in agile integration. They are the composite and core layer. Remember,  I mean CONCEPTUAL not physically on top of another, but separating the responsibility of the microservices so it's easier to locate, maintain and organize your applications. Taken from the lesson learnt from SOA. You will still need some kind of integration patterns to compose service that has the right granularity for the receiving end.

Monitoring and tracing is crucial in ANY integration system, and let's face it, there are NOT JUST http calls. Majority of times, they are events, and honestly an event driven reactive system is 100 times more flexible and modularize than sticking a bunch of API together. To be able to collect these data are needed beyond simple request tracing.


Serverless
I had to talk about this, the whole serverless development, deployment and runtime concept can take agile integration in another level not just conceptually but physically too. The idea of quickly spin up integration piece of logic, the ability to scale freely up and down. That is what I call true agility. I was thrilled to see Nicola demonstrate Camel-K on KNative.  Camel just opens up a wide range of connect possibility for the serverless call. To me the core spirits of server less is (For now)

  • Being able to quickly produce/start application without complex configuration and heavy runtime. 
  • Elastic resource allocation responding to loads. 

And what integration helps to bring to the table is the ability to allow the system to responds more events from boarder range of endpoints, for instance, IoT, SOAP and messaging and other protocol that are not simple http calls.


This is just a HIGH level overview of how I see Integration are shaped in the future of a serverless cloud native world. Of course I have not touch upon many topics like APIs, Event driven architecture, self service ability. They deserve separate blogs. Might do another later this week. Again, these are just my 2cents coming out from a more practical real life point of view.


Comments

Derek said…
I find this post to be very insightful and I hope you do get around to posting a follow-up.
smith machinist said…
Look no further, norton.com/setup , McAfee.com/activate ,
Office.com/setup and its products are easy to install and activate if you follow the guidelines given on this page very carefully.
marcellus said…
Thanks for sharing this post.It is very informative and helpful.
office.com/setup
Paul troy said…
I am really very happy to visit your blog. Now I am found which I actually want. I check your blog every day and try to learn something from your blog. Thank you and waiting for your new post.

mcafee.com/activate | mcafee.com/activate


Just seen your Article, it amazed me and surpised me with god thoughts that eveyone will benefit from it. It is really a very informative post for all those budding entreprenuers planning to take advantage of post for business expansions. You always share such a wonderful articlewhich helps us to gain knowledge .Thanks for sharing such a wonderful article, It will be deinitely helpful and fruitful article.
Thanks
DedicatedHosting4u.com
Welcome to RealPrinterFix247 right place to online help for HP Printer Tech Support Phone Number offered by best technicians to resolve any issues with HP computers, laptops, printers, desktop, and alternative parable devices, etc. We are remote HP Printer Tech support services for HP users facing a totally different level of technical problems with their Hewlett Packard Enterprise devices like Desktop Computers, Laptops, Printers, Scanners and Tablets business customer support.

Canon Printer Tech Support Phone Number | QuickBooks Tech Support Phone Number | Norton Tech Support Phone Number
meldaresearch said…
Our company offers top essay services at an affordable price. The cost of the custom nursing essay is determined by the number of pages top essay writing services department will complete for the client.
Puremelda said…
If you are tired of paying countless dollars for custom research paper writing, then we are here for you. We offer college research papers that give you ridiculously low prices, surprising discounts, and astonishing gift rewards.
OPP LOANS said…
Do you need a loan to pay off your bills? Or for your Business if yes
Email us opploansllc@gmail.com then fill this information to
register your name in our data base.

(1)Your Name:
(2)Amount needed as loan:
(3)Phone number:
(4)Duration:
(5) Male/Femele:
(6)Country

Regards.
We don’t only focus on solving your custom writing company but also getting you a good grade.All you need to do is to request for our cheap term papers for sale and let us do the rest!
eyosingh said…
If you need assistance for Canon printer setup for mac or looking online help for configuring the printer on mac, we are providing round the clock tech support service. Call our toll-free number +1-844-266-0040 and stay away from connecting or understanding a network of wires. We set up or configure your printer in the correct way to provide a completely functional printing peripheral device on your desk. We advise you to not waste your precious time and we will give personalized support at nominal charges
canon printer setup
meldaresearch said…
All our Custom Nursing Essay Writing Services are normally written by an expert; therefore, there will never be a time when a student will get poor quality work. We provide students with Nursing Assignment Writing Services that have been written by experienced writers. Students can count on us to get fast and effective help from writers who hold master’s and Ph.D degrees.
eyosingh said…
HP Printers Support team always here to provide Support to the HP Printer user, You can Contact us to know How to Fix Brother Printer Error Code 4F by dialing Brother Technical Support Number 18777606133. we provide an instant solution by HP Printer Customer Care team
hp printer in error state
Edward said…
Thank you so much for this nice information. Hope so many people will get aware of this and useful as well. And please keep update like this.

Big Data Services

Data Lake Services

Advanced Analytics Services

Full Stack Development Services
Michael said…
Very interesting stuff, thanks for posting.

One particular point I'd like to gain more insights on is how you would map the two conceptual layers "basic" and "composition" to actual implementation.

Talking in terms of camel/fuse, are those distinct routes in one fuse-project/camel-context, or are those separate deployments? Could you elaborate a bit more on that?

Popular posts from this blog

JBoss EAP 6 - 效能調校 (一) DataSource 的 Connection Pool

效能沒有什麼Best Practice, 反正能調整的就那些。 通常,一個程式的效能大概有70-80% 都跟程式怎麼寫的其實比較有關係。

最近我最疼愛的小貓Puji 因為膀胱結石開刀的時候過世了,心情很差請原諒我的口氣沒有很好,也沒有心情寫部落格。

Puji R.I.P.

=======================正文=======================

這個題目很多人叫我寫,可是這題目好大,這分明就是整死我咩~
所以我會分幾段慢慢寫。

JBoss 的 SubsystemDatasource WebWeb Service EJB Hibernate JMSJCAJVM 調校OS (作業系統)

先來看一下 DataSource Subsystem, DataSource 的部分主要是針對Connection Pool 做調校。

通常,程式都會需要跟資料庫界接,電腦在本機,尤其是在記憶體的運算很快,但是一旦要外部的資源連接,就是會非常的耗資源。所以現在的應用程式伺服器都會有個Pool 放一些先連接好的 資料庫connection,當程式有需要的時候就可以馬上提供,而不用花那些多餘的資源去連接資料庫。

這就是為什麼要針對Connection Pool 去做調校。

以下會討論到的參數,都是跟效能比較有關係,Datasource 還有很多參數,像是檢核connection 是否正確的,我都不會提到。如果你追求的是非常快速的效能,那我建議你一個檢核都不要加。當然,這樣就會為伺服器上面執行的程式帶來風險。這就是你要在效能與正確,安全性上面的取捨了。 (套句我朋友說的話,不可能又要馬兒好,又要馬兒不吃草的..)

最重要的調校參數就是 Connection 的 Pool 數量。(也就是那個Pool 裡面要放幾條的connection.) 這個參數是每一個應用程式都不一樣的。

min-pool-size 

Connection Pool 最少會存留的connection 數量

max-pool-size 

Connection Pool 最多可以開啓的 connection 數量

prefill

事先將connection pool 裡面建立好min-pool-size 的connection.

我的建議是觀察一下平常程式要用到的量設定為 min-pool-size 。
加上…

Red Hat Fuse - Announcing Fuse 7 Tech preview 3 release.

Red Hat Fuse 7.0 technical preview three is out today! On the pathway to become one of the best cloud-native integration platform, Fuse gives developer freedom to choose how they want to develop the integration solution, where they want to deploy it and capabilities to address new integration personas that do not have development experience.
By supporting the three major runtime, developer is free to work on the runtime of their choice.By supporting standalone and cloud deployment, it simplifies the complexity to distinguish between these environments, allowing application to deploy freely among the environment of your choice. All levels of developers are welcome, you can either dive deep into creating customize complex integration logic, or using the new low code platform to quickly build a simple integration. In this Tech Preview release you get it all.
Fuse StandaloneSpring-boot for microserviceKaraf 4 for OSGi loverJBoss EAP for JavaEE developersFuse on OpenShiftPlugins for easy co…