Azure ATP ve Microsoft ATA arasındaki farklar nedir? Part-3

Her iki üründe verilerini şirket için (Active Directory) domain ortamında alırken, Microsoft ATA tamamen şirket için çalışan bir servis olup, Azure ATP ise Azure tarafında barındırılan ve verileri bulut ortamında analiz eden bir bulut servisidir.


Aşağıdaki tabloda arasındaki genel farklar bulunmaktadır.

Feature Azure ATP Microsoft ATA
Environment On-premises & Cloud data sources On-premises
Windows Defender ATP Integration Yes No
Data Storage Sent to Azure On-premises
Deployment Azure Cloud ATA Center
New Sensor Gateway
Updates Automated via Azure Cloud Manual via ATA Center
Domain Controller Agent Sensor: up to 100K pps Lightweight Gateway:
Up to 10K pps
Licensing EMS/Microsoft 365 E5 EMS E3
Standalone Standalone
 Releases   Current Version – 1.9 
Regular Updates (Released March 2018)

Operations Management Suite ile Veeam Backup Monitoring

OMS’in Veeam Backup çözümünü sizlerle paylaşmak isterim. Veeam Backup yazılımı ile aldığınız image ve yedeklerinizi Operations Management Suite ile monitor edebilirsiniz. OMS dashboard’una eklediğiniz Veeam çözümü sayesinde yedeklerinizin son durumunu görebilirsiniz. Aynı zamanda Veaam agent for windows ve linux çözümlerinde de kullanabilirsiniz.

  • Veeam Backup & Replication
  • Veeam Agent for Windows
  • Veeam Agent for Linux


Bunun birlikte çözümün içerisinde CPU, Bellek ve Disk ile ilgili Veeam Backup & Replication performans görünümünü de sizlere sunar.


Hizmeti test etmek için Veeam agent backup yazılımı kullanabilirsiniz.

Çözüm GitHub’da mevcuttur:  https://github.com/InsideTechnologies/OMS-Veeam

Teşekkürler.

Office 365 Auto Expanding Archive Nedir? Nasıl Etkinleştirilir?

Office 365 arşiv posta kutuları, kullanıcılara ek olarak mail depolama alanı sunmaktadır. Örn; Bir kullanıcının arşiv posta kutusunu etkinleştirildikten sonra, 100 GB’a kadar ek depolama alanı kullanılabilir. 100 GB depolama alanı sınırına ulaşıldığında, kullanıcı bir arşiv posta kutusu için ek depolama alanı talep etmek üzere Microsoft ile bağlantı kurması gerekiyordu. Artık süreçimiz bu şekilde ilerlememektedir.

 Office 365’deki yeni sınırsız arşivleme özelliği (otomatik genişleyen arşivleme) ile birlikte kullanıcıların arşiv posta kutularına sınırsız bir miktarda saklama alanı sunmaktadır.Arşiv posta kutusundaki depolama kotasının sınırına erişildiğinde, Office 365 otomatik olarak arşivin boyutunu arttırır; bu da kullanıcıların posta kutusu depolama alanı dolmaz ve yöneticiler arşiv posta kutuları için ek depolama alanı istemek zorunda kalmazlar.


  1. Arşivleme, bir kullanıcı posta kutusu veya paylaşılan bir posta kutusu için aktif edilebilir. 100 GB depolama alanına sahip bir arşiv posta kutusu oluşturulur.
  2. Bir yönetici, posta kutusu için otomatik olarak genişleyen arşivlemeyi etkinleştirir. Ardından, arşiv posta kutusu (Kurtarılabilir Öğeler klasörü dahil) 90 GB’a ulaştığında otomatik olarak genişleyen bir arşiv haline dönüştürülür ve Office 365 arşiv için depolama alanı ekler. Ek depolama alanının hazırlanması 30 gün kadar sürebilir.
  3. Office 365, gerektiğinde otomatik olarak arşive daha fazla depolama alanı ekler.

Otomatik olarak genişletilmiş bir arşivdeki öğelere erişmek için Outlook gereksinimleri

Otomatik olarak genişletilmiş bir arşivde saklanan iletilere erişmek için kullanıcıların aşağıdaki Outlook istemcilerinden birini kullanmaları gerekir:

  • Windows için Outlook 2016
  • Web’de Outlook
  • Mac için Outlook 2016

Not:

Outlook 2013 kullanıcıları, yalnızca arşiv kutusunda saklanan öğelere erişebilir. Ek bir arşiv deposuna taşınan öğelere erişemezler.

Not: Otomatik genişletme arşivlemesi ayrıca paylaşılan posta kutularını da destekler. Paylaşılan bir posta kutusunun arşivini etkinleştirmek için, Exchange Online Arşiv 2 lisansına sahip bir Exchange Online Plan 2 lisansı veya Exchange Online Plan 1 lisansı gereklidir.

Auto-Expanding Online Archive özelliği

Tüm firma içinde Auto-Expanding Online Archive özelliğini etkinleştirmek için ;

  1. Set-OrganizationConfig -AutoExpandingArchive

Belirli kullanıcılar için Auto-Expanding Online Archive özelliğini etkinleştirmek için ;

  1. Enable-Mailbox -AutoExpandingArchive

Kaynak: https://support.office.com/en-us/article/enable-unlimited-archiving-in-office-365-admin-help-e2a789f2-9962-4960-9fd4-a00aa063559e

Azure Advanced Threat Protection (Azure ATP) Nedir? Part-1

Azure Advanced Threat Protection (ATP), ağlarınızdaki güvenlik olaylarını tespit etmenize ve araştırmanıza yardımcı olan, bulut tabanlı bir güvenlik çözümüdür. Aynı zamanda siber saldırılarına ve içeriden dışarıya bilgi sızdırma gibi tehditlere karşı korumanıza yardımcı olan bir güvenlik çözümüdür.

Bununla birlikte Azure ATP, kimlik doğrulama, yetkilendirme ve bilgi toplamak için birden fazla protokolün (Kerberos, DNS, RPC, NTLM ve diğerleri gibi) ağ trafiğini izlemektedir. Ayrıca kurumdaki kullanıcı ve servislerin davranışlarını öğrenip ve bu davranışlara ilişkin bir davranış profili oluşturarak, güvenlik tespitinde bulunur. Yapılan tespitler sonucunda ortama ayrıkı bir süreç fark edildiğinde Azure ATP portalında bu süreçler görüntülenir.

Azure ATP hangi tehditlere karşı bir koruma sağlıyor;

  • Şüpheli kullanıcı ve cihaz etkinliğini öğrenme akabinde analiz etme
  • Bulut ve kurum içi ortamlardaki tehditleri algılama
  • Active Directory’de depolanan kullanıcı kimlik bilgilerini koruma ve analiz etme
  • Windows Defender Advanced Threat Protection ile entegrasyon sağlayarak araştırma ve analiz seviyesini arttırma


Not: Azure ATP, hem bulut hem de şirket içi verilerinden faydalanıp, hatalı süreçleri azaltarak ve Windows Defender ATP entegrasyonuyla uçtan uca bir araştırma deneyimi sunarak, gelişmiş kötü niyetli saldırıları tespit edebilir.
Azure ATP aşağıdaki servislerle de ilişkilendirilebilinir.

  • SIEM Integration
  • Windows Event Forwarding (WEF)
  • Directly from the Windows Event Collector (for the sensor)
  • RADIUS Accounting from VPNs

Azure ATP, üç ana saldırı türlerini kontrol eder, bu saldırı türleri sırasıyla, Kötü amaçlı saldırılar – Anormal davranışlar – Güvenlik sorunları ve Riskler.

Bilinen belirli başlı saldırı türleri aşağıdaki gibidir;

  • Pass-the-Ticket (PtT)
  • Pass-the-Hash (PtH)
  • Overpass-the-Hash
  • Forged PAC (MS14-068)
  • Golden Ticket
  • Malicious replication
  • Directory Service Enumeration
  • SMB Session Enumeration
  • DNS Reconnaissance
  • Horizontal Brute Force
  • Vertical Brute Force
  • Skeleton Key
  • Unusual Protocol
  • Encryption Downgrade
  • Remote execution
  • Malicious Service Creation

Bu saldırı türlerine istinaden süpheli bir etkinlik olduğunda, Azure ATP portalında süreci nasıl göreceğimizi aşağıdaki ekran görüntüsünden inceleyebilirsiniz. Örneğin, ortamınızdaki bir kullanıcı ikinci bir kullanıcıya Pass-the-Ticket saldırı girişiminde bulunduğunda Azure ATP portalında bu saldırının nasıl gerçekleştiğini ve nasıl bir atak uygulandığını görebilirsiniz.


*Not: Enterprise Mobility + Security’nin E5 lisansına sahip kullanıcılar Azure Advanced Threat Protection (Azure ATP) ürünü kullanabilir.

Azure Availability Sets

When you started architecting infrastructure using Azure platform, you should consider a couple of things such as VM Network, Availability Sets, Regional and High Availibility Set, Load Balancer … etc. Before to plan your VM in Azure.

In this article, you can get answer for titles and questions in below:

Types of Failure in Azure

What is Availability Set ?

What is Fault Domain and Update Domain ?

How to create Availability Set ?

Your virtual machine can occur three types of failures in Azure Environment. These are :

  • Unplanned Maintance : These interruptions happen when hardware or any platform components related. physical machines in the underlying infrastructure about to fail. For example; Azure can migrate your affected virtual machine to a new one.
  • Planned Maintance : These interruptions happen when planned maintance or periodic updates made by Microsfot or require rebooting VMs on the Azure infrastructure.
  • Unexpected Downtime: : Rarely occurs on the Azure Infrastructure.

Unplanned maintances down time usually longer than planned maintances. After both of unplanned maintance and planned maintance updates your virtual machines will be rebooted. And users cannot access applications during that time.

Availability Set

Availability sets offer some protection against unplanned maintenance for your Azure Resource Manager assets. When you placed your VMs in an Availability Set, they are automatically isolated across multiple hardware nodes in a cluster.
That’s mean azure will place your VMs that are created within the availability set on separate physical servers, compute racks, storage units, and network switches.
Even hardware or any components failure happens in Azure after placed your virtual machine across multiple hardware nodes, only a sub-set of your VMs are affected. Your overall solution is safe in working status. Availability set ensures redundancy by spreading over multiple fault domains and update domains for VMs. If you want to leverage 99.95% SLA from Microsoft, you should place your VMs inside Availability Set except your virtual machines which have premium storage.

When placed virtual machines in an availability set, that is provides the virtual machines are spread over three fault domains and five update domains. But update domains can be increased to up to 20. For example, If you placed ten virtual machine in an availability set, they will spread over three fault domains. So If one of them failed, you will only lose 1/3 of virtual machines. Update domains are used during planned maintenance operations on the Azure Fabric. Microsoft doesn’t patch your VMs, but they have to update operating system that the hypervisors are running. Because of this, it will only take down one update domain at a time during these planned maintenance.

Update Domains vs. Fault Domain

VMs are periodically updated by Windows Azure. Updating a virtual machine, that machine reboots. Update Domains prevent virtual machines from updating same time related an application. When placed one more virtual machine in Availability Set, these virtual machines are placed different update domains by Windows Azure.

Fault Domains define unplanned maintenance that a group of WMs share common a hardware or physical failure such as a disk, power, network card … etc. same underlying infrastructure. You can think fault domains as a compute rack. This mean if any failure happens in shared system, all WMs will influenced from same underlying infrastructure.

The diagram showing us difference between fault domain and update domain below :

Picure 1: Difference Between Fault Domain and Update Domain ( quoted from Technet )

Creating An Availability Set

You have three options to create an Availability Set :

  • Create an availability set and VM at the same time in Azure Portal.
  • Create an availability set and use it while creating a new VM in Azure Portal.
  • Create an availability set with Powershell.


You can create an availability set when you create a new VM on Azure Portal. While creating new virtual machine also you can add your availability set in third step in creating vm steps like image in the below :


You should configure your fault domains size and update domains size when you create new availability set like image in the blow :


I have three fault domains if I add fourth VM, it will be placed in the same Fault Domains as the first VM by Azure. Also Azure distributed all VMs accross different Update Domains. One of importing things about availability sets, you can placed up to 100 VMs into each availability set.


Significiant Points Of Availability Sets

You should set one more VMs in same Availability Set for redundancy. So you will have %99.95 SLA.

You need to create virtual machines in the same resource group as the availability set.

You should placed application tiers in different Availability Sets. But you should placed servers which providing same function in same Availability Sets.

You can assign virtual machines to the availability set only during the creation of virtual machines. One virtual machine can only be in one availability set.

You should use Availability Set with load balancing where it can be used. Also Workload traffic should distribute between VMs in Availability Set from load balancing.

What is the Azure AD Pass-through Authentication?

We know that security is very important for IT administrators. In this article, you can find which ADConnect sync tool configuration is the best. I am going to explain what Azure AD Pass-through and Seamless Single Sign-On (SSO) does.

Normally, when you configure ADConnect with “Azure AD Password Hash Synchronization” feature, one copy of on-premise AD users’ passwords (hash values) always send to internet and store in cloud. Beyond this, authentication also happens in cloud.

Azure AD Password Hash Synchronization Process

Some companies don’t permit organizations to send users’ password even in hashed form because of their security and compliance policies. Nowadays security rules are very strict because of GDPR. Azure AD Pass-through authentication allows you to keep passwords on-premise and validate users’ passwords directly against your on-premises AD. Normally, if you want to authenticate users through on-premise you had to install ADFS server to on-premise side. To configure ADFS server in high availability mode you need minimum 4 servers (2 ADFS & 2 Proxy) + OS license + hardware + operational effort to keep the system running. That is why Pass-through authentication, where we don’t use ADFS servers, is a better solution.

How does Pass-through authentication work?

In lay terms when a user tries to

sign-in Office 365 and Azure with on-premises AD password, Microsoft servers encrypt the passwords using a public key and then a user-name and encrypted password wait for validation. Pass-through agent retrieves the user name and encrypted password by making outbound call from your network. Pass-through agent uses https port to receive information. You don’t need to open inbound ports on your firewall.

The agent decrypts the password using a private key that only the agent has access to and tries to validate it against an on-premise active directory. The active directory returns “success” or “failure” result to the agent and the agent forwards it up to Azure AD.

As a result, Azure AD decides to sign-in the service or not.

How to configure Pass-through authentication on ADConnect?

When you run ADConnect setup you should select the sign-on method as “Pass-through authentication” on the interface.

In the second option you can also select “enable single sign-on”. What is the benefit of SSO (Single sign-on)? In fact when you enable SSO in ADConnect , if users’ computers are “domain joined” and already signed-in ad account on domain network, they don’t need to write passwords on sign-in page while they are signing in Azure and Office 365 services. The feature providing users with automatic sign-in Azure AD.

If you have enabled SSO on ADConnect, you need to add Azure AD URL to the users’ Intranet zone settings by using GPO in Active Directory.

1-Browse to User Configuration > Administrative Templates > Windows Components > Internet Explorer > Internet Control Panel > Security Page. Then select “Site to Zone Assignment List”.

Enable the policy, and then enter the following values in the dialog box:

Value name: https://autologon.microsoftazuread-sso.com

Value (Data): 1 indicates the Intranet zone.

It should be as it shown below;

2- Browse to User Configuration > Administrative Templates > Windows Components > Internet Explorer > Internet Control Panel > Security Page > Intranet Zone. Then select “Allow updates to status bar via script”.

Enable the policy settings as it shown below.

Notes:

-If you use firewall or proxy, you have to
allow
*.msappproxy.net URLs over port 443 ,

-Enabling SSO services can take up to 30 minutes ,

Edge browser support is not available.;

-If you disable or re-enable the feature, users will not be able to get single sign-on experience until their cached Kerberos tickets, which are generally valid for 10 hours, have expired.

The feature is free, so you don’t need the paid edition of Azure AD.

To verify the feature:

https://aad.portal.azure.com/

Select Azure Active Directory in the left pane.

Select Azure AD Connect.

Python Hakkında Ufak Bir Söyleşi

Python son yıllarda popülerliği gittikçe artan ve artmaya devam eden bir programlama dili. Bu yazımızda bu popülerliğin arkasındaki sebepleri, yadsınamaz büyüklükteki topluluğunu ve tabii ki dilin kendisini inceleyeceğiz.

Geçmiş

Herşey, Guido van Rossum tarafından, aslında bir hobi projesi olarak geliştirilen Python’un 1991 yılında duyurulmasıyla başladı. Tabii çok daha öncesinde, 1980’li yıllara dayanan bir tarihi bulunan Python, 1989 yılında implemente edilmeye başlanmış. 1994 yılının Ocak ayında 1.0 stabil sürümüne ulaşabilmiş, en son stabil sürümü olan 3.6.5’e ise 28 Mart 2018 tarihinde ulaşmıştır.

Bugün

Stack Overflow Blog sayfalarında yayınlanan 6 Eylül 2017 tarihli ‘The Incredible Growth of Python’ adlı yazıda, Dünya Bankası’nın yüksek gelirli olarak belirlediği ülkelerin diğer ülkelere oranla farklı teknolojiler kullandığı ifade ediliyor ve yapılan araştırma sonucu elde edilen verilere göre Python’ın bu ülkelerde en hızlı büyüyen programlama dili olduğu sonucuna varılıyor.

Peki Neden?

Benim nezdimde ilk nedenin yazım kolaylığı ve okunabilirliği olduğunu söyleyebilirim. Bu faktörler , dilin öğrenilmesini de ciddi oranda kolaylaştırıyor. İnternette yapabileceğiniz küçük çaplı bir araştırma ile de büyük bir çoğunluğun bu sebeplerle tercih ettiğini görebiliyorsunuz. Örneğin, diğer popüler programlama dilleri ile karşılaştırdığınızda direkt göze çarpan fark, dilin space-sensitive yani boşluğa duyarlı bir dil olması oluyor. Dilin dizayn felsefesine göre okunabilirliği arttırması amaçlı alınmış bir karar aslında bu. Bizzat Guido van Rossum’un The History of Python‘da yayınladığı ‘Python’s Design Philosopy’ yazısında bahsettiği gibi, direkt olarak kendisinin belirtmediği dizayn ilkelerinin, dilin gelişiminde büyük katkısı olan Tim Peters tarafından yazıya dökülmeye çalışılması ile ortaya çıkan Zen of Python maddelerinden bir tanesi de ‘Readability counts’ yani ‘Okunabilirlik önemlidir’ maddesidir. Tabii dilin bu kadar popüler olmasını sağlayan tek şey ‘yazım kolaylığı’ ya da ‘okunabililiği’ değil.

Yapay Zeka Çağı

Başka bir neden ise son yıllarda popüler olan fakat geçmişi aslında o kadar da yakın tarih olmayan, AI, Deep Learning, Neural Network gibi konulara çok kolay bir şekilde girebilmenizi sağlayacak bir çok paketin, örnek kodların ve topluluk desteğinin bulunması. Aslında anlayabileceğiniz üzere bu konular çokta “basit” değil. Sadece teknik yetkinlik yetersiz kalıyor çünkü bu teknik yetkinlikleri edinebilmek için zaten öncelikle kendinizi biyolojik ve felsefik olarak yeterli bilgiye sahip olacak şekilde geliştirmeniz gerekiyor. Çünkü temelinde yapmaya çalıştığınız şey bir bilgisayarın insan gibi düşünmesini sağlamak. Topluluk buradaki bariyeri, yukarıda bahsettiğim etmenler ile biraz daha aşağı çekmeye çalışarak daha çok insana ulaşabilmesini sağlıyorlar ve topluluğun günden güne büyüme hızının artması da bir şeyleri doğru yaptıklarının bir göstergesi olsa gerek.

Web Geliştirme

Tabii başka bir etmen de Web uygulamaları geliştirebilmeniz. ‘Web Uygulamaları Geliştirebileceğiniz Diller ve Platformlar’ yazısında da incelediğimiz, Django, Flask ve Pyramid gibi paketleri kullanarak hızlı bir şekilde web uygulamaları çıkartabiliyorsunuz. Burada da topluluk desteğinin oldukça yüksek olduğunu belirtmekte fayda var.

Gelecek

Bugün başlığı altındaki Stack Overflow yazısı, Python’ın geleceği hakkındaki görüşlerini de belirtiyor ve tahminlerde bulunuyor. Bugüne kadar aldıkları trafik verisi ile 2018 yılı dahil olmak üzere önündeki iki yılı tahminlemeye çalışan Stack Overflow, Python’ın 2020’ye kadar Java ile arasındaki farkı oldukça açacağını söylüyor. Ayrıca Java trafiklerinin, eğitim sistemlerinde oldukça ağırlıklı kullanılan bir dil olduğundan sonbahar ve ilkbahar dönemlerinde trafiğin arttığını ve yaza doğru azaldığı da belirlenmiş ve öngörüde bu bulgular da düşünülerek tahminleme yapılırken ‘Seasonal and Trend composition using Loess’ (STL) modeli kullanılmış.

Ayrıca, büyüme oranlarına göre de diller karşılaştırıldığında, Swift ve R’a göre çok daha hızlı şekilde büyüme kat ettiğini görüyoruz.

Sonuç

Python, öğrenme zorluğu düşük, geniş bir uygulama yelpazesine sahip ve topluluk tarafından oldukça destek gören, programlamaya yeni başlıyorsanız ya da başlamayı düşünüyorsanız eğer kesinlikle önerebileceğim bir dil.

Bir sonraki yazıda görüşmek üzere.

Web Uygulamaları Geliştirebileceğiniz Diller ve Platformlar

Bu yazımızda sizlerle birlikte web uygulamaları geliştirebileceğiniz bir kaç dili, onların platformlarını ve bu platformlarda kullanabileceğiniz bir kaç örnek kütüphaneyi inceleyeceğiz.

1. .NET Dilleri (Visual Basic, C#, F#)

Visual Basic, Microsoft tarafından 1991 yılında duyurulan ve Basic dilini temel alarak geliştirilen, nesne yönelimli (OOP), olay odaklı (event-driven) bir dil.

C# ise yine Microsoft tarafından 2000 yıllarında duyurulan, çoklu yönelimli (multi-paradigm) bir programlama dilidir. Nesne yönelimli, fonksiyonel ve generic programlama yaklaşımlarına sahiptir.

F#, artık tahmin edebileceğiniz gibi Microsoft tarafından 2005 yılında 1.0 versiyonuna ulaşmış, çok yönelimli, özellikle fonksiyonel programlama yapabileceğiniz bir dil. Aynı zamanda Javascript ve GPU odaklı kod oluşturma gibi yetenekleri de var.

.NET dillerini kullanarak web uygulamaları geliştirebileceğiniz bir kaç platform mevcut. ASP.NET ailesinin yanı sıra, aynı zamanda Owin (Open Web Interface for .NET) ve Nancy gibi protokole daha yakın platformlar da bulunuyor.

1.1 ASP.NET Ailesi

Popüler olanları sayacak olursak Web Forms, MVC ve Web Api platformlarını sayabiliriz. Onun dışında yeni çıkan Web Pages ve Blazor isimli platformlar da mevcut fakat bunları başka yazılarda detaylı bir şekilde inceleyeceğiz.

1.1.1 ASP.NET Web Forms

ASP teknolojisinin .NET platformunda hayat bulduğu ilk hali diyebiliriz. ASP’de olduğu gibi <% ve %> tagleri kullanılarak sunucu taraflı kod yazabilirken, aynı zamanda .NET kütüphanesinin tamamına da erişim sağlayabiliyorsunuz.

1.1.2 ASP.NET MVC

ASP.NET platformu üzerine MVC metodolojisinin kurgulandığı bir platformdur. Aynı zamanda klasik ASP’den beri kullanılan <% ve %> tagleri yerine, kullanımı biraz daha kolay olan Razor yazım şekli ile birlikte gelmiştir.

1.1.3 ASP.NET Web Api

ASP.NET MVC platformu üzerinde yapılan bir kaç değişiklik ile birlikte, RESTful API’ler geliştirilebilen bir platformdur ve son yıllarda istemci taraflı web geliştirmenin de popülerliğinin artması ile birlikte en sık kullanılan yaklaşımdır.

1.2 Owin (Open Web Interface for .NET)

Sunucu ve uygulama arasındaki bağı kopartmaya çalışan Owin, geliştiricilerin daha çok uygulamanın kendisine odaklanmasını sağlamaya çalışmaktadır. Middleware yaklaşımını kullanır ve diğer .NET platformlarına nazaran daha esnek bir API sunar.

1.3 Nancy

Herhangi bir metodolojiyi benimsemeyen Nancy, direkt olarak browser tarafından istenen kaynağa karşılık gelecek şekilde bir yazım şekli sağlar. Böylece fazla kapsamlı olmayan ihtiyaçlara karşılık çok hafif bir platform alternatifi sunar.

 

2. PHP

1995 yılında Rasmus Lerdorf tarafından yaratılan PHP, sunucu taraflı kodlama sağlıyor. WordPress, Joomla! ve Drupal gibi sistemler bu dil kullanılarak geliştirilmiş ve çok yaygın bir kullanıma sahip. Sadece PHP dilinin kendisi kullanılarak da bir web uygulaması geliştirilebilse de farklı yaklaşımları barındıran bir çok platform ortaya çıkmış. İçlerinden Symfony, CodeIgniter, Laravel, CakePHP ve Phalcon platformlarını örnek olarak sayabiliriz.

2.1 Symfony

İçerisinde 50 adet bileşen bulunduran Symfony, bu bileşenler ile birlikte kod tekrarını azaltmayı ve genel ihtiyaçları karşılamayı amaçlıyor. Drupal, phpBB, yine aşağıda inceleyeceğimiz Laravel ve daha bir çok platform tarafından da kullanılmakta.

2.2 CodeIngiter

MVC metodolojisini benimseyen CodeIgniter, MVC’yi benimsemeseniz bile kullanabileceğiniz bir platform çünkü sizi MVC yazmaya zorlamıyor. Küçük ve performanslı web uygulamaları geliştirebilirsiniz. Artı olarak detaylı ve sade bir dökümantasyona da sahip.

2.3 Laravel

Web sanatçılarının PHP kütüphanesi mottosuyla kendini gösteriyor Laravel. İçerisinde Active Record desenini implemente eden Eloquent adında bir ORM’e ve Blade adında bir şablon motoruna sahip. Yaklaşım olarak MVC tercih edilmiş.

2.4 CakePHP

Dökümanın ilerleyen bölümlerinde inceleyeceğimiz Ruby on Rails’in konseptine uygun geliştirilen CakePHP, diğer bir çok platform gibi MVC yaklaşımını benimsiyor. Laravel’de de olduğu gibi içerisinde Active Record desenini implemente eden bir kütüphaneye sahip.

2.5 Phalcon

Büyük bir çoğunluğu C ile yazılan Phalcon, diğer platformlara göre daha performanslı ve daha az kaynak harcadığını savunuyor. Aynı şekilde C ile yazılan bir ORM’e ve MVC yaklaşımına sahip.

 

3. Python

‘Python Hakkında Ufak Bir Söyleşi’ adlı yazımda kendisine detaylı bir şekilde değindim. Okumak isterseniz buradan ulaşabilirsiniz.

Bir çok web platformu mevcut fakat bir kaç örnek olarak Django, Flask ve Pyramid’i sayabiliriz.

3.1 Django

İçerisinde varsayılan olarak şablon motoru, ORM ve kimlik doğrulama gibi özellikler ile geliyor ve Python üzerinde web programlama için kullanılan en popüler platformdur.

3.2 Flask

Aşağıda da inceleyeceğimiz ve bir Ruby platformu olan Sinatra’dan ilham alan Flask, alt tabanında Werkzeug WSGI Toolkit ve Jinja2 şablon motorunu kullanıyor. Çok hafif bir yapıya sahiptir.

3.3 Pyramid

Az uğraş gerektireceğini vaad eden Pyramid, en basitinden en kapsamlısına bütün projelerde kullanılabileceğini söylüyor. İçerisinde dosya bazlı şablon motoru, doğrulama sistemi ve test kütüphaneleri ile birlikte geliyor ve geniş konfigurasyon desteği sağlıyor.

 

4. Ruby

Yukihiro “Matz” Matsumoto tarafından Japonya’da, 1990’lı yılların ortalarında geliştirilmeye başlanmış. Çoklu yönelimli bir dil olan Ruby, nesne yönelimli ve fonksiyonel programlama yaklaşımlarına sahiptir.

Dökümanda önceden de bahsedilen, Ruby için önemli sayılabilecek iki adet platform bulunuyor ; Ruby on Rails ve Sinatra.

4.1 Ruby on Rails

Convention over Configuration yaklaşımını savunan Ruby on Rails, çok hızlı bir şekilde web üzerinde çalışabilen uygulamalar geliştirmenizi sağlıyor. Ruby üzerinde kullanılan açık ara en popüler platform.

4.2 Sinatra

Nancy ve Flask gibi, minimum efor ile web uygulaması yazmanızı sağlayan bir platform. Test kütüphaneleri ve topluluk tarafından geliştirilen eklentiler ile çok daha geniş çaplı uygulamalar da yazılabiliyor.

 

Bu yazıda, .NET dilleri, PHP, Python ve Ruby dilleri için kullanılabilecek platformları inceledik.

Bir sonraki yazıda görüşmek üzere.

Using Resource Group on Azure

In this article, I want to look at what is azure resource group. Firstly, understanding meaning of resource and resource group is important.

Resource is a manageable item that is available through cloud computing. For example, virtual machine, storage account, database, web app… etc. are some of common resources.

Resource Group
can include all the resources for the solution that you want to manage as a group. You should decide how you want to allocate resources to resource groups based on what makes the most sense for your organization.

A resource only belongs in one resource group and a resource group can include resources where reside in different regions. Also you can add or remove a resource to a resource group at any time. A resource group can be used to scope access control for administrative actions. You can migrate a resource between resource groups. Resources can interact between each other in different resource groups. This interaction is common when the two resources are related but do not share the same lifecycle. For example, web apps connecting to a database.

Before you create storage accounts, networks or VMs etc. , You should create the resource groups first. If you don’t create resource group, It will created automatically by Azure. When it created resource group, the name will assign randomly and that are very hard to understand what are they. So this is an unadvisable option because of complication. You should use meaningful name to easy management.

When you place your resources in a same resource group, they will start to share a common lifecyle. That is to say, they will be created together, they will run together using some kind of common function and they will be deleted together. You should be carefull when you selected a resource group. Because your every action will affect all resources such as deleting in related resource group.

You can plan out your resource groups as a heterogeneous or homogenous. If you have several different type of resource as a virtual networks, virtual machine, web apps etc. , you called it “heterogenous resource group”. For having homogenous, you should have your all virtual network in one, all virtual machine in one etc.

One of features is RBAC in resource group. RBAC ( Role-Based Access Control ) is a system that provides fine-grained access management of resources in Azure. You can manage users on resources groups what users need to perform their jobs. Instead of giving all users limitless permissions in your Azure subscription or resources, you can permit only particular actions at a specify scope.

How to Create A Resource Group

You can follow steps below to create a resource group.

Firstly, select the “Resource Group” left side on Azure Portal.

After that, click “Add” like below.

Write your meaningful name for Resource Group. If you have more subscription, you should choose a subscription where you want to placed your resource group. The resource group has to reside in a region. So, choose your region and create it.

You have to provide a location for resource group when deploy a resource group. Because, you indicate a location for the resource group accutually you stored metadata there. So you should make sure that your data is stored in a specific region.

You can see detail of Monitoring and Billing. Firstly, You should click “Resource Group” left side In Azure Portal. After that, choose your related resource group in resource groups. You will see options to choose left side again. Select “Resource Cost” under settings and you will reach your resources cost like below.