Archi's Academy
microservices-architecture

Software Development

Microservices

Microservices Architecture

Hello everyone! In this blog, we will see a brief introduction to Microservices Architecture.

There is a lot of hype today about Microservices Architecture (Microservices). Being the preferred methodology in developing many-core applications, Microservices has grown in demand. So why exactly? Let’s take a look.

Before Microservices came Monolithic services in which all the software components of an application could be assembled and tightly packed into a single container, wherein only a single codebase is maintained for the entire application. This works fine for small applications. However, it becomes difficult to decipher the code when application requirements increase, and finding issues/faults tends to be tedious. Application scaling turns out to be challenging, and any further modifications impact the entire application as the services are tightly coupled. As the application complexity grows, the service startup takes more time. There is a drawback of not having an option to run only the specific required service, and the entire application needs to be rebooted.

Revathy 1.PNG

Considering the difficulty in using Monolithic services for large and complex applications, the necessity for better architecture arose, and Microservices Architecture was introduced.

What are Microservices?

Microservices is an architectural pattern in which the applications are composed of small components, each component handling an individual function or service. These service modules are loosely coupled. They communicate with each other using well-defined interfaces. Since Microservices makes applications modular, it is easier to deploy changes without rebooting the entire system.

Some large-scale websites using Microservices Architecture are Netflix, Amazon, eBay, etc.

Revathy 2.PNG

Microservices Advantages

  • Each module handles a specific service, and all modules are loosely coupled. Hence changes made in one module will not affect others.

  • Since services are isolated, individual resources can be allocated to each service. This will help its response time. Resources can be assigned as per requirements. More resources can be allotted to that service if a module is accessed frequently.

  • Fault detection and correction are easier. Furthermore, since the system is modular if any feature is not working, only that particular module handling that feature needs to be changed, tested, and deployed.

  • Each module can select its coding technology to be used. There is no codebase dependency on each other.

  • Each service or module can have its database.

  • Team management is easy. Small teams can work simultaneously on different modules. This leads to productive and faster development and deployment of the application.

  • Since the data is not placed in a single place, development teams for each module can choose which data model they need to follow, and it does not affect other modules.

Microservices Challenges

  • Different modules can be developed using other programming languages. Hence, skilled professionals with extensive knowledge in those specific languages will be required to monitor all these modules.

  • Since the modules are developed independently, reproducing an issue will be difficult as the version of one or more modules might have already changed.

  • Each service or module can have separate servers, making Microservices costly.

  • As new services are added, the system becomes complex, and this may cause operational complexity during deployment.

  • Each microservice is responsible for its data. Hence maintaining data consistency can be a challenge.

The above generic introduction, advantages, and challenges only form the tip of the iceberg, and there is a lot more to the Microservices Architecture story.

See you all in my next blog!

Share

Blogs

OUR BLOGS

Welcome to our blogs! Our blogs are powered by Archi’s trainees publishing their passions in their own way. Ready to learn more about their process? Scroll down and let them share their knowledge and experiences along the way!!

esogu-uluslararasi

Mentorship

Technology

Content Management

ESOGÜ ULUSLARARASI İLİŞKİLER KULÜBÜ: KARİYER REHBERİ

Hanife

7 days ago

Geçtiğimiz hafta Eskişehir Osmangazi Üniversitesi’ne Uluslararası İlişkiler Kulübü’nün daveti üzerine konuk olduk. İnteraktif şekilde ve tek oturum halinde gerçekleşen bu etkinliğe katılım ve ilgi beklentimizin de üzerindeydi. Özellikle uluslararası ilişkiler ve girişimcilik alanında Osmangazi Üniversitesi öğrencilerinden gelen ilgi bizleri çok mutlu etti.

**Kariyerinizde Bir Rehber **

Öğrencilerin kariyerlerine giden yolda onlara destek olmak, kurucumuz Thoufueeque Saheer’in gerçekleştirdiği tecrübe paylaşımı ile onlara yol göstermek ana hedeflerimizdendi. Bunu yaparken Türkiye’de iyi bir uluslararası girişim örneği olan Archis Academy’den (www.archisacademy.com) bahsettik. Kurucumuz bu yolda yaşadığı tecrübeleri gençlere aktarırken en önemli adımın kendine inanmak ve denemekten vazgeçmemek olduğunu vurguladı.

**Girişimciliğe Olan İlgi **

Özellikle parlak birer geleceği hak eden gençlerle bir araya gelip onların girişimci kişiliklerinin açığa çıkmasına öncü olabilmek bizleri çok mutlu etti. Etkinliğin sonunda gerçekleşen soru cevap bölümünde katılımcılar uluslararası girişimci olma tecrübesi, girişimcilikte yabancı dilin önemi, yazılımcı olmak için gerekli nitelikler, girişimi hayata geçirirken kaynak yönetimi gibi alanlardaki sorulara yanıt aradı.

Archis’e Gel Geleceğini Kodla

İşte bu noktada Archi’s hem yazılım geliştirme, hem de proje yönetimi gibi birçok alanda yanınızda olup bu yolda sizlere eşlik edecek harika bir akademi. Archi’s, yenilikçi girişim fikri olan ancak gerekli teknoloji altyapısından yoksun olan veya teknik bilgisini geliştirmek isteyen girişimci adaylarına yazılım geliştirme alanında eğitim veriyor. Detaylı bilgiyi www.archisacademy.com üzerinden ve sosyal medya hesaplarımızdan öğrenebilirsiniz.

**Yeni Etkinlikler Yolda **

Archi’s Academy olarak sizlerle buluşmaya devam edeceğiz. ESOGÜ Uluslararası İlişkiler Kulübü’ne bu etkinlik fikri ve organizasyonu için teşekkür ederiz. Yepyeni etkinliklerde görüşmek üzere, bizi takip etmeyi unutmayın!

Read more

Read More
esoes-esogu

Mentorship

Technology

Content Management

ESOES ESOGÜ (Eskişehir Osmangazi Üniversitesi Engineering Society Of Eskişehir): HEBOCON

Hanife

25 days ago

Geçtiğimiz hafta sonu Eskişehir Osmangazi Üniversitesi bünyesinde bulunan ESOES ESOGÜ adlı öğrenci kulübünün etkinliğine davet edildik. Türkiye’de ikinci kez düzenlenen ve Eskişehir’de ilk olarak ESOES’in düzenlediği HEBOCON isimli bu etkinlikte yer almaktan büyük keyif aldık. Gün boyu rekabete, eğlenceye ve kötü robota doyduğumuz bir gün oldu. ESOGÜ'den Pulsar takımının birinci olarak bin lira değerindeki ödülü kazandığı yarışmada Berbots takımı ikinci olurken, BBTK Girls takımı da en iyi tasarım ödülünü kazandı.

3 FARKLI OKULDAN YOĞUN İLGİ

Japonca "beceriksiz, kalitesiz, yetenek yoksunu, utanç verici" gibi anlamlara gelen "HEBOCON" isimli yarışmada, Eskişehir Osmangazi Üniversitesi, Hacettepe Üniversitesi ve Orta Doğu Teknik Üniversitesi öğrencilerinden oluşan 16 takım, oturumlar halinde gerçekleşen bu etkinlikte ter döktü. YARATICILIK BAŞROLDE Etkinliğin amacı gruplara organizasyon tarafından verilen hurda ve basit malzemelerle yapabilecekleri en kötü ve dayanıklı robotu tasarlatıp gençlerin yaratıcılıklarını ortaya çıkarmaktı. 16 farklı grubun sınırlı sürede yarattığı tasarımlar görülmeye değerdi. Tasarımlar sonunda kurulan ringde takımlar robotlarını birbirlerine üstünlük sağlamaları için mücadele ettirdi.

GELECEĞİN YAZILIM MÜHENDİSLERİ İLE TANIŞMA

Etkinlik süresince yazılım ile ilgilenen birçok öğrenciyle tanışıp onların kariyer hedeflerinde destekçileri olmak nihai hedeflerimizden biriydi. İlginin oldukça yoğun olduğu bu süreçte yaptığımız çekilişe de ilgi büyüktü. Özellikle frontend geliştirme, backend geliştirme, yazılım test uzmanlığı (QA), proje yönetimi alanlarıyla ilgilenen öğrencileri eğitimimizi denemeleri için ücretsiz bir kursa davet ettik. Bu kursta kişiler yazılım geliştirmenin ne olduğunu ve uzun süreli aramıza katılmak isterlerse onları nelerin beklediğini görebilecekler. Bu sayede geleceğin yazılım geliştiricilerinin yetişmesine katkıda bulunup kariyerlerini birlikte inşa edeceğiz. İnteraktif olacak bu deneme sürecinin sonunda katılımcılar dilediği paketi satın alıp, mentörler eşliğinde kariyer hedeflerini gerçekleştirebilecek. Onlarla tanışmak ve kariyer yolculuklarına eşlik etmek için sabırsızlanıyoruz. Yazılım eğitimlerimizle ilgilenen kişileri www.archisacademy.com adresinden ücretsiz beceri testini çözmeleri ve bizimle iletişime geçmeleri için bekliyoruz.

YENİ ETKİNLİKLER YAKINDA

ESOSES ‘i tebrik ederek bizleri yazılım meraklısı birçok öğrenciyle buluşturduğu için teşekkür ederiz! Yeni etkinliklerde sizlerle tekrar buluşmak için çok sabırsızız görüşmek üzere!

Read more

Read More
devops-productivity-and-process-innovation

Software Development

DevOps

DevOps: Productivity and Process Innovation

archis-frontend-trainee

Ashlee Sanjay

3 months ago

Hey All! This is Ashlee, a passionate Front-end Developer. In this blog, I give an introduction to DevOps. Please go through it. I hope you all love it.

DevOps is a set of practices and tools organizations use to develop and deliver applications and services faster than usual. It aims at integrating the development and operations teams to enable rapid software delivery.

Using DevOps, software organizations can reduce development complexity, detect and resolve issues faster, and continuously deliver high-quality, innovative software. The ability to work at speed allows organizations to develop a much-needed competitive edge at the same time, serve their customers in a better way.

The two pillars of successful DevOps practice are continuous integration and continuous delivery.

Continuous Integration(CI)

With CI, the developers frequently integrate the codes into a shared repository. Rather than building features separately and submitting them at the end of the life cycle, they continuously integrate the code several times a day. The system starts the compilation process whenever the code is integrated and runs unit tests and other quality-related checks.

CI relies heavily on test suites and automated test execution. When done correctly, it enables developers to perform frequent and iterative builds and deal with bugs early in the lifecycle. This will ensure a better quality of the product that is delivered.

CI aims to simplify the integration process and easily repeatable everyday development tasks to reduce overall build costs and reveal defects early in the cycle. Since, in practice, a developer will often discover integration challenges between new and existing code only at the time of integration, if done early and often, conflicts will be easier to identify and less costly to solve.

Continuous Delivery(CD)

This aims to automate the software delivery process to enable easy and assured deployments into production —at any time. Furthermore, by using an automatic or manual trigger, CD ensures the frequent release of bug-free software into the production environment and hence into the hands of the customers.

CD executes a progressive set of test suites against every build and alerts the development team in case of a failure, rectifying it. In situations where there are no issues, CD sequentially conducts tests. The result is a deployable and verifiable build in an actual production environment.

The main goal of CD is to produce software in short cycles so that new features and changes can be quickly, safely, and reliably released at any time. In addition, since CD automates each step for build delivery, it minimizes the inherent friction points in the deployment or release processes. It ensures safe code release can be done at any moment.

I hope you all like it. This was a concise blog. See you all on the next blog.

Read more

Read More