The Architect

Becoming architect in today computing is no longer easy just like before. In the past, we just need to learn a computer, its architecture, and its software. Today, business uses IT like never before. Virtualization, Client Server, Distributed systems, and of course cloud computing. On this article, we will discuss what we need to learn as professional architect Professional Architect in Certification In professional world, certification is a measurement of how career development goes. Therefore, let see what the expectation of certification in professional architect Azure Solutions Architect The professional architect should understand Implement and monitor an Azure infrastructure Implement management and security solutions Implement solutions for apps Implement and manage data platforms Design monitoring Design identity and security Design data storage Design business continuity Design infrastructure AWS Professional Architect The professional architect on AWS should understand Design and deploy dynamically scalable, highly available, fault-tolerant, and reliable applications on AWS Select appropriate AWS services to design and deploy an application based on given requirements Migrate complex, multi-tier applications on AWS Design and deploy enterprise-wide scalable operations on AWS Implement cost-control strategies Learning as Architect You can learn to become architect by joining digital training such as: Microsoft Certified: Azure Solutions Architect Expert - Learn | Microsoft Docs Exam Readiness: AWS Certified Solutions Architect – Professional | AWS Training & Certification The Real Architect You should learn by doing, so lab is better You should learn by reading a lot of material You should practices problem – solution

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

Deploying .NET CMS Umbraco in AWS

Background Our customer has AWS Subscription, and they want to deploy our .NET Solutions to the AWS. This article will give you step by step how to deploy the Umbraco Solution into the AWS. Step By Step Installing AWS Toolkit Visit the AWS toolkit page AWS Toolkit for Visual Studio ( Download and install the AWS toolkit Installing Umbraco Create a new project in Visual Studio Select web application (.NET framework) Choose the default configuration and select empty web templates Don't check any references Click Manage Nuget Package And select Umbraco CMS Click install Build the solution Deploying to AWS Go to your AWS console Select IAM Create user with Programmatic Access and as Administrator User access key and secret key go to create profile in Getting Started page OR AWS Explorer Right click on the Project and Deploy to elastic beanstalk Create a new profile if you don't have one Filling the profile and click deploy. Please wait status until environment is healthy 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";

Monitoring and Logging in Cloud Era

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

Accelerating .NET development in AWS

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

Managing Virtual Network in Cloud Computing

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

Preparing Certified Cloud Solution Architect Associate Exam

The value of certification Certification provides better preparation for us to face the real work situation. Certification also proves your capability to understand the topic. On this article, I will show you what you need to learn to pass SAA-C02. I failed once so this is my real experience to learn and to prepare the certification. #1 Learn the Study Guide from Amazon Download the study guide here. You can also see the exam question here. The full learning path can be seen here medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; #2 Sharping your knowledge through video tutorial Chad Smith, on Oreilly has a complete e-learning package you can join here Linked Learning, on LinkedIn has learning path that you can join here Pluralsight has a complete course to prepare the ACA here Join for more than one course to prepare you better. #3 Practicing and Practicing Learn the knowledge by doing practicing test. You can join the practice at here and join AWS Academy at Good luck for exam preparation. medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

Three steps that you must do before building cloud solution

Building for cloud is different Whether you are building for the Azure or for the AWS, you can see there are some difference between building the cloud solution and on-premises solution. There are three key differences when comparing cloud and on-premises which are: Cloud is running in massive scale virtualization. Therefore, some of the key architecture such as cookie, session, and cache should be different between cloud and on-premises. Cloud is providing platform tools. Cloud computing such as AWS or Azure is giving you some platform tools to more productive Cloud is costly for some workload. Cloud computing is costly for some workloads. When comparing with the on-premises or conventional hosting, the cloud computing is costly for some workload configuration medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299"; Based on that difference, we discuss three steps that you must do before building cloud solution. Step 1. Learning the platform tools After installing visual studio or visual studio codes you should download the platform tools for Azure or AWS. For Azure, you can download and install Azure developments workload on Visual Studio Installer. You can download For Aws, you can download The AWS toolkit Step 2. Start with the developer SKU Both Azure and AWS has the developer SKU. It provides you better price for developer and testing purpose. Beside of that both platforms have 12 months free use for lightweight use. For Azure, you have Dev Test Pricing. It clears enough to get started For AWS, you should register it first. You can get 70% reduced prices Step 3. Learning the architecture for the Cloud Next things that you can do is learning the recommended architecture in the cloud. By learning the recommended architecture, we can make sure that the proposed solution can be utilized and used for customer. For Azure, you can read the cloud patterns by visiting For AWS, you can learn AWS well architecture format medianet_width = "600"; medianet_height = "250"; medianet_crid = "858385152"; medianet_versionId = "3111299";

How to develop Microsoft Based Solution in AWS Platform

If you have a customer who want to develop Microsoft based solution in the AWS platform, this article is for you. In this article we discuss several options that can make your Microsoft Based solution work as expected. What Microsoft Based Solution that can be developed in AWS Basically, AWS is a cloud computing platform. Therefore, you can use any available Microsoft platform to the AWS. Although Azure is the primary option for Microsoft solution, you can use Amazon Web Services for many of Microsoft based solution. The real question what the best AWS platform for Microsoft Based Solution? Running Windows on AWS Platform // Windows Server, Windows 10, and Windows Based Hosting can be placed in Amazon EC2. It equals with Microsoft Virtual Machine. AWS claims that the Windows platform on AWS platform is faster, cheaper, and better. You can see their claim here. My suggestion is creating the EC2 instance on AWS and VM instance on Microsoft Azure. And please comment what you found! Running SQL Server on AWS Platform SQL Server can be hosted in two ways. First way is deployed on EC 2 instance, the second way is deployed through RDS platform. For better flexibility you can use EC2 since you can manage operating system and its configuration. RDS is great when you have less complexity on the database usage. Typical of web application with single database can utilize the RDS. For easier deployment and management for simple process you can use RDS For better flexibility you can use EC2 instance Running Cloud App on AWS Platform If you need to deploy your codes, you can use AWS Code Deploy. You can host your codes in Elastic Beanstalk. Elastic beanstalk works just like Azure Cloud App. Code Deploy works just like a portion of Azure DevOps. You can see how to do that in this link. Off course you can create the serverless function based on ,NET platform with AWS Lambda. Fortunately, the Amazon provides you a AWS Toolkit for Visual Studio to make you more productive. You can download the toolkit here Running on Azure or AWS I can say, we can deploy it to both platforms. You can host in AWS or Azure. The question is which perform better? Have an experience about that? You can share the result in the comments. //

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