Scalability with Load Balancer in Azure

Background Your organization already has a VM that host web server to the end-user. You want to make the VM can work scalable based on the demand of the end user. You want to distribute incoming network traffic across a group of back-end resources or services such as virtual machines (VMs). You must scale your applications while maintaining throughput and keeping response times low. Solution For scalability Azure provides you: Azure Load Balancer. It works in Layer 4. You can manage VM, NAT, and the virtual network Application Gateway. It works in Layer 7. You can manage HTTP, HTTPS traffic medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; On this case, we prefer to use Azure Load Balancer (since it's a VM) Think the scenario, where you want to put the Azure Load Balancer Public facing. For example, when you have a web server in a public subnet Private facing. For example, when you want to manage load in private subnet such as database server Select proper SKU Basic – communicate with HTTP and TCP protocol, up to 300 instances Standard – Basic SKU plus HTTPs and with SLA 99.99% Choose the backend pool. Backend pool is containing the IP address or VM sets that already exist. For Basic you can only access VM in single network, while standard can access in availability set Availability set Single VM VM Scale set Configure rule of load balancer Configure session persistence. It will help the user can use same VM when doing transaction Create health probe. It rules how probe will make use the load balancer activate when certain health conditions Learn More medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Choosing the right database in the cloud

Problem Background You build a new application in the cloud, and you want to select proper database for your application. There are many choices for database deployment. Today we will discuss tips to choose the right database for your cloud environment. Let's get started! What are the Issues? When choosing the database in the cloud, you will have a lot of option such as self-managed database in the cloud or full managed database in the cloud. Although you already have a good benefit when implement a cloud such as scalability, operational simplicity (sharding, backup, recovery, updates), and cost efficiency when implement in the cloud. However, design consideration will become the main issues in the cloud. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; The Tips Tips 1 – Leveraging the On-Premises database to the Virtual Machine When I use this: You have on-premises database that hosted on a VM. Doing this will make you easy to lift-and-shift You have legacy database that not compatible with the full managed database services provided by your cloud provider. You want to manage your database engine by yourself Tips 2 – Using the full managed database When I use this: You don't have time and resources to manage your database. Ease of administration. You have a compatible database with the cloud provider. Available, durable, and up to date. You build a new application that use modern infrastructure that leverage the power of the cloud. High performance and good scalability Tips 3 – Taking Care the cost Self-managed database will give you lower cost than full-managed database. For the same size, you will get 50% higher cost by using full-managed database vs self-managed database. Tips 4 – Using the Cloud Optimized Database Today the cloud provider provides you a modern and serverless cloud optimized database such as Azure Database SQL Serverless or AWS Aurora serverless. These cloud optimized database is managed database just like SQL Azure or RDS. But it has more performance, more modern, more cost (23% higher than full managed database). If you have data intensive transaction you can choose cloud optimized database. Tips 5 – Using the Non-Relational Database (NoSQL) Beside the relational database, you will have non-relational database that work more simple, more high performance, and key-value access pattern. If your data can be developed in non-relational way you can use the NoSQL engine such as Cosmo DB or DynamoDB. Please make sure The cost to store the data in non-relational is higher than relational database. i.e., 1 TB will cost 250 USD / month in DynamoDB while in Aurora will cost you about 100 USD The availability of NoSQL (99.999) is higher than full managed database (99.99). Is schema less database, so you don't need database schema only table. Personal Conclusion So, what the conclusion so far For small and cost-effective, you should choose to self-manage is the cheapest option and full control For more demanding performances you should choose full managed database. When in doubt or high transaction database you can choose NoSQL medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Quality Assurance of DevOps Project

When we discuss about the quality of software, we discuss about how we can deliver less bugs software and correct. This can be done by having a dedicated members that focusing in quality of a software. It can be software tester, quality assurance engineer, or software development engineering test. This article will discuss what we need to do when we have a DevOps project and need to make sure the quality of the outcome. Failure Reason Let's we ask ourselves, why the result of our DevOps project / Software Engineering project goes wrong? Incorrect requirements Team issues (productivity, miscommunication, mis-coordination) Untested software (have no time to test) Radical changes in software (unstable requirements) Wrong architectural design (wrong technology, wrong design, wrong approaches) medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; What we need to do So how we can make sure the result of the DevOps project is sufficient. And the failure risk can be reduced by the QA role. Failure riskQA ActionTask on DevOpsIncorrect requirements Validate the user stories with the customerCheck the actor or roles. Check the feature Check the user story Team Issues Doing weekly QA based on the outcome/ deliverable Learning the demonstration from the developer teamsCheck the deliverable and commitment of the teams in Kanban board Check the status of the story closed when it is tested Untested SoftwareRetested by doing daily QA with development team Retested by doing weekly QA with the customerPut bugs and additional tasks to developer team Creating test plan, test case, and test suite Creating manual based on test resultRadical Changes in software Creating meeting notes for bugs Creating notes for changes Put bugs and monitor the progress Validates the changes, if changes is approved Wrong architectural designDiscussing the information architecture issues with the development teams Discussing the solution architecture with the development teamsCreating tasks that related with architecture changes. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Implementing Corporate University in Azure and Microsoft 365

What is Corporate University? Corporate is a formed into an association and endowed by law with the rights and liabilities of an individual. Corporate hires the talent to achieves their mission and vision. Therefore, the successful of corporation depends on the talents that joined the company. To make the talents work better, the corporate creates programs that helps the talent to achieve more. Corporate university is professional development process that organized by the corporate itself. It means the organization works just like university to prepare for the talents to have specific outcomes based on the organization specific needs. Who is the actor of corporate university? You can put a lot of actors for the corporate university, on this article let's just focus on the essentials: Admin, a person who manages the entire system of corporate university Manager, a person who assigned a talent something to learn based on the division / organization needs Learner, a talent / employee that participates in learning Author, a person who help to create courses Mentor, a person who help to deliver a course / topic. What are the elements of the corporate university? We can define elements as a fundamental structure of corporate university. On corporate university, we have Program, a learning plan that consist of several related courses to obtain specific skillset. For example, onboarding program will have several courses related for a new employee. Course, a structured content to obtain specific knowledge or skill. For example, communication course will make sure the employee understands the basic of the business communication Certification, an assessment to validate the professional development of the employee. Certification is a culminating activity to validate the skillset that learnt in a program/program. Artifacts, a specific evidence that can be obtained by finishing the program, course, and certification Course will obtain you an XP (eXperience Points) Program will obtain you a badge Certification will obtain you a certificate Portfolio, a report that can be generated that shows the artifacts of the learner. How to implement Corporate University in Your Organization medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; Is the corporate university can be applied in my organization? Make sure your organization have a resource to implement corporate university. If you don't have resources such as author or admin. You can use exiting platform such as LinkedIn Learning, Udemy, Coursera, and many other. Make sure your organization have a policy for learning. The policy should cover Learning schedule. For example, employee should finish 10 courses in a quarter Benefits in career advancement. For example, employee should finish onboarding program before they join a project Make sure the certificate and the other artifacts can be standardized and can be used to fulfill regulatory requirements. For example, the Microsoft Certified Professional can be used to apply information system project in a government. How to use Azure and Microsoft 365 for Corporate University There is a lot of system that help corporate to implement corporate university. For example, Moodle Workspace, Open EdX, and others. Make sure the organization use Microsoft 365 as the organization ID Make sure you activate Microsoft Teams for discussion platform Make sure you implement the corporate university platform in Azure. You can see the big picture on this picture medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

The Change Directory is not enabled in Azure Subscription

Problem Microsoft Azure Subscription resides on a directory namely Azure Active Directory. You want to move or to consolidate the Azure Subscription into others directory. However, you find that the change directory button is disabled. You need to change the Azure Subscription to the new directory Causes This problem happens because of the three requirements are not fulfilled. You must be the Service Administrator for the subscription You must be signed in using a Microsoft Account / Office 365 Account You must have access to the directory you want to associate with Solution Based on the causes we can do several steps: medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; #1 Check your service administrator account. Visit Login with administrator account of the azure subscription Click on the subscription you want to change. Click on "Edit subscriptions details" and enter the Microsoft Account that is going to be Service Administrator. Only service administrator can migrate your subscription. Click Save #2 Add the service administrator in the Azure Active Directory Destination Visit Login with the owner of the Azure AD Click on users. Click add users. Add the service administrator account by using invite the user. Check the email by login as service administrator. Click the email link to join in the directory. #3 Change the directory of your Azure Subscription. Login with your services administrator. Visit the subscription (Key Symbol) Click change directory. Choose the destination directory. Please wait for one hour or more. Switch to the destination directory Make sure you see your Azure Subscription in the directory Mission accomplished!   medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

How to deploy your Azure DevOps repository to Different Azure Subscription

Problem By default, Azure DevOps provides you an easy way to deploy your codes repository to the same account with your Azure Subscription. For example, when you have [email protected], it will have access to Azure subscription that related with [email protected] The problem is raising when you need to deploy your Azure DevOps repository to the different account or subscription that not related with your tenant. For example, you want to deploy your solution to active directory but you only have access to This article will give you an insight into the possibility of the solution. Solution #1 Adding your account in their active directory. You request the administrator of to add you as a guest in their azure directory. You request them to give you an access as owner of a resource group or as contributor in a cloud service. In a startup or small business this is possible, but in medium and large enterprise this solution might be not acceptable. You can see the tutorial here Tutorial: Grant a user access to Azure resources using the Azure portal - Azure RBAC | Microsoft Docs #3 Creating service principle to connect between the Azure DevOps to their Azure. Azure DevOps has a feature namely services connection. It can connect the subscription into the Azure DevOps. You can see the video here. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

How to Become DevOps Engineer?

What is DevOps Engineer DevOps engineer is a sensual role in a company that focus in delivering software engineering toolchain and culture in the organization. DevOps engineer is a software engineer that care not only to build a software but also to operation the software. The purpose of the DevOps is to improve the productivity of the developer and the performance of the operation team. It happens by creating a set of culture and computing environments that support their workflow. DevOps is closely related to the cloud computing. Cloud computing empowers the DevOps process to achieve more by reducing the complexity in the infrastructure. On this article, we will discuss how to become DevOps engineer. We will use DevOps toolchain from Microsoft or Amazon AWS interchangeably. The Component of the DevOps We already hear this about its thousands of times. The six practices of the DevOps are: Continuous integration. A practice that integrates your codes into one single repository (such as GitHub). After that, the codes are tested and automated. Continuous delivery. A practice that automatically deploy your tested codes into staging environments or production Microservices. A practice that composes your codes into small pieces that has loosely coupled dependency. Infrastructure as a code. A practice that automatically construct the infrastructure that needed for development and production. Monitoring and logging. A practice that monitors your production infrastructure as well as your application through log and metrics. It also provides alert or automatic action based on the metrics. Collaboration and communication. A practice that delivers the organization an environment to do communication and collaboration that blended with the DevOps initiatives. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; The Domain of the DevOps Knowledge If you want to learn a DevOps and proof your DevOps knowledge you should understand these domains. Domain 1. SDLC Automation. Understanding what DevOps and what toolchain that you can use. Domain 2. Configuration management and Infrastructure as a code (IAAC). Be able to prepare the infrastructure with IAAC method. Domain 3. Managing monitoring and logging. Be able to setup and to configure toolchain that related with monitoring and logging. Domain 4. Applying policies and standard automation. Be able to enforce the security, governance, and policy to DevOps environment. Domain 5. Recovering from incident. Be able to do restore operations in DevOps environment. Domain 6. Managing High Available, Fault Tollerance, and disaster recovery. Be able to design, to implement, and to manage best practices architecture and approaches in DevOps environments. That is the basic of DevOps knowledge domain that you should understand, let's discuss more. In another post.   medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Simplifying IoT solution with Cloud Computing

Creating IoT environment and solution is not an easy task. There are several challenges that we face such as the heterogenic of the device, security, and the complexity management solution of IOT. Fortunately, we have a cloud who can reduce the risk of integration, management, and the lack of security. Yesterday, I discussed how Cloud Computing can solve the IoT issue. The event that held by 165 participants in UTY (Universitas Technology Yogyakarta). It executed on 10 April 2021. The key discussion in this event is: High Level IoT architecture On this part, we should understand several IoT Architecture. For example, in Azure we have two main architectures. Centralized model. On this model, we have Azure IoT Central as software as a service that help to manage our plug and play device Gateway model. On this model, gateway become a hub to connect the IoT device and forward the data to the processing solution such as streaming analytics or power bi   medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; Microsoft Product Portfolio Microsoft has ready to use solution to fulfill the main scenario. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; Video tutorial VSID has a video tutorial that can be viewed here

Understanding Cloud Computing as Enabler

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";

Database Deployment in Visual Studio

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";

Topics Highlights

About @ridife

This blog will be dedicated to integrate a knowledge between academic and industry need in the Software Engineering, DevOps, Cloud Computing and Microsoft 365 platform. Enjoy this blog and let's get in touch in any social media.


Month List