Kubernetes programming: CRD, controller and operator learning materials - kubernetes

I am learning Kubernetes as there are more and more companies building their infra on it. And as a DevOps and SRE guy, I found it quite useful to use Custom Resources and Operators in Kubernetes to help users alleviate their burden when deploying new app to the cluster, since I can summarize useful apps and define templates for them. These templates are CRD and Operators.
Question
I wonder if there is a dedicated materials or courses on learning how to program my own CRD, controller and operator; with milder learning curve than looking at source code. Preferrably a series of courses.
Things I've already done:
I've download the sample controller and learned to use it. However, I found that my understanding of the controller is still not enough to build a controller from scratch.
I've also searched for courses at udemy. However almost all of them are on how to build and operate k8s, which is the most basics that I already knew.
I've searched for material on google and medium. A lot of older materials are obsolete (e.g. the resource group for deployment was still extensions rather than apps) or not detailed enough.
I've also looked into popular templates of the source code in operatorhub.io. However, the learning curve to read the source code is truly way too steep.

Related

Seeking advice about plugin architecture frameworks for master's project

This past week I have been doing research into possible language/frameworks to use for a plugin architecture for my master's project. I feel as though I have learned a great deal, but I am still apprehensive in which direction I am comfortable going in.
Before summarizing my findings, I'd like to first describe the main requirements of my project--because I believe that it's possible that I've had tunnel vision on the implementation and maybe not on what the requirements call for itself.
My project is an IoT management platform, the idea is that the system will be comprised of services or modules, that provide communication, storage, security, events, device registration. Application developers will use these system services to create plugins to be loaded, unloaded as desired at runtime for end users to use with their devices.
I have done some tutorials with OSGI, some of which I had a lot of difficulty completing. I have read about plugin architecture implementations in C/C++ and golang, each seem to have their quirks and limitations.
Is using a plugin architecture for this project warranted? And if so, which framework/tools/language(s) would you use?
For architecture I think you should follow micro-service arch
and yes every language have their limitation then when you create service for high performance then use rust or c++ and when you want to create high performance api then create golang service and deploy them on cloud and kubernate.
For framework, if you still confused what framework is suite you then follow clean architecture that will help you when create service
ex. you create golang service with gin framework you can switch to fiber framework very easy.
ref.
https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
https://github.com/bxcodec/go-clean-arch

Approach to use for mailbot/chatbot

This might sound like a general question but I am learning AI techniques/algorithms to implement the best solution for my website to reply to my users. I want to reply to my users as most of their questions over the email are almost the same so I am not sure which algorithm to use to implement my mailbot.
I have been studying AIML and apparently it uses best pattern matches and respond with the predefined template thus very less capacity so self learn. Other than this I have started studying basic NLP which would tokenize, segment, and then create an answer based on that. Maybe I need some advice on where to look.
Any suggestions will be appreciated.
Thanks.
I'd recommend Dialogflow for any chat bot applications. Not only does it make ml chat bots easily accessible and free (within a very generous free tier) but also allows you to leverage Google's models and infrastructure with very little development time and effort.
You can even get away with writing zero code, depending on your required integrations or backend.
Dialogflow also allows you to easily implement multiple languages and deploy to many platforms with little in terms of manual work.
It'll be a little more effort than keyword matching but will be a lot more versatile and you'll learn a lot more about intents, context and ml chat bots.
For you to deploy via email you'll want to integrate the API which should be very simple once you have a model configured.

Is there a specific guideline to follow when orchestrating services with WSO2?

I'm currently writing a document during an internship regarding the WSO2 Enterprise Integrator.
Problem is, I'm not going to work with it and definitely not going to write a single line of code, yet my job would be creating some guidelines that dictate how services (both SOAP and REST) should be orchestrated through the ESB.
The WSO2 documentation isn't helping me a lot because it mostly delves into explaining how to set up the Integrator and what tools are avaiable, and online I can only find simple tutorials which I can't really understand anyway because, as I said, I'm not even working with the platform.
So basically I don't understand if there is a specific conduct to follow when orchestrating services like "add this specific function in the service, create a dependency to the ESB" or whatever.
Any form of suggestion or just directing me towards the right documentation would be super helpful
Under my experience, what you must do is a proof of concept performing service orchestration, now by definition one of the characteristics of any ESB is precisely to be an orchestrator. I work daily with WSO2 and allows it in simple ways (with the same mediators) or complex ways (extending or creating new components)
PS: Excuse me for my English.
Regards !!!

Apache Stanbol scalability and real-world applications

I'm starting a project with requirements such as NLP, storage of semantic data, content managment etc. and Apache Stanbol seems like a nice fit, but I'm not exactly sure it's ready so I'm trying to make an appropriate assessment before starting to work with it, as there are few things that worry me:
Stanbol seems a bit young and immature (newest version 0.12). Has anybody used it in a commercial project/application/setup (I failed to find this information online)? What is the scale of those projects?
How horizontally scalable is Stanbol? What are its cloud/clustering capabilities? As far as I know it relies on Apache Jena for storage, and Jena storage isn't horizontally scalable which would make Stanbol unable to scale horizontally as well. I might be wrong about this, but this is my current understanding, please correct me if I'm wrong. Maybe Jena can be swapped with something else to be used as RDF storage provider and I'm not aware of it?
Learning resources for Stanbol seem a little scarce. Does anyone know of a place/book/whatever where I can get more understanding about Stanbol under the hood (other than the official Stanbol website and the IKS website)?
Are there any good alternatives? I know there are nice alternatives regarding NLP (e.g. GATE, UIMA), but they lack CMS capabilities.
Thanks.
To your question:
1) I've been working on a project involving Stanbol(version 0.10). Its
still in the pre production stage. For CMS, we evaluated JackRabbit
and Alfresco. Alfresco (CMIS) was found to be a better choice in our case. What I
like about stanbol is the enhancement chains and the set of
Enhancement
Engines
that come by default. This is a small to mid size project.
3) I found this book (Instant Apache Stanbol, Packt Publishing)
very practical and useful while going about with my work especially the sections on Entity hubs and Enhancement engines.
A viable option is to use Redlink that offers content analysis and linked data services in the cloud using Apache Stanbol and Apache Marmotta in the back-end.
The Readlink team has worked on IKS and Apache Stanbol; for these reasons getting in contact with them can be a good starting point when deciding to use these technologies in production environments.

Sample Application Using Drools5

I am working on the Drools5.I am new to this Drools.I need a sample working example for this Drools.For this i have googled it alot but i did not find the correct one.If anyone has an idea can give me the reply.
Since I'm on the same boat as you are, I've searched for learning material quite a bit. Here are my resources:
http://www.jboss.org/drools For the general portal for the project.
Since this project has nicely modularized submodules, here they are:
Drools Guvnor for the Management Module that is used to manage packages of rules and POJOs with versions and also for deployment of snapshots for external usage.
Drools Expert for the expert systems core of the project. Here you can get a first look at how rule processing works under drools.
Drools jBPM5 for business workflow process modeling and integration.
Drools Fusion for Complex Event Processing (CEP) with which you can do all timeconstraint sorts of pattern matching you could think of (my favorite by the way ;).
Drools Planner for planning and business resource optimization.
For each of them, there is a complete and in my opinion high quality documentation out. In there you can really get a hands on an start digging in. You could also start working through one or the other of my personal list:
Getting started with drools fusion, by TheJavaDude
Creating Category, Package, Declarative Model, Rules And Snapshot In Drools Guvnor[Video]
Mark Proctors introduction to drools at FOSDEM[Video]
I hope this helps.
Greetings,
Kjellski