Cloud is anywhere, from the consumer to the enterprise. Many of them already adopt the cloud. Cloud computing is not only a technology but culture that you might need to understand. We start to see the benefit cloud for personal such as storing files with better flexibility in access and space. Organization sees a cloud as enabler to expand their business without invest on capital expense. You can see a cloud in various point of view, but every point of view will give you similar answer. Cloud as enabler to do more.
Cloud in Before – After Scenario
We will see several examples that you already did before and after the cloud exist.
Before the cloud, you should put the files into your hard drive. You should never forget the hard drive, and make sure the hard drive is work as expected, you will have limited space based on you hard drive size, when you need more space you need to migrate into larger hard drive.
You can put your files in the cloud, you can access it anywhere. Cloud already has virus protection and disaster recovery. When you need more storage, you can subscribe more storage without migrating your content.
Before the cloud, organization should buy a server. Server should be bought in up-front cost. Organization should configure the network, the operating system, and the application.
You can rent a server through IaaS (infrastructure as a services), organization only pay what you need. If the organization doesn't need the server, they can deallocate the resources without the need of initial investment.
Before the cloud, academia should buy a machine learning server that costly. They should invest to collect the data, to train the data, create a model, and deploy a model.
Academia can consume ready to use intelligence service such as cognitive service API or DSVM (data science virtual machine)
Is Cloud too Expensive.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
You can see the table to understand is the cloud more expensive than having on-premises resources. As you can see, the cloud is performed better when you use huge resources and give you additional services when you use small amount resources.
ScenarioNotesOn-Premises InvestmentCloud Investment Put the files in the cloudYou bought one 1 TB hard drive vs 1 TB OneDrive personal includes49$
No backup
No Software
No Sync 69$ / year
Backup
Office Software
SyncOrganization Bought A ServerYou compare the server with the IaaS solution from Azur1500$
8 GB Ram, 500 HDD, 450 watts
w/o electricity
w/o security
w/o network
w/o OS108$ / month
All inAcademia bought ML Machine ServerYou compare buy NVIDIA DGX server with Azure DSVM140.000$
NVIDIA Grid 2
w/o electricity
w/o security
w/o network
1.3$ / hour
- all in
How to learn cloud?
You can get a lot of resources from the cloud provide. Here is my favorite list.
The Developer's Guide to Azure | Microsoft Azure
Azure on Microsoft Learn | Microsoft Docs
Resource search results | Microsoft Azure
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
A software project should have a database. You can use SQL or no-SQL database. You choose SQL when you work with structured data that should have specific constraint and schema. You choose no-SQL if you prefer a simple and high-performance data access. Visual Studio officially support both databases. On this article, we discuss what database option that we have and how to choose the correct option.
SQL Database
You have a lot of options to deploy SQL-based database. We will focus on two main approaches in this post.
SQL database that can be embedded in the application.
If you build a desktop software that run on top of Windows. You can use Microsoft Access.
If you build a web that run on top of Windows based hosting. You can use SQL Compact Edition. You can install the extension on the visual studio marketplace
SQL Database that should deployed separately in the application.
If you build a web that build the database from the scratch or existing SQL script, you can use the SQL Database Project
If you build a web that use code-first design, you can use Code First to a New Database - EF6 | Microsoft Docs
You can deploy both database to Microsoft Azure and your on-premises environment. You can do the deployment process through SQL Server Management Studio or Visual Studio Server explorer or publish profile.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
No SQL Database
Unfortunately, there is no built-in support for No SQL Database. This is because the NO SQL database is simple enough to install and to implement by using NuGet package manager.
My first choice is to use Mongo DB. You can install the extension of Mongo DB Mongo DB Tools - Visual Studio Marketplace
If you want to deploy into the cloud you can use Cosmos DB. You can visit NuGet Gallery | Microsoft.Azure.DocumentDB 2.13.1
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
The Concept
Running application on top application is a great news! However, it does not mean that there is no problem within the solution. The codes sometime behave not right and you need to identify and fix it right away, In order to do that, monitoring and logging provides useful information to understand the behavior of the codes.
Monitoring: a process to monitor a variable (metric) in the application
Logging: a process to write useful information AND metric into a database or a storage
By default, logging is collecting data and monitoring is watching the data that is collected. After monitoring, the system can do two types activities:
Act: for example, running a script, doing auto scale and notify the developer
Analyze: for example, creating a report, show an anomaly, and metric math.
The Technology
In the cloud we have two technologies:
Monitoring an application: for example: Amazon X-Ray or Azure App Insight
Monitoring an infrastructure: for example: Amazon CloudWatch or Azure Monitor
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
The Metrics
What are recommended metrics to monitor and log, you can see the table
StackWhat to monitorLoad BalancerHTTP codes, Queue length, latency Virtual Machine CPU usage, CPU credit, Memory, Status Check FailedNetworkNetwork in and out, LatencyI/OUsage disk, disk write / disk readApplicationInterested variablesAuto ScalingState of Instance (Start/Pending), Min / Max Group Size, 400 / 500 codes
The Log Behavior
In general, the log will be stored in 15 months in major log services such as CloudWatch or Azure Monitor. However, you can make it persistent in storage such as blob or storage. Here is an example in AWS. You might want to monitor continuously by streaming the data. For example, when we are using IOT device. We can also provide tags to add useful information for our log.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
Learning AI by Doing It
As a person who does not have a perfect background on Mathematics and Basic Science, learning AI is somewhat challenging. However, AI is not a new kid on the block. If you want to start to learn AI by today, you shall find numerous things to learn and it will become complicated. On this article, I want to share about how to learn AI with the minimum effort at the beginning and then increasing based on your need. I split the steps into three major steps: Level 1 (Fundamental), Level 2 (Associate), and Level 3 (Expert). As a case study, I use Microsoft ecosystem to start the learning process. Let's get started.
Level 1 Fundamental
Start to learn what is AI all about. Think the AI as a solution rather than a set of mechanism / process. On this level, you should learn what AI impact in the society. On this level, you will learn AI as a black box that empower you to do more.
You can start by understanding the AI on Azure. If you want to learn how AI is applied in the cloud computing.
After you grab the fundamental, try to explore which one do you find most interested to understand.
If you interest with image / audio / visual, you can start learning how to use AI on computer vision
If you interest with speech / text / understand the meaning, you can start learning how to use AI on natural language processing
If you interest with chatbot, you can start learning how to use AI on chatbot
Enriching your knowledge about the AI in this MOOC Course
After you grab the fundamental knowledge my recommendation is to join AI-900 exam to validate your knowledge.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
Level 2 Associate
On this level, you will learn how to develop customized AI solution based on the 'existing' model. You will need
Microsoft Cognitive Services. It is a set of services that can be extended to provide a set of AI service.
Azure Machine Learning Studio. It is a tool to design, develop, and deploy the AI solution.
You can start the learning process by
Understanding the role and the benefit of cognitive services.
Azure Cognitive Language Services
Azure Cognitive Speech Services
Azure Vision Services
Azure Decisions
Azure Search
Creating a model with Azure Machine Learning Studio by learning this course to learn
Try to build the classification model
Try to build the clustering model
Try to build the regression model
After this course, you can join AI-100 exam to validate your knowledge as AI engineer
Level 3 Expert
On this level, you will learn custom development of AI solution based on the 'niche' problems that need you to build the model from the scratch. You will need
Visual Studio / Visual Studio Codes.
SQL Server / Azure Data Lake / Azure Storage or any data solution that can help you to build and to maintain your model.
You can start the learning process by
Understanding the option to build machine learning
Choosing the right tools
If your computer is not sufficient you can try the Data Science Virtual Machine
If your computer is good enough you can build the AI Solution with AI tools with Visual Studio
Learn ML.NET if you are .NET developer, I recommend you to use Visual Studio 2019 or newer.
Learn Python if you are non .NET developer, I recommend you to use Visual Studio Codes.
There is a lot of option to learn after this. For example, you can learn how Deep learning, AI on IOT, AI works on data analytics, how to use ML Flow in Databricks, or using R as your choice of your programming language. After this course, my recommendation is to visit Azure Architecture Center to understand the recommended architecture to build better solution.
You can learn further by clicking the links.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
.NET is a first-class citizen in Microsoft Azure. However, you might have a customer who want to develop with .NET but use their existing Amazon AWS infrastructure. Is it hard to start with non-Microsoft environment? This article shows my experience when having Microsoft .NET solution but hosted in AWS.
Terminology between AWS and Azure
As a developer, we might think that is a solution in AWS does not exist in Azure (or vice versa). The Good News are cloud computing environment in Azure and AWS have similar terminology. Is just like buying a coke with brand Coca Cola vs Pepsi, you will have similar terminology
Amazon EC2 vs Azure VM
S3 vs Azure Storage
Amazon RDS vs Azure SQL
Dynamo DB vs Cosmos DB
Elastic Beanstalk vs App Services
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
You can find a long list of this comparison here. In conclusion, you do not need to worry that your solution is not exist in AWS.
.NET Support for Developer
Amazon and Microsoft are open platform cloud computing environment. Therefore, you will find the .NET solution cam be deployed there through IaaS or PaaS environment. However, if you want to develop the .NET solution that utilize the AWS services (i.e. S3) you can download
AWS Toolkit for Visual Studio. This is a tool that help you connect, manage, and consume the AWS infrastructure directly in your Visual Studio. You can download the toolkit for Visual Studio 2008, 2010, 2012, 2013, 2015, 2017, and 2019 here.
AWS Toolkit for Visual Studio Codes. If you are using Visual Studio Codes the AWS toolkit is ready for you. Just search the AWS toolkit and you will find the way
You can get see the getting started video here
Comparing the Cost between Azure and AWS
If your customer, ask you which one is better. You will be said that solution work great. In term of cost, both services are equal.
I am hosting a .NET solution in EC2 instance with 4GB RAM, 2 VCPU, and 100 GB HDD, and Windows. I will get
I am hosting a .NET solution in Azure VM with similar spec, I will get
You can compare between the solution by visiting:
Amazon AWS calculator
Azure Pricing Calculator
So which one do you choose? I recommend you play it around and decide. If your customer requests are AWS, it is a good time to install toolkit! See you next time!
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
What is MLOps and Why You Should Care?
MLOps is a DevOps in Machine Learning Project. Just imagine you have a project to build an AI 'empowered' software. You need to build the AI feature through machine learning approach. You should build model, test the model, and implement it into your software. There are extra steps you should fulfill and implement the MLOps means you can make sure that the machine learning activity can be well integrated with your DevOps.
MLOps = DevOps + ML Project
What is the key difference between MLOps and DevOps?
MLOps is an extra step in the DevOps. Therefore, some additional activity will be happened in MLOps. Here are the key deference's
MLOps is an iteration of experiment. MLOps provides additional iteration to experiment the model. You can put the experiment before the scrum sprint or includes it in the Scrum.
MLOps needs to be monitored. When building the model, you need to understand that the model itself need to be monitored carefully. Imagine you have a DGX1 to play with the dataset, you need to monitor the DGX 1 status with Azure Monitor.
MLOps needs automation before the model is built. Imagine you have dataset; you might need to pre-processing first. This extra step is part of MLOps
MLOps needs to handle model validation. MLOps doesn't use acceptance test, unit test, or code coverage. It uses different approaches. You might need validation set to validate your model. Doing some statistics measurement for error rate or something like that
MLOps needs a special member. MLOps might need more than software engine. Data Engineer, Data Science, or AI engineer can be part of MLOps
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
How do I get started with MLOps?
To get started in MLOps you should learn
You should learn how to build machine learning models. You can learn here for free
You should learn how to scale your AI solution and ML model. You can learn here for free.
You can see the implementation of MLOps here
Any Quick Reference for MLOps?
We have it for you, you can click to download the PDF file.
Case study about MLOps – Download Here
MLOps infographic – Download Here
MLOps how to implement it – Download Here
In the next post, we will learn MLOps in step-by-step.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
A lot of organization uses Microsoft 365 for their productivity. The increasing number of users and data on the cloud make the Microsoft 365 become one of the biggest digital assets on the organization. Although Microsoft 365 provides a data redundancy and data durability. The Cloud provider does not give warranty that the data can be accessed efficiently. In the multi-account environment, there are so many assets for each account such as:
Email attachment
Contact
Files on OneDrive
SharePoint
Calendar Attachment
On this article we want to show you how to do backup activity for our own Microsoft 365 by using the free solution from Synology NAS.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
Introducing Active Backup for Microsoft 365
Organization should control the data so that the data can be accessed efficiently and can be used effectively. To do that we should download and backup or data in the on-premise. The on-premise solution is never been easier without NAS. Active Backup for Microsoft 365 provides you with a great feature such as:
Backing up your SharePoint Online, Exchange Online, and OneDrive for Business.
Centralized management for multiple accounts.
Easy backup for new accounts and sites.
Providing retention policy, continuous backup and many more.
Storage efficiency and fast backup in your NAS.
You can see the details of the feature here
How to use Active Backup
The video will show you how. You can download the script here. You can read the tutorial here
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
Whether you are using Microsoft Azure or using Amazon AWS, networking is fundamental aspect on how the cloud resources can communicate with each other. On this article, we want to show you the fundamental of virtual network management in the cloud. Although the sample will use Azure, it can be implemented in AWS. Let us get started!
VNET Peering
When you want to communicate between two different virtual networks can communicate each other. For example, you have two VM with separated virtual network. VNET Peering has some characteristics which are:
VNET peering can be done in same subscription, different region, or cross tenant (by using CLI)
VNET peering can't be overlapping IP Address
VNET is not transparent
VNET is limited to 100 VNET for one subscription
VNET can be transitive when connecting to Gateway or NVA
Network Interface
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
Each cloud computing resource has one or more network interface. For example, a VM has one or more Network interface. Network interface can be defined as a main identity of the computing resources in cloud computing. Network interface characteristics are:
Network interface consists of public and private IP address
Network interface is part of subnet that created in VNET
Route table will help the network interface to communicate efficiently
NSG (Network Security Group)
Network security group will help the cloud computing resource secure their communication. NSG contains rule inbound or outbound of security rules.
Security rules are worked based on priority based. Lower mean higher priority.
There are inbound and outbound rules that can be applied differently. For example, you can block the port 80 for outbound, but allow the port 80 for inbound.
You can deploy a specific firewall to identify the port required and blocked for better NSG
VPN Gateway
VPN Gateway helps you to connect between cloud computing resources with the on-premise resources (private cloud).
VPN gateway is cost-effective version for connecting on-premise to cloud.
There is high performance connection such as Azure Express Route or AWS Direct Connect.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
The Fun Fact about the data
When we build anything, we use data. Start from structured data, unstructured data, and semi-structured data we store the data to retrieve it as information and knowledge. Despite of the data usage, we know that the data in our life is growing. And when we can't store the data in the local storage the cloud is the answer. The question is how we store and manage the data in the cloud. This article will discuss how we store and analyze the data in the cloud era. You can read the data concept here
The Data Store
You can store the data in two types relational data or non-relational data.
In non-relational data you will have Azure Cosmos DB, File, Blob, and many more. You can learn more here
In relational data you will have the power of SQL Azure, as well as MySQL, Maria DB and any others database. You can learn more here.
If you need high volume transaction without than the Non-relational data is for you. However, for small and tight relation between data you need the relational database such as SQL Server. You can learn more the consideration here.
The Data Analytics
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
After the data is stored, you can analyze the data for more useful manner. This step knowns as analytics. According to Microsoft they have several products which are?
Azure Data Factory who take any data and convert it into format that you need. The ETL process heavily happen in this Azure Data Factory
Azure Data Lake who store raw data to ready to retrieve as fast as it can. Azure Data Lake is the main storage for Azure Data Factory
Azure Databricks is a tool to provide big data processing, streaming, and machine learning. It can use data lake as a data source
Azure Synapse Analytics is an analytics engine. It is designed to process large amounts of data very quickly. Azure Synapse Analytics supports two computational models: SQL pools and Spark pools.
Azure Analysis Services enables you to build tabular models to support online analytical processing (OLAP) queries. You can combine data from multiple sources from the data lake, cosmos DB, and off course SQL Azure
Azure HDInsight is a big data processing tool based on well-known platform Hadoop.
You can learn more about analytics here. After you have analytics you can pull it into dashboard or report by using Power BI.
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
In a cloud computing solution, we can host our web application into three models: virtual machine (IAAS), managed server like Web app or EBS (PAAS), or serverless like ECS or Azure Container. So, which one do you choose?
The VM
If you do not want to spend time to migrate the VM is for you
If you need to communicate with the operating system service, the VM is for you
If you cannot find the managed server solution / like legacy application with specific framework the VM is for you.
The Web App
If you build the solution with the supported technology (current web app)
If you don't want to control the host OS
If you want the great scalability without additional configuration
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";
The Container.
If you want to build microservices architecture rather than monolithic
If you need a performance
If you want agnostic with a platform
You can see how easy to deploy this kind of publish setting in Azure with the Visual Studio
medianet_width = "600";
medianet_height = "250";
medianet_crid = "858385152";
medianet_versionId = "3111299";