September 2020 Summaries
4 posts from Gremlin
Filter
Month:
Year:
Post Summaries
Back to Blog
Migrating a monolithic application to a microservices architecture can inadvertently result in a distributed monolith, where the application appears to be a microservice but retains the inefficiencies of a monolith. This anti-pattern can lead to slow service startups, cascading failures, and the necessity of redeploying the entire application for minor changes, thus negating the benefits of microservices such as scalability and resource efficiency. Key issues indicating a distributed monolith include tightly coupled services, poor scalability, and excessive inter-service communication. To identify and address these issues, Chaos Engineering can be employed to test an application's resilience by intentionally causing failures and observing their impacts. By doing so, developers can pinpoint areas of tight coupling, inefficient scaling, and communication bottlenecks, allowing them to implement solutions such as domain-driven design, asynchronous processing, and message queues to better align with microservice principles and enhance application reliability.
Sep 30, 2020
2,424 words in the original blog post.
Technology Business Management (TBM) is a strategic framework designed to maximize the business value of IT spending by treating IT as a business rather than a mere cost center, emphasizing decision-making based on business needs like reliability and customer satisfaction. Developed by the Technology Business Management Council, TBM provides a taxonomy that aligns finance, IT, and business leaders through a common language to guide discussions and optimize IT services to meet business goals. The framework involves ten core tenets, such as creating transparency, continuous improvement, and aligning IT with business strategies, which are crucial for effectively managing technology resources and financial investments. Chaos Engineering complements TBM by enhancing system reliability and customer satisfaction through proactive testing and incident management, allowing organizations to optimize spending and save money while maintaining operational goals. As part of a TBM initiative, Chaos Engineering helps find hidden risks, ensuring systems are resilient and capable of supporting revenue generation by meeting customer demands efficiently.
Sep 18, 2020
2,273 words in the original blog post.
Understanding an application's critical path is crucial for ensuring its reliability and functionality, especially in complex systems with numerous components and dependencies. The critical path comprises essential components and workflows that enable the application to perform its core functions; if any of these components fail, the application cannot serve its primary purpose, such as allowing purchases in an e-commerce platform. Application mapping helps identify these components and their interdependencies, which is vital for building resilience and preventing costly outages. Chaos Engineering is employed to test and improve the reliability of the critical path by deliberately introducing failures and observing system responses, as demonstrated with an e-commerce website's CartService and its dependency on Redis. By focusing on the critical path, teams can proactively mitigate risks, enhance user experience, and prevent revenue loss from unexpected outages.
Sep 14, 2020
1,630 words in the original blog post.
Chaos Engineering, traditionally applied to backend systems, is equally vital for client-side applications to ensure comprehensive system reliability. The blog post explores how front-end failures, like slow page loads and image download failures, can impact user experience even when backend systems function correctly. By introducing Chaos Engineering to the client-side, developers can simulate potential failure points such as CDN outages or high latency. Using tools like Gremlin for chaos experiments and Selenium for browser automation, developers can create controlled test environments to assess how these failures affect user interactions. For instance, a blackhole attack can simulate CDN failures, while latency injections can mimic poor network conditions, allowing for the identification and resolution of potential weaknesses in website performance. The overall goal is to enhance the reliability of web applications by ensuring they remain functional and user-friendly under adverse conditions without directly experimenting on users' systems.
Sep 08, 2020
1,956 words in the original blog post.