How to Choose Azure Compute Service

What is a compute service?

It’s the hosting model on which your application runs. Any cloud provider offers a number of compute services to host your application code. All compute services, generally fall into three main categories IaaS, PaaS, and FaaS. Lets see what each category is.

Infrastructure-as-a-Service (IaaS): You provision individual Virtual Machines, Networking, and Storage. Then you deploy your application code on it. You get full access to this machines can install any SDKs, and Softwares to make your applications work. It’s very much similar to you local workstation, only difference is it’s in cloud. But it comes with several risks and challenges that will make you spend very large amount of time in managing these VMs instead of focusing on your actual application.

Platform-as-a-Service (PaaS): It provides a managed hosting environment, where you only think of deploying your application and managing the just the enthronement to make your application work without needing to manage VMs or networking resources. Examples: Azure App Service.

Functions-as-a-Service (FaaS): It’s the simplest computing model, you only worry about your code, and not hosting environment. Your cloud provider takes the responsibilities of making your application run with almost zero downtime and at any scale. Example: Azure Function

Strategies

Choosing the right compute service depends on your needs, so evaluating all options is recommended. It might feel wasting time in the start, but it will help you in long term because each compute service comes with cost, time to to make it operational, and some other limits.

Also, you must know some cloud migration strategies:

Lift and shift: When migrating an existing workload to the cloud without redesigning the application or making code changes.

Cloud optimized: Sometimes you have to modify/refactor you application to take advantage of cloud-native features and capabilities.

Here is the flow diagram which will help you in deciding your compute service whether you are building a new application or migrating an existing one.

To explore more visit https://docs.microsoft.com/en-us/azure/architecture/guide/technology-choices/compute-decision-tree.

Entity Framework and SQL Injection

EF supports three types of queries( LINQ-to-Entities, Entity SQL , and
Native SQL).

LINQ-to-Entities queries are safe. This type of queries are not composed by using string manipulation, which makes it safe against SQL injection attacks.

Entity SQL and Native SQL are susceptible to SQL injection attacks. To safeguard your data, you must use parameterized queries instead of injecting literals from an external agent directly.

To learn all three types of queries visit here.

Read Microsoft documentation for complete EF security considerations.

Model Fitting: Overfitting, Underfitting, and Balanced

Understanding model fitting is important for understanding the models’ poor accuracy.

https://docs.aws.amazon.com/machine-learning/latest/dg/model-fit-underfitting-vs-overfitting.html

Overfitting: When the model performs too well on training data then it reduces the model flexibility for new data.

Underfitting: When the model performs poorly on the training data. It’s often caused by an excessively simple model.

Both overfitting and underfitting lead to poor performance in real time.

Balanced: Bbalanced models would show better accuracy on new data.



The Importance of Software Architecture Styles

An architectural style is a general, reusable solution to a commonly occurring problem in software architecture within a given context.

You must have heard the phrase “Don’t reinvent the wheel”. In this context, don’t waste time in coming up with your own solution architecture, instead you can focus on development by using the architecture styles which suits your business need. These architectures are proven and matured over time with help on industry experts

Some benefits of architecture styles:

  • Makes your solution flexible and extendible, usable on the long term.
  • Make it possible to adapt to new requirements.

Before i talk more about the architecture styles, let’s first understand what is software architecture and the importance of it.

What is Software Architecture?

Software architecture is a high level structure or blueprint which describes relations among different components used in the final solution. Which make easy the software understanding and development.

Irrespective of software development process(Agile, Waterfall) you choose, it’s recommended to decide the structure for your solution before writing a single line of code. Because changing the structure is very costly once implemented

These are the popular architecture styles:

Docker Hub Unauthorized Access Incident: How to safeguard yourself?

What happened?

On April 25th 2019, Docker discovered unauthorized access to a database holding the credentials of 190,000 Docker Hub accounts which includes usernames, hashed passwords as well as GitHub and Bitbucket tokens for Docker autobuilds.

Resolution

  • Change password on Docker Hub and any other accounts that shared the same password.
  • For users may have been impacted, Github and Bitbucket autobuilds tokens are revoked. This means your autobuilds will fail, reconnect to your repositories again and check security logs to make sure everything is okay.
  • Enable Docker Content Trust to receive and send data to Docker Hub repositories.
    $ export DOCKER_CONTENT_TRUST=1

Alternatively, you can use repositories from Azure, Google, AWS, OCI, and others.

IT Business Trends for Next 10 Years

New technologies are constantly emerging, and many could have the potential to change the future of IT business. Companies that want to stay competitive must pay attention to following technologies.

Cloud Computing:

Cloud computing has become essential part of IT business now. Whether storing data, releasing products, making highly available systems, cloud computing is benefiting all businesses from small to large. Company like Microsoft, Amazon, Oracle, Alibaba, Oracle, and others are heavily investing in providing underlying infrastructure to support digital transformation of all sectors.

Internet of Things:

The Internet of Things(IoT) is made up of devices that connect to the internet and share data with each other. IoT devices include all objects which we interact in our day to day life will be equipped with chips to gather and communicate data over a network.

The range of existing and potential Internet of Things devices is enormous. By 2025, it is estimated that there will be more than to 21 billion IoT devices.

Artificial Intelligence & Machine Learning:

Artificial intelligence, machine learning and deep learning have been hot topics from few years. We’re still in the early stages of AI’s application, and its potential is very exciting.

Machine learning and deep learning will empower AI to become more and more smarter in taking decisions like humans and even better and fast.
As more and more companies starts implementing AI into their technologies, that will impact the future of business.

Decentralized Apps(Dapps):

Recently, you must have heard the name of Blockchain, this is one application of decentralized app. Imagine the beauty of decentralization is that everyone is owner and it eradicates the monopoly of one organization.

It represents, not just the future of applications online, but the future of the internet as a whole.

Augmented, Mixed and Virtual Reality:

Already billions of dollars invested by Google (Glass, Magic Leap), Facebook (Oculus), Microsoft (Hololens) and others will lead to a new generation of displays and user interfaces.

The result will be a massive disruption in the way human interacts with object for good.

Quantum Computing:

Quantum Computing, still an emerging technology, is one of the most fascinating things of this century so far. With its impressive computational power quantum computers will most like be a cloud service in the near future rather than on-premise machines. IBM is already offering cloud-based quantum computing services.

Microsoft has already released Quantum Development Kit and programming language Q# (Q Sharp).


What is Multi-tenant SaaS Application?

Before we dive into Multi-tenant SaaS application, let’s talk about what is SaaS and why do you need it?

SaaS applications are cloud based solutions hosted on cloud by third party where customers pay the the rent for using it instead of worrying about underlying infrastructure, upgrades for the software, etc. Some very popular applications which may have used in your company already are Atlasian (JIRA, Confluence), Slack, Datadog, etc…

It’s one of three main categories of cloud computing (IaaS, PaaS, SaaS) offerings. SaaS offers many potential advantages to customers over the traditional models of business software installation, including: Lower up-front cost, Quick to set up, Easy Upgrade, Accessibility, and Scalability.

Multi-tenant SaaS Applications:

Multi-tenant SaaS applications uses same application and database layers to run applications for multiple tenants (organizations/customers).

As for the data, each set of data is tagged as belonging to each customer to segregate and secure the data for each customer.

Today, SaaS application developers, as well as businesses, aim for the most cost-effective as well as an efficient approach for SaaS application development. That is why multi-tenant SaaS architecture is preferred over single tenancy.

When it comes to design, it’s not easy. Let’s look into some challenges of designing multi-tenant applications:

Tenant Isolation: Needed to keep one customer data separate from others. Failing to do so can bring the whole business down.

Customization: Supporting the customer (tenant) tenant specific customization.

Development & Operational Complexity: Schema changes, Restoring or Scaling tenant specific configurations.

Scalability: Flexibility to change subscriptions/plans for customers as and when need changes.

Design Patterns:

There are many patterns suggested by experts, and you can also come up with your own. But I would recommend only two patterns:

One database per tenant:

Multi-tenant Application using Azure SQL DB

Single multi-tenant database:

Multi-tenant Application Design on AWS

Resources:

https://docs.microsoft.com/en-us/azure/sql-database/saas-tenancy-app-design-patterns

Atlassian Multi-tenant Architecture Example



Create a website or blog at WordPress.com

Up ↑