<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[The Continuous Journey]]></title><description><![CDATA[The Continuous Journey]]></description><link>https://thecontinuousjourney.com</link><generator>RSS for Node</generator><lastBuildDate>Fri, 15 May 2026 10:43:31 GMT</lastBuildDate><atom:link href="https://thecontinuousjourney.com/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The First Way: The Principles of Flow: Part-1]]></title><description><![CDATA[Hello everyone. Welcome Back to the series after a very long time. The delay wasn’t intentional but it so happened. Hoping to be consistent henceforth.
In the previous article of the series, we discussed in brief all the three ways. Now in this one, ...]]></description><link>https://thecontinuousjourney.com/the-first-way-the-principles-of-flow-part-1</link><guid isPermaLink="true">https://thecontinuousjourney.com/the-first-way-the-principles-of-flow-part-1</guid><category><![CDATA[Devops]]></category><category><![CDATA[Devops articles]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Wed, 15 Oct 2025 20:07:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/0SBhJh9-HiI/upload/78595e225d18405fc926fe4cf3916f2b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello everyone. Welcome Back to the series after a very long time. The delay wasn’t intentional but it so happened. Hoping to be consistent henceforth.</p>
<p>In the previous article of the series, we discussed in brief all the three ways. Now in this one, we will see the first way in a bit more detail.</p>
<p>In the technology value stream, the work flows from Development to Operations or from Dev to Ops in short. The faster the flow is, the faster the delivery of value to the customers.</p>
<p>How we do the above is through making work visible, reducing batch sizes, by building quality in, preventing defects from being passed to downstream work centers</p>
<p>The by products of the doing are</p>
<ul>
<li><p>reducing the lead time to fulfill internal and external customer requests</p>
</li>
<li><p>increasing the quality of work</p>
</li>
<li><p>making the organization more more responsive to the customer and market needs</p>
</li>
</ul>
<h2 id="heading-make-our-work-visible">Make our Work Visible</h2>
<p>A major difference between technology and manufacturing value streams is that our work is invisible as the transfer of work between work centers can be done with a click of button</p>
<p>Due to the ease in doing the task, work can bounce between teams due to incomplete information or the problems remain completely invisible resulting in delay in the delivery of the promised improvements or features.</p>
<p>To avoid the issues mentioned above, we should make the work visible using work boards like Kanban boards. It helps in making the work visible and also in managing the work in order to make it flow from left to right as quickly as possible. Also it helps to zero in on the unnecessary hand-offs which introduce unnecessary delays. Work is considered to be done when those features are available in production</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1760557518159/b8e9dffe-0aa8-4902-8af3-5eee849df3c0.jpeg" alt="A Sample DevOps Kanban Board" class="image--center mx-auto" /></p>
<h2 id="heading-limit-work-in-process">Limit Work in Process</h2>
<p>In Manufacturing, daily work is dictated by a production schedule which is in turn governed by other factors like order due dates, parts availability etc. But in technology, the work is more dynamic</p>
<p>Disruptions in the manufacturing space is highly visible and costly but same in the technology is invisible.</p>
<p>In order to avoid that we can impose WIP limits for each column as shown earlier. It helps to see problems that prevent completion of work. The focus shifts to completing the already started work.</p>
<p>We will see the other principles of flow in future posts.</p>
]]></content:encoded></item><item><title><![CDATA[Types of Object Encryption in AWS S3]]></title><description><![CDATA[Welcome back to the AWS SAA series. We will continue from where we left in the last blog.
Buckets aren’t encrypted. But Objects are. Each object could be using different encryption settings.
There are two main types of encryption at rest:

Client sid...]]></description><link>https://thecontinuousjourney.com/types-of-object-encryption-in-aws-s3</link><guid isPermaLink="true">https://thecontinuousjourney.com/types-of-object-encryption-in-aws-s3</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS s3]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Fri, 05 Jul 2024 18:26:30 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/7qn9wis0Wns/upload/bee356fa1c614e98e387058d0c09a8cf.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome back to the AWS SAA series. We will continue from where we left in the last blog.</p>
<p>Buckets aren’t encrypted. But Objects are. Each object could be using different encryption settings.</p>
<p>There are two main types of encryption at rest:</p>
<ul>
<li><p>Client side encryption</p>
</li>
<li><p>Server side encryption</p>
</li>
</ul>
<p>Both of them refer to encryption at rest. Only data is encrypted but not object metadata.</p>
<p>Encryption at rest - Method of encryption when the objects are persistently stored on disk.</p>
<p>The objects being uploaded are encrypted by the client before they ever leave.The data is in cipher-text form the entire time it is stored in the bucket.</p>
<p>With server side encryption, the data is encrypted with https while in transit.The data is encrypted when it reaches the endpoint</p>
<p>With client side encryption, everything is under the user’s control.</p>
<p>3 types of server side encryption and is a trade off between trust, overhead, cost , resource consumption etc.</p>
<ol>
<li><p>Server side encryption with Customer-Provided Keys (SSE-C)</p>
</li>
<li><p>Server side encryption with Amazon S3 managed keys (SSE-S3)</p>
</li>
<li><p>Server side encryption with KMS keys stored in AWS-KMS (SSE-KMS)</p>
</li>
</ol>
<p>Two components to SSE</p>
<ul>
<li><p>The actual encryption and decryption process itself – cryptographic operations</p>
</li>
<li><p>Generation and management of cryptographic keys.</p>
</li>
</ul>
<p>In SSE-C, customer is responsible for the encryption keys used in the encrypt/decrypt operations</p>
<p>So the first major difference between client side encryption and SSE-C is that S3 service is handling the cryptographic operations. The cpu requirements are being offloaded to S3 but the customer is required to manage the keys</p>
<p>So the object (obj.) to be encrypted and the key is supplied to S3. Also a hash of the key is created and attached to the obj and key is discarded. This hash can’t be used to generate a new key.</p>
<p>If key is provided during decrypt. the hash will identify whether the same key was used to encrypt the obj.</p>
<p>So as the key is not present now, S3 is requested for the obj to be decrypted and the key to decrypt it.</p>
<p>S3 will determine the key is correct, then use it to decrypt the obj. and discard the key.</p>
<p>Customer needs to manage the keys, but retains the control of the cryptographic. ops. and also save cpu requirement.</p>
<p>In the next blog post we will see the rest of the types of server side encryption.</p>
]]></content:encoded></item><item><title><![CDATA[AWS Key Management Service - An Introduction]]></title><description><![CDATA[The next topic in our series would be about Key Management Service before we can discuss how encryption happens in the S3 buckets. This is a separate topic in itself. Lets start.
AWS Key Management Service (AWS KMS) lets us create, manage, and contro...]]></description><link>https://thecontinuousjourney.com/aws-key-management-service-an-introduction</link><guid isPermaLink="true">https://thecontinuousjourney.com/aws-key-management-service-an-introduction</guid><category><![CDATA[AWS]]></category><category><![CDATA[Aws kms]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Fri, 07 Jun 2024 12:17:58 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/CpbI_SbiKqs/upload/5f0951f25fc1376d6da4b01d86f2c0d3.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The next topic in our series would be about Key Management Service before we can discuss how encryption happens in the S3 buckets. This is a separate topic in itself. Lets start.</p>
<p>AWS Key Management Service (AWS KMS) lets us create, manage, and control cryptographic keys across your applications and more than 100 AWS services.</p>
<p>AWS KMS is a secure and resilient service that uses hardware security modules that have been validated under FIPS 140-2, or are in the process of being validated, to protect your keys.</p>
<p>Any AWS service using encryption uses KMS.It is a regional and public service. Every region is isolated when using KMS. It helps to create, store and manage cryptographic keys. These keys can be used to create plain text information to cipher text information and vice-versa. It is able to handle both symmetric and asymmetric keys (private asymmetric and public asymmetric keys)</p>
<p>It is capable of performing actual cryptographic operations. (encrypt, decrypt etc.)</p>
<p>The KMS keys never leave the KMS service. Can create, import, manage keys etc. But keys are locked inside KMS</p>
<p>It provides FIPS 140-2 compliant service which is a US security standard. Some features are compliant with level three standard. The keys were earlier known as CMK but currently they are known as KMS keys. They Are used by KMS within cryptographic operations</p>
<p>Users can use them, apps can use them and other AWS services can use them. KMS Keys are logical.</p>
<p>They can be thought of as containers for physical key material</p>
<p>KMS Keys contains:</p>
<ul>
<li><p>key ID: unique identifier for the key</p>
</li>
<li><p>creation date</p>
</li>
<li><p>key policy (a type of resource policy)</p>
</li>
<li><p>description and state of key (active or inactive)</p>
</li>
</ul>
<p>Every KMS Key is supported by physical key material. It is this material that is used to encrypt and decrypt things. Physical material can be generated by KMS or imported into KMS. This physical material inside KMS Keys are used to encrypt or decrypt data that’s upto 4kB in size. It has other features to overcome the 4 kB limitation.</p>
<p>Lets assume that there is a user who interacts with KMS. The first interaction after picking a region is creating a key. So user runs createkey operation to create KMS key. Then KMS key contains physical backing key material. This is the most important thing that KMS creates, stores and manages. KMS keys are encrypted before they are store persistently on disk. Now there is an encrypted KMS key</p>
<p>Next interaction might be to encrypt some data. The encrypt call is used providing the key to use and some data to encrypt. Provided that user has required permissions to access the key, KMS decrypts key &amp; uses it to encrypt the plain-text data and returns the encrypted data to the user.</p>
<p>So KMS is handling this cryptographic operation</p>
<p>If the data needs to be decrypted, then user uses Decrypt operation and provides the encrypted data. The key to be used to decrypt data is encoded in the cipher text of the data to be decrypted. If user has decrypt permissions, KMS decrypts the KMS keys and uses it to decrypt the cipher text and provides the data in plain-text</p>
<p>The permissions to generate keys, encrypt and decrypt are all different. The permissions are granular Note that the KMS key does not leave KMS at any stage or stored in plain-text at any stage. To perform each operation like creating the keys, assigning the permissions, for encrypt and decrypt operations, separate permissions are required</p>
<p>Different users can be given different permissions w.r.t KMS. (a.k.a role separation), For example, some people might have permission to encrypt but not generate keys and assign permissions and decrypt.</p>
<h3 id="heading-data-encryption-keys">Data Encryption Keys</h3>
<p>KMS can only perform cryptographic operations only on data that has upto 4kb in size. Then how is the 4kb limitation is overcome?</p>
<p>KMS has another type of keys – data encryption keys (DEK)– created using KMS keys Using GenerateDataKey operation and KMS Key, a DEK is generated and this DEK can be used to encrypt data that is greater than 4kb size. DEK is linked to a specific KMS Key that was used in creating them. So KMS knows which DEK is created using which KMS key.</p>
<p>The DEK is not stored in KMS. It is provided to user or service using KMS and then discards it. Because KMS itself does not encrypt/decrypt using DEKs. That is done either by the user or the service that uses the DEK</p>
<p>Data is encrypted using plaintext DEK and then it is discarded. Generally the encrypted data and the encrypted DEK are stored together. KMS by itself doesn’t encrypt the data greater than 4 kb. Either the user or the service using the DEK does it. KMS doesn’t track usage of DEK</p>
<p>The same DEK can be used to encrypt multiple files or new DEKs can be generated for each of them The data and the DEK used to encrypt it are stored on same disk in an encrypted form. So the administration is easy and security is maintained</p>
<p>Data encrypted by DEK can be decrypted by passing the encrypted DEK back to KMS Then use the decrypted DEK is used to decrypt the data and the decrypted DEK is discarded.</p>
<h3 id="heading-key-concepts">Key concepts:</h3>
<p>KMS key are stored within KMS specific to that region and never leave the region or the service</p>
<p>KMS Keys <strong>cannot</strong> be extracted and any interactions with KMS keys is done through APIs provided by KMS.</p>
<p>They are either AWS Owned or Customer owned</p>
<p>AWS Owned KMS keys are owned and managed by AWS services to be used in multiple accounts</p>
<p>Customer Owned KMS Keys are 2 types</p>
<p>AWS Managed Customer owned KMS keys and Customer managed and owned KMS keys.</p>
<p>AWS Managed KMS keys are created when a service such as S3 use KMS for encryption</p>
<p>Customer managed KMS keys are created by customer.</p>
<p>Customer managed KMS keys are much more configurable, meaning we could allow cross account access</p>
<p>Can edit the key policy. Can allow other AWS accounts to access KMS keys to perform ops.</p>
<p>Both key types support key rotation.</p>
<p>Rotation is the process in which the physical backed key is changed.</p>
<p>With AWS managed KMS keys, the keys are rotated for every 365 days or 1 year and key rotation can’t be disabled.</p>
<p>With customer managed KMS keys, rotation is optional. If rotation is enabled then it can happen once an year.</p>
<p>The backing key, physical key material [ and all previous ones are stored, even after rotation so that data encrypted by older keys can be decrypted</p>
<p>A shortcut to a particular KMS key , called an <em>alias</em>, can be created, per region.</p>
<p>Neither aliases or keys are global</p>
<p>KMS has to be explicitly told that keys trust the AWS account they are in.</p>
<h3 id="heading-key-policies-and-security">Key Policies and Security</h3>
<p>Permissions on keys are handled in a separate manner</p>
<p>Many services will trust the account they are contained in. If we grant access via an identity policy, it is alllowed unless there’s an explicit deny</p>
<p>In KMS this trust is added explicitly added on a key policy or its not added</p>
<p>Starting point of kms keys are key policy - similar to resource policies.</p>
<p>Every KMS key has a key policy</p>
<p>Every customer managed key can have its policy changed</p>
<p>Unlike other services, KMS has to be told that the keys trust the account that they are part of.</p>
<p>We need key policy to grant access to a key using Identity services</p>
<p>Generally KMS is managed using key policies, trusting the account and then using identity policies to let IAM users interact with the key</p>
<p>In high security environments, this trust should be removed and permissions be added in the key policy<br />The IAM permissions for KMS are granular and split based on functions. This way the product admins or others aren’t given rights to access the data encrypted by KMS</p>
]]></content:encoded></item><item><title><![CDATA[AWS S3 Performance Optimization]]></title><description><![CDATA[Hello there, continuing with our series, lets look into AWS S3 Performance optimization w.r.t uploads
Single PUT upload
This is the S3 Default upload method
The data is transferred in a single stream to S3
A file becomes an object and is uploaded usi...]]></description><link>https://thecontinuousjourney.com/aws-s3-performance-optimization</link><guid isPermaLink="true">https://thecontinuousjourney.com/aws-s3-performance-optimization</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS s3]]></category><category><![CDATA[aws transfer acceleration]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Wed, 05 Jun 2024 12:24:49 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Q1p7bh3SHj8/upload/39646ea33996ebf183b735a2f14d40d4.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello there, continuing with our series, lets look into AWS S3 Performance optimization w.r.t uploads</p>
<h3 id="heading-single-put-upload">Single PUT upload</h3>
<p>This is the S3 Default upload method</p>
<p>The data is transferred in a single stream to S3</p>
<p>A file becomes an object and is uploaded using the PUT object API and happens in a single stream.</p>
<ul>
<li><p>The problem: If the stream fails, then the entire upload fails and the upload operation has to restart from beginning</p>
<p>  resulting in wastage of internet bandwidth and time.</p>
</li>
<li><p>Whenever anything is downloaded, it is done on multiple streams</p>
</li>
<li><p>Single stream of data is not reliable when data is transferred over long distances</p>
</li>
<li><p>Speed and reliability are the limitations of a single stream of data.</p>
</li>
</ul>
<p>When the data is transferred over two points the lowest of the speeds are selected.</p>
<p>Data transfer protocols like bit-torrent have been developed for speedy, distributed transfer of data.</p>
<p>If a single PUT upload is used, only 5GB data could be transferred.</p>
<p><strong>The solution</strong> – multipart upload – improves speed and reliability, by data into individual parts</p>
<h3 id="heading-multipart-upload">Multipart Upload</h3>
<ul>
<li><p>Minimum size for multi-part upload is 100MB</p>
</li>
<li><p>A multipart upload can be split into a max of 10000 parts and each part can be of size between 5MB to 5GB</p>
</li>
<li><p>The last part is leftover and can be &lt; 5MB</p>
</li>
<li><p>Multipart upload is so effective because each part is treated as an individual upload.</p>
</li>
</ul>
<p>If the part fails then only the failed part needs to be restarted. The risk significantly reduces.</p>
<p>The transfer rate of the entire upload is the sum of all individual parts.</p>
<h3 id="heading-s3-transfer-acceleration">S3 Transfer Acceleration</h3>
<p>Distributed teams around the world can make use of the public internet to upload data to a bucket in any AWS region and we have no control over the path taken by the data as it can take an indirect path.</p>
<p>Transfer Acceleration uses network of AWS Edge locations</p>
<p>S3 bucket needs to be enabled for transfer acceleration.</p>
<p>By default, its switched off. There are some restrictions for enabling it.</p>
<p>Bucket name cannot contain periods and names should be DNS compatible</p>
<p>So the data is transferred to the nearest AWS edge location and from there the data is transferred over the AWS Global network, which tend to be direct links  </p>
<p>The internet is a multipurpose public network built for flexibility and resilience not for speed.The AWS network is built to connect from region to region – much faster and lower latency (delay)</p>
]]></content:encoded></item><item><title><![CDATA[S3 Object Versioning & MFA Delete]]></title><description><![CDATA[Object versioning is a feature which can be enabled on an S3 bucket - allowing the bucket to store multiple versions of objects
These objects can be referenced by their version ID to interact directly - or omit this to reference the latest version of...]]></description><link>https://thecontinuousjourney.com/s3-object-versioning-mfa-delete</link><guid isPermaLink="true">https://thecontinuousjourney.com/s3-object-versioning-mfa-delete</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS s3]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Wed, 05 Jun 2024 10:20:47 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/7SDoly3FV_0/upload/0dcb79dd67cba4bd7a45c0d7e4306fa9.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Object versioning is a feature which can be enabled on an S3 bucket - allowing the bucket to store multiple versions of objects</p>
<p>These objects can be referenced by their version ID to interact directly - or omit this to reference the latest version of an object</p>
<p>Objects aren't deleted - object deletion markers are put in place to hide objects.</p>
<p>Versioning is an essential feature to understand for the exam.</p>
<p>MFA Delete is a related feature which is also discussed.</p>
<p>Obj Versioning is controlled at bucket level.</p>
<p>Bucket at disabled state. But once the feature is enabled, it <strong>can’t</strong> be disabled again.</p>
<p>If needed the bucket can be suspended and can be re-enabled</p>
<p>Without versioning enabled, each obj. is identified using object key. ( that is, obj. name)</p>
<p>If you modify an obj. the original version of that document is replaced.</p>
<p>Versioning lets you store multiple versions of the object in a bucket.</p>
<p>When an object is modified by some operation, a new version is generated and it replaces the old one.</p>
<p>There is an attribute of the obj. known as ID. When versioning is disabled, the ID of the obj. is set to null. That’s the meaning of the versioning being off on a bucket – all objects will have id of null.</p>
<p>If versioning is enabled and new obj is added, then that obj. is given an ID e.g 11111</p>
<p>If any modifications are made to this object, the new version is given a new id and retains old version The newest or latest version is known as <strong>current</strong> version.</p>
<p>If an object is accessed without specifying the id then the current version is returned.</p>
<p>Versioning also affects deletions. If we indicate to S3 that we want to delete an object and not specify the version id then S3 adds a new special. version of the obj. known as delete marker.</p>
<p>The delete marker makes the obj look deleted but actually the obj is hidden.</p>
<p>So delete marker is a special version which hides all previous versions of the obj.</p>
<p>If delete marker is deleted then essentially undeletes the object making current version active again.</p>
<p>If an object is requested to be deleted by specifying the version id then the version is deleted.</p>
<p>If the current version is deleted, then the previous version becomes current ver.</p>
<p>Imp points to remember.</p>
<p>Once the versioning feature is enabled on a bucket, it cannot be disabled only suspended.</p>
<p>If versioning is enabled, then we have to pay the storage costs for all those versions.</p>
<p>If versioning is suspended, the above. point holds good</p>
<h3 id="heading-mfa-delete">MFA delete</h3>
<ul>
<li><p>It is enabled in the versioning configuration of bucket</p>
</li>
<li><p>When enabled, MFA is required to change versioning state from enabled to suspended or vice-versa</p>
</li>
<li><p>To delete versions also, MFA is required.</p>
</li>
<li><p>How is it done – (Serial number of MFA with Code passed with the API calls)</p>
</li>
</ul>
]]></content:encoded></item><item><title><![CDATA[AWS S3 Static Hosting and S3 Pricing]]></title><description><![CDATA[The AWS CLI and console UI access S3 via AWS API behind scenes.
For e.g the getobject API
This feature allows access via standard HTTP for blogs, static websites provided the identity trying to access it is authenticated and authorized, the get objec...]]></description><link>https://thecontinuousjourney.com/aws-s3-static-hosting-and-s3-pricing</link><guid isPermaLink="true">https://thecontinuousjourney.com/aws-s3-static-hosting-and-s3-pricing</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS s3]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Fri, 31 May 2024 12:55:17 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/klWUhr-wPJ8/upload/8e08892cb5335398d101d2d18347c342.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The AWS CLI and console UI access S3 via AWS API behind scenes.</p>
<p>For e.g the getobject API</p>
<p>This feature allows access via standard HTTP for blogs, static websites provided the identity trying to access it is authenticated and authorized, the get object API call is used to access those resources.</p>
<p>Using API calls is secure and flexible.</p>
<p>Using S3 for static website hosting makes it more useful. It allows access via browser using the HTTP/S protocol.</p>
<p>Doing it is simple: Set an <strong>index</strong> and <strong>error</strong> html document</p>
<p>If a specific page is mentioned then that page is accessed. If no specific page is mentioned, then index page is displayed.</p>
<p>When a static website is enabled, we have to point the index document at a specific object in the S3 bucket.</p>
<p>The error document is the same. Used when something goes wrong. Both files need to be html documents because static website delivers html pages</p>
<p>When the feature is enabled on a S3 bucket, a website hosting endpoint is created. It is a specific address that the bucket can be accessed from using HTTP</p>
<p>Exact name of endpoint is influenced by <strong>bucket name</strong> that is chosen <strong>and the region</strong> it is in.</p>
<p>Custom domain can be used via R53 if the name of the bucket name matches the domain.</p>
<p>Static web hosting is great for hosting blogs and also for two other scenarios:</p>
<p>i) Offloading</p>
<p>ii) Out of band pages</p>
<h3 id="heading-offloading">Offloading</h3>
<p>If a website needs to display static html pages like images, those images could be moved into S3 bucket which has static website hosting enabled.</p>
<p>S3 is cheaper for storage and delivery of any media versus a compute service</p>
<h3 id="heading-out-of-band-pages">Out of band pages</h3>
<p>An example of this is maintenance page</p>
<p>For e.g if a maintenance page needs to be shown while the server is under maintenance then DNS could be changed and point customers at a backup static website hosted on S3 and it can provide this status message and/or maybe the details of biz support team</p>
<h3 id="heading-s3-pricing">S3 Pricing</h3>
<p>S3 has a simple pricing structure.</p>
<p>There is a per gigabyte per month charge for storing data in S3 and also for transfer out, there is a per gig month charge</p>
<p>There is no transfer fee for transferring data into S3</p>
<p>There is a charge for different ops on the per 1000 operation rate.</p>
<p>In the free tier plan, 5G of monthly storage is provided free of cost. 20k get and 20k put requests are free.</p>
<p>There is a charge for every 1000 operation on the Static website</p>
]]></content:encoded></item><item><title><![CDATA[AWS S3 Security]]></title><description><![CDATA[Hello there, moving on with out AWS SAA series, let's look at the security part of the S3 service.
The S3 service is private by default.The only identity that has any initial access to an S3 bucket is the account root user of the account which owns t...]]></description><link>https://thecontinuousjourney.com/aws-s3-security</link><guid isPermaLink="true">https://thecontinuousjourney.com/aws-s3-security</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS s3]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><category><![CDATA[aws s3 for beginners]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Thu, 30 May 2024 13:20:31 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/Ux2j3EAD-_g/upload/57caeae63e0f05b17e05c997ba72b091.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello there, moving on with out AWS SAA series, let's look at the security part of the S3 service.</p>
<p>The S3 service is private by default.The only identity that has any initial access to an S3 bucket is the account root user of the account which owns that bucket.</p>
<p>Any other identity has to be granted permission on that bucket explicitly</p>
<p>The first way of doing that is using an S3 bucket policy</p>
<p>An S3 bucket policy is a <strong>resource</strong> policy.</p>
<p>A resource policy is <strong>like an identity policy.</strong> But is attached to resources instead of identities.</p>
<p>– Provides a resource perspective on permissions</p>
<p>The difference b/w identity policy and resource policy</p>
<ul>
<li><p>Identity policy determines what the identity can access.</p>
</li>
<li><p>Resource policy determines who can access that resource?</p>
</li>
</ul>
<p>Identity policies can be attached to identities in one’s own account, can only control security in one’s own acct. No way of giving an identity in another account access to an S3 bucket</p>
<h3 id="heading-different-uses-of-bucket-resource-policies">Different Uses of Bucket (Resource) Policies</h3>
<p>Resource policies can allow identities from same or different account access over S3 buckets because the policy is attached to the resource and it can reference any other identities from same/different account</p>
<p>Another benefit: Can allow/deny anonymous principals(ones that are not auth. by AWS)</p>
<p>They can be used to block specific IP Addresses from accessing objects</p>
<p>In a bucket policy statement, there is a principal component. This is a way to differentiate an identity policy from a resource policy</p>
<p>Bucket policies can be used to allow or deny access from specific ip addresses</p>
<p>Bucket policy can be used to block access to a specific folder or prefix inside an S3 Bucket</p>
<h3 id="heading-acls">ACLs</h3>
<p>ACLs can be used to control access to subresources.</p>
<p>They are a legacy way of providing access. It is not recommended by AWS.<br />They have simple and inflexible permissions</p>
<p>It cannot be applied on a bunch of objects</p>
<p><strong>Some important pointers – When to use identity policy versus bucket policy (resource policy)</strong></p>
<p>Use identity policies if you want to provide access to multiple resources</p>
<p>If you want to control access from a single place like IAM, use identity policy</p>
<p>Use Resource policy - If you want to control access for a single product like S3</p>
<p>Use bucket(i.e resource) policy if you want to grant anonymous or cross-account access</p>
]]></content:encoded></item><item><title><![CDATA[AWS Control Tower - An Introduction]]></title><description><![CDATA[Hello Folks, as a continuation of our AWS SAA series, we will discuss briefly about Cloud Tower. Lets start.
AWS Control Tower offers a straightforward way to set up and govern an AWS multi-account environment, following prescriptive best practices. ...]]></description><link>https://thecontinuousjourney.com/aws-control-tower-an-introduction</link><guid isPermaLink="true">https://thecontinuousjourney.com/aws-control-tower-an-introduction</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS Control Tower]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Wed, 29 May 2024 15:41:04 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1716995022733/8c57dd07-727f-4b00-a3db-2dae7cb756f6.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Folks, as a continuation of our AWS SAA series, we will discuss briefly about Cloud Tower. Lets start.</p>
<p>AWS Control Tower offers a straightforward way to set up and govern an AWS multi-account environment, following prescriptive best practices. It is the evolution of AWS Organizations.</p>
<p>It orchestrates the capabilities of several other AWS services, including AWS Organizations, AWS Service Catalog, and AWS IAM Identity Center (successor to AWS Single Sign-On), to build a landing zone in less than an hour. Resources are set up and managed on your behalf. To help keep your organizations and accounts from drift, which is divergence from best practices, AWS Control Tower applies preventive and detective controls (guardrails). For example, you can use guardrails to help ensure that security logs and necessary cross-account access permissions are created, and not altered.</p>
<h2 id="heading-parts-of-the-control-tower">Parts of the Control Tower</h2>
<p><strong>Landing zone</strong> – A multi-account environment.</p>
<p>SSO/ID Federation, Centralized Logging and Auditing using a combination of services like CloudWatch, CloudTrail, AWS Config, SNS etc...</p>
<p><strong>Guard rails</strong> (controls) – designed to Detect/mandate rules/standards across all accounts</p>
<p><strong>Account Factory</strong> – A template which Automates and Standardises new account creation</p>
<p><strong>Dashboard</strong> – single page overview of the entire organization</p>
<p>AWS Control Tower is created out of a standard account. This account becomes the management account of the landing zone. It contains Control Tower – which orchestrates everything</p>
<p>AWS Org – provides the multi-account structure like OUs and SCPs</p>
<p>SSO now known as IAM Identity Center - means we can use AWS internal identities or external federated IDs to access everything in the LZ that we have permissions to.</p>
<p>When it is setup the first time, it creates two OUs</p>
<ol>
<li><p>A foundational OU – named security OU</p>
</li>
<li><p>A custom OU – named sandbox – used for less testing and less rigid security situations</p>
</li>
</ol>
<p>In the foundational OUs two accounts namely Audit acct and Log Archive account are created</p>
<h3 id="heading-log-archive-account"><strong>Log archive account</strong></h3>
<p>This is for users who need access to all logging information for all of the enrolled accounts in the landing zone.</p>
<p>E.g – AWS Config Logs, Cloudtrail logs</p>
<p>These logs are stored in this account so that they’re isolated. Need to explicitly grant access to this account Read only archive account for logging</p>
<h3 id="heading-audit-account"><strong>Audit account</strong></h3>
<p>It is for users who needs access to audit information provided by Control Tower.</p>
<p>Any third party tool can be used for auditing the data stored in this account</p>
<p>Can also use SNS for notification about changes to any governance or security policies</p>
<p>And use CloudWatch for monitoring landing zone-wide metrics</p>
<p>There is also account factory – which can be likened to a team of robots which create, modify or delete AWS according to business needs.</p>
<p>We could interact with them from both Control Tower console or via Service Catalog</p>
<h3 id="heading-account-factory">Account Factory</h3>
<p>It will create as many accounts as needed in the Custom OU called sandbox in a fully automated way</p>
<p>Configuration of these accounts are handled by Account Factory</p>
<p>From account and networking perspective, the baseline or cookie cutter configs are applied thus ensuring a consistent config across all AWS accounts within landing zone</p>
<p>Control Tower uses CFN under the hoods for much of this automation</p>
<p>Control Tower uses both AWS Config and SCP to implement account guardrails which detect drifts or divergences from governance standards or prevent the drifts from happening in the first place.</p>
<p>The action of provisioning also includes automatic applying of guardrails</p>
<p>Account administration permission can be given to any named user – making it true self service</p>
<p>Account and network standard configurable applied according organizational requirements like IP addressing of VPCs</p>
<p>Accounts can be closed or repurposed.</p>
<p>This whole process can be fully integrated with business SDLC using API if we need accounts provisioned according to the stage of app development, client demos, or software testing.</p>
<h3 id="heading-landing-zone">Landing Zone</h3>
<p>Landing zone – A feature designed for anyone to implement Well Architected multi-account environment.</p>
<p>Home Region – the region where the product is initially deployed into.</p>
<p>Landing Zone is built by services like AWS Config, AWS Organizations, CFN etc. So basically it is a product which orchestrates the features of various AWS services</p>
<p>Security OU – Log Archive and Audit Accounts (Cloud trail and Config Logs)</p>
<p>Custom (Sandbox) OU – Less rigid security. Used for testing purposes</p>
<p>Uses IAM Identity Center for single-sign-on, ID federation – using existing identity stores to access AWS accounts</p>
<p>Provides monitoring and notifications using CloudWatch and SNS</p>
<p>Allows end user account provisioning via Service Catalog</p>
<h3 id="heading-guardrails">GuardRails</h3>
<p>Basically rules for multi-account governance</p>
<p>Three different types – mandatory, strongly recommended or elective</p>
<p>Mandatory rules are also applied compulsorily enforced</p>
<p>Strongly recommended ones are strongly recommended rules are given by AWS</p>
<p>Elective are optional and are for niche requirements</p>
<p>Two functional types – Preventative and Detective</p>
<p><strong>Preventative</strong> – stops us from doing things – implemented using Service Control Policies</p>
<p>Examples of enforced rules are allow/deny regions or disallow bucket policy changes within accounts inside the Landing Zone.</p>
<p>The second functional way is <strong>detective</strong>. They are like compliance checks.They use AWS Config rules to check whether configuration of a service is according to best practice.</p>
<p>Three states – clear, in violation or not enabled.</p>
<p>Preventative rules will stop things from happening.</p>
<p>Detective rules will identify things</p>
<p>So they are an important security and governance feature in AWS</p>
]]></content:encoded></item><item><title><![CDATA[CloudTrail from the AWS SAA perspective]]></title><description><![CDATA[In this post, we are going to take a high level view of CloudTrail service of AWS without going into the details much. Read on...
Cloudtrail is a product which logs API calls/activities which affect AWS accounts as CloudTrail Events
It is a record of...]]></description><link>https://thecontinuousjourney.com/cloudtrail-from-the-aws-saa-perspective</link><guid isPermaLink="true">https://thecontinuousjourney.com/cloudtrail-from-the-aws-saa-perspective</guid><category><![CDATA[AWS]]></category><category><![CDATA[AWS CloudWatch]]></category><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Tue, 28 May 2024 17:37:55 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/wlQUkvDhvQw/upload/872023b421836a062a4836caea8ca98a.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this post, we are going to take a high level view of CloudTrail service of AWS without going into the details much. Read on...</p>
<p>Cloudtrail is a product which logs API calls/activities which affect AWS accounts as CloudTrail Events</p>
<p>It is a record of an activity in an AWS account.</p>
<p>It could be any action taken by a user, role or service like starting an EC2 instance, deleting an S3 bucket and so on.</p>
<p>It stores the events in the CloudTrail event history for the last 90 days by default w/o any costs</p>
<p>To customise CloudTrail for more than 90 days, a trail needs to be created.</p>
<p>Three types of events : <strong>Management</strong> events and <strong>Data</strong> events and <strong>Insight</strong> events</p>
<p>management events provide info about <strong>management operations</strong> that are performed on resources in your AWS account, a.k.a <strong>control plane operations</strong> e.g creating/terminating an EC2 inst. or creating VPC</p>
<p>Data events : Provide info about resource operations performed on or in a resource. e.g object uploaded to S3, accessing obj. in S3, invoking Lamda function</p>
<p>By default only management operations are logged or recorded because data events take up a high volume of storage very quickly. For example, logging every access to an S3 object</p>
<p>CT trail is a unit of configuration within the CT product. It is a way of providing config to CT on how to operate.</p>
<p>A trail logs event for the AWS region that it’s created in by default Global trail needs to be enabled by default</p>
<p>CT is a region-based service.</p>
<p>2 methods of config for operating CT: <strong>One region trail</strong> or <strong>All-region trail</strong></p>
<p>A single region trail will be logged in the region it is created in.</p>
<p>- an all region trail functions as one logical trail. Any new region is added the cloud trail config is automatically updated.</p>
<p>Most services log events in the region where the event occurred.</p>
<p>A small number of services (IAM, STS or Cloudfront) log global events to one region and are known as global service events and to log events related to that, they need to enabled in that trail.</p>
<p>When a cloudtrail is created management events are captured and if enabled manually, data events are also captured.</p>
<p>We need to manually enable data event capturing. It is not enabled by default.</p>
<p>After creating the trail, the events are stored as compressed JSON log files in S3 in a compressed format.</p>
<p>These logs can be passed to any tool which is capable of reading and intepreting them.</p>
<p>CT can be integrated with CloudWatch logs. The data can be stored in it. The data then can be searched or assigned a metric and interpreted.</p>
<p>A recent feature added to the cloudtrail product is that an org trail can be created, if the trail is created from the management account of an org, then all information from all the member accounts in the org is stored in the CT product</p>
]]></content:encoded></item><item><title><![CDATA[Cloud Watch Logs]]></title><description><![CDATA[Let's move on to CW logs and how it works in relation to IAM and AWS Organizations
Its a public service hosted in the AWS public zone. It’s accessible from AWS VPCs , on-premises environment or other cloud platforms provided you have network connecti...]]></description><link>https://thecontinuousjourney.com/cloud-watch-logs</link><guid isPermaLink="true">https://thecontinuousjourney.com/cloud-watch-logs</guid><category><![CDATA[AWS CloudWatch]]></category><category><![CDATA[AWS]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Tue, 28 May 2024 08:14:37 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/_dJCBtdUu74/upload/72ef2092a8e751bbe402b81e2f550736.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let's move on to CW logs and how it works in relation to IAM and AWS Organizations</p>
<p>Its a public service hosted in the AWS public zone. It’s accessible from AWS VPCs , on-premises environment or other cloud platforms provided you have network connectivity and AWS permissions.</p>
<p>The CW Logs product allows to store, monitor and access logging data</p>
<p>Logging data – is basically – piece of information and timestamp-DDMMYYhhmmss TZ format</p>
<p>It has integrations with AWS services like EC2, VPC Flow Logs, Lambda, CloudTrail, R53, etc..that means these services can store logging data in CW Logs' The security is provided using IAM roles or service roles</p>
<p>For anything outside AWS or for logging custom application or OS logs on EC2 – CW agent</p>
<p>There is a third way i.e the dev kits for AWS and implement logging into CW Logs directly from the application</p>
<p>CW Logs can take the logging data and generate a metric from it – known as a metric filter</p>
<p>Let’s suppose there’s a linux instance which has an OS log file which captures any failed ssh connection attempts</p>
<p>If that log from an instance is fed into CW Logs service, then a metric filter can scan the log data constantly and update the metric and an alarm can be setup based on the metric</p>
<h2 id="heading-cw-architecture">CW Architecture</h2>
<p>It is also a regional service</p>
<p>Starting point – Logging source which can include AWS products and services, external computer services , virtual or physical servers db, external APIs</p>
<p>These source feed data into CW Logs as log events</p>
<p>Log events have a time stamp and message block.</p>
<p>CW Logs treats it as a raw block of data but the data can be interpreted and columns and fields can be defined from that.</p>
<p>Log events are stored inside log streams and log streams – which are sequence of log events from same source</p>
<p>One log stream for one instance and one type of log</p>
<p>/var/log/messages for one instance is one log stream for system diagnostics in linux-based systems. Each log stream is an ordered set of log events for a specific source for a specific thing.</p>
<p>Log groups – container for multiple log streams for same type of logging data</p>
<p>Log groups – also stores configuration settings like retention settings and permissions</p>
<p>Retention settings and permissions are also defined on log groups – applicable to all log streams inside it</p>
<p>Metric filters will also be configured for log groups. Metric filters constantly review log events for any log streams in that log group looking for certain patterns, when found, the metric filters increment a metric and these metric can have alarms which would notify admins or AWS or external systems to take action. So it is a very useful products</p>
]]></content:encoded></item><item><title><![CDATA[Service Control Policies]]></title><description><![CDATA[SCP is a policy document. It is a JSON document which can be attached to the organization as a whole by attaching them to the root container or can be attached to the OUs and lastly to individual AWS accounts
There will be two OUs one for production ...]]></description><link>https://thecontinuousjourney.com/service-control-policies</link><guid isPermaLink="true">https://thecontinuousjourney.com/service-control-policies</guid><category><![CDATA[AWS Certified Solutions Architect Associate]]></category><category><![CDATA[AWS]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Mon, 27 May 2024 20:37:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/wlQUkvDhvQw/upload/651cc630eb2fb895110644ebaa6f9257.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>SCP is a policy document. It is a JSON document which can be attached to the organization as a whole by attaching them to the root container or can be attached to the OUs and lastly to individual AWS accounts</p>
<p>There will be two OUs one for production and one for development and the member accounts will be put into their respective OUs.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1716841001721/d80660e7-c02f-4721-a8b7-306733080a8e.png" alt class="image--center mx-auto" /></p>
<p>SCP inherits down the organization tree if attached the org container then it affects entire organization. If attached to OUs it affects the member accounts in the OU Management account is special in that the SCP does not affect the management account I.e management account can’t be restricted using SCP attached to it directly or indirectly It is beneficial and limitation. Because of that management account should not be used to manage AWS resources</p>
<p>SCP are <strong>account permission boundaries</strong></p>
<p>They limit what AWS acct can do.(including <strong>acct root user</strong>)</p>
<p>Account Root user can’t be controlled but using SCP what the acct can be done can be restricted and what the identities of account can do.</p>
<p>But if the account could be restricted then in effect, the account root user is also restricted. (indirectly)</p>
<p>For ex. An SCP could be used to restrict the usage of an acct outside a region, to restrict the size of the EC2 instance to be used within the acct.</p>
<p>They <strong>DON'T grant</strong> any permissions</p>
<p>They just act as a boundary of what is allowed and not allowed</p>
<h2 id="heading-allow-list-vs-deny-list">Allow List vs Deny List</h2>
<p>There are two ways of applying service control policies</p>
<p>Allow List - Block by default and allow the ones in the allow list</p>
<p>Deny List - Allow all services and block the ones in the deny list</p>
<p>Deny list is default</p>
<p>When SCPs are enabled on the AWS org. AWS apply a default policy which is called full AWS access, applied to all the organization and all OUs.</p>
<p>In the default implementation, SCP have no effect since nothing is restricted but there is an implicit deny like IAM policies, when an SCP is applied</p>
<p>So the same priority rules applied: Explicit Deny Explicit allow Implicit Deny</p>
<p>Any service explicitly allowed by scp can be granted access to identities within that account, unless there’s an explicit deny within an SCP then a service can’t be granted</p>
<p>Explicit deny always wins</p>
<p>And in the absence of either and also an explicit allow SCP policy, there will be an implicit deny</p>
<p>Allow list implementation is a two part architecture.</p>
<p>First part, remove AWS full access policy. So only the default implicit deny is present. Add any services that you want to allow into a policy</p>
<p>So irrespective of the identity permissions the identities in the account are provided, they are allowed only to access the services in the allow list. This is far more secure as we need to specify which services need to explicitly allowed.</p>
<p>But the admin overhead is more as services needed to be added to the allow list</p>
<h3 id="heading-how-scps-impact-permissions-in-an-aws-acct">How SCPs impact permissions in an AWS acct.</h3>
<p>Only permissions which are allowed within identity policies in the account and are allowed by a service control policy are actually active.</p>
<p>Effective permissions for identities within an acct are the overlap between any identity policies and applicable SCPs</p>
]]></content:encoded></item><item><title><![CDATA[Agile, Continuous Delivery and the Three Ways]]></title><description><![CDATA[We will first look into the theory and principles which formed the basis for the current DevOps practices and behaviors.
These are derived from manufacturing, high-reliability organizations and high trust management models
The Manufacturing Value Str...]]></description><link>https://thecontinuousjourney.com/agile-continuous-delivery-and-the-three-ways</link><guid isPermaLink="true">https://thecontinuousjourney.com/agile-continuous-delivery-and-the-three-ways</guid><category><![CDATA[Devops]]></category><category><![CDATA[agile]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Sat, 25 May 2024 15:18:04 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/PYyPeCHonnc/upload/4f9b2467542923765e16b966f6ed578b.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We will first look into the theory and principles which formed the basis for the current DevOps practices and behaviors.</p>
<p>These are derived from manufacturing, high-reliability organizations and high trust management models</p>
<h1 id="heading-the-manufacturing-value-stream">The Manufacturing Value Stream</h1>
<p>One of the most basic concepts in Lean is that of the value stream. Per Karen Martin and Mike Osterling, it is <strong>the sequence of activities an organization undertakes to deliver upon a customer request</strong>. OR<br /><strong>the sequence of activities required to design, produce and deliver a good or service to a customer including the dual flow of information and material</strong></p>
<p>In the manufacturing world, the value stream is clearly visible. The focus is on creating a fast and predictable lead time by creating a smooth work flow using techniques like</p>
<ul>
<li><p>small batch sizes</p>
</li>
<li><p>reduce work in process</p>
</li>
<li><p>prevent defects from being passed to downstream</p>
</li>
</ul>
<h1 id="heading-the-technology-value-stream">The Technology Value Stream</h1>
<p>In DevOps, technology value stream is the process required to convert a business hypothesis into a technology-enabled service or feature that delivers value to the customer.</p>
<p>The input is the business objective, idea which is accepted and added to the committed backlog of work. The dev teams follow agile or some other iterative process will likely convert it to user stories and feature specification.which is then implemented in code to the app or service. The code is then checked into a version control repository where the change is integrated and tested with the rest of the software system.<br />Since value is created when the app or service is running in production, we should ensure that the deployments are also performed without issues.</p>
<h2 id="heading-focus-on-deployment-lead-time">Focus on Deployment Lead Time</h2>
<p>As described above, the value stream begins when any engineer(Dev, QA etc.) checks a change into the VCS and ends when the changes is running successfully in production, providing value to customer and is generating useful feedback and telemetry.</p>
<p>The first phase of work is similar to Lean Product Development whose process time could be varied.<br />The second phase which involves testing, deployment and operations is similar to Lean Manufacturing.</p>
<p>Instead of large batches of work processed sequentially, the goal is to have testing, deployment and ops happening at same time as with design/development. It is possible when work is done in small batches.</p>
<h2 id="heading-lead-time-vs-processing-time">Lead Time vs Processing Time</h2>
<p>There are two measures in Lean Manufacturing: Lead Time and Processing Time<br />Lead Time starts when request is made and ends when it is fulfilled<br />Processing Time begins only when the work is started and ignores waiting in the queue time<br />Achieving shorter lead time almost always requires reducing the wait-in-queue time.</p>
<h2 id="heading-the-devops-ideal-deployment-lead-times-of-minutes">The DevOps Ideal: Deployment Lead Times of Minutes</h2>
<p>The deployment lead times in companies where DevOps practices are not adopted the lead times require months.</p>
<p>But in the devops environment, devs receive fast, constant feedback on their work, enabling them to quickly and independently implement, integrate and validate their code and deploy it in production.</p>
<h2 id="heading-observing-ca-as-a-measure-of-rework">Observing "%C/A" as a Measure of Rework</h2>
<p>The third key metric or measure is percent complete and accurate which helps in measuring the quality of the output of each step in the value stream.</p>
<p>According to Karen Martin and Mike Osterling the percent complete and accurate can be obtained by asking downstream customers what percentage of the time they receive the work that is 'usable as is'</p>
<h1 id="heading-the-three-ways-the-principles-underpinning-devops">The Three Ways: The Principles Underpinning DevOps</h1>
<p>The First Way enables fast left-to-right flow of work from Dev to Ops to the customer. In order to maximise flow:</p>
<ul>
<li><p>Make work visible</p>
</li>
<li><p>Reduce batch sizes and work intervals</p>
</li>
<li><p>Build in quality by preventing defects from being passed to downstream centers</p>
</li>
<li><p>constantly optimize for global goals</p>
</li>
</ul>
<p>The Second Way enables fast and constant flow of feedback from right to left all stages of our value stream. It needs faster detection and recovery helping to create work systems where problems are found and fixed before a disaster occurs.</p>
<p>The Third Way enables a generative high-trust culture that supports a dynamic, disciplined and scientific approach to experimentation and risk-taking, thus creating organizational learning from our successes and failures, helping the organization win in the marketplace.</p>
]]></content:encoded></item><item><title><![CDATA[Front-end Web Development Basics]]></title><description><![CDATA[We will be starting a new series of posts in the Front-end Web Dev space. We will be attempting to include everything from scratch. Please go through the series and let me know how to make the series better. A request to those who are starting in the...]]></description><link>https://thecontinuousjourney.com/front-end-web-development-basics</link><guid isPermaLink="true">https://thecontinuousjourney.com/front-end-web-development-basics</guid><category><![CDATA[Frontend Development]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Thu, 09 Mar 2023 16:47:53 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/ubIWo074QlU/upload/245d7ab6afde9190ffabbae9e0388eed.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We will be starting a new series of posts in the Front-end Web Dev space. We will be attempting to include everything from scratch. Please go through the series and let me know how to make the series better. A request to those who are starting in the web development space or just want to learn this out of curiosity, please let me know if the content is helping you. Please do reach out to me if you have any ideas to make this better. Remember, you, the reader are the one of the major reasons behind this blog. So your responses are absolutely welcome. This blog will be attempting to simplify whatever concepts we would be covering in accordance to what <strong>Richard Feynman</strong> is quoted to have said:</p>
<blockquote>
<p>“If you can’t explain something to a first year student, then you haven’t really understood.”</p>
</blockquote>
<p>And also this:</p>
<blockquote>
<p>“A great way to learn is to explain.”</p>
</blockquote>
<p>So this blog as a whole, will attempt to test the understanding of yours truly with regards to the topics/concepts/ideas discussed and reinforce it and at the same time help you the reader in better comprehending them.</p>
<p>NB: Those of us who were following the earlier series regarding AWS SAA and The Devops handbook, Terraform etc., we hope to restart them as early as possible.</p>
]]></content:encoded></item><item><title><![CDATA[Public, Private, Multi and Hybrid Clouds]]></title><description><![CDATA[Hello!!! In this next post in the AWS SAA series, we will discuss about the different cloud deployment models.
There are atleast 4 deployment models:

Public Cloud
Multi Cloud
Hybrid Cloud
Private Cloud

All major cloud service providers have a publi...]]></description><link>https://thecontinuousjourney.com/public-private-multi-and-hybrid-clouds</link><guid isPermaLink="true">https://thecontinuousjourney.com/public-private-multi-and-hybrid-clouds</guid><category><![CDATA[#types-of-clouds]]></category><category><![CDATA[Cloud Computing]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Thu, 13 Oct 2022 16:37:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1665678907383/KCg_Tcl9m.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello!!! In this next post in the AWS SAA series, we will discuss about the different cloud deployment models.
There are atleast 4 deployment models:</p>
<ol>
<li>Public Cloud</li>
<li>Multi Cloud</li>
<li>Hybrid Cloud</li>
<li>Private Cloud</li>
</ol>
<p>All major cloud service providers have a public and private version of the cloud computing platform. To know when and where to use them. We need to understand the difference between the different deployment models.</p>
<h1 id="heading-public-cloud">Public Cloud</h1>
<p>This type of cloud environment/platform is available to the public. The examples are AWS, Azure and Google. This means these platforms follow 5 major features of the cloud computing and also that they are available to the public.</p>
<h1 id="heading-multi-cloud">Multi Cloud</h1>
<p>This cloud platform refers to storing company data in multiple public cloud. One part in AWS and the other in Azure.</p>
<h1 id="heading-hybrid-cloud">Hybrid Cloud</h1>
<p>The cloud infrastructure is a composition of two or more distinct cloud infrastructures (private, community, or public) that remain unique entities, but are bound together by standardized or proprietary technology that enables data and application portability (e.g., cloud bursting for load balancing between clouds). </p>
<h1 id="heading-private-cloud">Private Cloud</h1>
<p>The cloud infrastructure is provisioned for exclusive use by a single organization comprising multiple consumers in an org. (e.g., business units). It may be owned, managed, and operated by the organization, a third party, or some combination of them, and it may exist on or off-premises</p>
<p><strong>Note</strong>: Hybrid Cloud is NOT public cloud with legacy on-premises infrastructure</p>
]]></content:encoded></item><item><title><![CDATA[The Devops Handbook Summary Series -3-Introduction to Part 1 - The Three Ways]]></title><description><![CDATA[Hello everyone. In the past few articles, we briefly saw about the popular DevOps myths, the problems that existed before the adoption of DevOps and how adopting DevOps solved those problems
The book is divided into 6 parts containing a total of 23 c...]]></description><link>https://thecontinuousjourney.com/the-devops-handbook-summary-series-3-introduction-to-part-1-the-three-ways</link><guid isPermaLink="true">https://thecontinuousjourney.com/the-devops-handbook-summary-series-3-introduction-to-part-1-the-three-ways</guid><category><![CDATA[Devops]]></category><category><![CDATA[#TheThreeWays]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Tue, 20 Sep 2022 10:18:29 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/wD1LRb9OeEo/upload/v1660144161540/sHtU5Kskk.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello everyone. In the past few articles, we briefly saw about the popular DevOps myths, the problems that existed before the adoption of DevOps and how adopting DevOps solved those problems</p>
<p>The book is divided into 6 parts containing a total of 23 chapters. In this post we will discuss a summary of the introduction to Part 1</p>
<h1 id="heading-part-1-the-three-ways">Part 1 - The Three Ways</h1>
<p>Let's see how different technology and management movements converged to set the stage for the DevOps movement.</p>
<p>In this part we will focus on the principles of Flow, Feedback and Continual Learning and Experimentation</p>
<p>But before that lets look at the factors that led to the formation of the DevOps movement, briefly.</p>
<p>The DevOps principles and practices are due to a convergence of many philosophical and management movements. These are the result of applying decades of lessons from the manufacturing, high reliability organizations, high trust management models and others like Lean, Theory of Constraints, Toyota Production System, resilience engineering, learning organizations, safety culture, human factors and many others like Agile to the IT value stream.</p>
<p>Lets discuss about of a few of them.</p>
<h2 id="heading-the-lean-movement">The Lean Movement</h2>
<p>In the 1980s, techniques such as value stream mapping, kanban boards and total productive maintenance were codified for the Toyota Production System. In 1997, the Lean Enterprise Institute started researching applications of Lean to other value streams such as service industry and healthcare.</p>
<p>Two of Lean's central ideas are:</p>
<ol>
<li>Manufacturing lead time - the time required to convert raw materials into finished goods - is the best predictor of quality, customer satisfaction and employee happiness.</li>
<li>The best predictor of short lead times is small batch sizes of work</li>
</ol>
<p>The objectives of Lean principles are:</p>
<ul>
<li>Create value to customer through systems thinking</li>
<li>Embracing scientific thinking</li>
<li>Creating flow and pull</li>
<li>Assuring quality at the source</li>
<li>Leading with humility</li>
<li>Respecting every individual</li>
</ul>
<h2 id="heading-the-agile-manifesto">The Agile Manifesto</h2>
<p>The <a target="_blank" href="https://agilemanifesto.org">Agile Manifesto</a> was created in 2001 at an invite-only event attended by 17 experts in what were known as lightweight methods in software development with the motive to capture the advantages of these methods and codify them into a set of values</p>
<p>One key principle was to: "deliver working software frequently, from a couple of weeks to a couple of months with a preference to the shorter timescale"
The other values focused on the need for small, self-motivated teams working in a high-trust management model.
Agile has increased the productivity and responsiveness of many development organizations.
Many key DevOps moments occured in the Agile Conferences like the following:</p>
<ul>
<li>At the 2008 Agile Conference in Toronto, Canada, there was a session held discussing the possibility of applying Agile principles to infrastructure (also referred to as "Agile system administration")</li>
<li>At the 2009 Velocity Conference, John Allspaw and Paul Hammond delivered the now famous "10 Deploys per Day: Dev and Ops Cooperation at Flickr" presentation in which they discussed
Creating shared goals for both Dev and Ops teams AND
Using continous integration practices so that deployment is part of everyone's daily work</li>
</ul>
<p>And then Patrick Debois organized the DevOpsDays conference in Ghent, Belgium in 2009 which witnessed the coining of the term "DevOps"</p>
<h2 id="heading-the-continous-delivery-movement">The Continous Delivery Movement</h2>
<p>Jez Humble and David Farley built upon the development discipline of continous build, test and integration by extending the concept to continous delivery which defines the role about deployment pipeline to make sure code and infrastructure are always in a deployable state and that all code checked into the source control platform can be safely deployable.</p>
<h2 id="heading-toyota-kata">Toyota Kata</h2>
<p>In 2009 Mike Rother wrote Toyota Kata which talked about his twenty year journey to understand and codify the Toyota Production System.
Now an interesting twist, he found that the companies who adopted the Lean approach failed to replicate the performance levels at the Toyota plants.
He concluded that one important practice which he called the improvement kata, was missing. It needed daily habitual practice of improvement work</p>
<p>In the next post, we will discuss about value stream, applying lean principles to the technology value stream and The Three Ways of Flow, Feedback and Continous Learning and Experimentation.</p>
]]></content:encoded></item><item><title><![CDATA[Cloud Computing Fundamentals]]></title><description><![CDATA[We are starting a new series on the AWS Cloud Computing Platform from an Associate Solution Architect perspective. We will try to update it when we discuss it at the professional level.
Cloud Computing - what is it...really
Cloud computing is a model...]]></description><link>https://thecontinuousjourney.com/cloud-computing-fundamentals</link><guid isPermaLink="true">https://thecontinuousjourney.com/cloud-computing-fundamentals</guid><category><![CDATA[4articles4weeks]]></category><category><![CDATA[#aws-saa-cc-basics]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Tue, 06 Sep 2022 07:49:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1662450068736/0qs9liEwN.jpg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We are starting a new series on the AWS Cloud Computing Platform from an Associate Solution Architect perspective. We will try to update it when we discuss it at the professional level.</p>
<h1 id="heading-cloud-computing-what-is-itreally">Cloud Computing - what is it...really</h1>
<p>Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared
pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that
can be rapidly provisioned and released with minimal management effort or service provider interaction.
This cloud model is composed of five essential characteristics, three service models, and four deployment models.</p>
<p>5 Characteristics that make any system cloud</p>
<h2 id="heading-on-demand-self-service">On demand self service</h2>
<p>A consumer can unilaterally provision computing capabilities, such as
server time and network storage, as needed automatically without requiring human
interaction with each service provider.</p>
<p>OR</p>
<p>The customer can provision capabilities (i.e features, products) as required automatically without needing human interaction</p>
<h2 id="heading-broad-network-access">Broad network access</h2>
<p>Capabilities are available over the network and accessed through standard
mechanisms that promote use by heterogeneous thin or thick client platforms (e.g.,
mobile phones, tablets, laptops, and workstations).</p>
<h2 id="heading-resource-pooling">Resource pooling</h2>
<p>The provider’s computing resources are pooled to serve multiple consumers
using a multi-tenant model, with different physical and virtual resources dynamically
assigned and reassigned according to consumer demand. 
There is a sense of location independence in that the customer generally has no control or knowledge over the exact location of the provided resources but may be able to specify location at a higher level of abstraction (e.g., country, state, or datacenter). Examples of resources include storage,
processing, memory, and network bandwidth.
Resources are pooled to serve multiple customers using a multi-tenant model
This characteristic deals with abstraction and economies of scale</p>
<p><strong>Economy of scale</strong>: 
The cost advantage that a company gains when it increases its production. As quantity of goods increase, the per unit cost the goods decreases.
In cloud computing context, this means that the SP buys larger number of devices for a pool of customers and can maintain larger buffer for growth
The customer can make use of the devices when needed and stop using it when there is lesser demand. The vendor or service provider manages the capacity
But there is data isolation so that the data of one customer is not visible to another</p>
<h2 id="heading-rapid-elasticity">Rapid elasticity</h2>
<p>Capabilities can be elastically provisioned and released, in some cases
automatically, to scale rapidly outward and inward commensurate with demand. To the
consumer, the capabilities available for provisioning often appear to be unlimited and can
be appropriated in any quantity at any time.</p>
<p>OR</p>
<p>Capabilities(Resources) can be elastically provisioned and released to scale rapidly outward and inward with demand. 
To the customer the capabilities available for provisioning often appear to be unlimited.
Cost also increases and decreases appropriately with demand.
Elasticity also means under provisioning that leads to performance issues to customers and over-provisioning which leads to financial wastage, can be avoided.</p>
<h2 id="heading-measured-service">Measured service</h2>
<p>Cloud systems automatically control and optimize resource use by leveraging
a metering capability at some level of abstraction appropriate to the type of service (e.g.,
storage, processing, bandwidth, and active user accounts). Resource usage can be
monitored, controlled, and reported, providing transparency for both the provider and
consumer of the utilized service.</p>
<p>OR</p>
<p>Resource usage can be monitored, controlled, reported and billed.
Provide on-demand billing</p>
<div class="embed-wrapper"><div class="embed-loading"><div class="loadingRow"></div><div class="loadingRow"></div></div><a class="embed-card" href="&lt;a href=">Image by starline</a> on Freepik" data-card-controls="0" data-card-theme="light"&gt;<a href="https://www.freepik.com/free-vector/cloud-computing-digital-technology-with-gears_12071205.htm#query=cloud%20computing%20technology&amp;position=6&amp;from_view=search">Image by starline</a> on Freepik</div>
]]></content:encoded></item><item><title><![CDATA[HashiCorp Configuraton Language (HCL) Basics]]></title><description><![CDATA[Hello Folks, we are moving ahead with our Infrastructure as Code series with Terraform. We are going to discuss the basics of HCL the language used in the terraform tool. The new name for this language is Terraform Language in the newer versions. Let...]]></description><link>https://thecontinuousjourney.com/hashicorp-configuraton-language-hcl-basics</link><guid isPermaLink="true">https://thecontinuousjourney.com/hashicorp-configuraton-language-hcl-basics</guid><category><![CDATA[#hashicorp-config-lang]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Tue, 06 Sep 2022 05:37:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/2xEQDxB0ss4/upload/v1662442292351/i4G9_331g.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello Folks, we are moving ahead with our Infrastructure as Code series with Terraform. We are going to discuss the basics of HCL the language used in the terraform tool. The new name for this language is Terraform Language in the newer versions. Let's get started.</p>
<p>This is for version 0.11 or earlier.
An HCL file has blocks and arguments
A block is defined within curly braces and contains arguments in key value pair format representing config data.</p>
<p>What information is kept in the block
The platform and the resources in the platform
First  element is block called resource block id by word resource
Then we have the resource type and then inside the resource block we have arguments in the form of key value pair</p>
<p>Simple Terraform workflow is as follows</p>
<ol>
<li>Write the Terraform configuration file.</li>
<li>Run the <em>init</em> command</li>
<li>Review the execution plan using <em>plan</em> command</li>
<li>Once ready, apply changes using <em>apply</em> command</li>
</ol>
<p>When we run the <em>terraform init</em> command, Terraform will check the configuration file and initialize the working directory containing the .tf file.
It will understand the resource type and download the appropriate provider to work on the resources declared in the .tf file
Now the resource can be created..
If we want to see the steps involved in the creation of the resource, run the <em>terraform plan</em> command.
The + symbol signifies that resource will be created.
Once we have verified all the steps, run the <em>terraform apply</em> command.
It will show the execution plan once again and ask the user’s confirmation to proceed with the steps.
Then run the <em>terraform show</em> command to view the details of the created resource.
To know the resource types supported by a provider and the arguments needed, refer to the terraform documentation.</p>
<h2 id="heading-update-and-destroy-infrastructure">Update and Destroy Infrastructure</h2>
<p>Once the necessary changes are done
When the <em>terraform plan</em> is run, the output shows that resource will be replaced
-/+ shows that the resource will be deleted and recreated
Even though the change is small, Terraform will delete and recreate the file
This infrastructure is called <strong>immutable</strong> infrastructure.
To continue with the change, run the command <em>terraform apply</em> and type yes to confirm
To destroy the infrastructure, run the command <em>terraform destroy</em>
An execution plan is shown and when we give the confirmation yes, terraform proceeds to perform the action.</p>
]]></content:encoded></item><item><title><![CDATA[Why Terraform is a sought-after IaC tool]]></title><description><![CDATA[Let’s discuss the features of Terraform on a high-level.
It is a free and open source tool developed by Hashicorp which helps to build, manage and destroy infrastructure within minutes
Major advantage - it be used to deploy infrastructure on multiple...]]></description><link>https://thecontinuousjourney.com/why-terraform-is-a-sought-after-iac-tool</link><guid isPermaLink="true">https://thecontinuousjourney.com/why-terraform-is-a-sought-after-iac-tool</guid><category><![CDATA[Terraform]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Sat, 03 Sep 2022 09:14:43 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/u2Ru4QBXA5Q/upload/v1662196346150/tUt2ByahJ.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let’s discuss the features of Terraform on a high-level.
It is a free and open source tool developed by Hashicorp which helps to build, manage and destroy infrastructure within minutes</p>
<p>Major advantage - it be used to deploy infrastructure on multiple platforms like Cloud service providers, Vmware and other vendors</p>
<p>How does it manage infrastructure on third party platforms  - through providers (API)
It supports hundreds of providers and can work with almost any platforms</p>
<p>The language it uses – <strong>Hashicorp Configuration Language</strong> – a simple declarative language used to  define infrastructure resources to be provisioned as blocks of code.
The config file has a extension of .tf</p>
<p>[Note: HCL is used in version 0.11 and earlier]</p>
<p>It is an easy to read, write and understand even for a beginner</p>
<p>What is declarative mean?
The code we define is the state that we want the infrastructure to be in.</p>
<p>How does Terraform move from current state to desired state?
There are three phases of operation</p>
<ul>
<li>Init  --→  It initializes the project and identifies the providers for the target environment.</li>
<li>Plan --→ Drafts a plan to move from current state to desired state. </li>
<li><p>Apply --→ Performs the necessary changes on target environment to the desired state</p>
<p>If the target environment shifts from the desired state for any reason, the subsequent apply moves the tgt environment to desired state by fixing the missing part.</p>
</li>
</ul>
<p>Any object that Terraform manages is called a resource.
Manages the lifecycle of the resource from provisioning, managing to decommissioning.</p>
<p>It records the state of the infrastructure as it is in the real world and based on it it determines what action is needed while updating resources on a certain platform.
It can ensure that the infrastructure is always in the desired state.</p>
<p>State ---→ blueprint of infrastructure deployed by Terraform.</p>
<p>It can read attributes of existing infrastructure by configuring data sources and can be used by Terraform to configure other resources.</p>
<p>Terraform Cloud and Terraform Enterprise provide additional features for simplified collaboration between teams managing infrastructure, improved security and centralized UI for managing TF deployments.</p>
<p>These features make it an excellent infrastructure provisioning tool.</p>
]]></content:encoded></item><item><title><![CDATA[Terraform Basics]]></title><description><![CDATA[Let us discuss the concept of IAC before we discuss about Terraform
Lets look at the traditional way of IT delivery to appreciate the utility of IAC tools.
The Traditional Way of managing Infrastructure.
App delivery in a traditional IT environment
T...]]></description><link>https://thecontinuousjourney.com/terraform-basics</link><guid isPermaLink="true">https://thecontinuousjourney.com/terraform-basics</guid><category><![CDATA[Terraform]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Sat, 03 Sep 2022 05:21:23 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/KNZHyTpre18/upload/v1662178868102/ixAhRryWVy.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let us discuss the concept of IAC before we discuss about Terraform
Lets look at the traditional way of IT delivery to appreciate the utility of IAC tools.</p>
<h1 id="heading-the-traditional-way-of-managing-infrastructure">The Traditional Way of managing Infrastructure.</h1>
<h2 id="heading-app-delivery-in-a-traditional-it-environment">App delivery in a traditional IT environment</h2>
<p>The management of the business organization wants to roll out an application</p>
<p>They give the requirements for the application</p>
<p>The business analyst gathers needs and comes out with a set of high-level technical requirements.</p>
<p>These are passed to the Solution Architect who comes up with the architecture for the deployment of the application like the type, specs and count of servers needed for front end web serves, backend web servers, databases, loadbalancers</p>
<p>Traditionally this would be deployed in the on-prem environment (using resources in the datacenter)</p>
<p>For any additional hardware, the procurement team places an order with the vendor who’d purchase and deliver to the datacenter from anywhere between a few days, weeks or months.</p>
<p>Once the hardware is received, the field engineers from the client are responsible for the setting up the hardware on a rack. ( rack and stack)</p>
<p>The sys admins do the initial configs on the systems and network engineers make them available on the 
network.</p>
<p>Storage admins assign storage to the servers</p>
<p>The backup admins configure backups.</p>
<p>Once the systems are setup as per the standards, they are then handed over to the app teams for deploying the apps.</p>
<p>This deployment models has quite a few disadvantages.</p>
<pre><code><span class="hljs-number">1.</span> High turn around <span class="hljs-type">time</span>. (<span class="hljs-keyword">From</span> weeks <span class="hljs-keyword">to</span> months)
<span class="hljs-number">2.</span> Slower scaling <span class="hljs-type">time</span> (<span class="hljs-keyword">Both</span> scale up <span class="hljs-keyword">and</span> scale down)
<span class="hljs-number">3.</span> Overall <span class="hljs-keyword">cost</span> <span class="hljs-keyword">to</span> maintain this model quite high
<span class="hljs-number">4.</span> Limited automation - <span class="hljs-keyword">Some</span> aspects can be automated <span class="hljs-keyword">while</span> others <span class="hljs-keyword">like</span> rack <span class="hljs-keyword">and</span> stack, cabling <span class="hljs-keyword">and</span> deployment are manual <span class="hljs-keyword">and</span> slow
<span class="hljs-number">5.</span> Chances <span class="hljs-keyword">of</span> human error high <span class="hljs-keyword">as</span> many teams are engaged <span class="hljs-keyword">in</span> many tasks which result <span class="hljs-keyword">in</span> inconsistent environment.
<span class="hljs-number">6.</span> Another major disadvantage – under-utilization <span class="hljs-keyword">of</span> compute resources.
</code></pre><p>So organizations have been moving to virtualization and cloud computing to take advantage of cloud services</p>
<p>Overall time to setup infrastructure and Time to Market of Apps are <strong>significantly reduced</strong></p>
<p>As  datacenter and h/w are managed by the cloud service providers
Infrastructure costs to manage h/w resources are reduced.</p>
<p>Cloud platforms support APIs, thus opening a huge opportunity for automation.</p>
<p>Built-in scaling capabilities helps to reduce resource wastage.</p>
<h2 id="heading-cons-of-web-based-cloud-platforms">Cons of Web based Cloud platforms</h2>
<p>We could provision infrastructure using the web interface provided by the platform however, it is not efficient in case of larger number of resources</p>
<p>Still the infrastructure needed to be handed over to various teams for application setup giving way for human errors.</p>
<p>Companies started to solve this using scripts and other tools for infrastructure provisioning and managing resources and environments. These became the IAC</p>
<h2 id="heading-types-of-iac-tools">Types of IAC Tools</h2>
<p>One way of infrastructure provision is using the web console of cloud platforms or the provisioning process can be codified using scripts and programming languages</p>
<p>Thus we can write and execute code to define, provision, configure, update and eventually destroy infrastructure resources.
This process or concept is known as <strong>Infrastructure as Code</strong> (<strong>IaC</strong>)</p>
<p>Using this concept almost any infrastructure component can be managed as code.</p>
<p>IAC has evolved to defining infrastructure using simple, human readable and high level language</p>
<p>IAC tools are designed with a specific goal in mind.
Based on these, there are three types of IAC tools</p>
<ul>
<li>Configuration management</li>
<li>Server templating</li>
<li>Provisioning tools</li>
</ul>
<h3 id="heading-features-of-configuration-management-tools-are">Features of Configuration management tools are:</h3>
<p>They are designed to install and manage software into existing infrastructure resources viz. Servers, db, networking devices etc.</p>
<p>Unlike shell scripts, these tools maintain a consistent and std structure of code making it easier to manage and update them as needed.</p>
<p>Can run or execute on multiple remote resources at once.</p>
<p>Can be checked or saved into a VCS allowing to distribute and reuse </p>
<p>Most important feature - They are <strong>idempotent</strong> ie they can run multiple times and each time it will only make changes necessary to bring the environment to a desired state. - meaning it’ll leave anything already in place as it is.</p>
<h3 id="heading-features-of-server-templating-tools">Features of Server templating tools</h3>
<p>Examples are docker, packer and hashicorp  vagrant</p>
<p>What do they do – create custom images of a virtual machine or container containing all necessary software and dependencies installed on them</p>
<p>Eliminates the need for installing software on the deployed virtual machine or container.
Examples images on docker hub, custom images in AWS ECR etc.</p>
<p>They promote immutable infrastructure – means once a vm or container is deployed, it usually remains unchanged.</p>
<p>If changes are to be made to images then changes are made to the images and a new instance is deployed using the updated image. rather making changes to running instances as in the case of config. mgmt tools.</p>
<h3 id="heading-features-of-provisioning-tools">Features of Provisioning tools</h3>
<p>They are used to provision infrastructure components like servers, db, subnets etc using simple declarative code.Examples are Terraform, AWS CloudFormation etc.</p>
<p>Terraform is vendor or platform agnostic and support provider plugins for all major cloud computing providers.</p>
]]></content:encoded></item><item><title><![CDATA[Linux services Timesavers]]></title><description><![CDATA[We could start and enable services (make  persistent between reboots) in a single command which is helpful in the below situations among others:

using it in scripts
while adding new services  into the IT environment
during  change activities which r...]]></description><link>https://thecontinuousjourney.com/linux-services-timesavers</link><guid isPermaLink="true">https://thecontinuousjourney.com/linux-services-timesavers</guid><category><![CDATA[#timesavers]]></category><dc:creator><![CDATA[Jaison]]></dc:creator><pubDate>Fri, 02 Sep 2022 07:48:08 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/unsplash/xbEVM6oJ1Fs/upload/v1662104849110/DjcI43aJj.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We could start and enable services (make  persistent between reboots) in a single command which is helpful in the below situations among others:</p>
<ul>
<li>using it in scripts</li>
<li>while adding new services  into the IT environment</li>
<li>during  change activities which require stopping and disabling of services</li>
</ul>
<p>This is available in all Linux systems having systemd as their system and service manager.</p>
<p>To start and enable a systemd service</p>
<p><em>systemctl enable <strong>service</strong> --now</em></p>
<p>To stop and disable a systemd service</p>
<p><em>systemctl disable <strong>service </strong>--now</em> </p>
]]></content:encoded></item></channel></rss>