A picture is worth a thousand words: 9 best practices for developing microservices.
When we develop microservices, we need to follow the following best practices:
1. Use separate data storage for each microservice
2. Keep code at a similar level of maturity
3. Separate build for each microservice
4. Assign each microservice with a single responsibility
5. Deploy into containers
6. Design stateless services
7. Adopt domain-driven design
8. Design micro frontend
9. Orchestrating microservices
#microservices #architecture
#application
When we develop microservices, we need to follow the following best practices:
1. Use separate data storage for each microservice
2. Keep code at a similar level of maturity
3. Separate build for each microservice
4. Assign each microservice with a single responsibility
5. Deploy into containers
6. Design stateless services
7. Adopt domain-driven design
8. Design micro frontend
9. Orchestrating microservices
#microservices #architecture
#application
๐2
Think like an architect: a mental model for designing your softwares
๐What You'll Learn:
- How to transition your architectural knowledge to serverless
- The importance of modularity in serverless design and how to implement it
- A step-by-step example of moving from business requirements to a high-level architecture, and finally to a detailed serverless architecture
#microservices #architecture
#application #CloudComputing
#DevOps #CloudArchitect #ArchitecturePatterns
#AWSServices #CloudSolutions
๐งฉpart1
https://www.youtube.com/watch?v=9gEtY4Pb_8g
๐งฉpart2
https://www.youtube.com/watch?v=Gp_Cmv1Tams
๐What You'll Learn:
- How to transition your architectural knowledge to serverless
- The importance of modularity in serverless design and how to implement it
- A step-by-step example of moving from business requirements to a high-level architecture, and finally to a detailed serverless architecture
#microservices #architecture
#application #CloudComputing
#DevOps #CloudArchitect #ArchitecturePatterns
#AWSServices #CloudSolutions
๐งฉpart1
https://www.youtube.com/watch?v=9gEtY4Pb_8g
๐งฉpart2
https://www.youtube.com/watch?v=Gp_Cmv1Tams
YouTube
Think like an architect: a mental model for designing your softwares - Part ONE
In this two-part video series, Raj and Luca break down the essential mental models for transforming business requirements into cutting-edge cloud architectures.
In Part 1, we dive into Kubernetes and containers, showing you how to think like an architectโฆ
In Part 1, we dive into Kubernetes and containers, showing you how to think like an architectโฆ
๐2
Advanced Kubernetes: From GitOps to Resource Optimization and Quantum Computing
#infrastructure #kubernetes #gitops
https://youtube.com/live/aCWq-CYLHuI
#infrastructure #kubernetes #gitops
https://youtube.com/live/aCWq-CYLHuI
YouTube
Advanced Kubernetes: From GitOps to Resource Optimization and Quantum Computing
https://www.meetup.com/kubernetes-finland/events/302138388/
Welcome to our August meetup hosted by Metacore!
Our planned schedule is the following:
16:30 - 17:15: Arrive to the venue
17:15 - 17:45: Organizers - Welcome and practicalities
17:45 - 18:15:โฆ
Welcome to our August meetup hosted by Metacore!
Our planned schedule is the following:
16:30 - 17:15: Arrive to the venue
17:15 - 17:45: Organizers - Welcome and practicalities
17:45 - 18:15:โฆ
๐2
๐ฑThese tips will give you an understanding of what characteristics a reliable application should meet.
#Architecture #application #SystemsDesign
https://12factor.net/
#Architecture #application #SystemsDesign
https://12factor.net/
12factor.net
The Twelve-Factor App
A methodology for building modern, scalable, maintainable software-as-a-service apps.
๐1๐ฅ1
๐ฆถ๐ผHow do message queue architectures evolve?
๐น IBM MQ - was launched in 1993. It was originally called MQSeries and was renamed WebSphere MQ in 2002. It was renamed to IBM MQ in 2014. IBM MQ is a very successful product widely used in the financial sector. Its revenue still reached 1 billion dollars in 2020.
๐น RabbitMQ - architecture differs from IBM MQ and is more similar to Kafka concepts. The producer publishes a message to an exchange with a specified exchange type. It can be direct, topic, or fanout. The exchange then routes the message into the queues based on different message attributes and the exchange type. The consumers pick up the message accordingly.
#infrastructure #DevOps #Architecture
#application #microservices
๐น IBM MQ - was launched in 1993. It was originally called MQSeries and was renamed WebSphere MQ in 2002. It was renamed to IBM MQ in 2014. IBM MQ is a very successful product widely used in the financial sector. Its revenue still reached 1 billion dollars in 2020.
๐น RabbitMQ - architecture differs from IBM MQ and is more similar to Kafka concepts. The producer publishes a message to an exchange with a specified exchange type. It can be direct, topic, or fanout. The exchange then routes the message into the queues based on different message attributes and the exchange type. The consumers pick up the message accordingly.
#infrastructure #DevOps #Architecture
#application #microservices
โค1
๐น Kafka
In early 2011, LinkedIn open sourced Kafka, which is a distributed event streaming platform. It was named after Franz Kafka. As the name suggested, Kafka is optimized for writing. It offers a high-throughput, low-latency platform for handling real-time data feeds. It provides a unified event log to enable event streaming and is widely used in internet companies.
Kafka defines producer, broker, topic, partition, and consumer. Its simplicity and fault tolerance allow it to replace previous products like AMQP-based message queues.
๐น Pulsar
Pulsar, developed originally by Yahoo, is an all-in-one messaging and streaming platform. Compared with Kafka, Pulsar incorporates many useful features from other products and supports a wide range of capabilities. Also, Pulsar architecture is more cloud-native, providing better support for cluster scaling and partition migration, etc.
There are two layers in Pulsar architecture: the serving layer and the persistent layer. Pulsar natively supports tiered storage, where we can leverage cheaper object storage like AWS S3 to persist messages for a longer term.
#infrastructure #DevOps #Architecture
#application #microservices
In early 2011, LinkedIn open sourced Kafka, which is a distributed event streaming platform. It was named after Franz Kafka. As the name suggested, Kafka is optimized for writing. It offers a high-throughput, low-latency platform for handling real-time data feeds. It provides a unified event log to enable event streaming and is widely used in internet companies.
Kafka defines producer, broker, topic, partition, and consumer. Its simplicity and fault tolerance allow it to replace previous products like AMQP-based message queues.
๐น Pulsar
Pulsar, developed originally by Yahoo, is an all-in-one messaging and streaming platform. Compared with Kafka, Pulsar incorporates many useful features from other products and supports a wide range of capabilities. Also, Pulsar architecture is more cloud-native, providing better support for cluster scaling and partition migration, etc.
There are two layers in Pulsar architecture: the serving layer and the persistent layer. Pulsar natively supports tiered storage, where we can leverage cheaper object storage like AWS S3 to persist messages for a longer term.
#infrastructure #DevOps #Architecture
#application #microservices
๐1๐ฅ1
Why gRPC is Popular ๐
Here's why:
๐ Speed - gRPC is built on HTTP/2 and Protobufs for maximum throughput and minimal latency. Much faster than JSON over HTTP.
๐ Efficiency The compact Protobuf binary format means smaller payloads than JSON. Less data sent = better performance.
๐ Type Safety Protobufs are strongly typed, eliminating many bugs.
๐ Polyglot Write services in many popular languages, the IDL works across them all.
๐ Streaming gRPC supports bidirectional streaming for real-time data transmission.
๐ Great Ecosystem Tons of tools exist for code gen, load balancing, monitoring, and more.
Of course, gRPC has some drawbacks:
๐ More Complex Defining Protobuf schemas and setting up gRPC can have a learning curve.
๐ Not Human Readable Protobufs are binary, so not as easy to troubleshoot as JSON. Tools like grpcurl help a little bit.
๐ Limited Browser Support gRPC works best for backend microservices, not front-end apps.
#DevOps #Architecture #application #microservices #Architecture
Here's why:
๐ Speed - gRPC is built on HTTP/2 and Protobufs for maximum throughput and minimal latency. Much faster than JSON over HTTP.
๐ Efficiency The compact Protobuf binary format means smaller payloads than JSON. Less data sent = better performance.
๐ Type Safety Protobufs are strongly typed, eliminating many bugs.
๐ Polyglot Write services in many popular languages, the IDL works across them all.
๐ Streaming gRPC supports bidirectional streaming for real-time data transmission.
๐ Great Ecosystem Tons of tools exist for code gen, load balancing, monitoring, and more.
Of course, gRPC has some drawbacks:
๐ More Complex Defining Protobuf schemas and setting up gRPC can have a learning curve.
๐ Not Human Readable Protobufs are binary, so not as easy to troubleshoot as JSON. Tools like grpcurl help a little bit.
๐ Limited Browser Support gRPC works best for backend microservices, not front-end apps.
#DevOps #Architecture #application #microservices #Architecture
๐1๐ฅ1
AWS_Marketplace_Cloud_Native_eBook_2_Development_Techniques_FINAL.pdf
4 MB
Book: ๐ Development Techniques for Serverless and Kubernetes Applications
#infrastructure #aws #devops
#infrastructure #aws #devops
๐1๐ฅ1
๐ง๐ผโ๐ปLeveraging Cilium in its Kubernetes platform has lowered Kakaoโs network and performance costs
๐๐ปโโ๏ธand enabled faster debugging of network issues.
#cloudnative #network
#kubernetes #cilium
https://www.cncf.io/case-studies/kakao/?utm_content=303207023&utm_medium=social&utm_source=linkedin&hss_channel=lcp-12893459
๐๐ปโโ๏ธand enabled faster debugging of network issues.
#cloudnative #network
#kubernetes #cilium
https://www.cncf.io/case-studies/kakao/?utm_content=303207023&utm_medium=social&utm_source=linkedin&hss_channel=lcp-12893459
CNCF
Kakao
Kakao Corp is a South Korean company known for its popular messaging application, KakaoTalk. They not only help people stay connected but also offer additional services such as maps, comicsโฆ
๐2
How can Redis be used?
There is more to Redis than just caching.
Redis can be used in a variety of scenarios as shown in the diagram.
๐นSession
We can use Redis to share user session data among different services.
๐นCache
We can use Redis to cache objects or pages, especially for hotspot data.
๐นDistributed lock
We can use a Redis string to acquire locks among distributed services.
๐นCounter
We can count how many likes or how many reads for articles.
๐นRate limiter
We can apply a rate limiter for certain user IPs.
๐นGlobal ID generator
We can use Redis Int for global ID.
๐นShopping cart
We can use Redis Hash to represent key-value pairs in a shopping cart.
๐นCalculate user retention
We can use Bitmap to represent the user login daily and calculate user retention.
๐นMessage queue
We can use List for a message queue.
๐นRanking
We can use ZSet to sort the articles.
#redis #application #devops
There is more to Redis than just caching.
Redis can be used in a variety of scenarios as shown in the diagram.
๐นSession
We can use Redis to share user session data among different services.
๐นCache
We can use Redis to cache objects or pages, especially for hotspot data.
๐นDistributed lock
We can use a Redis string to acquire locks among distributed services.
๐นCounter
We can count how many likes or how many reads for articles.
๐นRate limiter
We can apply a rate limiter for certain user IPs.
๐นGlobal ID generator
We can use Redis Int for global ID.
๐นShopping cart
We can use Redis Hash to represent key-value pairs in a shopping cart.
๐นCalculate user retention
We can use Bitmap to represent the user login daily and calculate user retention.
๐นMessage queue
We can use List for a message queue.
๐นRanking
We can use ZSet to sort the articles.
#redis #application #devops
๐3
10 Key Data Structures We Use Every Day
๐ธlist: keep your Twitter feeds
๐ธstack: support undo/redo of the word editor
๐ธqueue: keep printer jobs, or send user actions in-game
๐ธhash table: cashing systems
๐ธArray: math operations
๐ธheap: task scheduling
๐ธtree: keep the HTML document, or for AI decision
๐ธsuffix tree: for searching string in a document
๐ธgraph: for tracking friendship, or path finding
๐ธr-tree: for finding the nearest neighbor
๐ธ vertex buffer: for sending data to GPU for rendering
#devops #algorithms
๐ธlist: keep your Twitter feeds
๐ธstack: support undo/redo of the word editor
๐ธqueue: keep printer jobs, or send user actions in-game
๐ธhash table: cashing systems
๐ธArray: math operations
๐ธheap: task scheduling
๐ธtree: keep the HTML document, or for AI decision
๐ธsuffix tree: for searching string in a document
๐ธgraph: for tracking friendship, or path finding
๐ธr-tree: for finding the nearest neighbor
๐ธ vertex buffer: for sending data to GPU for rendering
#devops #algorithms
๐4
Grafana LOKI one of the best tools for log collection, with good and reliable distributed architecture ๐งโโ
#grafana #devops #loki
https://youtu.be/0B-yQdSXFJE?si=pNp00yotpJCcmT-n
#grafana #devops #loki
https://youtu.be/0B-yQdSXFJE?si=pNp00yotpJCcmT-n
YouTube
Mastering Grafana Loki: Complete Guide to Installation, Configuration, and Integration | Part 1
๐AWS Cloud Practitioner Course: https://kode.wiki/AWSCloudPractitioner_YT
Welcome to Part 1 of our comprehensive guide to Grafana Loki! In this video, we'll take you through everything you need to know about Grafana, the Loki architecture, step-by-stepโฆ
Welcome to Part 1 of our comprehensive guide to Grafana Loki! In this video, we'll take you through everything you need to know about Grafana, the Loki architecture, step-by-stepโฆ
๐ฅ3
For those who are not familiar with Linux๐ค, I suggest you start getting to know it through this free course from Linux Foundation ๐
#devops #linux #training #learning #freecourses
https://training.linuxfoundation.org/training/introduction-to-linux/
#devops #linux #training #learning #freecourses
https://training.linuxfoundation.org/training/introduction-to-linux/
Linux Foundation - Education
Introduction to Linux (LFS101) | Linux Foundation Education
Develop a good working knowledge of Linux using both the graphical interface and command line with this free introduction to Linux course.
๐1๐ฅ1
๐10 books Every Software Engineer should read
#books #learning_path #devops
#software #engineering
#books #learning_path #devops
#software #engineering
๐1
๐ ๐๐ฒ๐ฟ๐ฒ'๐ ๐ฎ ๐ฏ๐ฟ๐ฒ๐ฎ๐ธ๐ฑ๐ผ๐๐ป ๐ผ๐ณ ๐ต๐ผ๐ ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐๐ผ๐ฟ๐ธ๐:
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ฐ๐ผ๐ป๐๐ฎ๐ถ๐ป๐ฒ๐ฟ๐ are self-contained units that package your application code, runtime, system tools, settings, and libraries
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ถ๐บ๐ฎ๐ด๐ฒ๐ are blueprints that contain instructions for creating containers.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ฑ๐ฎ๐ฒ๐บ๐ผ๐ป (๐ฑ๐ผ๐ฐ๐ธ๐ฒ๐ฟ๐ฑ) is the engine that builds, runs, and manages Docker containers.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐๐๐ is the tool you use to interact with the Docker daemon.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ฟ๐ฒ๐ด๐ถ๐๐๐ฟ๐ถ๐ฒ๐ are repositories that store and share Docker images.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐๐๐ผ๐ฟ๐ฎ๐ด๐ฒ ๐ฑ๐ฟ๐ถ๐๐ฒ๐ฟ๐ manage how data is stored and persisted within containers.
โก๏ธ๐๐ผ๐ป๐๐ฎ๐ถ๐ป๐ฒ๐ฟ ๐ผ๐ฟ๐ฐ๐ต๐ฒ๐๐๐ฟ๐ฎ๐๐ผ๐ฟ๐ like Kubernetes that help you manage and scale large deployments of Docker containers. They take care of provisioning, scheduling, and healing your containers, making it easier to run complex applications in production.
#devops #docker #containers
#architecture #infrastructure
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ฐ๐ผ๐ป๐๐ฎ๐ถ๐ป๐ฒ๐ฟ๐ are self-contained units that package your application code, runtime, system tools, settings, and libraries
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ถ๐บ๐ฎ๐ด๐ฒ๐ are blueprints that contain instructions for creating containers.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ฑ๐ฎ๐ฒ๐บ๐ผ๐ป (๐ฑ๐ผ๐ฐ๐ธ๐ฒ๐ฟ๐ฑ) is the engine that builds, runs, and manages Docker containers.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐๐๐ is the tool you use to interact with the Docker daemon.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐ฟ๐ฒ๐ด๐ถ๐๐๐ฟ๐ถ๐ฒ๐ are repositories that store and share Docker images.
โก๏ธ๐๐ผ๐ฐ๐ธ๐ฒ๐ฟ ๐๐๐ผ๐ฟ๐ฎ๐ด๐ฒ ๐ฑ๐ฟ๐ถ๐๐ฒ๐ฟ๐ manage how data is stored and persisted within containers.
โก๏ธ๐๐ผ๐ป๐๐ฎ๐ถ๐ป๐ฒ๐ฟ ๐ผ๐ฟ๐ฐ๐ต๐ฒ๐๐๐ฟ๐ฎ๐๐ผ๐ฟ๐ like Kubernetes that help you manage and scale large deployments of Docker containers. They take care of provisioning, scheduling, and healing your containers, making it easier to run complex applications in production.
#devops #docker #containers
#architecture #infrastructure
๐2
โจ7 must-know strategies to scale your database.
1๏ธโฃ Indexing:
Check the query patterns of your application and create the right indexes.
2๏ธโฃ Materialized Views:
Pre-compute complex query results and store them for faster access.
3๏ธโฃ Denormalization:
Reduce complex joins to improve query performance.
4๏ธโฃ Vertical Scaling
Boost your database server by adding more CPU, RAM, or storage.
5๏ธโฃ Caching
Store frequently accessed data in a faster storage layer to reduce database load.
6๏ธโฃ Replication
Create replicas of your primary database on different servers for scaling the reads.
7๏ธโฃ Sharding
Split your database tables into smaller pieces and spread them across servers. Used for scaling the writes as well as the reads.
#architecture #systemdesign #optimization #highloads #databases
1๏ธโฃ Indexing:
Check the query patterns of your application and create the right indexes.
2๏ธโฃ Materialized Views:
Pre-compute complex query results and store them for faster access.
3๏ธโฃ Denormalization:
Reduce complex joins to improve query performance.
4๏ธโฃ Vertical Scaling
Boost your database server by adding more CPU, RAM, or storage.
5๏ธโฃ Caching
Store frequently accessed data in a faster storage layer to reduce database load.
6๏ธโฃ Replication
Create replicas of your primary database on different servers for scaling the reads.
7๏ธโฃ Sharding
Split your database tables into smaller pieces and spread them across servers. Used for scaling the writes as well as the reads.
#architecture #systemdesign #optimization #highloads #databases
๐2