Python is a “glue” language, which has a library for almost everything. That makes it a good addition to Omnis; Why re-invent the wheel? Serban will show examples of what can be done with Python, how the code can be called form omnis, and how it can be deployed with your Omnis app.
- Simple usages (zip, encryption/decryption)
- Use AWS resources (S3, SQS, DynamoDB)
- import/export data from Excel – Set up a serverless architecture with AWS to process incoming Excel files
- Templating with Jinja2 (HTML and more). Potential usage for ultra thin Omnis web app.
- HTML parsing with Beautiful Soup
- Interfacing with Google Sheets or other Google products
- Payment processing with Stripe
- Image processing with pillow
- etc
Standalone usage of Python. Examples:
- Windows service
- Simple REST API with Django Rest Framework
Other subjects, optional
- NoSQL
- Discuss what NoSQL is and what is not. CAP theorem. History. Types. How it can be relevant for an Omnis developer.
- Hadoop
- Cassandra
- MongoDB
- Cloud managed solutions (DynamoDB, Cosmos and more)
- For each of the above discuss the overall architecture and typical usages
- How to access data with ODBC and other ways
- Alerting and monitoring at scale. How it’s done. What can be relevant for Omnis developers.
- Metric collection. Prometheus, AWS CloudWatch
- View metrics with Grafana dashboards
- Apache server metrics
- Custom metrics from Omnis
- Using percentiles
- Metric based alerting. When to alert, what to alert on. “the 4 golden signals”
This session will explore deployment options for Omnis Studio web apps, going beyond having an instance manually configured in the cloud or on a personal server. We’ll use AWS as an example. First we’ll discuss why you might want to use additional resources beyond an EC2 instance, then we’ll look into using kubernetes with the Omnis docker image.
What are the drawbacks of having just a manually configured instance in cloud or on premises?
For “Traditional” cloud deployment, without containers. Depending on time and level of interest this can be just presented or done in an in depth workshop:
- Some AWS basics concepts. Terraform
- Choosing instance types, pricing
- Use a configuration management tool or an image builder such as Hashicorp Packer
- AWS RDS instead of a self deployed SQL server
- Reserve an IP with AWS EIP. Route53 DNS
- Add an AWS load balancer and autoscale group to increase reliability. HTTPS. Sticky sessions. Monitoring and alerting
- Zero downtime deployment of new app versions.
- Additional AWS resources (S3, SQS, Lambda, DynamoDB, CloudWatch, FTP over S3)
Using containers for deployment , the session will cover:
- Why, where, how. What is docker, kubernetes, AWS ECS, EKS
- Setup kubernetes and AWS EKS
- Workers, instance types, pricing
- How to use the Omnis docker image. Dockerfile.
- Deploy Omnis with kubernetes
- Adding monitoring with Prometheus and Grafana
- Using Apache metrics
- Send metrics from Omnis
- deploying new versions of an app