Elasticsearch and Its Basics

What is Elasticsearch: Elasticsearch is a search and analytics engine. Its core component is based on Lucene. Lucene is information retrieval system. Basically used for inverted index.

Elasticsearch History: Elasticsearch was first released in February 2010 and since then there are many releases till date. Following is a screen shot of the versions and release dates. Continue reading “Elasticsearch and Its Basics”

Decoding Docker

docker_img.PNG

Docker is a buzz word in ‘Devops’  and there is a big chance that you would have heard about it at least once. It is getting immensely popular among developers and sysadmins and organizations like Cisco, Google, Huawei, IBM, Microsoft, and Red Hat are taking huge interests in Docker. Docker is also getting popular in Cloud Technologies like AWS and Azure.

In the world, where Devops is shifting toward Containerized Solution, I think ,it’s important to understand some of the fundamental concepts  of Docker.

What is Container: Containers are platforms which run on the top of OS. On one OS , multiple containers cane be created which are isolated.

Container vs VMs: Containers have similar resource isolation and allocation as virtual machines but a different architectural approach allows them to be much more portable and efficient. Following picture depicts the difference between containers and VMs.

Continue reading “Decoding Docker”

Azure Elastic Pool and Elastic Job

What is Elastic Pool: As the name suggests it is a pool of SqlAzure Dbs.

  1. Each elastic pool contains sets to SqlAzure dbs.
  2. Elastic pool has shared capacity among SqlAzure dbs.
  3. Elastic pool ensures best use of capacity and resource.
  4. It is very much cost effective also.
  5. Best option for dealing with unexpected db load at same time remaining cost effective.
  6. While creating elastic pool, Azure provides suggestion about which db to include in the pool and about min mac DTU, bases on DTU usages of Dbs.

Example: Let’s assume you have 10 basic SqlAzure dbs, which normally use 5 DTUs. During setup in Azure you assign each Db 10 DTU (considering scaling\peak) i.e total 100 DTU while most often consumption is 50 DTUs on average. So, you are paying for 50 DTU extra i.e double.

By putting then in elastic pool and setting the max DTU at a level (for ex: 60), you can handle unexpected db load and achieve cost effective solution.

P.S: In the above example, there is an assumption that all dbs don’t achieve peak at the same time.
Continue reading “Azure Elastic Pool and Elastic Job”

Entity Framework and EF Core

What is EF: EF is a Microsoft ORM, to perform CRUD operations in Databases. It was first introduced in year 2008.

Evolution of EF:

1

ef_version_history

What is EF Core: EF core is not upgrade to EF 6.x, it is a complete new port to EF, in simple word a new product. It is built from scratch EF with a goal of ‘EF everywhere’, which means EF will run on all platforms (.NET Framework, .NET Core and Xamarin). Continue reading “Entity Framework and EF Core”

Work Flow and Persistence Mechanism

What is Work Flow Foundation (WFF): Work Flow foundation is a framework, which enables user to build Workflows. Windows Workflow Foundation (WF) provides the declarative framework for building long running applications and service logic that gives developers a higher level of handling asynchronous, parallel tasks and other complex processing. WF is integrated with WCF which provides both creating and consuming services. Work flows can be broadly categorized as durable and non-durable. Durable WF services are inherently long running, persist their state and use correlation to follow-on activities. Continue reading “Work Flow and Persistence Mechanism”

GIT vs SVN

What is Version Control(VCS): Version control systems are a category of software tools that help a software team manage changes to source code over time. Version control software keeps track of every modification to the code in a special kind of database.

For all software team, VCS is must have system, using which developers can manage their source code. VCS is kind of tracking of any change in the code and developers can turn the clock go to back to any code at point of time. Continue reading “GIT vs SVN”

Inversion of Control & Dependency Injection

What is IOC Principle: Inversion of control (IoC) is a design principle in which custom-written portions of a computer program receive the flow of control from a generic framework.

In simple words, IOC is inverting the control from called class to calling class.

DI: Dependency Injection is a design principle in which code creating a new object supplies the other objects that the new object depends upon for operation. This is a special case of inversion of control. Often a dependency injection framework (or “container”) is used to manage and automate the construction and lifetimes of interdependent objects.

DI is ability to supply(inject) external dependencies into a class at run time. Continue reading “Inversion of Control & Dependency Injection”

Facade Design Pattern

Facade Pattern: A single class that represents the entire system. It is needed when one simple action needs many other action behind the scenes.

 

Example: A withdrawal from bank includes following actions

  1. Check if account is valid
  2. Check if Pin is valid
  3. Check if Amount is sufficient
  4. Make changes accordingly

Continue reading “Facade Design Pattern”